[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