class AM_LOCAL_EXPR < $AM_EXPR
****
Local variable expression.


Flattened version is here

Ancestors
$AM_EXPR $HASH $IS_EQ $AM
$PROG_ERR AM_EXPR AM



Public


Readable Attributes
attr as_type : AS_TYPE_SPEC;
attr is_hot:BOOL;
**** set to one if this varaiable is a 'hot' argument of an iter. This is set by the optimizer!
attr is_volatile:BOOL;
**** True if the variable must be declared "volatile". This is necessary in protect statments because otherwise longjmp will incorrectly restore the values of locals which happen to be held in registers. program, if any. to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr name:IDENT;
**** The name of the local in the Sather program, if any. to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr needs_init:BOOL;
**** True if this local must be initialized to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr no_assign:BOOL;
**** True if this variable may not be assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr tp_at:$TP;
**** The declared type of the variable. to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!

Writable Attributes
attr as_type : AS_TYPE_SPEC;
attr is_hot:BOOL;
**** set to one if this varaiable is a 'hot' argument of an iter. This is set by the optimizer!
attr is_volatile:BOOL;
**** True if the variable must be declared "volatile". This is necessary in protect statments because otherwise longjmp will incorrectly restore the values of locals which happen to be held in registers. program, if any. to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr name:IDENT;
**** The name of the local in the Sather program, if any. to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr needs_init:BOOL;
**** True if this local must be initialized to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr no_assign:BOOL;
**** True if this variable may not be assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!
attr tp_at:$TP;
**** The declared type of the variable. to 0 at the start of the routine. assigned to because it is currently being typecased on. (Used internally). 'hot' argument of an iter. This is set by the optimizer!

Features
copy:$AM_EXPR
create(src:SFILE_ID, name:IDENT, tp:$TP):SAME
create(src:SFILE_ID, name:IDENT, tp:$TP, as_tp:AS_TYPE_SPEC):SAME
hash:INT
**** this is true because a namespace for locals is maintained in trans.sa
is_eq(a:$OB):BOOL
**** this is true because a namespace for locals is maintained in trans.sa
is_named:BOOL
**** True if this is a named local variable.
tp:$TP