Template program Sequence :begin /* by , */ #include <#vardecllist> <#functionlist> /******************** main program ********************/
:end Template includelist Repetition :begin :end Template definelist Repetition :begin :end Template vardecllist Repetition :begin :end Template argdecllist Repetition :begin :end Template functionlist Repetition :begin :end Template main Sequence :begin void main () { <#vardecllist> } :end Template include Sequence :begin #include <> :end Template define Sequence :begin #define :end Template vardecl Sequence :begin ; :end Template type Selection :begin char double float int long short unsigned void other: :end Template other Sequence :begin :end Template function Sequence :begin /****************************************/ /* : */ (<#arglist>) <#argdecllist> { <#vardecllist> } /* */ :end Template arglist Repetition :begin , :end Template arg Sequence :begin :end Template stmtlist Repetition :begin :end Template caselist Repetition :begin :end Template stmt Selection :begin assignment: break: case: do: expression: for: if: ife: return: switch: while: :end Template assignment Sequence :begin = ; :end Template break Sequence :begin break; :end Template case Sequence :begin case : <#break> :end Template do Sequence :begin do { } while (); :end Template expression Sequence :begin :end Template for Sequence :begin for (; ; ) { } /* for */ :end Template if Sequence :begin if () { } /* if () */ :end Template ife Sequence :begin if () { } else { } /* if () */ :end Template return Sequence :begin return <#text:expression>; :end Template switch Sequence :begin switch () { } /* switch () */ :end Template while Sequence :begin while () { } /* while () */ :end Template comment Sequence :begin /* */ :end Local Variables: tpl-begin-template-definition:"^Template" tpl-begin-template-body:"^:begin" tpl-end-template-body:"^:end" end: