ORIGIN '~beta/mps/astlevel'; LIB_DEF 'mpsmetagrammarcfl' '../lib'; --astInterfaceLib: attributes-- metagrammar: TreeLevel (# <<SLOT metagrammarAttributes:attributes>>; AGrammar: cons (# getGrammarName: getson1(# #); putGrammarName: putson1(# #); getOptionOp: getson2(# #); putOptionOp: putson2(# #); getProductionList: getson3(# #); putProductionList: putson3(# #); getAttributeOp: getson4(# #); putAttributeOp: putson4(# #); <<SLOT AGrammarAttributes:attributes>> exit 1 #); GrammarName: cons (# getNameDecl: getson1(# #); putNameDecl: putson1(# #); exit 2 #); ProductionList: list (# soncat::< Prod; exit 3 #); Prod: cons (# <<SLOT ProdAttributes:attributes>> #); LeftSide: cons (# getSynDeclName: getson1(# #); putSynDeclName: putson1(# #); <<SLOT LeftSideAttributes:attributes>> exit 5 #); Alternation: Prod (# getLeftSide: getson1(# #); putLeftSide: putson1(# #); getSynCatList: getson2(# #); putSynCatList: putson2(# #); exit 6 #); SynCatList: list (# soncat::< SynCat; exit 7 #); Constructor: Prod (# getLeftSide: getson1(# #); putLeftSide: putson1(# #); getConsElemList: getson2(# #); putConsElemList: putson2(# #); exit 8 #); ConsElemList: list (# soncat::< ConsElem; exit 9 #); ConsElem: cons (# <<SLOT ConsElemAttributes:attributes>> #); TaggedSyn: ConsElem (# getTagName: getson1(# #); putTagName: putson1(# #); getSynName: getson2(# #); putSynName: putson2(# #); <<SLOT TaggedSynAttributes:attributes>> exit 11 #); SynCat: ConsElem (# getSynName: getson1(# #); putSynName: putson1(# #); <<SLOT SynCatAttributes:attributes>> exit 12 #); ErrorSpec: ConsElem (# exit 13 #); Lst: Prod (# #); ListOne: Lst (# getLeftSide: getson1(# #); putLeftSide: putson1(# #); getSynCat: getson2(# #); putSynCat: putson2(# #); getTermOp: getson3(# #); putTermOp: putson3(# #); exit 15 #); ListZero: Lst (# getLeftSide: getson1(# #); putLeftSide: putson1(# #); getSynCat: getson2(# #); putSynCat: putson2(# #); getTermOp: getson3(# #); putTermOp: putson3(# #); exit 16 #); Opt: Prod (# getLeftSide: getson1(# #); putLeftSide: putson1(# #); getSynCat: getson2(# #); putSynCat: putson2(# #); exit 18 #); Dummy: Prod (# getLeftSide: getson1(# #); putLeftSide: putson1(# #); getSynCat: getson2(# #); putSynCat: putson2(# #); exit 19 #); SynName: cons (# getNameAppl: getson1(# #); putNameAppl: putson1(# #); <<SLOT SynNameAttributes:attributes>> exit 20 #); TagName: cons (# getNameDecl: getson1(# #); putNameDecl: putson1(# #); exit 21 #); SynDeclName: cons (# getNameDecl: getson1(# #); putNameDecl: putson1(# #); exit 22 #); Term: ConsElem (# getString: getson1(# #); putString: putson1(# #); <<SLOT TermAttributes:attributes>> exit 23 #); OptionPart: cons (# getoptionList: getson1(# #); putoptionList: putson1(# #); exit 25 #); optionList: list (# soncat::< optionElement; exit 26 #); optionElement: cons (# getoptionName: getson1(# #); putoptionName: putson1(# #); getoptionSpecification: getson2(# #); putoptionSpecification: putson2(# #); exit 27 #); optionSpecification: cons (# #); optionSpecLst: optionSpecification (# getoptionSpecList: getson1(# #); putoptionSpecList: putson1(# #); exit 29 #); optionSpecList: list (# soncat::< singleOption; exit 30 #); singleOption: optionSpecification (# #); optionName: singleOption (# getNameAppl: getson1(# #); putNameAppl: putson1(# #); exit 32 #); optionConst: singleOption (# getConst: getson1(# #); putConst: putson1(# #); exit 33 #); optionString: singleOption (# getString: getson1(# #); putString: putson1(# #); exit 34 #); AttributePart: cons (# getattriblist: getson1(# #); putattriblist: putson1(# #); exit 36 #); AttribList: list (# soncat::< Attrib; exit 37 #); Attrib: cons (# getSynCat: getson1(# #); putSynCat: putson1(# #); getNoOfAttributes: getson2(# #); putNoOfAttributes: putson2(# #); exit 38 #); NoOfAttributes: cons (# getconst: getson1(# #); putconst: putson1(# #); exit 39 #); errorProd: Prod (# exit 40 #); optionError: singleOption (# exit 41 #); grammarIdentification::<(# do 'metagrammar' -> theGrammarName #); version::< (# do 5 -> value #); suffix::< (# do '.gram' -> theSuffix #); maxproductions::< (# do 41 -> value #); init::< (# ... #); #)
13.5 Metagrammarcfl Interface | © 1991-2002 Mjølner Informatics |
[Modified: Monday January 10th 2000 at 13:00]
|