#include <child.h>
Collaboration diagram for ChildListEntry:

As of 9/96 we've added a number of important features to ChildList, and it's nobody's business how we implement it.
Data Fields | |
| symchar * | strptr |
| CONST struct TypeDescription * | typeptr |
| CONST struct Statement * | statement |
| unsigned | bflags |
| short | isarray |
| short | origin |
| symchar* ChildListEntry::strptr |
the symbol table name of a child, eg "a" of a[i][j]
| CONST struct TypeDescription* ChildListEntry::typeptr |
the most refined type for the child that can be determined at parse time. Corresponding instances at run time may be this or a more refined type. This allows several kinds of sanity checking. This pointer must not be NULL.
| CONST struct Statement* ChildListEntry::statement |
statement where child is initially defined.
| unsigned ChildListEntry::bflags |
boolean flags, as defined below with CBF_*
| short ChildListEntry::isarray |
isarray should be number of subscripts if you firmly believe the named child is an array. Nobody could possibly have more than a shorts worth of subscripts.
| short ChildListEntry::origin |
tells how child created (ALIASES, ARR, WILL_BE, IS_A, P-ALIASES, P-ARR, P-IS_A, P-WILL_BE) P-IS_A and P-WILL_BE indicate that it came through a parameter list. P-ALIASES indicates an alias of something that came through a parameter list WILL_BE directly or indirectly (as a part of a parameter).
The set in the ALIASES-IS_A statement gets listed as an IS_A origin. The array gets listed as an ARR origin.
1.5.1