cprover
cpp_parser.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: C++ Parser
4 
5 Author: Daniel Kroening, kroening@cs.cmu.edu
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_CPP_CPP_PARSER_H
13 #define CPROVER_CPP_CPP_PARSER_H
14 
15 #include <util/string_hash.h>
16 #include <util/parser.h>
17 #include <util/expr.h>
18 
19 #include <ansi-c/ansi_c_parser.h>
20 
21 #include "cpp_parse_tree.h"
22 #include "cpp_token_buffer.h"
23 
24 class cpp_parsert:public parsert
25 {
26 public:
28 
29  virtual bool parse() override;
30 
31  virtual void clear() override
32  {
34  parse_tree.clear();
36  asm_block_following=false;
37  }
38 
40  mode(configt::ansi_ct::flavourt::ANSI),
41  recognize_wchar_t(true),
42  asm_block_following(false)
43  {
44  }
45 
46 public:
47  // internal state
49 
50  // We can furthermore twiddle the recognition of various
51  // keywords. This is honored in particular modes.
53 
55 
57  {
58  return token_buffer.current_token();
59  }
60 
61  void add_location()
62  {
65  }
66 
67  // scanner
70 };
71 
72 extern cpp_parsert cpp_parser;
73 
74 #endif // CPROVER_CPP_CPP_PARSER_H
Globally accessible architectural configuration.
Definition: config.h:106
bool asm_block_following
Definition: cpp_parser.h:69
cpp_token_buffert token_buffer
Definition: cpp_parser.h:54
virtual void clear() override
Definition: cpp_parser.h:31
cpp_parse_treet parse_tree
Definition: cpp_parser.h:27
void add_location()
Definition: cpp_parser.h:61
cpp_tokent & current_token()
Definition: cpp_parser.h:56
virtual bool parse() override
Definition: cpp_parser.cpp:20
ansi_c_parsert::modet mode
Definition: cpp_parser.h:48
bool recognize_wchar_t
Definition: cpp_parser.h:52
unsigned parenthesis_counter
Definition: cpp_parser.h:68
cpp_tokent & current_token()
irep_idt filename
Definition: cpp_token.h:26
unsigned line_no
Definition: cpp_token.h:25
Definition: parser.h:24
source_locationt source_location
Definition: parser.h:135
unsigned get_line_no() const
Definition: parser.h:97
virtual void clear()
Definition: parser.h:32
const irep_idt & get_file() const
C++ Parser.
cpp_parsert cpp_parser
Definition: cpp_parser.cpp:16
C++ Parser: Token Buffer.
Parser utilities.
string hashing