Changes between Version 35 and Version 36 of AST
- Timestamp:
- 04/25/11 13:35:24 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AST
v35 v36 87 87 * methods 88 88 * referent: VariableDeclarationNodeIF 89 * TypeReferenceNodeIF extends ReferenceNodeIF90 * methods91 * referent: TypeNodeIF92 89 * LabelReferenceNodeIF 93 90 * methods … … 103 100 * name: string 104 101 * TypeNodeIF: a type expression 102 * TypeReferenceNodeIF 103 * no children 104 * methods 105 * referent: TypeNodeIF: the type being referred to 105 106 * VoidTypeNodeIF: the type "void" used, for example, as the return type for a function that does not return anything 107 * no children 106 108 * IntegerTypeNodeIF: an integer type, such as "int" or "long int" or "short int" in C 107 109 * integer sub-types, specified by parameters 110 * no children 108 111 * RealTypeNodeIF: a real type, such as "float" or "double" in C 109 112 * real sub-stypes, specified by parameters (e.g., IEEE754 floating point numbers) 113 * no children 110 114 * BooleanTypeNodeIF: the boolean type 115 * no children 111 116 * CharacterTypeNodeIF: the character type (char in C) 117 * no children 112 118 * ArrayTypeNodeIF: an array type 113 119 * methods 114 * elementType: Type ReferenceNodeIF120 * elementType: TypeNodeIF (child 0) 115 121 * extent: ? This is complicated. The extent might be an expression involving input variables. 116 122 * PointerTypeNodeIF 117 123 * methods 118 * baseType: Type ReferenceNodeIF124 * baseType: TypeNodeIF (child 0) 119 125 * CompositeTypeNodeIF: "struct" or "union" in C 120 126 * methods … … 122 128 * name: IdentifierNodeIF 123 129 * numFields: int 124 * field(int i): PairNode<IdentifierNodeIF,Type ReferenceNodeIF>125 * fields: Iterator<PairNode<IdentifierNodeIF,Type ReferenceNodeIF>>130 * field(int i): PairNode<IdentifierNodeIF,TypeNodeIF> 131 * fields: Iterator<PairNode<IdentifierNodeIF,TypeNodeIF>> 126 132 * FunctionTypeNodeIF 127 133 * methods 128 134 * numInputs: int 129 * inputType(int i): Type ReferenceNodeIF130 * inputTypes: Iterator<Type ReferenceNodeIF>135 * inputType(int i): TypeNodeIF 136 * inputTypes: Iterator<TypeNodeIF> 131 137 * EnumerationTypeNodeIF 132 138 * methods … … 142 148 * scope: ScopeIF 143 149 * name: IdentifierNodeIF 144 * type: Type ReferenceNodeIF150 * type: TypeNodeIF 145 151 * typeQualifier: CONST, VOLATILE 146 152 * storageClass: EXTERNAL, AUTO, STATIC, REGISTER … … 155 161 * formal(int i): VariableDeclarationNodeIF 156 162 * formals: Iterator<VariableDeclarationNodeIF> 157 * outputType: Type ReferenceNodeIF163 * outputType: TypeNodeIF 158 164 * body: BlockNodeIF (null iff !isDefinition) 159 165 * TypeDefinitionNodeIF … … 161 167 * methods 162 168 * name: IdentifierNodeIF 163 * type: Type ReferenceNodeIF (type being assigned a name)169 * type: TypeNodeIF (type being assigned a name) 164 170 * LabelNodeIF: a label preceding a statement 165 171 * methods … … 225 231 * 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 226 232 * CastNodeIF 227 * newType: Type ReferenceNodeIF (type you are casting to)233 * newType: TypeNodeIF (type you are casting to) 228 234 * expression: ExpressionNodeIF 229 235 * QuantifierNodeIF
