65912340149ce031d7bcdc032a50ca69ff02749d
[cvc5.git] / src / parser / cvc / cvc_input.h
1 /*
2 * cvc_parser.h
3 *
4 * Created on: Mar 5, 2010
5 * Author: chris
6 */
7
8 #ifndef CVC_PARSER_H_
9 #define CVC_PARSER_H_
10
11 #include "parser/antlr_input.h"
12 #include "parser/cvc/generated/CvcLexer.h"
13 #include "parser/cvc/generated/CvcParser.h"
14
15 // extern void CvcParserSetAntlrParser(CVC4::parser::AntlrParser* newAntlrParser);
16
17 namespace CVC4 {
18
19 class Command;
20 class Expr;
21 class ExprManager;
22
23 namespace parser {
24
25 class CvcInput : public AntlrInput {
26 public:
27 CvcInput(ExprManager* exprManager, const std::string& filename, bool useMmap);
28 CvcInput(ExprManager* exprManager, const std::string& input, const std::string& name);
29 ~CvcInput();
30
31 protected:
32 Command* doParseCommand() throw(ParserException);
33 Expr doParseExpr() throw(ParserException);
34 pANTLR3_LEXER getLexer();
35 pANTLR3_LEXER createLexer(pANTLR3_INPUT_STREAM input);
36 pANTLR3_PARSER createParser(pANTLR3_COMMON_TOKEN_STREAM tokenStream);
37
38 private:
39 void init();
40 pCvcLexer d_pCvcLexer;
41 pCvcParser d_pCvcParser;
42 }; // class CvcInput
43
44 } // namespace parser
45
46 } // namespace CVC4
47
48 #endif /* CVC_PARSER_H_ */