
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: transform/xbgf/xsd/extracted
Source used for this grammar: Vadim Zaytsev, Software Language Processing Suite, XBGF, language::XBGF, 2009–2012 [Explore]
sequence, transformation, folding-unfolding-transformation, unfold, nonterminal, scope, label, fold, inline, extract, production, expression, value, terminal, selector, abridge, detour, unchain, chain, refactoring-transformation, massage, distribute, factor, deyaccify, yaccify, eliminate, introduce, import, vertical, horizontal, equate, rassoc, lassoc, iterate, splitT, increasing-transformation, add, appear, widen, upgrade, unite, decreasing-transformation, remove, disappear, narrow, downgrade, split, concrete-revising-transformation, abstractize, concretize, permute, abstract-revising-transformation, define, undefine, redefine, inject, project, replace, decorative-transformation, designate, unlabel, deanonymize, anonymize, rename, reroot, strip, dump, bypass, atomic), 1 root (sequence), 0 top (—), 0 bottom (—).[nonterminal] 11, [in] 10, [label] 5, [epsilon], [empty], [value], [any], [terminal] 5, [selector] 3, [selectable], [marked], [sequence], [choice], [allof], [not], [optional], [plus], [star], [seplistplus], [sepliststar], [int], [string], [align], [with], [into], [vertical] 2, [horizontal] 2, [add], [to] 5, [tag] 6, [from] 4, [root], [allLabels], [allSelectors], [allTerminals].sequence ::= transformationatomic
transformation ::= folding-unfolding-transformation refactoring-transformation increasing-transformation decreasing-transformation concrete-revising-transformation abstract-revising-transformation decorative-transformation rename reroot strip dump bypass
folding-unfolding-transformation ::= unfold fold inline extract abridge detour unchain chain
unfold ::=
[nonterminal]::nonterminal [in]::scopenonterminal ::= string
scope ::= [label]::label [nonterminal]::nonterminal
label ::= string
fold ::=
[nonterminal]::nonterminal [in]::scopeinline ::= nonterminal
extract ::=
production [in]::scopeproduction ::=
[label]::label [nonterminal]::nonterminal expressionexpression ::= [epsilon]::ε [empty]::ε [value]::value [any]::ε [terminal]::terminal [nonterminal]::nonterminal [selectable]::[selector]::selector expression [marked]::expression [sequence]::expression [choice]::expression [allof]::expression [not]::expression [optional]::expression [plus]::expression [star]::expression [seplistplus]::expression expression [sepliststar]::expression expression
value ::= [int]::ε [string]::ε
terminal ::= string
selector ::= string
abridge ::= production
detour ::= production
unchain ::= production
chain ::= production
refactoring-transformation ::= massage distribute factor deyaccify yaccify eliminate introduce import vertical horizontal equate rassoc lassoc iterate splitT
massage ::=
expression expression [in]::scopedistribute ::= scope
factor ::=
expression expression [in]::scopedeyaccify ::= [nonterminal]::nonterminal
yaccify ::=
productioneliminate ::= [nonterminal]::nonterminal
introduce ::=
productionimport ::=
productionvertical ::= scope
horizontal ::= [nonterminal]::nonterminal
equate ::= [align]::nonterminal [with]::nonterminal
rassoc ::= production
lassoc ::= production
iterate ::= production
splitT ::= [terminal]::terminal [into]::[terminal]::terminal [in]::scope
increasing-transformation ::= add appear widen upgrade unite
add ::= [vertical]::production [horizontal]::production
appear ::= production
widen ::=
expression expression [in]::scopeupgrade ::= production production
unite ::= [add]::nonterminal [to]::nonterminal
decreasing-transformation ::= remove disappear narrow downgrade split
remove ::= [vertical]::production [horizontal]::production
disappear ::= production
narrow ::=
expression expression [in]::scopedowngrade ::= production production
split ::= [nonterminal]::nonterminal production scope
concrete-revising-transformation ::= abstractize concretize permute
abstractize ::= production
concretize ::= production
permute ::= production
abstract-revising-transformation ::= define undefine redefine inject project replace
define ::=
production [tag]::stringundefine ::=
[nonterminal]::nonterminal [tag]::stringredefine ::=
production [tag]::stringinject ::= production [tag]::string
project ::= production [tag]::string
replace ::=
expression expression [in]::scope [tag]::stringdecorative-transformation ::= designate unlabel deanonymize anonymize
designate ::= production
unlabel ::= [label]::label
deanonymize ::= production
anonymize ::= production
rename ::= [label]::[from]::label [to]::label [nonterminal]::[from]::nonterminal [to]::nonterminal [selector]::[in]::label [from]::selector [to]::selector [terminal]::[from]::terminal [to]::terminal
reroot ::=
[root]::nonterminalstrip ::= [label]::label [allLabels]::ε [selector]::selector [allSelectors]::ε [terminal]::terminal [allTerminals]::ε
dump ::= ε
bypass ::= ε
atomic ::=
transformation