(@ import java.io.*; @) Schcmp = "Class Definitions" ClassList "Attribute Definitions" AttrList "Syntax Definitions" SyntaxList *EOF*. SyntaxList = List(SyntaxDef). SyntaxDef = "[" Syntaxname "]" ["Flags" List(SyntaxFlags)]. List(S) ~ { S }. SyntaxFlags = String. Syntaxname = String. AttrList = List(AttrDef). AttrDef = "[" Attrname "]" ["Flags" List(AttrFlags)] ["Syntax" List(AttrSyntax)]. AttrFlags = String. AttrSyntax = String. Attrname = String. ClassDef = "[" Classname "]" ["Flags" List(Flags)] ["Super Class" List(SuperClasses)] ["Containment" List(Containment)] ["Named By" List(NamedBy)] ["Mandatory Attributes" List(Mandatory)] ["Optional Attributes" List(Opt)]. ClassList = List(ClassDef). Flags = String. SuperClasses = String. Containment = String. NamedBy = String. Mandatory = String. Opt = String. Classname = String. Main = . ClistVisitor = List(ClassDef). ClassNameVisitor = ClassDef_List boolean boolean. AlistVisitor = List(AttrDef). AttrNameVisitor = AttrDef_List boolean boolean. SlistVisitor = List(SyntaxDef). SyntaxNameVisitor = SyntaxDef_List boolean boolean.