From f92d3d370d9937fa10ee04ceb8375a186162af4e Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 19 Jan 2015 12:35:29 +0100 Subject: [PATCH] grammars in new internal form --- examples/grammar/contextFree.xml | 36 ------------- examples/grammar/contextSensitive.xml | 64 ----------------------- examples/grammar/leftRegular.xml | 52 ------------------- examples/grammar/leftRegular2.xml | 54 -------------------- examples/grammar/rightRegular.xml | 53 ------------------- examples/grammar/rightRegular2.xml | 54 -------------------- examples/grammar/rrg.xml | 70 -------------------------- examples2/grammar/contextFree.xml | 31 ++++++++++++ examples2/grammar/contextSensitive.xml | 64 +++++++++++++++++++++++ examples2/grammar/leftRegular.xml | 39 ++++++++++++++ examples2/grammar/leftRegular2.xml | 48 ++++++++++++++++++ examples2/grammar/rightRegular.xml | 40 +++++++++++++++ examples2/grammar/rightRegular2.xml | 48 ++++++++++++++++++ examples2/grammar/rightRegular3.xml | 67 ++++++++++++++++++++++++ 14 files changed, 337 insertions(+), 383 deletions(-) delete mode 100644 examples/grammar/contextFree.xml delete mode 100644 examples/grammar/contextSensitive.xml delete mode 100644 examples/grammar/leftRegular.xml delete mode 100644 examples/grammar/leftRegular2.xml delete mode 100644 examples/grammar/rightRegular.xml delete mode 100644 examples/grammar/rightRegular2.xml delete mode 100644 examples/grammar/rrg.xml create mode 100644 examples2/grammar/contextFree.xml create mode 100644 examples2/grammar/contextSensitive.xml create mode 100644 examples2/grammar/leftRegular.xml create mode 100644 examples2/grammar/leftRegular2.xml create mode 100644 examples2/grammar/rightRegular.xml create mode 100644 examples2/grammar/rightRegular2.xml create mode 100644 examples2/grammar/rightRegular3.xml diff --git a/examples/grammar/contextFree.xml b/examples/grammar/contextFree.xml deleted file mode 100644 index c063d3420e..0000000000 --- a/examples/grammar/contextFree.xml +++ /dev/null @@ -1,36 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>[</symbol> - <symbol>text</symbol> - <symbol>]</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - <symbol>text</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>[</symbol> - <symbol>S</symbol> - <symbol>]</symbol> - </rightSide> - </rule> - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples/grammar/contextSensitive.xml b/examples/grammar/contextSensitive.xml deleted file mode 100644 index 183cbc8a2a..0000000000 --- a/examples/grammar/contextSensitive.xml +++ /dev/null @@ -1,64 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>a</symbol> - <symbol>b</symbol> - <symbol>c</symbol> - <symbol>d</symbol> - <symbol>k</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>a</symbol> - <symbol>b</symbol> - <symbol>S</symbol> - <symbol>c</symbol> - <symbol>d</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - <symbol>b</symbol> - <symbol>k</symbol> - <symbol>c</symbol> - <symbol>d</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - <symbol>c</symbol> - <symbol>d</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - <symbol>b</symbol> - <symbol>k</symbol> - <symbol>c</symbol> - <symbol>d</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>a</symbol> - <symbol>b</symbol> - <symbol>S</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - <symbol>b</symbol> - <symbol>k</symbol> - <symbol>c</symbol> - <symbol>d</symbol> - </rightSide> - </rule> - - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples/grammar/leftRegular.xml b/examples/grammar/leftRegular.xml deleted file mode 100644 index 87ca219c77..0000000000 --- a/examples/grammar/leftRegular.xml +++ /dev/null @@ -1,52 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - <symbol>A</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>a</symbol> - <symbol>b</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>A</symbol> - <symbol>a</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - - <rightSide> - <symbol>a</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - </rightSide> - </rule> - - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - <symbol>b</symbol> - </rightSide> - </rule> - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples/grammar/leftRegular2.xml b/examples/grammar/leftRegular2.xml deleted file mode 100644 index 03f06725bf..0000000000 --- a/examples/grammar/leftRegular2.xml +++ /dev/null @@ -1,54 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - <symbol>A</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>a</symbol> - <symbol>b</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>A</symbol> - <symbol>a</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - - <rightSide> - <symbol>a</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - <rightSide> - <symbol>S</symbol> - <symbol>b</symbol> - </rightSide> - </rule> - - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - <symbol>b</symbol> - </rightSide> - </rule> - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples/grammar/rightRegular.xml b/examples/grammar/rightRegular.xml deleted file mode 100644 index fffa05d0b5..0000000000 --- a/examples/grammar/rightRegular.xml +++ /dev/null @@ -1,53 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - <symbol>A</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>a</symbol> - <symbol>b</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>a</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>b</symbol> - <symbol>A</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - - <rightSide> - <symbol>a</symbol> - <symbol>A</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - </rightSide> - </rule> - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples/grammar/rightRegular2.xml b/examples/grammar/rightRegular2.xml deleted file mode 100644 index 5bb61f582e..0000000000 --- a/examples/grammar/rightRegular2.xml +++ /dev/null @@ -1,54 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - <symbol>A</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>a</symbol> - <symbol>b</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>a</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - - <rightSide> - <symbol>b</symbol> - <symbol>A</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - - <rightSide> - <symbol>a</symbol> - <symbol>S</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - <rightSide> - <symbol>b</symbol> - </rightSide> - </rule> - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples/grammar/rrg.xml b/examples/grammar/rrg.xml deleted file mode 100644 index c01a7dd28d..0000000000 --- a/examples/grammar/rrg.xml +++ /dev/null @@ -1,70 +0,0 @@ -<grammar> - <nonTerminalSymbols> - <symbol>S</symbol> - <symbol>A</symbol> - <symbol>B</symbol> - </nonTerminalSymbols> - - <terminalSymbols> - <symbol>a</symbol> - <symbol>b</symbol> - </terminalSymbols> - - <rules> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - <symbol>A</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>S</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - <symbol>B</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>B</symbol> - </leftSide> - <rightSide> - <symbol>b</symbol> - <symbol>B</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>B</symbol> - </leftSide> - <rightSide> - <symbol>b</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - <symbol>B</symbol> - </rightSide> - </rule> - <rule> - <leftSide> - <symbol>A</symbol> - </leftSide> - <rightSide> - <symbol>a</symbol> - </rightSide> - </rule> - </rules> - - <startSymbol>S</startSymbol> - -</grammar> diff --git a/examples2/grammar/contextFree.xml b/examples2/grammar/contextFree.xml new file mode 100644 index 0000000000..977a140f7e --- /dev/null +++ b/examples2/grammar/contextFree.xml @@ -0,0 +1,31 @@ +<CFG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>[</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>text</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>]</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>text</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>[</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>]</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> +</CFG> diff --git a/examples2/grammar/contextSensitive.xml b/examples2/grammar/contextSensitive.xml new file mode 100644 index 0000000000..c56f59132f --- /dev/null +++ b/examples2/grammar/contextSensitive.xml @@ -0,0 +1,64 @@ +<CSG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>d</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>k</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lContext> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </lContext> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rContext> + <LabeledSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>d</Character></PrimitiveLabel></LabeledSymbol> + </rContext> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>k</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lContext> + </lContext> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rContext> + <LabeledSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>d</Character></PrimitiveLabel></LabeledSymbol> + </rContext> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>k</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lContext> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </lContext> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rContext> + </rContext> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>k</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>c</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>d</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> + <generatesEpsilon><false /></generatesEpsilon> +</CSG> diff --git a/examples2/grammar/leftRegular.xml b/examples2/grammar/leftRegular.xml new file mode 100644 index 0000000000..8b29416174 --- /dev/null +++ b/examples2/grammar/leftRegular.xml @@ -0,0 +1,39 @@ +<LeftRG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> + <generatesEpsilon><true /></generatesEpsilon> +</LeftRG> diff --git a/examples2/grammar/leftRegular2.xml b/examples2/grammar/leftRegular2.xml new file mode 100644 index 0000000000..4ab06adb48 --- /dev/null +++ b/examples2/grammar/leftRegular2.xml @@ -0,0 +1,48 @@ +<LeftRG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> + <generatesEpsilon><false /></generatesEpsilon> +</LeftRG> diff --git a/examples2/grammar/rightRegular.xml b/examples2/grammar/rightRegular.xml new file mode 100644 index 0000000000..a57665734a --- /dev/null +++ b/examples2/grammar/rightRegular.xml @@ -0,0 +1,40 @@ +<RightRG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> + <generatesEpsilon><true /></generatesEpsilon> +</RightRG> diff --git a/examples2/grammar/rightRegular2.xml b/examples2/grammar/rightRegular2.xml new file mode 100644 index 0000000000..1fa9073b07 --- /dev/null +++ b/examples2/grammar/rightRegular2.xml @@ -0,0 +1,48 @@ +<RightRG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> + <generatesEpsilon><false /></generatesEpsilon> +</RightRG> diff --git a/examples2/grammar/rightRegular3.xml b/examples2/grammar/rightRegular3.xml new file mode 100644 index 0000000000..660439b7f2 --- /dev/null +++ b/examples2/grammar/rightRegular3.xml @@ -0,0 +1,67 @@ +<RightRG> + <nonterminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>B</Character></PrimitiveLabel></LabeledSymbol> + </nonterminalAlphabet> + <terminalAlphabet> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </terminalAlphabet> + <initialSymbol><LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol></initialSymbol> + <rules> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>S</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>B</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>B</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>B</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>B</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>b</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + <LabeledSymbol><PrimitiveLabel><Character>B</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + <rule> + <lhs> + <LabeledSymbol><PrimitiveLabel><Character>A</Character></PrimitiveLabel></LabeledSymbol> + </lhs> + <rhs> + <LabeledSymbol><PrimitiveLabel><Character>a</Character></PrimitiveLabel></LabeledSymbol> + </rhs> + </rule> + </rules> + <generatesEpsilon><false /></generatesEpsilon> +</RightRG> -- GitLab