CBMC
|
Responsible for starting the parse process and to translate the result into a statement_list_parse_treet. More...
#include <statement_list_parser.h>
Public Member Functions | |
statement_list_parsert (message_handlert &message_handler) | |
Constructor. | |
statement_list_parsert (const statement_list_parsert &)=delete | |
~statement_list_parsert () override | |
bool | parse () override |
Starts the parsing process and saves the result inside of this instance's parse tree. | |
void | add_function_block (const exprt &block) |
Adds a function block to the parse tree by converting the block expression tree. | |
void | add_function (const exprt &function) |
Adds a function to the parse tree by converting the function expression tree. | |
void | add_tag_list (const exprt &tag_list) |
Adds a tag list to the parse tree by converting the tag_list expression tree. | |
void | print_tree (std::ostream &out) const |
Prints the parse tree of this instance to the given output stream. | |
void | swap_tree (statement_list_parse_treet &other) |
Swaps the contents of the parse tree of this instance with other . | |
![]() | |
parsert (message_handlert &message_handler) | |
virtual | ~parsert () |
bool | read (char &ch) |
bool | eof () |
void | parse_error (const std::string &message, const std::string &before) |
void | inc_line_no () |
void | set_line_no (unsigned _line_no) |
void | set_file (const irep_idt &file) |
irep_idt | get_file () const |
unsigned | get_line_no () const |
unsigned | get_column () const |
void | set_column (unsigned _column) |
const source_locationt & | source_location () |
void | set_source_location (exprt &e) |
void | set_function (const irep_idt &function) |
void | advance_column (unsigned token_width) |
Private Attributes | |
statement_list_parse_treet | parse_tree |
Tree that is being filled by the parsing process. | |
Static Private Attributes | |
static int | instance_count = 0 |
Additional Inherited Members | |
![]() | |
std::istream * | in |
std::string | this_line |
std::string | last_line |
std::vector< exprt > | stack |
![]() | |
messaget | log |
source_locationt | _source_location |
unsigned | line_no |
unsigned | previous_line_no |
unsigned | column |
Responsible for starting the parse process and to translate the result into a statement_list_parse_treet.
This parser works by using the expression stack of its base class. During the parse process, expressions with different IDs and types are put on this stack and may get associated with each other. This way a tree structure with expressions as nodes is created. If the parser encounters a function or function block, it invokes add_function() or add_function_block(). These functions then convert the expression tree structure into a statement_list_parse_treet::functiont or statement_list_parse_treet::function_blockt and add it to the statement_list_parse_treet. See the implementation of scanner.l and parser.y for details about how and when the stack operations are performed.
Definition at line 30 of file statement_list_parser.h.
|
inlineexplicit |
Constructor.
Definition at line 34 of file statement_list_parser.h.
|
delete |
|
inlineoverride |
Definition at line 44 of file statement_list_parser.h.
Adds a function to the parse tree by converting the function
expression tree.
function | Root of a function expression tree. |
Definition at line 319 of file statement_list_parser.cpp.
Adds a function block to the parse tree by converting the block
expression tree.
block | Root of a function block expression tree. |
Definition at line 302 of file statement_list_parser.cpp.
Adds a tag list to the parse tree by converting the tag_list
expression tree.
tag_list | Root of a tag list expression tree. |
Definition at line 41 of file statement_list_parser.cpp.
|
overridevirtual |
Starts the parsing process and saves the result inside of this instance's parse tree.
Implements parsert.
Definition at line 343 of file statement_list_parser.cpp.
void statement_list_parsert::print_tree | ( | std::ostream & | out | ) | const |
Prints the parse tree of this instance to the given output stream.
out | Stream that should receive the result. |
Definition at line 355 of file statement_list_parser.cpp.
void statement_list_parsert::swap_tree | ( | statement_list_parse_treet & | other | ) |
Swaps the contents of the parse tree of this instance with other
.
other | Parse tree which should be used in the swap operation. |
Definition at line 360 of file statement_list_parser.cpp.
|
staticprivate |
Definition at line 81 of file statement_list_parser.h.
|
private |
Tree that is being filled by the parsing process.
Definition at line 79 of file statement_list_parser.h.