«IMPORT ebnf» «EXTENSION org::eclipse::xtend::util::stdlib::globalvar» «EXTENSION extensions::SimpleBnf» «DEFINE Root FOR EtsiBnf-» «FILE name+".grm"-» "Name" = '«name»' "Version" = '1.0' "Author" = 'BNFTools EBnf Gold Generator' "About" = 'n/a' "Case Sensitive" = 'True' "Start Symbol" = <«firstNonGeneratedRule(this).name-»> «FOREACH rule AS r-» <«r.name-»> ::=«EXPAND DefStart FOR r.definitionList-» «ENDFOREACH-» «ENDFILE-» «ENDDEFINE» «REM» ========================================================================== «ENDREM» «REM» ========================================================================== «ENDREM» «DEFINE OptionalSequenceStart FOR OptionalSequence-» («EXPAND DefStart FOREACH definitionList-»)?«ENDDEFINE» «REM» ========================================================================== «ENDREM» «REM» ========================================================================== «ENDREM» «DEFINE GroupedSequenceStart FOR GroupedSequence-» («EXPAND DefStart FOREACH this.definitionList-»)«ENDDEFINE» «REM» ========================================================================== «ENDREM» «REM» ========================================================================== «ENDREM» «DEFINE RepeatedSequenceStart FOR RepeatedSequence-» («EXPAND DefStart FOREACH definitions-»«IF this.morethanonce==true-»)+«ELSE-»)*«ENDIF-»«ENDDEFINE» «REM» ========================================================================== «ENDREM» «REM» ========================================================================== «ENDREM» «DEFINE DefStart FOR DefinitionList-» «FOREACH singleDefinition AS singleDef ITERATOR iter-» «IF !iter.firstIteration-» |«ENDIF-» «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-» «ENDIF-» «ENDIF-» «ENDFOREACH-» «ENDFOREACH-» «ENDDEFINE» «REM» ========================================================================== «ENDREM»