summaryrefslogtreecommitdiff
path: root/src/textual.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/textual.cc')
-rw-r--r--src/textual.cc34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/textual.cc b/src/textual.cc
index 8d4294a6..37c38e55 100644
--- a/src/textual.cc
+++ b/src/textual.cc
@@ -144,13 +144,13 @@ namespace {
const string& name);
};
- void parse_amount_expr(scope_t& scope,
- std::istream& in,
- amount_t& amount,
- post_t * post,
- uint_least8_t flags = 0)
+ void parse_amount_expr(scope_t& scope,
+ std::istream& in,
+ amount_t& amount,
+ post_t * post,
+ const parse_flags_t& flags = PARSE_DEFAULT)
{
- expr_t expr(in, flags | static_cast<uint_least8_t>(expr_t::PARSE_PARTIAL));
+ expr_t expr(in, flags.plus_flags(PARSE_PARTIAL));
DEBUG("textual.parse", "Parsed an amount expression");
@@ -506,8 +506,8 @@ void instance_t::automated_xact_directive(char * line)
}
std::auto_ptr<auto_xact_t> ae
- (new auto_xact_t(item_predicate(skip_ws(line + 1),
- keep_details_t(true, true, true))));
+ (new auto_xact_t(predicate_t(skip_ws(line + 1),
+ keep_details_t(true, true, true))));
reveal_context = false;
@@ -852,12 +852,10 @@ post_t * instance_t::parse_post(char * line,
ptristream stream(next, len - beg);
if (*next != '(') // indicates a value expression
- post->amount.parse(stream, amount_t::PARSE_NO_REDUCE);
+ post->amount.parse(stream, PARSE_NO_REDUCE);
else
parse_amount_expr(scope, stream, post->amount, post.get(),
- static_cast<uint_least8_t>(expr_t::PARSE_NO_REDUCE) |
- static_cast<uint_least8_t>(expr_t::PARSE_SINGLE) |
- static_cast<uint_least8_t>(expr_t::PARSE_NO_ASSIGN));
+ PARSE_NO_REDUCE | PARSE_SINGLE | PARSE_NO_ASSIGN);
if (! post->amount.is_null() && honor_strict && strict &&
post->amount.has_commodity() &&
@@ -900,12 +898,11 @@ post_t * instance_t::parse_post(char * line,
ptristream cstream(p, len - beg);
if (*p != '(') // indicates a value expression
- post->cost->parse(cstream, amount_t::PARSE_NO_MIGRATE);
+ post->cost->parse(cstream, PARSE_NO_MIGRATE);
else
parse_amount_expr(scope, cstream, *post->cost, post.get(),
- static_cast<uint_least8_t>(expr_t::PARSE_NO_MIGRATE) |
- static_cast<uint_least8_t>(expr_t::PARSE_SINGLE) |
- static_cast<uint_least8_t>(expr_t::PARSE_NO_ASSIGN));
+ PARSE_NO_MIGRATE | PARSE_SINGLE |
+ PARSE_NO_ASSIGN);
if (post->cost->sign() < 0)
throw parse_error(_("A posting's cost may not be negative"));
@@ -953,11 +950,10 @@ post_t * instance_t::parse_post(char * line,
ptristream stream(p, len - beg);
if (*p != '(') // indicates a value expression
- post->assigned_amount->parse(stream, amount_t::PARSE_NO_MIGRATE);
+ post->assigned_amount->parse(stream, PARSE_NO_MIGRATE);
else
parse_amount_expr(scope, stream, *post->assigned_amount, post.get(),
- static_cast<uint_least8_t>(expr_t::PARSE_SINGLE) |
- static_cast<uint_least8_t>(expr_t::PARSE_NO_MIGRATE));
+ PARSE_SINGLE | PARSE_NO_MIGRATE);
if (post->assigned_amount->is_null()) {
if (post->amount.is_null())