@@ -85,72 +85,72 @@ const irept &get_nil_irep();
85
85
// / \brief Base class for tree-like data structures with sharing
86
86
// /
87
87
// / There are a large number of kinds of tree structured or tree-like data in
88
- // / CPROVER. ` irept` provides a single, unified representation for all of
88
+ // / CPROVER. \ref irept provides a single, unified representation for all of
89
89
// / these, allowing structure sharing and reference counting of data. As
90
- // / such ` irept` is the basic unit of data in CPROVER. Each ` irept`
90
+ // / such \ref irept is the basic unit of data in CPROVER. Each \ref irept
91
91
// / contains (or references, if reference counted data sharing is enabled, as
92
92
// / it is by default - see the `SHARING` macro) a basic unit of data (of type
93
- // / `dt` ) which contains four things:
93
+ // / \ref dt ) which contains four things:
94
94
// /
95
- // / * ` data`: A string, which is returned when the ` id()` function is used.
96
- // / (Unless `USE_STD_STRING` is set, this is actually a `dstring` and thus
95
+ // / * \ref irept::dt:: data : A string, which is returned when the \ref id() function is used.
96
+ // / (Unless `USE_STD_STRING` is set, this is actually a \ref dstringt and thus
97
97
// / an integer which is a reference into a string table.)
98
98
// /
99
- // / * ` named_sub`: A map from `irep_namet` (a string) to ` irept` . This
99
+ // / * \ref irept::dt:: named_sub : A map from `irep_namet` (a string) to \ref irept. This
100
100
// / is used for named children, i.e. subexpressions, parameters, etc.
101
101
// /
102
- // / * ` comments`: Another map from `irep_namet` to ` irept` which is used
102
+ // / * \ref irept::dt:: comments : Another map from `irep_namet` to \ref irept which is used
103
103
// / for annotations and other ‘non-semantic’ information. Note that this
104
- // / map is ignore by the default ` operator==` .
104
+ // / map is ignore by the default \ref operator==.
105
105
// /
106
- // / * ` sub`: A vector of ` irept` which is used to store ordered but
106
+ // / * \ref irept::dt:: sub : A vector of \ref irept which is used to store ordered but
107
107
// / unnamed children.
108
108
// /
109
- // / The ` irept::pretty` function outputs the explicit tree structure of
110
- // / an ` irept` and can be used to understand and debug problems with
109
+ // / The \ref irept::pretty function outputs the explicit tree structure of
110
+ // / an \ref irept and can be used to understand and debug problems with
111
111
// / `irept`s.
112
112
// /
113
113
// / On their own `irept`s do not "mean" anything; they are effectively
114
114
// / generic tree nodes. Their interpretation depends on the contents of
115
- // / result of the `id` function ( the `data`) field. `util/irep_ids.def`
115
+ // / result of the \ref id() function, i.e. the `data` field. `util/irep_ids.def`
116
116
// / contains a list of `id` values. During the build process it is used
117
117
// / to generate `util/irep_ids.h` which gives constants for each id
118
118
// / (named `ID_`). You can also make `irep_id`s which do not come from
119
- // / `util/irep_ids.def`. An `irep_id` can then be used to identify what
120
- // / kind of data ` irept` stores and thus what can be done with it.
119
+ // / `util/irep_ids.def`. An `irep_idt` can then be used to identify what
120
+ // / kind of data the \ref irept stores and thus what can be done with it.
121
121
// /
122
122
// / To simplify this process, there are a variety of classes that inherit
123
- // / from ` irept` , roughly corresponding to the ids listed (i.e. `ID_or`
124
- // / (the string ` "or”` ) corresponds to the class ` or_exprt` ). These give
123
+ // / from \ref irept, roughly corresponding to the ids listed (i.e. `ID_or`
124
+ // / (the string "or”) corresponds to the class \ref or_exprt). These give
125
125
// / semantically relevant accessor functions for the data; effectively
126
126
// / different APIs for the same underlying data structure. None of these
127
127
// / classes add fields (only methods) and so static casting can be used. The
128
- // / inheritance graph of the subclasses of ` irept` is a useful starting
128
+ // / inheritance graph of the subclasses of \ref irept is a useful starting
129
129
// / point for working out how to manipulate data.
130
130
// /
131
131
// / There are three main groups of classes (or APIs); those derived from
132
- // / ` typet`, ` codet` and ` exprt` respectively. Although all of these inherit
133
- // / from ` irept` , these are the most abstract level that code should handle
132
+ // / \ref typet, \ref codet and \ref exprt respectively. Although all of these inherit
133
+ // / from \ref irept, these are the most abstract level that code should handle
134
134
// / data. If code is manipulating plain `irept`s then something is wrong
135
135
// / with the architecture of the code.
136
136
// /
137
- // / Many of the key descendant of ` exprt` are declared in ` std_expr.h` . All
138
- // / expressions have a named subexpresion with ID ` type` , which gives the
137
+ // / Many of the key descendants of \ref exprt are declared in \ref std_expr.h. All
138
+ // / expressions have a named subexpression with ID " type" , which gives the
139
139
// / type of the expression (slightly simplified from C/C++ as
140
- // / ` unsignedbv_typet`, ` signedbv_typet`, ` floatbv_typet` , etc.). All type
140
+ // / \ref unsignedbv_typet, \ref signedbv_typet, \ref floatbv_typet, etc.). All type
141
141
// / conversions are explicit with an expression with `id() == ID_typecast`
142
- // / and a ` typecast_exprt` . One key descendant of ` exprt` is ` symbol_exprt`
143
- // / which creates ` irept` instances with the id of “symbol”. These are used
142
+ // / and a \ref typecast_exprt. One key descendant of \ref exprt is \ref symbol_exprt
143
+ // / which creates \ref irept instances with ID “symbol”. These are used
144
144
// / to represent variables; the name of which can be found using the
145
145
// / `get_identifier` accessor function.
146
146
// /
147
- // / ` codet` inherits from ` exprt` and is defined in `std_code.h`. It
147
+ // / \ref codet inherits from \ref exprt and is defined in `std_code.h`. It
148
148
// / represents executable code; statements in a C-like language rather than
149
149
// / expressions. In the front-end there are versions of these that hold
150
150
// / whole code blocks, but in goto-programs these have been flattened so
151
- // / that each ` irept` represents one sequence point (almost one line of
152
- // / code / one semi-colon). The most common descendant of ` codet` is
153
- // / ` code_assignt` so a common pattern is to cast the ` codet` to an
151
+ // / that each \ref irept represents one sequence point (almost one line of
152
+ // / code / one semi-colon). The most common descendant of \ref codet is
153
+ // / \ref code_assignt so a common pattern is to cast the \ref codet to an
154
154
// / assignment and then recurse on the expression on either side.
155
155
class irept
156
156
{
0 commit comments