Changes between Version 32 and Version 33 of AST


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

--

Legend:

Unmodified
Added
Removed
Modified
  • AST

    v32 v33  
    9898 * IdentifierNodeIF: wraps a string. represents an identifier occurrence in code.   Has 0 children, i.e., is a leaf node.
    9999    * methods
    100        * kind: UNKNOWN, VARIABLE, FUNCTION, TYPE
    101100       * name: string
    102        * reference: ASTNodeIF : the thing that this identifier represents
    103101 * TypeNodeIF: a type expression
    104102    * VoidTypeNodeIF: the type "void" used, for example, as the return type for a function that does not return anything
     
    111109    * ArrayTypeNodeIF: an array type
    112110       * methods
    113           * elementType: TypeNodeIF
     111          * elementType: TypeReferenceNodeIF
    114112          * extent: ?  This is complicated.   The extent might be an expression involving input variables.
    115113    * PointerTypeNodeIF
    116114       * methods
    117            * baseType: TypeNodeIF
     115           * baseType: TypeReferenceNodeIF
    118116    * CompositeTypeNodeIF: "struct" or "union" in C
    119117       * methods
     
    121119          * name: IdentifierNodeIF
    122120          * numFields: int
    123           * field(int i): NameTypePairNodeIF: this is an ordered pair (n,t) where n is an IdentifierNodeIF and t is a TypeNodeIF
    124           * fields: Iterator<NameTypePairNodeIF>
     121          * field(int i): PairNode<IdentifierNodeIF,TypeReferenceNodeIF>
     122          * fields: Iterator<PairNode<IdentifierNodeIF,TypeReferenceNodeIF>>
    125123    * FunctionTypeNodeIF
    126124       * methods
    127125          * numInputs: int
    128126          * inputType(int i): TypeReferenceNodeIF
    129           * inputTypes: Iterator<TypeNodeIF>
     127          * inputTypes: Iterator<TypeReferenceNodeIF>
    130128    * EnumerationTypeNodeIF
    131129       * methods
    132130          * name: IdentifierNodeIF
    133131          * numElements: int
    134           * element(int i): IdentifierLiteralPairNodeIF: an IdentifierNodeIF-LiteralNodeIF pair
    135           * elements: Iterator<IdentifierLiteralPairNodeIF>
     132          * element(int i): PairNode<IdentifierNodeIF, LiteralNodeIF>
     133          * elements: Iterator<PairNode<IdentifierNodeIF, LiteralNodeIF>>
    136134 * VariableDefinitionNodeIF:  Every variable is defined at one unique location in the code.   The variable can be declared in several places.   Each declaration has an associated definition.  There can be many decls associated to one def.    This is a linking thing: a single variable that is to be used in several files will be defined in one file but be declared in all
    137135    * methods