Binder = Clause_List EOF. Clause = Atom [":-" Atom_CList] ".". Atom = ["says" Term ":"] Constant [ Term_PCList]. Term : Constant | Variable . Constant : IdentConstant | StringConstant extends Term. IdentConstant = "#" Ident extends Constant. StringConstant = String extends Constant. Variable : VariableName | UIdent extends Term. VariableName = Ident extends Variable. UIdent = "_" Ident extends Variable. Main = String. notparsed visitor PrintVisitor = int boolean extends UniversalVisitor. notparsed visitor CopyVisitor = derived Object extends UniversalVisitor. notparsed visitor SubgraphVisitor = boolean init {{ true }} extends UniversalVisitor. notparsed visitor EqualVisitor = boolean init {{ true }} extends UniversalVisitor. notparsed visitor DisplayVisitor = int extends UniversalVisitor. notparsed visitor TraceVisitor = int extends UniversalVisitor. notparsed visitor UniversalVisitor : . Clause_List = [ Nonempty_Clause_List]. Atom_CList = Nonempty_Atom_CList. Term_PCList = "(" Nonempty_Term_PCList ")". Nonempty_Clause_List = Clause [ Nonempty_Clause_List]. Nonempty_Atom_CList = Atom ["," Nonempty_Atom_CList]. Nonempty_Term_PCList = Term ["," Nonempty_Term_PCList].