INTERFACEauto-generated m3coco interfaceSGMLC ;
IMPORT Rd, Thread ; TYPE Symbol = { Eof, AttListTag, AttValueData, CData, CharRef, Coma, Commenttk, DQuote, DashImplied, DashPCData, DashRequired, DashFixed, DocTypeTag, ElementTag, EmptyElementEndTag, EndCSect, EndElementTag, EntityTag, EntityValueData, Equal, HexCharRef, IntMark, LP, LSB, Minus, NonKeywordName, NmToken, NotationTag, PCDataChunk, White, PItk, PEReference, Percent, Plus, PlusLP, Quote, RB, RP, RSB, EntityRef, StartCSect, StartElementTag, Star, Vertical, EMPTYkw, ANYkw, CDATAkw, IDkw, IDREFkw, IDREFSkw, ENTITYkw, ENTITIESkw, NAMEkw, NAMESkw, NMTOKENkw, NMTOKENSkw, NOTATIONkw, NUMBERkw, NUMBERSkw, SYSTEMkw, PUBLICkw, NDATAkw, IGNOREkw, INCLUDEkw, SGMLDECLkw, DOCTYPEkw, CATALOGkw, Okw, Undef } ; SymbolSet = SET OF Symbol ; Scanner <: PublicS ; Parser <: PublicP ; ScanSymbol = RECORD sym : Symbol ; (* symbol *) offset : CARDINAL ; (* offset in characters into stream *) line : CARDINAL ; (* line number of starting character *) column : CARDINAL ; (* column number of starting character *) length : CARDINAL ; (* length of symbol string *) string : TEXT ; (* verbatim text for symbol *) name : TEXT (* case-specific text for symbol *) END ; PublicS = OBJECT METHODS init(rd : Rd.T ; e : ErrHandler) : Scanner ; get(VAR s : ScanSymbol) RAISES { Rd.Failure, Thread.Alerted } ; END ; PublicP = OBJECT METHODS init(s : Scanner ; e : ErrHandler) : Parser ; error(msg : TEXT) ; string() : TEXT ; name() : TEXT ; offset() : CARDINAL ; line() : CARDINAL ; column() : CARDINAL ; length() : CARDINAL ; parse() RAISES { Rd.Failure, Thread.Alerted } ; END ; ErrHandler = OBJECT METHODS error(line, col : CARDINAL ; msg : TEXT) END ; CONST SymbolName = ARRAY Symbol OF TEXT { "EOF", "AttListTag", "AttValueData", "CData", "CharRef", "Coma", "Commenttk", "DQuote", "DashImplied", "DashPCData", "DashRequired", "DashFixed", "DocTypeTag", "ElementTag", "EmptyElementEndTag", "EndCSect", "EndElementTag", "EntityTag", "EntityValueData", "Equal", "HexCharRef", "IntMark", "LP", "LSB", "Minus", "NonKeywordName", "NmToken", "NotationTag", "PCDataChunk", "White", "PItk", "PEReference", "Percent", "Plus", "PlusLP", "Quote", "RB", "RP", "RSB", "EntityRef", "StartCSect", "StartElementTag", "Star", "Vertical", "EMPTYkw", "ANYkw", "CDATAkw", "IDkw", "IDREFkw", "IDREFSkw", "ENTITYkw", "ENTITIESkw", "NAMEkw", "NAMESkw", "NMTOKENkw", "NMTOKENSkw", "NOTATIONkw", "NUMBERkw", "NUMBERSkw", "SYSTEMkw", "PUBLICkw", "NDATAkw", "IGNOREkw", "INCLUDEkw", "SGMLDECLkw", "DOCTYPEkw", "CATALOGkw", "Okw", "*UNDEF*" } ; END SGMLC.