Changes between Version 10 and Version 11 of AST


Ignore:
Timestamp:
04/19/11 20:36:20 (15 years ago)
Author:
Stephen Siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AST

    v10 v11  
    118118          * case(int i): ValueLocationPairNodeIF (ordered pair (v,l), where v is a ValueNodeIF, and l is an ASTStatementNodeIF)
    119119          * default: ValueLocationPairNodeIF
    120    * IfThenElseStatementNodeIF
    121      * methods
    122         * condition: ExpressionNodeIF
    123         * trueBranch: StatementNodeIF
    124         * falseBranch: StatementNodeIF (may be null)
    125    * WhileLoopNodeIF: loop.   associated invariant (derived from TASS invariant pragma)
     120    * IfThenElseStatementNodeIF
    126121      * methods
    127122         * condition: ExpressionNodeIF
    128          * body: StatementNodeIF
    129          * invariants: Collection<ExpressionNodeIF> ?
    130    * ForLoopNodeIF
    131       * methods
    132          * initializer: StatementNodeIF
    133          * condition: ExpressionNodeIF
    134          * incrementer: StatementNodeIF
    135          * body: StatementNodeIF
    136    * DoUntilNodeIF
    137    * BreakNodeIF
    138    * ContinueNodeIF
    139    * GotoNodeIF
    140       * label (this is the kind before processing)
    141       * statement (after processing)
    142    * ReturnNodeIF
    143       * expression (may be null)
    144    * NoopNodeIF
    145    * BlockNodeIF: ({...} in C)
    146       * sequence of variable definitions
    147       * sequence of statements
    148    * ExpressionNodeIF: expressions--these are considered a kind of statement (as in C)
    149       * PureExpressionNodeIF: side-effect-free expressions
    150          * LiteralNodeIF (including named literals): integers, reals, strings, chars
    151          * VariableExpressionNodeIF
    152          * OperatorNodeIF
    153             * +,-,*,/,%,<,<=,>,>=,==,!=,!,&&, | |, (x?y:z), bitand, bitor, bitxor, lshift, rshift, & (address-of), * (dereference)
    154          * CastNodeIF
    155             * newType: TypeNodeIF (type you are casting to)
    156             * expression: ExpressionNodeIF
    157          * ArrayIndexNodeIF (a[i])
    158          * RecordNavigationNodeIF: (x.a)
    159          * QuantifierNodeIF
    160             * quantifier: {FORALL, EXISTS, LAMBDA, UNIFORM, SUM}
    161             * boundVariable: VariableDefinitionNodeIF
    162             * constraint: ExpressionNodeIF
    163             * expression: ExpressionNodeIF
    164          * InitializerNodeIF: special kind of expression used to initialize variables in their decl
    165          * SizeOfNodeIF: type, expression, or string literal
    166          * StartOfNodeIF:  &a[0] -- that is the Cil way of converting an array to pointer to first element
    167          * FunctionApplicationNodeIF: invocation f(x) when f is abstract (pure) function
    168       * SideEffectExpressionNodeIF: expressions with side-effects
    169          * AssignmentNodeIF: x=expr, x++, x--, ++x, --x
    170          * FunctionInvocationNodeIF: invocation f(x) when f is concrete
     123         * trueBranch: StatementNodeIF
     124         * falseBranch: StatementNodeIF (may be null)
     125    * WhileLoopNodeIF: loop.   associated invariant (derived from TASS invariant pragma)
     126       * methods
     127          * condition: ExpressionNodeIF
     128          * body: StatementNodeIF
     129          * invariants: Collection<ExpressionNodeIF> ?
     130    * ForLoopNodeIF
     131       * methods
     132          * initializer: StatementNodeIF
     133          * condition: ExpressionNodeIF
     134          * incrementer: StatementNodeIF
     135          * body: StatementNodeIF
     136    * DoUntilNodeIF
     137    * BreakNodeIF
     138    * ContinueNodeIF
     139    * GotoNodeIF
     140       * label (this is the kind before processing)
     141       * statement (after processing)
     142    * ReturnNodeIF
     143       * expression (may be null)
     144    * NoopNodeIF
     145    * BlockNodeIF: ({...} in C)
     146       * sequence of variable definitions
     147       * sequence of statements
     148    * ExpressionNodeIF: expressions--these are considered a kind of statement (as in C)
     149       * PureExpressionNodeIF: side-effect-free expressions
     150          * LiteralNodeIF (including named literals): integers, reals, strings, chars
     151          * VariableExpressionNodeIF
     152          * OperatorNodeIF
     153             * +,-,*,/,%,<,<=,>,>=,==,!=,!,&&, | |, (x?y:z), bitand, bitor, bitxor, lshift, rshift, & (address-of), * (dereference)
     154          * CastNodeIF
     155             * newType: TypeNodeIF (type you are casting to)
     156             * expression: ExpressionNodeIF
     157          * ArrayIndexNodeIF (a[i])
     158          * RecordNavigationNodeIF: (x.a)
     159          * QuantifierNodeIF
     160             * quantifier: {FORALL, EXISTS, LAMBDA, UNIFORM, SUM}
     161             * boundVariable: VariableDefinitionNodeIF
     162             * constraint: ExpressionNodeIF
     163             * expression: ExpressionNodeIF
     164          * InitializerNodeIF: special kind of expression used to initialize variables in their decl
     165          * SizeOfNodeIF: type, expression, or string literal
     166          * StartOfNodeIF:  &a[0] -- that is the Cil way of converting an array to pointer to first element
     167          * FunctionApplicationNodeIF: invocation f(x) when f is abstract (pure) function
     168       * SideEffectExpressionNodeIF: expressions with side-effects
     169          * AssignmentNodeIF: x=expr, x++, x--, ++x, --x
     170          * FunctionInvocationNodeIF: invocation f(x) when f is concrete
    171171
    172172