| | 40 | }}} |
| | 41 | |
| | 42 | === Types === |
| | 43 | {{{ |
| | 44 | type-specifier: |
| | 45 | ID. /* typedef use */ |
| | 46 | | '$int' /* mathematical integers */ |
| | 47 | | '$bool' /* boolean type ($true and $false, unrelated to integers) */ |
| | 48 | | '$char' /* character type (Unicode characters, unrelated to integers) */ |
| | 49 | | '$real' /* mathematical reals */ |
| | 50 | | '$float' '<' INT ',' INT '>' /* IEEE floating-point numbers e=significand bits, f=exponent bits */ |
| | 51 | | '$herbrand' '<' type-name '>' /* Herbrand type of non-Herbrand numeric type T */ |
| | 52 | | '$proc' /* process type */ |
| | 53 | | '$bundle' /* bundle type for sequence of any type (same as seq<T>?) */ |
| | 54 | | '$heap' /* heap type, for dynamic allocation */ |
| | 55 | | '$range' /* regular sequence of integers */ |
| | 56 | | '$domain' /* tuple of ranges */ |
| | 57 | | '$mem' /* */ |
| | 58 | | 'enum' ID /* */ |
| | 59 | | 'struct' ID /* */ |
| | 60 | | 'union' ID /* */ |
| | 61 | | 'void' /* */ |
| | 62 | | '$seq' '<' type-name '>' /* */ |
| | 63 | | '$set' '<' type-name '>' /* */ |
| | 64 | | '$map' '<' type-name ',' type-name '>' /* */ |
| | 65 | | '$rel' '<' type-list '>' /* */ |
| | 66 | ; |