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.


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 prog:PROG;
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 prog:PROG;
attr version_1_0:BOOL;
**** true if Sather 1.0 source is compiled

Features
barf(msg:STR)
**** Something wrong within the compiler, but we can't say where.
barf_at(msg:STR,at:$PROG_ERR)
**** Something wrong, and we know where.
create(p:PROG):SAME
err(s:STR)
**** Report an error.
err_loc(t:$PROG_ERR)
**** Set where a future error should be reported at.
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.
warning(s:STR)
**** report a warning (doesn't stop compile);


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'.