Pattern-based Text Generator



PTGSpec: PatternSpec+
PatternSpec: PatternName ':' (Item | Optional)*
PatternName: Identifier
Item: CString | Insertion | FunctionCall
Insertion: '$' [ Number ] [ Type ]
FunctionCall: '[' Identifier Arguments ']'
Arguments: Insertion*
Type: 'int' | 'string' | 'pointer' | 'long' | 'short'
| 'char' | 'float' | 'double'
Optional: '{' Item+ '}'
Identifier and CString tokens are denoted as in C.
Number tokens consist of decimal digits.
Comments are written in C style.
Line comments starting with # are also accepted.
Note: A CString token may only extend over several lines
if all but the last line end with a backslash character.
An error message like illegal newline in string literal
indicates a violation of that rule.
The following additional alternative for PatternSpec
defines leaf patterns. This construct is outdated and is no longer
accepted by PTG:
PatternSpec: PatternName ':' Type+ '[' [ Identifier ] ']'
If you have old specifications that use this pattern style, rewrite
them by pattern specifications as describe above, e.g.
MyLeaf: int string []
YourLeaf: int string [YourFct]
should be rewritten into
MyLeaf: $ int $ string
YourLeaf: [YourFct $ int $ string]



|