m3tk-ast.2.2 package -- created Fri Mar 20 09:20:13 PST 1992 by mjordan
current owner mjordan

This package provides a specification of an Abstract Syntax Tree for
Modula-3 in terms of the framework defined by the "m3tk-gast" package.
It provides implementations for some of the basic methods defined
in the "AST" interface in "m3tk-gast". Here is a guide to what is
(publically) available:

M3AST           Defines M3AST.NODE, the root type of all M3AST nodes.
M3AST_LX        Lexical types in the AST
M3AST_AS        Modula-3 AST specification
M3AST_PG        Standard pragma AST extensions
M3AST_SM        Semantic extensions to the AST
M3AST_TM        "Temporary" attributes, mostly private.
M3AST_FE        AST extensions to support compiler front-end
M3AST_TL        AST extension for property sets on AST nodes

The above interface are all "abstract" and do not reveal how
the AST attributes are actually represented. There are a set of
companion interfaces, "M3AST_XX_F", where "XX" is one of the above,
that define the attributes as fields of the OBJECT types.
You typically import both "M3AST_XX" and "M3AST_XX_F" into
a client program.

SeqElem         A generic interface used to specify sequences
                and sets in the AST. It is instantiated with
                "Elem = M3AST_XX_TYPE", where "XX" is one
                of the above and "TYPE" is a type declared
                in the interface "M3AST_XX", that we want
                to make a sequence of.  So there are lots of
                interfaces named "M3AST_XX_TYPE" that exist
                solely to rename "M3AST_XX.TYPE" to "M3AST_XX_TYPE.T"
                for generic instantiation.

SeqElem_rep     A representation for sequences as linked lists.
                Try not to import this as it makes your code
                dependent on this representation and there are
                alternatives that are, e.g., more space eficient.

M3ASTWalk       Obsolete tree-walk interface. Use ASTWalk instead.

M3ASTCopySM     A callback to use with ASTCopy to copy (share) the 
                semantic attributes.

M3ASTScope      An interface that maintains a "scope" handle in
                sync with a walk of the AST.






