[Next] [Previous] [Top]
RTL Grammar
3 Data Representations
Representations are specified in declarations and in statements. They indicate the representation (format, bit encoding, size, etc.) of global variables, formals, method results, locals, and so on. A representation is an unstructured sequence of bytes (whose components are accessed through pointer loads & stores), optionally with some alignment, something that is roughly equivalent to one of C's atomic data types (perhaps with a specified size, otherwise with a "natural" size), or something that is a special tagged-pointer-sized integer, float, tagged pointer, NLR return code, or return pair.
representation ::= "bytes" "[" integer "]" [ "align" integer ]
| base_rep {"*"}
base_rep ::= "char" | "u_char" | "short" | "u_short"
| "int" | "u_int" | "long" | "u_long"
| "float" | "double"
| "int1" | "u_int1" | "int2" | "u_int2"
| "int4" | "u_int4" | "int8" | "u_int8"
| "float4" | "float8"
| "void"
| "wordInt" | "unsignedWordInt" | "wordFloat" | "OOP"
| "ReturnCode" | "PairType"
RTL Grammar - 25 MARCH 1997
[Next] [Previous] [Top]
Generated with Harlequin WebMaker