Changes between Version 32 and Version 33 of AST
- Timestamp:
- 04/23/11 11:04:36 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AST
v32 v33 98 98 * IdentifierNodeIF: wraps a string. represents an identifier occurrence in code. Has 0 children, i.e., is a leaf node. 99 99 * methods 100 * kind: UNKNOWN, VARIABLE, FUNCTION, TYPE101 100 * name: string 102 * reference: ASTNodeIF : the thing that this identifier represents103 101 * TypeNodeIF: a type expression 104 102 * VoidTypeNodeIF: the type "void" used, for example, as the return type for a function that does not return anything … … 111 109 * ArrayTypeNodeIF: an array type 112 110 * methods 113 * elementType: Type NodeIF111 * elementType: TypeReferenceNodeIF 114 112 * extent: ? This is complicated. The extent might be an expression involving input variables. 115 113 * PointerTypeNodeIF 116 114 * methods 117 * baseType: Type NodeIF115 * baseType: TypeReferenceNodeIF 118 116 * CompositeTypeNodeIF: "struct" or "union" in C 119 117 * methods … … 121 119 * name: IdentifierNodeIF 122 120 * numFields: int 123 * field(int i): NameTypePairNodeIF: this is an ordered pair (n,t) where n is an IdentifierNodeIF and t is a TypeNodeIF124 * fields: Iterator< NameTypePairNodeIF>121 * field(int i): PairNode<IdentifierNodeIF,TypeReferenceNodeIF> 122 * fields: Iterator<PairNode<IdentifierNodeIF,TypeReferenceNodeIF>> 125 123 * FunctionTypeNodeIF 126 124 * methods 127 125 * numInputs: int 128 126 * inputType(int i): TypeReferenceNodeIF 129 * inputTypes: Iterator<Type NodeIF>127 * inputTypes: Iterator<TypeReferenceNodeIF> 130 128 * EnumerationTypeNodeIF 131 129 * methods 132 130 * name: IdentifierNodeIF 133 131 * numElements: int 134 * element(int i): IdentifierLiteralPairNodeIF: an IdentifierNodeIF-LiteralNodeIF pair135 * elements: Iterator< IdentifierLiteralPairNodeIF>132 * element(int i): PairNode<IdentifierNodeIF, LiteralNodeIF> 133 * elements: Iterator<PairNode<IdentifierNodeIF, LiteralNodeIF>> 136 134 * 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 137 135 * methods
