diff options
author | Morgan Deters <mdeters@gmail.com> | 2009-11-03 03:07:58 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2009-11-03 03:07:58 +0000 |
commit | 541379b3d361e255cd664207f8b2e278a5b5e3eb (patch) | |
tree | c6f563d69bc563116836a6d2ed85e34ba51bc31e /src/include/parser.h | |
parent | a101d3298691265ee4cf72bed1ca59cd60318839 (diff) |
additional headers
Diffstat (limited to 'src/include/parser.h')
-rw-r--r-- | src/include/parser.h | 25 |
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 */ |