class PARSE < $PARSE
****
The phase in which all files are parsed and tree forms built. This phase catches both syntactic errors and multiply defined classes.


Flattened version is here

Ancestors
$PARSE CS_COMPONENT



Public


Readable Attributes
attr convert_all:BOOL;
**** true if all files are to be converted to 1.1
attr convert_files:FSET{STR};
**** Files needed to convert to 1.1 syntax
attr has:FMAP{STR,STR};
**** Files containing classes given by -has
attr known_files:FSET{STR};
**** Files that we know all classes by -has
attr parsed:FSET{STR};
**** Table of already parsed files.
attr version_1_0:BOOL;
**** true if Sather 1.0 source is compiled

Writable Attributes
attr convert_all:BOOL;
**** true if all files are to be converted to 1.1
attr convert_files:FSET{STR};
**** Files needed to convert to 1.1 syntax
attr has:FMAP{STR,STR};
**** Files containing classes given by -has
attr known_files:FSET{STR};
**** Files that we know all classes by -has
attr parsed:FSET{STR};
**** Table of already parsed files.
attr version_1_0:BOOL;
**** true if Sather 1.0 source is compiled

Features
create(p:PROG):SAME
parse(f:STR)
tree_for(nm:IDENT, num:INT):AS_CLASS_DEF
**** Return the code tree for the class with name `nm' and the number of type parameters `num'. Return void if no such class.


Private

dup_class_err(this_class,other_class:AS_CLASS_DEF)
attr missing_classes: FSET{STR};
**** Names of classes which were not found.
attr missing_classes: FSET{STR};
**** Names of classes which were not found.
perform_parse(f:STR)
**** Tell the parser to parse the file `f', put the tree in `as_tbl'.