summaryrefslogtreecommitdiff
path: root/src/parser/smt2
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-06-07 16:16:48 +0000
committerMorgan Deters <mdeters@gmail.com>2012-06-07 16:16:48 +0000
commit0a7dc7687a4989641d8c101ba3b2d4737eaea24f (patch)
treee802b4522419f9480ba04c2c5f2e2d9b1f88426e /src/parser/smt2
parentb3d6d0ccc76e92304fe612b23dc76a7d78061567 (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.g9
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 : '&';
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback