ParseTom
tom parser.
MetaVariable
.
public MetaVariable original;
boolean isAlias;
TRUE
.
void set_original Attribute variable pre !original && [variable isVariable];
void register;
id init;
static AnyType shared;
instance (id) shared;
public mutable Expression default_value;
deferred void feedArgumentSinglesTo CustomMethod m;
void feedArgumentSinglesTo CustomMethod m;
void feedArgumentSinglesTo CustomMethod m;
void resolveReturnNamesInMethod CustomMethod m;
ArgumentSingle returnValueNamed tom.String name;
Expression array;
Expression index;
id initWithArray Expression a index Expression i;
boolean isArrayReference;
TRUE
.
tom.OutputStream writeFields tom.OutputStream s;
referenced
.
Extension ext;
id initWithExtension Extension e;
super
.
Extension extension;
ext
.
boolean isAlias;
TRUE
iff the receiving attribute is an alias.
boolean isVariable;
TRUE
iff the receiving attribute is a variable.
Meta meta;
meta
of the extension ext
.
deferred tom.String name;
deferred void register;
protected instance (id) (t) createBasicType (tom.String, int) (name, kind);
basic_types
.
void initialize boolean bare_environment;
BasicType
class. Note that this is _not_ invoked by
the runtime, but by mu
.
void addTypes tom.MutableSet set;
set
.
public int kind;
protected id initWithName tom.String n kind int k;
id asSeenFromInstance Instance i;
BT_ID
in case we are BT_ETAM_ID
.
Type instance;
redefine boolean isBasicType;
Type meta;
id initWithClass Class c;
instance (id) cast Expression e to Type t;
Type desired_type;
Expression expr;
protected id initWithDesiredType Type t expression Expression e;
tom.OutputStream writeFields tom.OutputStream s;
expr
.
redefine instance (id) (new_object) alloc;
updateLocation
on the
returned object. Direct subclasses of Common
do not need to do a
[super init]
, which presents significant speedup.
instance (id) (new_object) alloc Common object;
alloc
, but set the location information of the
new_object
from the argument object
. If object
is nil
, this
performs the same function as (argumentless) alloc
.
public mutable tom.String containing_file;
public mutable int line;
void updateLocation;
void updateLocation Common other;
other
.
tom.OutputStream describeLocation tom.OutputStream s for gps.Parser parser;
containing_file
and line
.
boolean isError;
boolean isTuple;
int numFlatElements;
tom.OutputStream writeFields tom.OutputStream s;
Expression
is something with a (deducable) type.
id again;
boolean isArrayReference;
TRUE
if the receiving expression is an array reference.
The default implementation returns FALSE
.
boolean isStringConstant;
TRUE
if the receiving expression is a constant string.
The default implementation returns FALSE
.
boolean isTuple;
YES
.
tom.OutputStream writeFields tom.OutputStream s;
Tuple
.
public mutable Compound container;
id initWithName tom.String n type Type t container Compound c;
id initWithName tom.String n qualifiers int q type Type t extension Extension e;
boolean isVariable;
TRUE
.
void register;
Named
entity is something with a name.
public tom.String name;
id (self) initWithName tom.String n;
id returnValueNamed tom.String n;
self
if the name
matches n
. Used by LocalVariable
and ArgumentSingle
when naming (the elements of) the return value.
tom.OutputStream writeFields tom.OutputStream s;
name
.
Qualified
is a Common
with qualifiers.
boolean isExtern int qualifiers;
qualifiers
.
boolean isLocal int qualifiers;
boolean isMutable int qualifiers;
boolean isPrivate int qualifiers;
boolean isProtected int qualifiers;
boolean isPublic int qualifiers;
boolean isStatic int qualifiers;
boolean isRedeclare int qualifiers;
boolean isRedefine int qualifiers;
boolean isDeferred int qualifiers;
int set int qualifiers isRedeclare boolean yes_p;
qualifiers
with the redeclare bit set or reset,
according to yes_p
.
public int qualifiers;
id (self) initWithQualifiers int q;
boolean isExtern;
boolean isLocal;
boolean isMutable;
boolean isPrivate;
boolean isProtected;
boolean isPublic;
boolean isStatic;
boolean isRedeclare;
boolean isRedefine;
boolean isDeferred;
public Variable referenced;
id initWithReferenced Variable v fromInstance Instance m;
tom.OutputStream writeFields tom.OutputStream s;
referenced
.
id initWithName tom.String n type Type t extension Extension e;
redefine boolean isTuple;
YES
.
int (n) numFlatElements;
tom.OutputStream writeFields tom.OutputStream s;
void gc_mark_elements;
tom.State
in us mark the other instance variables.
id asSeenFromInstance Instance i;
i
. Most important task
of this method is to return id
if the class specified instance
(id)
. The default implementation simply returns self
.
boolean equalTypeTuple TypeTuple other;
TRUE
if the receiving type is equal to the other
tuple
type. The default implementation returns FALSE
.
Type instance;
self
.
boolean isBasicType;
TRUE
if this is a basic type. The default implementation
returns FALSE
.
boolean isMeta;
TRUE
if this is an object type. The default implementation
returns FALSE
.
Type meta;
self
.
deferred tom.String name;
Typed
is something with a type.
public mutable Type type;
id (self) initWithType Type t;
Type force_type;
type
, forcing it to error_type
if it is nil
.
tom.OutputStream writeFields tom.OutputStream s;
type
, if it is not nil
.
boolean equal Type other;
other
to equalTypeTuple
.
boolean equalTypeTuple TypeTuple other;
equal
of super
.
boolean isTuple;
YES
.
tom.String name;
id initWithName tom.String n type Type t;
Named (retval) resolveReturnNamesInMethod CustomMethod m;
m
with the same name as the receiving
Variable
exists, return that argument, otherwise return self
.
writeFields
of Typed
, but do the name printing self,
to avoid Common
doing its thing twice.
tom.OutputStream writeFields tom.OutputStream s;
name
.
boolean isTuple;
YES
.
int numFlatElements;
Tuple
.
tom.OutputStream writeFields tom.OutputStream s;
Tuple
.