cprover
Loading...
Searching...
No Matches
cpp_parser.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: C++ Parser
4
5Author: 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/parser.h>
16
18
19#include "cpp_parse_tree.h"
20#include "cpp_token_buffer.h"
21
22#include <optional>
23
24class cpp_parsert:public parsert
25{
26public:
28
29 virtual bool parse() override;
30
31 virtual void clear() override
32 {
37 }
38
40 : mode(configt::ansi_ct::flavourt::ANSI),
43 support_float16(std::nullopt)
44 {
45 }
46
47public:
48 // internal state
50
51 // We can furthermore twiddle the recognition of various
52 // keywords. This is honored in particular modes.
54
56
61
67
68 // scanner
71
72protected:
73 std::optional<bool> support_float16;
74};
75
77
78#endif // CPROVER_CPP_CPP_PARSER_H
Globally accessible architectural configuration.
Definition config.h:129
bool asm_block_following
Definition cpp_parser.h:70
cpp_tokent & current_token()
Definition cpp_parser.h:57
cpp_token_buffert token_buffer
Definition cpp_parser.h:55
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:62
std::optional< bool > support_float16
Definition cpp_parser.h:73
virtual bool parse() override
ansi_c_parsert::modet mode
Definition cpp_parser.h:49
bool recognize_wchar_t
Definition cpp_parser.h:53
unsigned parenthesis_counter
Definition cpp_parser.h:69
cpp_tokent & current_token()
irep_idt filename
Definition cpp_token.h:26
unsigned line_no
Definition cpp_token.h:25
source_locationt source_location
Definition parser.h:139
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
C++ Parser: Token Buffer.
STL namespace.
Parser utilities.