Documents = List(Document) EOF. Document = [";;" Comment] "*document*" Pages ["*optional*" OptParms] . Pages ~ Page {Page}. OptParms = ["*title*" TL] ["*version*" <vers> Vers] ["*creator*" <cr> CR] ["*date*" <date> DT] ["*bbox*" <bb> BB] ["*postfile*" <pfile> PFILE] ["*plane-modes*" <pl> Planes] ["*no-prolog*" <nopro> NOPRO] . Vers = <v> Number. CR = <creator> String. DT = <date> String. PFILE = <pfilename> String. TL = <tl> String. BB = <b1> Number <b2> Number <b3> Number <b4> Number. Page = "*page*" <pa> Page_attributes <di> Displayable_items. Displayable_items ~ {Displayable_item}. Displayable_item : Text2 | Rules | Graphics | Patterns. Text2 = "*text*" <ti> Text_slug ["*pl*" <plane> Number]. Rules = "*rule*" <ri> Rule_item ["*pl*" <plane> Number]. Graphics = "*graphic*" <gi> Graphic_item ["*pl*" <plane> Number]. Patterns = "*pattern*" <pat> Pattern_item ["*pl*" <plane> Number]. Text_slug = [";;" <cm> Comment] <characters> String <pos> Position ["*attributes*" <ta> Text_attributes] . Text_attributes ~ {Text_attribute}. Text_attribute : Pointsize | Typeface | Angle | Tint | Color | Kern | Reverse_video. Rule_item = [";;" <cm> Comment] <width> Number <pos1> Position <pos2> Position [<tint> Tint] [ <color> Color] ["*dash*" <dash> Number]. Graphic_item = [";;" <cm> Comment] <width> Number <depth> Number <pos> Position <name> String ["*scx*" <scx> Number] ["*scy*" <scy> Number] [ <angle> Angle]. Pattern_item : Circle_Pattern | Square_Pattern. Circle_Pattern = "*circle*" <patnum> Number <linewidth> Number <pos> Position <radius> Number. Square_Pattern = "*square*" <patnum> Number <leftlowcorner> Position <height> Number <width> Number. Page_attributes = "*page_attributes*" <width> Number <depth> Number [ <color> Color] ["*tint*" <tint> Tint] ["*angle*" <angle> Number]. Position = <xpos> Number <ypos> Number. Pointsize = "*pointsize*" <p> Number. Typeface = "*typeface*" <tface> Tface. Tface : Tnum | Tstring. Tnum = <tnum> Number. Tstring = <tstring> String. Angle = "*angle*" <a> Number. Tint = "*tint*" <tn> Number. Color = "*color*" <c1> Number <c2> Number <c3> Number. Kern = "*kern*" <k> Number. Reverse_video = "*rv*" <rv> Number. Comment = <str> String. Planes = <plmin> Number <plmax> Number. NOPRO = <np> Number. List(S) ~ {S}. Main = <s> String.