| 24 | | * type expressions |
| 25 | | * void, integer, real, boolean, char, t[], t*, record{...}, function, enumerations |
| 26 | | * function definitions (body) |
| 27 | | * function declarations (no body) |
| 28 | | * type definitions (typedef...) |
| | 24 | * name: string |
| | 25 | * type node |
| | 26 | * void |
| | 27 | * integer |
| | 28 | * integer sub-types, specified by parameters |
| | 29 | * real |
| | 30 | * real sub-stypes, specified by parameters (e.g., IEEE754 floating point numbers) |
| | 31 | * boolean |
| | 32 | * char |
| | 33 | * array of t |
| | 34 | * and possible extent? |
| | 35 | * pointer to t |
| | 36 | * record ("struct" in C) |
| | 37 | * name |
| | 38 | * sequence of fields, each with type and name |
| | 39 | * function from T1 to T2 |
| | 40 | * enumeration type |
| | 41 | * name |
| | 42 | * sequence of elements |
| | 43 | * function declaration node (no body) |
| | 44 | * function definition node (body) |
| | 45 | * type definition node (typedef...) |