summaryrefslogtreecommitdiff
path: root/src/include/parser.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2009-11-03 03:07:58 +0000
committerMorgan Deters <mdeters@gmail.com>2009-11-03 03:07:58 +0000
commit541379b3d361e255cd664207f8b2e278a5b5e3eb (patch)
treec6f563d69bc563116836a6d2ed85e34ba51bc31e /src/include/parser.h
parenta101d3298691265ee4cf72bed1ca59cd60318839 (diff)
additional headers
Diffstat (limited to 'src/include/parser.h')
-rw-r--r--src/include/parser.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/include/parser.h b/src/include/parser.h
index 0cfc89a28..8f1032286 100644
--- a/src/include/parser.h
+++ b/src/include/parser.h
@@ -12,6 +12,31 @@
namespace CVC4 {
+// In terms of abstraction, this is below (and provides services to)
+// the main CVC4 binary and above (and requires the services of)
+// ValidityChecker.
+
+class Parser {
+private:// maybe protected is better ?
+ ValidityChecker *d_vc;
+
+public:
+ Parser(ValidityChecker* vc);
+
+ /**
+ * Process a file. Overridden in subclasses to support SMT-LIB
+ * format, CVC4 presentation language, etc. In subclasses, this
+ * function should parse terms, build Command objects, and pass them
+ * to dispatch().
+ */
+ virtual Expr process(std::istream&) = 0;
+
+ /**
+ * Dispatch a command.
+ */
+ void dispatch(const Command&);
+};/* class Parser */
+
} /* CVC4 namespace */
#endif /* __CVC4_PARSER_H */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback