-- prettyprint : Agrammar : metagrammar -- Grammar prettyprint:
suffix='.pgram' bobsoptions = '25, 32, 34' combegin = '(*' comEnd = '*)' stringChar = '\''
<PrettyPrint> ::= 'PrettyPrintScheme' <SchemeName:nameDecl>
'for' <GrammarName:nameDecl> ':' <ProductionList>;
<ProductionList>::* <Production> ';' ;
<Production> ::| <Constructor> | <ListProd> ;
<Constructor> ::= <ProductionName:nameAppl> '=' <Stream:ItemList>;
<ListProd> ::= <ProductionName:nameAppl> '=' '(' <ListSpec> ')';
<ItemList> ::* <Item>;
<Item> ::| <Terminal> | <NonTerm> | <Break> | <Block>
| <CommentPlace>;
<Terminal> ::| <DefaultTerm> | <AltTerm> ;
<DefaultTerm> ::= 'T' ':' <TerminalNo:const>;
<AltTerm> ::= <AlternativeTerminal:String> ;
<NonTerm> ::= 'N' ':' <NonTerminalNo:const>;
<Break> ::| <DefaultBreak> | <AltBreak> ;
<DefaultBreak> ::= '$$';
<AltBreak> ::= '$' <Space:const> ',' <Indention:const>;
<Block> ::= '[' <BlockType> <ItemList> ']';
(* comments must only be specified after terminals! *)
<CommentPlace> ::= '*';
<ListSpec> ::= <Beginning:ItemList>
'{' <BlockType> <Separator:ItemList> '}'
<Ending:ItemLIst> ;
<BlockType> ::| <Consistent> | <InConsistent> ;
<Consistent> ::= 'c';
<InConsistent> ::= 'i'
<Constructor> : 1 <ListProd> : 1 <DefaultTerm> : 2 <AltTerm> : 2 <NonTerm> : 2 <ListSpec> : 2
| Prettyprint Grammar | © 1990-2002 Mjølner Informatics |
[Modified: Monday January 4th 1999 at 12:22]
|