Changes between Version 34 and Version 35 of AST


Ignore:
Timestamp:
04/23/11 11:33:50 (15 years ago)
Author:
Stephen Siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AST

    v34 v35  
    9696        * methods
    9797           * EnumElementNodeIF
     98     * StatementReferenceNodeIF
     99        * methods
     100           * StatementNodeIF
    98101 * IdentifierNodeIF: wraps a string. represents an identifier occurrence in code.   Has 0 children, i.e., is a leaf node.
    99102    * methods
     
    161164 * LabelNodeIF: a label preceding a statement
    162165    * methods
    163         * statement: StatementNodeIF : 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)
    164167        * identifier: IdentifierNodeIF: the name of this label
    165168 * StatementNodeIF
    166169    * methods
    167170       * 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
    172177      * 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
    175181       * methods
    176182          * 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
    178185       * methods
    179186          * expression: ExpressionNodeIF: expression that is evaluated
    180187          * 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
    183192    * IfThenElseStatementNodeIF
    184193      * methods
     
    186195         * trueBranch: StatementNodeIF
    187196         * 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)
    189199       * methods
    190200          * condition: ExpressionNodeIF
     
    215225             * 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
    216226          * CastNodeIF
    217              * newType: TypeNodeIF (type you are casting to)
     227             * newType: TypeReferenceNodeIF (type you are casting to)
    218228             * expression: ExpressionNodeIF
    219229          * QuantifierNodeIF