cprover
smt2_parser.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
9 
10 #ifndef CPROVER_SOLVERS_SMT2_SMT2_PARSER_H
11 #define CPROVER_SOLVERS_SMT2_SMT2_PARSER_H
12 
13 #include <iosfwd>
14 #include <string>
15 
17 {
18 public:
19  explicit smt2_parsert(std::istream &_in):in(_in)
20  {
21  }
22 
23  void operator()();
24 
25 protected:
26  std::istream &in;
27  std::string buffer;
28 
29  // string literal, numeral, simple symbol, quoted symbol
30  // and keyword are in 'buffer'
31  virtual void string_literal() = 0;
32  virtual void numeral() = 0;
33  virtual void symbol() = 0;
34  virtual void keyword() = 0;
35  virtual void open_expression() = 0; // '('
36  virtual void close_expression() = 0; // ')'
37 
38  // parse errors
39  virtual void error(const std::string &) = 0;
40 
41 private:
42  void get_decimal_numeral();
43  void get_hex_numeral();
44  void get_bin_numeral();
45  void get_simple_symbol();
46  void get_quoted_symbol();
47  void get_string_literal();
48  bool is_simple_symbol_character(char ch);
49 };
50 
51 #endif // CPROVER_SOLVERS_SMT2_SMT2_PARSER_H
virtual void symbol()=0
virtual void keyword()=0
virtual void numeral()=0
std::istream & in
Definition: smt2_parser.h:26
void get_decimal_numeral()
Definition: smt2_parser.cpp:52
std::string buffer
Definition: smt2_parser.h:27
void get_simple_symbol()
Definition: smt2_parser.cpp:27
virtual void open_expression()=0
void get_quoted_symbol()
void get_string_literal()
virtual void error(const std::string &)=0
void get_hex_numeral()
void operator()()
void get_bin_numeral()
Definition: smt2_parser.cpp:75
virtual void close_expression()=0
smt2_parsert(std::istream &_in)
Definition: smt2_parser.h:19
bool is_simple_symbol_character(char ch)
Definition: smt2_parser.cpp:14
virtual void string_literal()=0