
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: transform/cbgf/xsd/extracted
Source used for this grammar: Vadim Zaytsev, Software Language Processing Suite, ΞBGF, shared/xsd/cbgf.xsd, 2012 [Explore]
sequence, transformation, folding-unfolding-transformation, unfold-fold, nonterminal, scope, label, fold-unfold, inline-extract, production, expression, value, terminal, selector, extract-inline, abridge-detour, detour-abridge, unchain-chain, chain-unchain, unfold, fold, inline, extract, abridge, detour, unchain, chain, refactoring-transformation, massage-massage, factor-factor, deyaccify-yaccify, yaccify-deyaccify, eliminate-introduce, introduce-eliminate, vertical-horizontal, horizontal-vertical, assoc-iterate, iterate-assoc, equate-clone, clone-equate, massage, distribute, factor, deyaccify, yaccify, eliminate, introduce, import, vertical, horizontal, equate, rassoc, lassoc, iterate, splitT, increasing-decreasing-transformation, add-remove, remove-add, appear-disappear, disappear-appear, widen-narrow, narrow-widen, upgrade-downgrade, downgrade-upgrade, unite-split, split-unite, concrete-revising-transformation, abstractize-concretize, concretize-abstractize, permute-permute, abstractize, concretize, permute, abstract-revising-transformation, define-undefine, undefine-define, inject-project, project-inject, replace-replace, define, undefine, redefine, inject, project, replace, decorative-transformation, designate-unlabel, unlabel-designate, deanonymize-anonymize, anonymize-deanonymize, designate, unlabel, deanonymize, anonymize, rename-rename, reroot-reroot, roots, increasing-transformation, add, appear, widen, upgrade, unite, decreasing-transformation, remove, disappear, narrow, downgrade, split, rename, reroot, strip, dump, bypass, atomic), 1 root (sequence), 0 top (—), 0 bottom (—).[nonterminal] 19, [in] 24, [label] 8, [epsilon] 2, [empty] 2, [value] 2, [any] 2, [terminal] 7, [selector] 5, [selectable] 2, [marked] 2, [sequence] 2, [choice] 2, [allof] 2, [not] 2, [optional] 2, [plus] 2, [star] 2, [seplistplus] 2, [sepliststar] 2, [int] 2, [string] 2, [align] 3, [with] 3, [into], [vertical] 4, [horizontal] 4, [add] 3, [to] 12, [tag] 7, [from] 9, [root] 2, [allLabels], [allSelectors], [allTerminals].sequence ::= transformationatomic
transformation ::= folding-unfolding-transformation refactoring-transformation increasing-decreasing-transformation concrete-revising-transformation abstract-revising-transformation decorative-transformation rename-rename reroot-reroot
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 fold-unfold inline-extract extract-inline abridge-detour detour-abridge unchain-chain chain-unchain
folding-unfolding-transformation ::= unfold fold inline extract abridge detour unchain chain
unfold-fold ::=
[nonterminal]::nonterminal [in]::scopenonterminal ::= string
nonterminal ::= string
scope ::= [label]::label [nonterminal]::nonterminal
scope ::= [label]::label [nonterminal]::nonterminal
label ::= string
label ::= string
fold-unfold ::=
[nonterminal]::nonterminal [in]::scopeinline-extract ::=
production [in]::scopeproduction ::=
[label]::label [nonterminal]::nonterminal expressionproduction ::=
[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
expression ::= [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]::ε
value ::= [int]::ε [string]::ε
terminal ::= string
terminal ::= string
selector ::= string
selector ::= string
extract-inline ::=
production [in]::scopeabridge-detour ::= production
detour-abridge ::= production
unchain-chain ::= production
chain-unchain ::= production
unfold ::=
[nonterminal]::nonterminal [in]::scopefold ::=
[nonterminal]::nonterminal [in]::scopeinline ::= nonterminal
extract ::=
production [in]::scopeabridge ::= production
detour ::= production
unchain ::= production
chain ::= production
refactoring-transformation ::= massage-massage factor-factor deyaccify-yaccify yaccify-deyaccify eliminate-introduce introduce-eliminate vertical-horizontal horizontal-vertical assoc-iterate iterate-assoc equate-clone clone-equate
refactoring-transformation ::= massage distribute factor deyaccify yaccify eliminate introduce import vertical horizontal equate rassoc lassoc iterate splitT
massage-massage ::=
expression expression [in]::scopefactor-factor ::=
expression expression [in]::scopedeyaccify-yaccify ::=
productionyaccify-deyaccify ::=
productioneliminate-introduce ::=
productionintroduce-eliminate ::=
productionvertical-horizontal ::= [nonterminal]::nonterminal
horizontal-vertical ::= [nonterminal]::nonterminal
assoc-iterate ::= production production
iterate-assoc ::= production production
equate-clone ::= [align]::production [with]::nonterminal [in]::scope
clone-equate ::= [align]::production [with]::nonterminal [in]::scope
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-decreasing-transformation ::= add-remove remove-add appear-disappear disappear-appear widen-narrow narrow-widen upgrade-downgrade downgrade-upgrade unite-split split-unite
add-remove ::= [vertical]::production [horizontal]::production
remove-add ::= [vertical]::production [horizontal]::production
appear-disappear ::= production
disappear-appear ::= production
widen-narrow ::=
expression expression [in]::scopenarrow-widen ::=
expression expression [in]::scopeupgrade-downgrade ::= production production
downgrade-upgrade ::= production production
unite-split ::= [add]::production [to]::production [in]::scope
split-unite ::= [add]::production [to]::production [in]::scope
concrete-revising-transformation ::= abstractize-concretize concretize-abstractize permute-permute
concrete-revising-transformation ::= abstractize concretize permute
abstractize-concretize ::= production
concretize-abstractize ::= production
permute-permute ::= production production
abstractize ::= production
concretize ::= production
permute ::= production
abstract-revising-transformation ::= define-undefine undefine-define inject-project project-inject replace-replace
abstract-revising-transformation ::= define undefine redefine inject project replace
define-undefine ::=
productionundefine-define ::=
productioninject-project ::= production
project-inject ::= production
replace-replace ::=
expression expression [in]::scope [tag]::stringdefine ::=
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 unlabel-designate deanonymize-anonymize anonymize-deanonymize
decorative-transformation ::= designate unlabel deanonymize anonymize
designate-unlabel ::= production
unlabel-designate ::= production
deanonymize-anonymize ::= production
anonymize-deanonymize ::= production
designate ::= production
unlabel ::= [label]::label
deanonymize ::= production
anonymize ::= production
rename-rename ::= [label]::[from]::label [to]::label [nonterminal]::[from]::nonterminal [to]::nonterminal [selector]::[in]::label [from]::selector [to]::selector [terminal]::[from]::terminal [to]::terminal
reroot-reroot ::= [from]::roots [to]::roots
roots ::=
[root]::nonterminalincreasing-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
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