Changes between Version 34 and Version 35 of AST
- Timestamp:
- 04/23/11 11:33:50 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AST
v34 v35 96 96 * methods 97 97 * EnumElementNodeIF 98 * StatementReferenceNodeIF 99 * methods 100 * StatementNodeIF 98 101 * IdentifierNodeIF: wraps a string. represents an identifier occurrence in code. Has 0 children, i.e., is a leaf node. 99 102 * methods … … 161 164 * LabelNodeIF: a label preceding a statement 162 165 * methods 163 * statement: Statement NodeIF : the statement this label precedes (this may be null at first)166 * statement: StatementReferenceNodeIF : the statement this label precedes (this may be null at first) 164 167 * identifier: IdentifierNodeIF: the name of this label 165 168 * StatementNodeIF 166 169 * methods 167 170 * labels: Collection<LabelNodeIF>: set of labels associated to this statement. The labels all correspond to the point of control just before the statement. 168 * AssertStatementNodeIF: this could come from a program language assert or a TASS pragma 169 * methods 170 * expr: Expression 171 * AssumeStatementNodeIF: these come from TASS pragmas 171 * AssertStatementNodeIF 172 * this could come from a program language assert or a TASS pragma 173 * methods 174 * expr: ExpressionNodeIF 175 * AssumeStatementNodeIF 176 * these come from TASS pragmas 172 177 * methods 173 * expr: Expression 174 * PragmaNodeIF:(any kind of pragma, represented as just a string 178 * expr: ExpressionNodeIF 179 * PragmaNodeIF 180 * any kind of pragma, represented as just a string 175 181 * methods 176 182 * string: this is an initial form, where the text of the pragma is uninterpreted. After a certain processing stage, TASS pragmas will be parsed and replaced with more specific nodes. Non-tass pragmas will just remain as strings and will be ignored by TASS. 177 * SwitchStatementNodeIF: this can be used to model C's switch 183 * SwitchStatementNodeIF 184 * can be used to model C's switch, for example 178 185 * methods 179 186 * expression: ExpressionNodeIF: expression that is evaluated 180 187 * numCases: int 181 * case(int i): ValueLocationPairNodeIF (ordered pair (v,l), where v is a ValueNodeIF, and l is an ASTStatementNodeIF) 182 * default: ValueLocationPairNodeIF 188 * case(int i): Pair<ExpressionNodeIF,LabelReferenceNodeIF> 189 * the expression is the value (usually literal) the switch expression might match; the label refers to a point in body of the switch statement 190 * default: LabelReferenceNodeIF : where to go if none of the other cases is matched 191 * body : StatementNodeIF 183 192 * IfThenElseStatementNodeIF 184 193 * methods … … 186 195 * trueBranch: StatementNodeIF 187 196 * falseBranch: StatementNodeIF (may be null) 188 * WhileLoopNodeIF: loop. associated invariant (derived from TASS invariant pragma) 197 * WhileLoopNodeIF: loop 198 * associated invariant (derived from TASS invariant pragma) 189 199 * methods 190 200 * condition: ExpressionNodeIF … … 215 225 * ADD, ADD_POINTER_INT, ADDRESS_OF, BIT_AND, BIT_NOT, BIT_OR, BIT_XOR, DEREFERENCE, DIVIDE, EQUALS, GREATER_THAN, GTE, IF_THEN_ELSE, LEQ, LESS_THAN, LOGICAL_AND, LOGICAL_NOT, LOGICAL_OR, MODULO, MULTIPLY, NAVIGATE (DOT), NEGATIVE, NOT_EQUALS, SHIFT_LEFT, SHIFT_RIGHT, SUBSCRIPT, SUBTRACT, SUBTRACT_POINTER_INT, SUBTRACT_POINTER_POINTER 216 226 * CastNodeIF 217 * newType: Type NodeIF (type you are casting to)227 * newType: TypeReferenceNodeIF (type you are casting to) 218 228 * expression: ExpressionNodeIF 219 229 * QuantifierNodeIF
