Template all Selection :begin program: constant: typedecl: type: variables: procedure: function: stmt: :end Template program Sequence :begin program (input, ouput); const type var begin { main program } end. :end Template constants Repetition :begin :end Template constant Sequence :begin = ; :end Template types Repetition :begin :end Template typedecl Sequence :begin = ; :end Template type Selection :begin array: boolean char file: integer pointer: range: real record: scalar: set: other: :end Template array Sequence :begin array [] of :end Template indexlist Repetition :begin , :end Template indextype Selection :begin range: scalar: other: :end Template file Sequence :begin file of :end Template pointer Sequence :begin ^ :end Template range Sequence :begin .. :end Template record Sequence :begin record end :end Template fieldlist Repetition :begin ; :end Template field Sequence :begin : :end Template scalar Sequence :begin () :end Template itemlist Repetition :begin , :end Template set Sequence :begin set of :end Template other Sequence :begin :end Template variables Repetition :begin :end Template variable Sequence :begin : ; :end Template procedures Repetition :begin :end Template procfunc Selection :begin procedure: function: :end Template procedure Sequence :begin {************************************************************} procedure (); var begin end; { } :end Template function Sequence :begin {************************************************************} function (): ; var begin end; { } :end Template args Repetition :begin ; :end Template argdecl Sequence :begin var : :end Template stmtlist Repetition :begin :end Template stmt Selection :begin assignment: case: compound: for: if: repeat: while: with: :end Template assignment Sequence :begin := ; :end Template case Sequence :begin case of end; :end Template caselist Repetition :begin ; :end Template caseclause Sequence :begin : :end Template compound Sequence :begin begin end; :end Template for Sequence :begin for := to do begin end; { for } :end Template if Sequence :begin if then begin end else begin end; { if } :end Template repeat Sequence :begin repeat until ; :end Template while Sequence :begin while do begin end; { while } :end Template with Sequence :begin with do begin end; { with } :end Local Variables: tpl-begin-template-definition:"^Template" tpl-begin-template-body:"^:begin" tpl-end-template-body:"^:end" end: