| 43 | | * boolean |
| 44 | | * char |
| 45 | | * array of t |
| 46 | | * and possible extent? |
| 47 | | * pointer to t |
| 48 | | * record ("struct" in C) |
| 49 | | * name |
| 50 | | * sequence of fields, each with type and name |
| 51 | | * function from T1 to T2 |
| 52 | | * enumeration type |
| 53 | | * name |
| 54 | | * sequence of elements |
| 55 | | * variable definition |
| 56 | | * scope (global, input/output, ...) |
| 57 | | * name (together with scope, this uniquely identifies the variable) |
| 58 | | * type |
| 59 | | * variable declaration: 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 |
| | 44 | * BooleanTypeNodeIF: the boolean type |
| | 45 | * CharacterTypeNodeIF: the character type (char in C) |
| | 46 | * ArrayTypeNodeIF: an array type |
| | 47 | * methods |
| | 48 | * elementType: TypeNodeIF |
| | 49 | * extent: ? This is complicated. The extent might be an expression involving input variables. |
| | 50 | * PointerTypeNodeIF |
| | 51 | * methods |
| | 52 | * baseType: TypeNodeIF |
| | 53 | * RecordTypeNodeIF: "struct" in C |
| | 54 | * methods |
| | 55 | * name: IdentifierNodeIF |
| | 56 | * numFields: int |
| | 57 | * field(int i): NameTypePairNodeIF: this is an ordered pair (n,t) where n is an IdentifierNodeIF and t is a TypeNodeIF |
| | 58 | * FunctionTypeNodeIF |
| | 59 | * methods |
| | 60 | * numInputs: int |
| | 61 | * inputType(int i): TypeNodeIF |
| | 62 | * EnumerationTypeNodeIF |
| | 63 | * methods |
| | 64 | * name: IdentifierNodeIF |
| | 65 | * numElements: int |
| | 66 | * element(int i): IdentifierNodeIF |
| | 67 | * VariableDefinitionNodeIF |
| | 68 | * methods |
| | 69 | * scope: ? (global, input/output, ...) |
| | 70 | * name: IdentifierNodeIF (together with scope, this uniquely identifies the variable) |
| | 71 | * type: TypeNodeIF |
| | 72 | * VariableDeclarationNodeIF: 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 |