summaryrefslogtreecommitdiff
path: root/src/parser/smt2/smt2_input.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2014-10-23 03:11:18 -0400
committerMorgan Deters <mdeters@cs.nyu.edu>2014-10-23 19:40:41 -0400
commitc6436566dec99c0ed6794fa34b9b67a7e47918b0 (patch)
tree5555462cd38a49a9b6bed760d7af728d59371ee4 /src/parser/smt2/smt2_input.h
parent1c8d1d7c5831baebc0a59a7dcf36f942504e5556 (diff)
Parsing and infrastructure support for SMT-LIBv2.5 input and output languages.
* support for new commands meta-info, declare-const, echo, get-model, reset, and reset-assertions * support for set-option :global-declarations * support for set-option :produce-assertions * support for set-option :reproducible-resource-limit * support for get-info :assertion-stack-levels * support for set-info :smt-lib-version 2.5 * ascribe types for abstract values (the new 2.5 standard clarifies that this is required) * SMT-LIB v2.5 string literals (we still support 2.0 string literals when in 2.0 mode) What's still to do: * check-sat-assumptions/get-unsat-assumptions (still being hotly debated). Also set-option :produce-unsat-assumptions. * define-fun-rec doesn't allow mutual recursion * All options should be restored to defaults with (reset) command. (Currently :incremental and maybe others get "stuck" due to late driver integration.)
Diffstat (limited to 'src/parser/smt2/smt2_input.h')
-rw-r--r--src/parser/smt2/smt2_input.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/parser/smt2/smt2_input.h b/src/parser/smt2/smt2_input.h
index b2244db4d..c6a94f07a 100644
--- a/src/parser/smt2/smt2_input.h
+++ b/src/parser/smt2/smt2_input.h
@@ -44,6 +44,9 @@ class Smt2Input : public AntlrInput {
/** The ANTLR3 SMT2 parser for the input. */
pSmt2Parser d_pSmt2Parser;
+ /** Which (variant of the) input language we're using */
+ InputLanguage d_lang;
+
/**
* Initialize the class. Called from the constructors once the input
* stream is initialized.
@@ -57,16 +60,20 @@ public:
*
* @param inputStream the input stream to use
*/
- Smt2Input(AntlrInputStream& inputStream);
+ Smt2Input(AntlrInputStream& inputStream,
+ InputLanguage lang = language::input::LANG_SMTLIB_V2_5);
/** Destructor. Frees the lexer and the parser. */
virtual ~Smt2Input();
/** Get the language that this Input is reading. */
InputLanguage getLanguage() const throw() {
- return language::input::LANG_SMTLIB_V2;
+ return d_lang;
}
+ /** Set the language that this Input is reading. */
+ void setLanguage(InputLanguage);
+
protected:
/**
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback