For the "parse" pre-command, provide a sample transaction context.
This commit is contained in:
parent
fd53d12bf8
commit
cad86ed87f
1 changed files with 26 additions and 4 deletions
|
|
@ -64,23 +64,45 @@ value_t parse_command(call_scope_t& args)
|
||||||
report_t& report(find_scope<report_t>(args));
|
report_t& report(find_scope<report_t>(args));
|
||||||
std::ostream& out(report.output_stream);
|
std::ostream& out(report.output_stream);
|
||||||
|
|
||||||
|
{
|
||||||
|
string str;
|
||||||
|
{
|
||||||
|
std::ostringstream buf;
|
||||||
|
|
||||||
|
buf << "2004/05/27 Book Store\n"
|
||||||
|
<< " Expenses:Books 20 BOOK @ $10\n"
|
||||||
|
<< " Liabilities:MasterCard $-200.00\n";
|
||||||
|
|
||||||
|
str = buf.str();
|
||||||
|
}
|
||||||
|
out << "--- Context is first transaction of the following entry ---"
|
||||||
|
<< std::endl << str << std::endl;
|
||||||
|
{
|
||||||
|
std::istringstream in(str);
|
||||||
|
report.session.journal->parse(in, report.session, NULL, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
entry_t * first = report.session.journal->entries.front();
|
||||||
|
xact_t * xact = first->xacts.front();
|
||||||
|
|
||||||
out << "--- Input expression ---" << std::endl;
|
out << "--- Input expression ---" << std::endl;
|
||||||
out << *arg << std::endl;
|
out << arg << std::endl;
|
||||||
|
|
||||||
out << std::endl << "--- Text as parsed ---" << std::endl;
|
out << std::endl << "--- Text as parsed ---" << std::endl;
|
||||||
expr_t expr(*arg);
|
expr_t expr(arg);
|
||||||
expr.print(out);
|
expr.print(out);
|
||||||
out << std::endl;
|
out << std::endl;
|
||||||
|
|
||||||
out << std::endl << "--- Expression tree ---" << std::endl;
|
out << std::endl << "--- Expression tree ---" << std::endl;
|
||||||
expr.dump(out);
|
expr.dump(out);
|
||||||
|
|
||||||
expr.compile(args);
|
bind_scope_t bound_scope(args, *xact);
|
||||||
|
expr.compile(bound_scope);
|
||||||
out << std::endl << "--- Compiled tree ---" << std::endl;
|
out << std::endl << "--- Compiled tree ---" << std::endl;
|
||||||
expr.dump(out);
|
expr.dump(out);
|
||||||
|
|
||||||
out << std::endl << "--- Calculated value ---" << std::endl;
|
out << std::endl << "--- Calculated value ---" << std::endl;
|
||||||
value_t result(expr.calc(args));
|
value_t result(expr.calc());
|
||||||
result.dump(out);
|
result.dump(out);
|
||||||
out << std::endl;
|
out << std::endl;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue