cprover
Loading...
Searching...
No Matches
statement_list_parse_tree.cpp
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Statement List Language Parse Tree
4
5Author: Matthias Weiss, matthias.weiss@diffblue.com
6
7\*******************************************************************/
8
11
13
15 const var_declarationt &declaration)
16{
17 var_input.push_back(declaration);
18}
19
21 const var_declarationt &declaration)
22{
23 var_inout.push_back(declaration);
24}
25
27 const var_declarationt &declaration)
28{
29 var_output.push_back(declaration);
30}
31
33 const var_declarationt &declaration)
34{
35 var_constant.push_back(declaration);
36}
37
39 const var_declarationt &declaration)
40{
41 var_temp.push_back(declaration);
42}
43
45 const var_declarationt &declaration)
46{
47 var_static.push_back(declaration);
48}
49
51{
52 networks.push_back(network);
53}
54
56{
57 if(value.empty())
58 title.reset();
59 else
60 title = value;
61}
62
67
73
80
87
89{
90 function_blocks.push_back(std::move(block));
91}
92
94{
95 functions.push_back(std::move(function));
96}
97
99{
100 function_blocks.clear();
101 functions.clear();
102 tags.clear();
103}
104
106{
108 functions.swap(other.functions);
109 tags.swap(other.tags);
110}
111
119
121{
122 tokens.push_back(token);
123}
124
Data structure for representing an arbitrary statement in a program.
Intermediate representation of a parsed Statement List file before converting it into a goto program.
void clear()
Removes all functions and function blocks from the parse tree.
void add_function_block(function_blockt &block)
Adds a function block to the parse tree.
functionst functions
List of functions this parse tree includes.
function_blockst function_blocks
List of function blocks this parse tree includes.
std::vector< symbol_exprt > tags
List of tags that were included in the source.
void add_function(functiont &function)
Adds a function to the parse tree.
void swap(statement_list_parse_treet &other)
Swaps the contents of the parse tree with the parameter.
Expression to hold a symbol (variable)
Definition std_expr.h:131
The type of an expression, extends irept.
Definition type.h:29
Statement List Language Parse Tree.
Structure for a simple function block in Statement List.
function_blockt(const irep_idt &name, const std::string &version)
Create the function block name with a specific version.
void add_var_static_entry(const var_declarationt &declaration)
Adds a variable declaration to the list of static variables.
var_declarationst var_static
FB-exclusive static variable declarations.
Structure for a simple function in Statement List.
functiont(const irep_idt &name, const std::string &version, const typet &return_type)
Create the function name with a specific version and a return_value.
const typet return_type
FC-exclusive return type.
Represents a regular Statement List instruction which consists out of one or more codet tokens.
void add_token(const codet &token)
Adds a codet element to the list of all tokens.
std::vector< codet > tokens
Data structure for all tokens of the instruction.
Representation of a network in Siemens TIA.
void set_title(const std::string &value)
Sets the title of the network to a specific value.
void add_instruction(const instructiont &inst)
Adds an instruction to the network.
void add_var_inout_entry(const var_declarationt &declaration)
Adds a variable declaration to the list of inout variables.
var_declarationst var_constant
Constant variable declarations.
void add_var_constant_entry(const var_declarationt &declaration)
Adds a variable declaration to the list of constant variables.
var_declarationst var_input
Input variable declarations.
const std::string version
Version of the module.
var_declarationst var_inout
Inout variable declarations.
void add_var_input_entry(const var_declarationt &declaration)
Adds a variable declaration to the list of input variables.
tia_modulet(const irep_idt &name, const std::string &version)
Create the module name with a specific version.
void add_network(networkt &network)
Adds a network to the function.
networkst networks
List of all networks of this module.
var_declarationst var_temp
Temp variable declarations.
var_declarationst var_output
Output variable declarations.
void add_var_output_entry(const var_declarationt &declaration)
Adds a variable declaration to the list of output variables.
void add_var_temp_entry(const var_declarationt &declaration)
Adds a variable declaration to the list of temp variables.
Struct for a single variable declaration in Statement List.
var_declarationt(const symbol_exprt &symbol)
Creates a new.
symbol_exprt variable
Representation of the variable, including identifier and type.
dstringt irep_idt