A TypeDef Definition is defined as any Definition whose definition is a value type, whether built-in or user-defined. For example, the following are all TypeDef Definitions (except GetXLen):
GetXLen(DATA x,UNSIGNED len) := TRANSFER(((DATA4)(x[1..len])),UNSIGNED4); EXPORT xstring(UNSIGNED len) := TYPE EXPORT INTEGER PHYSICALLENGTH(DATA x) := GetXLen(x,len) + len; EXPORT STRING LOAD(DATA x) := (STRING)x[(len+1)..GetXLen(x,len) + len]; EXPORT DATA STORE(STRING x):= TRANSFER(LENGTH(x),DATA4)[1..len] + (DATA)x; END; pstr := xstring(1); // typedef for user defined type pppstr := xstring(3); nameStr := STRING20; // typedef of a system type namesRecord := RECORD pstr surname; nameStr forename; pppStr addr; END; //A RECORD structure is also a typedef definition (user-defined)