diff options
author | Morgan Deters <mdeters@gmail.com> | 2012-06-07 16:16:48 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2012-06-07 16:16:48 +0000 |
commit | 0a7dc7687a4989641d8c101ba3b2d4737eaea24f (patch) | |
tree | e802b4522419f9480ba04c2c5f2e2d9b1f88426e /src/parser/smt2 | |
parent | b3d6d0ccc76e92304fe612b23dc76a7d78061567 (diff) |
Adding EchoCommand and associated printer and parser rules:
* SMT-LIBv2 parser now supports (echo...).
* Dump() gestures can now dump EchoCommands in CVC and SMT-LIB formats.
This can make it much easier to interpret output.
Diffstat (limited to 'src/parser/smt2')
-rw-r--r-- | src/parser/smt2/Smt2.g | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/parser/smt2/Smt2.g b/src/parser/smt2/Smt2.g index 2b5d54afa..19f77ac87 100644 --- a/src/parser/smt2/Smt2.g +++ b/src/parser/smt2/Smt2.g @@ -372,6 +372,14 @@ extendedCommand[CVC4::Command*& cmd] LPAREN_TOK ( LPAREN_TOK datatypeDef[dts] RPAREN_TOK )+ RPAREN_TOK { PARSER_STATE->popScope(); cmd = new DatatypeDeclarationCommand(PARSER_STATE->mkMutualDatatypeTypes(dts)); } + | ECHO_TOK + ( simpleSymbolicExpr[sexpr] + { std::stringstream ss; + ss << sexpr; + cmd = new EchoCommand(ss.str()); + } + | { cmd = new EchoCommand(); } + ) ; simpleSymbolicExpr[CVC4::SExpr& sexpr] @@ -918,6 +926,7 @@ POP_TOK : 'pop'; // extended commands DECLARE_DATATYPES_TOK : 'declare-datatypes'; +ECHO_TOK : 'echo'; // operators (NOTE: theory symbols go here) AMPERSAND_TOK : '&'; |