source: default/trunk/de.ugoe.cs.swe.bnftools.ebnf.generator/src/templates/Gold.xpt

Last change on this file was 5, checked in by zeiss, 14 years ago
File size: 2.4 KB
Line 
1«IMPORT ebnf»
2«EXTENSION org::eclipse::xtend::util::stdlib::globalvar»
3«EXTENSION extensions::SimpleBnf»
4
5«DEFINE Root FOR EtsiBnf-»
6
7«FILE name+".grm"-»
8"Name"          = '«name»'
9"Version"       = '1.0'
10"Author"        = 'BNFTools EBnf Gold Generator'
11"About"         = 'n/a'
12
13"Case Sensitive" = 'True'
14"Start Symbol"   = <«firstNonGeneratedRule(this).name-»>
15
16«FOREACH rule AS r-»
17<«r.name-»> ::=«EXPAND DefStart FOR r.definitionList-»
18
19«ENDFOREACH-»
20«ENDFILE-»
21
22«ENDDEFINE»
23
24«REM» ========================================================================== «ENDREM»
25
26«REM» ========================================================================== «ENDREM»
27«DEFINE OptionalSequenceStart FOR OptionalSequence-» («EXPAND DefStart FOREACH definitionList-»)?«ENDDEFINE»
28«REM» ========================================================================== «ENDREM»
29
30«REM» ========================================================================== «ENDREM»
31«DEFINE GroupedSequenceStart FOR GroupedSequence-» («EXPAND DefStart FOREACH this.definitionList-»)«ENDDEFINE»
32«REM» ========================================================================== «ENDREM»
33
34«REM» ========================================================================== «ENDREM»
35«DEFINE RepeatedSequenceStart FOR RepeatedSequence-» («EXPAND DefStart FOREACH definitions-»«IF this.morethanonce==true-»)+«ELSE-»)*«ENDIF-»«ENDDEFINE»
36«REM» ========================================================================== «ENDREM»
37
38«REM» ========================================================================== «ENDREM»
39«DEFINE DefStart FOR DefinitionList-»
40«FOREACH singleDefinition AS singleDef ITERATOR iter-»
41«IF !iter.firstIteration-» |«ENDIF-»
42«FOREACH singleDef.terms AS t-»«IF t.termAtom != null-»«IF t.termAtom.atomStringRule != null-» «IF t.termAtom.atomStringRule.literal == "'"»'\"'«ELSE»'«t.termAtom.atomStringRule.literal-»'«ENDIF»«ELSEIF t.termAtom.atomRuleReference != null-» <«t.termAtom.atomRuleReference.ruleref.name-»>«ELSEIF t.termGroupedSequence != null-»«EXPAND GroupedSequenceStart FOR t.termGroupedSequence-»«ELSEIF t.termOptionalSequence != null-»«EXPAND OptionalSequenceStart FOR t.termOptionalSequence-»«ELSEIF t.termRepeatedSequence != null-»«EXPAND RepeatedSequenceStart FOR t.termRepeatedSequence-»
43«ENDIF-»
44«ENDIF-»
45«ENDFOREACH-»
46«ENDFOREACH-»
47«ENDDEFINE»
48«REM» ========================================================================== «ENDREM»
49
Note: See TracBrowser for help on using the repository browser.