ChildListEntry Struct Reference
[Compiler]

#include <child.h>

Collaboration diagram for ChildListEntry:

Collaboration graph
[legend]

Detailed Description

The ChildListEntry is the interface container for creating childlists. Storage scheme and usage after that is all black magic which can only be done by following this header.

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 TypeDescriptiontypeptr
CONST struct Statement * statement
unsigned bflags
short isarray
short origin


Field Documentation

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.


The documentation for this struct was generated from the following file:
Generated on Thu Jul 17 04:00:58 2008 for libascend by  doxygen 1.5.1