diff --git a/GramaticaLibreDeContexto.md b/GramaticaLibreDeContexto.md
index 5620984..d143622 100644
--- a/GramaticaLibreDeContexto.md
+++ b/GramaticaLibreDeContexto.md
@@ -30,12 +30,11 @@ SPECIFIC ->
TK_char
OPERATION ->
- OPERATION '.' OPERATION |
- OPERATION '|' OPERATION |
- OPERATION '*' |
- OPERATION '+' |
- OPERATION '?' |
- '(' OPERATION ')' |
+ '.' OPERATION OPERATION |
+ '|' OPERATION OPERATION |
+ '*' OPERATION |
+ '+' OPERATION |
+ '?' OPERATION |
OPERAND
OPERAND ->
diff --git a/Images/ManualUsuario/Abierto.png b/Images/ManualUsuario/Abierto.png
index aa77c03..58bd4a6 100644
Binary files a/Images/ManualUsuario/Abierto.png and b/Images/ManualUsuario/Abierto.png differ
diff --git a/Images/ManualUsuario/Abrir.png b/Images/ManualUsuario/Abrir.png
index 6555d0f..787dd6c 100644
Binary files a/Images/ManualUsuario/Abrir.png and b/Images/ManualUsuario/Abrir.png differ
diff --git a/Images/ManualUsuario/Analizar.png b/Images/ManualUsuario/Analizar.png
index 81c5b4c..e1ade72 100644
Binary files a/Images/ManualUsuario/Analizar.png and b/Images/ManualUsuario/Analizar.png differ
diff --git a/Images/ManualUsuario/GuardadoComo.png b/Images/ManualUsuario/GuardadoComo.png
index 6ebc0f4..77799e5 100644
Binary files a/Images/ManualUsuario/GuardadoComo.png and b/Images/ManualUsuario/GuardadoComo.png differ
diff --git a/Images/ManualUsuario/Guardar.png b/Images/ManualUsuario/Guardar.png
index 4849e28..242c0e9 100644
Binary files a/Images/ManualUsuario/Guardar.png and b/Images/ManualUsuario/Guardar.png differ
diff --git a/Images/ManualUsuario/GuardarComo.png b/Images/ManualUsuario/GuardarComo.png
index 4bc8000..4e16542 100644
Binary files a/Images/ManualUsuario/GuardarComo.png and b/Images/ManualUsuario/GuardarComo.png differ
diff --git a/Images/ManualUsuario/GuardarComoNombrar.png b/Images/ManualUsuario/GuardarComoNombrar.png
index 844ba09..6a44873 100644
Binary files a/Images/ManualUsuario/GuardarComoNombrar.png and b/Images/ManualUsuario/GuardarComoNombrar.png differ
diff --git a/Images/ManualUsuario/Nuevo.png b/Images/ManualUsuario/Nuevo.png
index 61156ae..880df89 100644
Binary files a/Images/ManualUsuario/Nuevo.png and b/Images/ManualUsuario/Nuevo.png differ
diff --git a/Images/ManualUsuario/NuevoCreado.png b/Images/ManualUsuario/NuevoCreado.png
index de5e3d9..2dca293 100644
Binary files a/Images/ManualUsuario/NuevoCreado.png and b/Images/ManualUsuario/NuevoCreado.png differ
diff --git a/Images/ManualUsuario/NuevoNombrar.png b/Images/ManualUsuario/NuevoNombrar.png
index 13793d6..585d3c3 100644
Binary files a/Images/ManualUsuario/NuevoNombrar.png and b/Images/ManualUsuario/NuevoNombrar.png differ
diff --git a/Images/ManualUsuario/Validar.png b/Images/ManualUsuario/Validar.png
index 11f7a58..eb9cc6b 100644
Binary files a/Images/ManualUsuario/Validar.png and b/Images/ManualUsuario/Validar.png differ
diff --git a/ManualTecnico.md b/ManualTecnico.md
index 1b6f80a..9b26a07 100644
--- a/ManualTecnico.md
+++ b/ManualTecnico.md
@@ -9,7 +9,7 @@
4. [Cálculo De Siguientes](#4-cálculo-de-siguientes)
5. [Cálculo De Transiciones](#5-cálculo-de-transiciones)
6. [Método De Thompson](#6-método-de-thompson)
-7. [Diagrama De Clases](#7-diagrama-de-clases)
+7. [Método De Thompson](#7-diagrama-de-clases)
## 1. Análisis Léxico
* ### Tabla de Tokens
@@ -44,13 +44,13 @@
## 2. Análisis Sintáctico
* ### Expresion Regular en Notación Polaca
- Los operadores se escriben entre los operandos para operadores binarios y al final para operadores unarios.
+ Los operadores se escriben antes que los operandos.
Ejemplo:
- * operando | operando
- * operando . operando
- * operando \+
- * operando \*
- * operando ?
+ * | operando operando
+ * . operando operando
+ * \+ operando
+ * \* operando
+ * ? operando
* ### Gramática Libre del Contexto
```java
@@ -82,12 +82,11 @@ SPECIFIC ->
TK_char
OPERATION ->
- OPERATION '.' OPERATION |
- OPERATION '|' OPERATION |
- OPERATION '*' |
- OPERATION '+' |
- OPERATION '?' |
- '(' OPERATION ')' |
+ '.' OPERATION OPERATION |
+ '|' OPERATION OPERATION |
+ '*' OPERATION |
+ '+' OPERATION |
+ '?' OPERATION |
OPERAND
OPERAND ->
@@ -163,12 +162,11 @@ EVALUATION -> TK_id ':' TK_str ';'
IDS:regex TK_prompt OPERATION:op TK_semicolon {:addTree(regex,op);:} ;
OPERATION ::=
- OPERATION:op1 TK_or OPERATION:op2 {:RESULT = buildTree("|",op1,op2,op1.anulable || op2.anulable,Type.OR); :} |
- OPERATION:op1 TK_concat OPERATION:op2 {:RESULT = buildTree(".",op1,op2,op1.anulable && op2.anulable,Type.CONCAT);:} |
- OPERATION:op1 TK_kleene {:RESULT = buildTree("*",op1,null,true,Type.KLEENE); :} |
- OPERATION:op1 TK_positive {:RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE); :} |
- OPERATION:op1 TK_optional {:RESULT = buildTree("?",op1,null,true,Type.OPTIONAL); :} |
- TK_lpar OPERATION:op TK_rpar {:RESULT = op; :} |
+ TK_or OPERATION:op1 OPERATION:op2 {:RESULT = buildTree("|",op1,op2,op1.anulable || op2.anulable,Type.OR); :} |
+ TK_concat OPERATION:op1 OPERATION:op2 {:RESULT = buildTree(".",op1,op2,op1.anulable && op2.anulable,Type.CONCAT);:} |
+ TK_kleene OPERATION:op1 {:RESULT = buildTree("*",op1,null,true,Type.KLEENE); :} |
+ TK_positive OPERATION:op1 {:RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE); :} |
+ TK_optional OPERATION:op1 {:RESULT = buildTree("?",op1,null,true,Type.OPTIONAL); :} |
OPERAND:op {:RESULT = op; :} ;
OPERAND ::=
diff --git a/ManualUsuario.md b/ManualUsuario.md
index 8d23d54..ccf456c 100644
--- a/ManualUsuario.md
+++ b/ManualUsuario.md
@@ -100,19 +100,19 @@ El reporte se genera y abre automáticamente al momento del análisis si se dete
[Subir](#exregan)
## 5. Expresión Regular
-* ### Expresion Regular en Notación Infija
+* ### Expresion Regular en Notación Polaca
Los operadores se escriben antes que los operandos.
Ejemplo:
- * operando | operando
- * operando . operando
- * operando \+
- * operando \*
- * operando ?
-* ### Ejemplos de Expresiones Regulares en Notación Infija
- |Notación Infija|Notación Prefija|
+ * | operando operando
+ * . operando operando
+ * \+ operando
+ * \* operando
+ * ? operando
+* ### Ejemplos de Expresiones Regulares en Notación Prefija o Polaca
+ |Notación Prefija|Notación Infija|
|----------------|---------------|
- |((operando)* \| operando)+|+ \| * operando operando|
- |(operando)+(operando \| operando)|. + operando \| operando operando|
+ |+ \| * operando operando|((operando)* \| operando)+|
+ |. + operando \| operando operando|(operando)+(operando \| operando)|
[Subir](#exregan)
@@ -128,9 +128,9 @@ CONJ: digit -> 0~9;
--------------COMENTARIO MULTILÍNEA--------------
!>
//Expresiones Regulares
-REGEX1 -> ("1"?."2"*|"3"+."2"*)|("2"?."3"+."1"|"3"."1"*);
-REGEX2 -> ("a"."b"."c")+|"a"?."x"."y"."z"|("0"|"1")+;
-numero -> {digit}+.(".".{digit}+)?;
+REGEX1 -> ||.?"1"*"2".+"3"*"2"|..?"2"+"3""1"."3"*"1";
+REGEX2 -> ||+.."a""b""c"...?"a""x""y""z"+|"0""1";
+numero -> .+{digit}?."."+{digit};
%%
//Validación de Cadenas
diff --git a/Proyecto1.jar b/Proyecto1.jar
index 2ce3670..8036a1d 100644
Binary files a/Proyecto1.jar and b/Proyecto1.jar differ
diff --git a/README.md b/README.md
index 2c2ba20..3f1ca4d 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,9 @@ CONJ: digit -> 0~9;
--------------COMENTARIO MULTILÍNEA--------------
!>
//Expresiones Regulares
-REGEX1 -> ("1"?."2"*|"3"+."2"*)|("2"?."3"+."1"|"3"."1"*);
-REGEX2 -> ("a"."b"."c")+|"a"?."x"."y"."z"|("0"|"1")+;
-numero -> {digit}+.(".".{digit}+)?;
+REGEX1 -> ||.?"1"*"2".+"3"*"2"|..?"2"+"3""1"."3"*"1";
+REGEX2 -> ||+.."a""b""c"...?"a""x""y""z"+|"0""1";
+numero -> .+{digit}?."."+{digit};
%%
//Validación de Cadenas
@@ -58,12 +58,11 @@ SPECIFIC ->
TK_char
OPERATION ->
- OPERATION '.' OPERATION |
- OPERATION '|' OPERATION |
- OPERATION '*' |
- OPERATION '+' |
- OPERATION '?' |
- '(' OPERATION ')' |
+ '.' OPERATION OPERATION |
+ '|' OPERATION OPERATION |
+ '*' OPERATION |
+ '+' OPERATION |
+ '?' OPERATION |
OPERAND
OPERAND ->
diff --git a/bin/Files b/bin/Files
index eaa0b93..e69de29 100644
Binary files a/bin/Files and b/bin/Files differ
diff --git a/bin/Interface/IDE.class b/bin/Interface/IDE.class
index 8d86771..068fd3f 100644
Binary files a/bin/Interface/IDE.class and b/bin/Interface/IDE.class differ
diff --git a/bin/Language/Parser$CUP$Parser$actions.class b/bin/Language/Parser$CUP$Parser$actions.class
index c94b317..4f4dd34 100644
Binary files a/bin/Language/Parser$CUP$Parser$actions.class and b/bin/Language/Parser$CUP$Parser$actions.class differ
diff --git a/bin/Language/Parser.class b/bin/Language/Parser.class
index b87476b..c37b7cf 100644
Binary files a/bin/Language/Parser.class and b/bin/Language/Parser.class differ
diff --git a/bin/Language/Parser.cup b/bin/Language/Parser.cup
index f2cd9e7..d31e618 100644
--- a/bin/Language/Parser.cup
+++ b/bin/Language/Parser.cup
@@ -101,9 +101,6 @@ non terminal String CHARACTER;
non terminal String IDS;
/* 5. Precedencias */
-precedence left TK_or;
-precedence left TK_concat;
-precedence left TK_positive, TK_kleene, TK_optional;
/* 6. Gramatica Libre de Contexto */
@@ -155,12 +152,11 @@ CHARACTER ::=
TK_kleene :ch {:RESULT = ch;:} ;
OPERATION ::=
- OPERATION:op1 TK_or OPERATION:op2 {:RESULT = buildTree("|",op1,op2,op1.anulable || op2.anulable,Type.OR); :} |
- OPERATION:op1 TK_concat OPERATION:op2 {:RESULT = buildTree(".",op1,op2,op1.anulable && op2.anulable,Type.CONCAT);:} |
- OPERATION:op1 TK_kleene {:RESULT = buildTree("*",op1,null,true,Type.KLEENE); :} |
- OPERATION:op1 TK_positive {:RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE); :} |
- OPERATION:op1 TK_optional {:RESULT = buildTree("?",op1,null,true,Type.OPTIONAL); :} |
- TK_lpar OPERATION:op TK_rpar {:RESULT = op; :} |
+ TK_or OPERATION:op1 OPERATION:op2 {:RESULT = buildTree("|",op1,op2,op1.anulable || op2.anulable,Type.OR); :} |
+ TK_concat OPERATION:op1 OPERATION:op2 {:RESULT = buildTree(".",op1,op2,op1.anulable && op2.anulable,Type.CONCAT);:} |
+ TK_kleene OPERATION:op1 {:RESULT = buildTree("*",op1,null,true,Type.KLEENE); :} |
+ TK_positive OPERATION:op1 {:RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE); :} |
+ TK_optional OPERATION:op1 {:RESULT = buildTree("?",op1,null,true,Type.OPTIONAL); :} |
OPERAND:op {:RESULT = op; :} ;
OPERAND ::=
diff --git a/bin/Language/ParserF$CUP$ParserF$actions.class b/bin/Language/ParserF$CUP$ParserF$actions.class
index 92bd80a..b0bd132 100644
Binary files a/bin/Language/ParserF$CUP$ParserF$actions.class and b/bin/Language/ParserF$CUP$ParserF$actions.class differ
diff --git a/bin/Language/ParserF.class b/bin/Language/ParserF.class
index 917e15a..ae19c95 100644
Binary files a/bin/Language/ParserF.class and b/bin/Language/ParserF.class differ
diff --git a/bin/Language/ParserF.cup b/bin/Language/ParserF.cup
index 0d4f946..10d14c5 100644
--- a/bin/Language/ParserF.cup
+++ b/bin/Language/ParserF.cup
@@ -37,9 +37,6 @@ non terminal String CHARACTER;
non terminal String IDS;
/* 5. Precedencias */
-precedence left TK_or;
-precedence left TK_concat;
-precedence left TK_positive, TK_kleene, TK_optional;
/* 6. Gramatica Libre de Contexto */
@@ -93,12 +90,11 @@ CHARACTER ::=
TK_kleene :ch {:RESULT = ch;:} ;
OPERATION ::=
- OPERATION TK_or :op {:painter.OPERATOR(opleft,opright);:} OPERATION |
- OPERATION TK_concat :op {:painter.OPERATOR(opleft,opright);:} OPERATION |
- OPERATION TK_kleene :op {:painter.OPERATOR(opleft,opright);:} |
- OPERATION TK_positive:op {:painter.OPERATOR(opleft,opright);:} |
- OPERATION TK_optional:op {:painter.OPERATOR(opleft,opright);:} |
- TK_lpar OPERATION TK_rpar |
+ TK_or :op {:painter.OPERATOR(opleft,opright);:} OPERATION OPERATION |
+ TK_concat :op {:painter.OPERATOR(opleft,opright);:} OPERATION OPERATION |
+ TK_kleene :op {:painter.OPERATOR(opleft,opright);:} OPERATION |
+ TK_positive:op {:painter.OPERATOR(opleft,opright);:} OPERATION |
+ TK_optional:op {:painter.OPERATOR(opleft,opright);:} OPERATION |
OPERAND ;
OPERAND ::=
diff --git a/src/Interface/IDE.java b/src/Interface/IDE.java
index 55df743..c29f7a1 100644
--- a/src/Interface/IDE.java
+++ b/src/Interface/IDE.java
@@ -226,7 +226,7 @@ void addComponents() {
this.add(saveOLC);
}
void copyright() {
- this.add(new Label(0,695,1390,15,"EXREGAN Infix",11));
+ this.add(new Label(0,695,1390,15,"EXREGAN Prefix",11));
this.add(new Label(0,710,1390,15,"© Danny Hugo Bryan Tejaxún Pichiyá",11));
}
void addToolBar() {
diff --git a/src/Language/Parser.cup b/src/Language/Parser.cup
index f2cd9e7..d31e618 100644
--- a/src/Language/Parser.cup
+++ b/src/Language/Parser.cup
@@ -101,9 +101,6 @@ non terminal String CHARACTER;
non terminal String IDS;
/* 5. Precedencias */
-precedence left TK_or;
-precedence left TK_concat;
-precedence left TK_positive, TK_kleene, TK_optional;
/* 6. Gramatica Libre de Contexto */
@@ -155,12 +152,11 @@ CHARACTER ::=
TK_kleene :ch {:RESULT = ch;:} ;
OPERATION ::=
- OPERATION:op1 TK_or OPERATION:op2 {:RESULT = buildTree("|",op1,op2,op1.anulable || op2.anulable,Type.OR); :} |
- OPERATION:op1 TK_concat OPERATION:op2 {:RESULT = buildTree(".",op1,op2,op1.anulable && op2.anulable,Type.CONCAT);:} |
- OPERATION:op1 TK_kleene {:RESULT = buildTree("*",op1,null,true,Type.KLEENE); :} |
- OPERATION:op1 TK_positive {:RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE); :} |
- OPERATION:op1 TK_optional {:RESULT = buildTree("?",op1,null,true,Type.OPTIONAL); :} |
- TK_lpar OPERATION:op TK_rpar {:RESULT = op; :} |
+ TK_or OPERATION:op1 OPERATION:op2 {:RESULT = buildTree("|",op1,op2,op1.anulable || op2.anulable,Type.OR); :} |
+ TK_concat OPERATION:op1 OPERATION:op2 {:RESULT = buildTree(".",op1,op2,op1.anulable && op2.anulable,Type.CONCAT);:} |
+ TK_kleene OPERATION:op1 {:RESULT = buildTree("*",op1,null,true,Type.KLEENE); :} |
+ TK_positive OPERATION:op1 {:RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE); :} |
+ TK_optional OPERATION:op1 {:RESULT = buildTree("?",op1,null,true,Type.OPTIONAL); :} |
OPERAND:op {:RESULT = op; :} ;
OPERAND ::=
diff --git a/src/Language/Parser.java b/src/Language/Parser.java
index a15d7de..14c3b5d 100644
--- a/src/Language/Parser.java
+++ b/src/Language/Parser.java
@@ -42,7 +42,7 @@ public final Class getSymbolContainer() {
/** Production table. */
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
- "\000\063\000\002\002\004\000\002\002\005\000\002\002" +
+ "\000\062\000\002\002\004\000\002\002\005\000\002\002" +
"\004\000\002\003\005\000\002\003\004\000\002\003\003" +
"\000\002\003\004\000\002\003\003\000\002\004\004\000" +
"\002\004\003\000\002\004\004\000\002\004\003\000\002" +
@@ -53,11 +53,11 @@ public final Class getSymbolContainer() {
"\014\003\000\002\014\003\000\002\014\003\000\002\014" +
"\003\000\002\014\003\000\002\014\003\000\002\014\003" +
"\000\002\012\005\000\002\012\005\000\002\012\004\000" +
- "\002\012\004\000\002\012\004\000\002\012\005\000\002" +
- "\012\003\000\002\013\005\000\002\013\003\000\002\013" +
- "\003\000\002\013\003\000\002\013\003\000\002\006\004" +
- "\000\002\006\003\000\002\006\004\000\002\006\003\000" +
- "\002\007\006\000\002\015\003\000\002\015\003" });
+ "\002\012\004\000\002\012\004\000\002\012\003\000\002" +
+ "\013\005\000\002\013\003\000\002\013\003\000\002\013" +
+ "\003\000\002\013\003\000\002\006\004\000\002\006\003" +
+ "\000\002\006\004\000\002\006\003\000\002\007\006\000" +
+ "\002\015\003\000\002\015\003" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
@@ -65,78 +65,91 @@ public final Class getSymbolContainer() {
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
- "\000\112\000\004\012\004\001\002\000\016\003\016\004" +
+ "\000\114\000\004\012\004\001\002\000\016\003\016\004" +
"\014\005\020\007\013\013\011\030\010\001\002\000\004" +
"\002\006\001\002\000\004\002\001\001\002\000\004\013" +
- "\114\001\002\000\012\003\103\005\020\007\013\013\ufffa" +
- "\001\002\000\004\002\uffff\001\002\000\016\003\100\004" +
- "\014\005\020\007\013\013\ufffc\030\077\001\002\000\006" +
- "\017\uffcf\021\uffcf\001\002\000\004\017\046\001\002\000" +
+ "\116\001\002\000\012\003\105\005\020\007\013\013\ufffa" +
+ "\001\002\000\004\002\uffff\001\002\000\016\003\102\004" +
+ "\014\005\020\007\013\013\ufffc\030\101\001\002\000\006" +
+ "\017\uffd0\021\uffd0\001\002\000\004\017\050\001\002\000" +
"\004\021\021\001\002\000\016\003\ufff6\004\ufff6\005\ufff6" +
"\007\ufff6\013\ufff6\030\ufff6\001\002\000\016\003\ufff8\004" +
"\ufff8\005\ufff8\007\ufff8\013\ufff8\030\ufff8\001\002\000\006" +
- "\017\uffd0\021\uffd0\001\002\000\016\006\024\012\027\014" +
- "\030\031\023\032\031\033\026\001\002\000\016\016\045" +
- "\023\035\024\040\025\034\026\037\027\036\001\002\000" +
- "\020\015\uffd7\016\uffd7\023\uffd7\024\uffd7\025\uffd7\026\uffd7" +
- "\027\uffd7\001\002\000\020\015\uffd9\016\uffd9\023\uffd9\024" +
- "\uffd9\025\uffd9\026\uffd9\027\uffd9\001\002\000\020\015\uffdb" +
- "\016\uffdb\023\uffdb\024\uffdb\025\uffdb\026\uffdb\027\uffdb\001" +
- "\002\000\020\015\uffd8\016\uffd8\023\uffd8\024\uffd8\025\uffd8" +
- "\026\uffd8\027\uffd8\001\002\000\004\005\043\001\002\000" +
- "\016\006\024\012\027\014\030\031\023\032\031\033\026" +
- "\001\002\000\020\015\uffd6\016\uffd6\023\uffd6\024\uffd6\025" +
- "\uffd6\026\uffd6\027\uffd6\001\002\000\016\015\033\023\035" +
- "\024\040\025\034\026\037\027\036\001\002\000\020\015" +
- "\uffdc\016\uffdc\023\uffdc\024\uffdc\025\uffdc\026\uffdc\027\uffdc" +
- "\001\002\000\020\015\uffde\016\uffde\023\uffde\024\uffde\025" +
- "\uffde\026\uffde\027\uffde\001\002\000\016\006\024\012\027" +
- "\014\030\031\023\032\031\033\026\001\002\000\020\015" +
- "\uffdd\016\uffdd\023\uffdd\024\uffdd\025\uffdd\026\uffdd\027\uffdd" +
- "\001\002\000\020\015\uffdf\016\uffdf\023\uffdf\024\uffdf\025" +
- "\uffdf\026\uffdf\027\uffdf\001\002\000\016\006\024\012\027" +
- "\014\030\031\023\032\031\033\026\001\002\000\020\015" +
- "\uffe1\016\uffe1\023\035\024\uffe1\025\034\026\037\027\036" +
- "\001\002\000\020\015\uffe0\016\uffe0\023\uffe0\024\uffe0\025" +
- "\034\026\037\027\036\001\002\000\004\013\044\001\002" +
- "\000\020\015\uffda\016\uffda\023\uffda\024\uffda\025\uffda\026" +
- "\uffda\027\uffda\001\002\000\016\003\ufff4\004\ufff4\005\ufff4" +
- "\007\ufff4\013\ufff4\030\ufff4\001\002\000\006\005\020\007" +
- "\013\001\002\000\004\021\050\001\002\000\036\007\060" +
- "\010\070\011\063\012\071\013\055\014\066\015\052\016" +
- "\057\017\056\020\067\023\051\024\054\025\061\026\064" +
- "\001\002\000\010\016\uffe4\020\uffe4\022\uffe4\001\002\000" +
- "\010\016\uffe9\020\uffe9\022\uffe9\001\002\000\010\016\ufff0" +
- "\020\ufff0\022\075\001\002\000\010\016\uffe5\020\uffe5\022" +
- "\uffe5\001\002\000\010\016\uffeb\020\uffeb\022\uffeb\001\002" +
- "\000\010\016\uffe7\020\uffe7\022\uffe7\001\002\000\010\016" +
- "\uffe8\020\uffe8\022\uffe8\001\002\000\010\016\uffef\020\uffef" +
- "\022\uffef\001\002\000\010\016\uffe3\020\uffe3\022\uffe3\001" +
- "\002\000\004\016\074\001\002\000\010\016\uffed\020\uffed" +
- "\022\uffed\001\002\000\010\016\uffe2\020\uffe2\022\uffe2\001" +
- "\002\000\006\016\ufff2\020\072\001\002\000\010\016\uffea" +
- "\020\uffea\022\uffea\001\002\000\010\016\uffe6\020\uffe6\022" +
- "\uffe6\001\002\000\010\016\uffee\020\uffee\022\uffee\001\002" +
- "\000\010\016\uffec\020\uffec\022\uffec\001\002\000\036\007" +
- "\060\010\070\011\063\012\071\013\055\014\066\015\052" +
- "\016\057\017\056\020\067\023\051\024\054\025\061\026" +
- "\064\001\002\000\006\016\ufff1\020\ufff1\001\002\000\016" +
- "\003\ufff5\004\ufff5\005\ufff5\007\ufff5\013\ufff5\030\ufff5\001" +
- "\002\000\036\007\060\010\070\011\063\012\071\013\055" +
- "\014\066\015\052\016\057\017\056\020\067\023\051\024" +
- "\054\025\061\026\064\001\002\000\004\016\ufff3\001\002" +
- "\000\012\003\103\005\020\007\013\013\ufffd\001\002\000" +
- "\016\003\ufff7\004\ufff7\005\ufff7\007\ufff7\013\ufff7\030\ufff7" +
- "\001\002\000\016\003\ufff9\004\ufff9\005\ufff9\007\ufff9\013" +
- "\ufff9\030\ufff9\001\002\000\004\017\110\001\002\000\012" +
- "\003\uffd2\005\uffd2\007\uffd2\013\uffd2\001\002\000\012\003" +
- "\106\005\020\007\013\013\ufffe\001\002\000\012\003\uffd4" +
- "\005\uffd4\007\uffd4\013\uffd4\001\002\000\012\003\uffd3\005" +
- "\uffd3\007\uffd3\013\uffd3\001\002\000\012\003\uffd5\005\uffd5" +
- "\007\uffd5\013\uffd5\001\002\000\004\006\111\001\002\000" +
- "\004\016\112\001\002\000\012\003\uffd1\005\uffd1\007\uffd1" +
- "\013\uffd1\001\002\000\012\003\106\005\020\007\013\013" +
- "\ufffb\001\002\000\004\002\000\001\002" });
+ "\017\uffd1\021\uffd1\001\002\000\026\006\024\012\033\023" +
+ "\022\024\023\025\026\026\031\027\030\031\027\032\034" +
+ "\033\025\001\002\000\026\006\024\012\033\023\022\024" +
+ "\023\025\026\026\031\027\030\031\027\032\034\033\025" +
+ "\001\002\000\026\006\024\012\033\023\022\024\023\025" +
+ "\026\026\031\027\030\031\027\032\034\033\025\001\002" +
+ "\000\030\006\uffda\012\uffda\016\uffda\023\uffda\024\uffda\025" +
+ "\uffda\026\uffda\027\uffda\031\uffda\032\uffda\033\uffda\001\002" +
+ "\000\030\006\uffd9\012\uffd9\016\uffd9\023\uffd9\024\uffd9\025" +
+ "\uffd9\026\uffd9\027\uffd9\031\uffd9\032\uffd9\033\uffd9\001\002" +
+ "\000\026\006\024\012\033\023\022\024\023\025\026\026" +
+ "\031\027\030\031\027\032\034\033\025\001\002\000\030" +
+ "\006\uffd8\012\uffd8\016\uffd8\023\uffd8\024\uffd8\025\uffd8\026" +
+ "\uffd8\027\uffd8\031\uffd8\032\uffd8\033\uffd8\001\002\000\026" +
+ "\006\024\012\033\023\022\024\023\025\026\026\031\027" +
+ "\030\031\027\032\034\033\025\001\002\000\026\006\024" +
+ "\012\033\023\022\024\023\025\026\026\031\027\030\031" +
+ "\027\032\034\033\025\001\002\000\004\016\040\001\002" +
+ "\000\004\005\036\001\002\000\030\006\uffd7\012\uffd7\016" +
+ "\uffd7\023\uffd7\024\uffd7\025\uffd7\026\uffd7\027\uffd7\031\uffd7" +
+ "\032\uffd7\033\uffd7\001\002\000\030\006\uffdc\012\uffdc\016" +
+ "\uffdc\023\uffdc\024\uffdc\025\uffdc\026\uffdc\027\uffdc\031\uffdc" +
+ "\032\uffdc\033\uffdc\001\002\000\004\013\037\001\002\000" +
+ "\030\006\uffdb\012\uffdb\016\uffdb\023\uffdb\024\uffdb\025\uffdb" +
+ "\026\uffdb\027\uffdb\031\uffdb\032\uffdb\033\uffdb\001\002\000" +
+ "\016\003\ufff4\004\ufff4\005\ufff4\007\ufff4\013\ufff4\030\ufff4" +
+ "\001\002\000\030\006\uffdf\012\uffdf\016\uffdf\023\uffdf\024" +
+ "\uffdf\025\uffdf\026\uffdf\027\uffdf\031\uffdf\032\uffdf\033\uffdf" +
+ "\001\002\000\030\006\uffdd\012\uffdd\016\uffdd\023\uffdd\024" +
+ "\uffdd\025\uffdd\026\uffdd\027\uffdd\031\uffdd\032\uffdd\033\uffdd" +
+ "\001\002\000\030\006\uffde\012\uffde\016\uffde\023\uffde\024" +
+ "\uffde\025\uffde\026\uffde\027\uffde\031\uffde\032\uffde\033\uffde" +
+ "\001\002\000\026\006\024\012\033\023\022\024\023\025" +
+ "\026\026\031\027\030\031\027\032\034\033\025\001\002" +
+ "\000\030\006\uffe1\012\uffe1\016\uffe1\023\uffe1\024\uffe1\025" +
+ "\uffe1\026\uffe1\027\uffe1\031\uffe1\032\uffe1\033\uffe1\001\002" +
+ "\000\026\006\024\012\033\023\022\024\023\025\026\026" +
+ "\031\027\030\031\027\032\034\033\025\001\002\000\030" +
+ "\006\uffe0\012\uffe0\016\uffe0\023\uffe0\024\uffe0\025\uffe0\026" +
+ "\uffe0\027\uffe0\031\uffe0\032\uffe0\033\uffe0\001\002\000\006" +
+ "\005\020\007\013\001\002\000\004\021\052\001\002\000" +
+ "\036\007\062\010\072\011\065\012\073\013\057\014\070" +
+ "\015\054\016\061\017\060\020\071\023\053\024\056\025" +
+ "\063\026\066\001\002\000\010\016\uffe4\020\uffe4\022\uffe4" +
+ "\001\002\000\010\016\uffe9\020\uffe9\022\uffe9\001\002\000" +
+ "\010\016\ufff0\020\ufff0\022\077\001\002\000\010\016\uffe5" +
+ "\020\uffe5\022\uffe5\001\002\000\010\016\uffeb\020\uffeb\022" +
+ "\uffeb\001\002\000\010\016\uffe7\020\uffe7\022\uffe7\001\002" +
+ "\000\010\016\uffe8\020\uffe8\022\uffe8\001\002\000\010\016" +
+ "\uffef\020\uffef\022\uffef\001\002\000\010\016\uffe3\020\uffe3" +
+ "\022\uffe3\001\002\000\004\016\076\001\002\000\010\016" +
+ "\uffed\020\uffed\022\uffed\001\002\000\010\016\uffe2\020\uffe2" +
+ "\022\uffe2\001\002\000\006\016\ufff2\020\074\001\002\000" +
+ "\010\016\uffea\020\uffea\022\uffea\001\002\000\010\016\uffe6" +
+ "\020\uffe6\022\uffe6\001\002\000\010\016\uffee\020\uffee\022" +
+ "\uffee\001\002\000\010\016\uffec\020\uffec\022\uffec\001\002" +
+ "\000\036\007\062\010\072\011\065\012\073\013\057\014" +
+ "\070\015\054\016\061\017\060\020\071\023\053\024\056" +
+ "\025\063\026\066\001\002\000\006\016\ufff1\020\ufff1\001" +
+ "\002\000\016\003\ufff5\004\ufff5\005\ufff5\007\ufff5\013\ufff5" +
+ "\030\ufff5\001\002\000\036\007\062\010\072\011\065\012" +
+ "\073\013\057\014\070\015\054\016\061\017\060\020\071" +
+ "\023\053\024\056\025\063\026\066\001\002\000\004\016" +
+ "\ufff3\001\002\000\012\003\105\005\020\007\013\013\ufffd" +
+ "\001\002\000\016\003\ufff7\004\ufff7\005\ufff7\007\ufff7\013" +
+ "\ufff7\030\ufff7\001\002\000\016\003\ufff9\004\ufff9\005\ufff9" +
+ "\007\ufff9\013\ufff9\030\ufff9\001\002\000\004\017\112\001" +
+ "\002\000\012\003\uffd3\005\uffd3\007\uffd3\013\uffd3\001\002" +
+ "\000\012\003\110\005\020\007\013\013\ufffe\001\002\000" +
+ "\012\003\uffd5\005\uffd5\007\uffd5\013\uffd5\001\002\000\012" +
+ "\003\uffd4\005\uffd4\007\uffd4\013\uffd4\001\002\000\012\003" +
+ "\uffd6\005\uffd6\007\uffd6\013\uffd6\001\002\000\004\006\113" +
+ "\001\002\000\004\016\114\001\002\000\012\003\uffd2\005" +
+ "\uffd2\007\uffd2\013\uffd2\001\002\000\012\003\110\005\020" +
+ "\007\013\013\ufffb\001\002\000\004\002\000\001\002" });
/** Access to parse-action table. */
public short[][] action_table() {return _action_table;}
@@ -144,34 +157,36 @@ public final Class getSymbolContainer() {
/** reduce_goto
table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
- "\000\112\000\004\002\004\001\001\000\012\003\006\004" +
+ "\000\114\000\004\002\004\001\001\000\012\003\006\004" +
"\011\005\016\015\014\001\001\000\002\001\001\000\002" +
- "\001\001\000\002\001\001\000\010\006\112\007\104\015" +
- "\101\001\001\000\002\001\001\000\006\005\100\015\014" +
+ "\001\001\000\002\001\001\000\010\006\114\007\106\015" +
+ "\103\001\001\000\002\001\001\000\006\005\102\015\014" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
- "\000\006\012\021\013\024\001\001\000\002\001\001\000" +
+ "\000\006\012\031\013\034\001\001\000\006\012\045\013" +
+ "\034\001\001\000\006\012\043\013\034\001\001\000\002" +
+ "\001\001\000\002\001\001\000\006\012\042\013\034\001" +
+ "\001\000\002\001\001\000\006\012\041\013\034\001\001" +
+ "\000\006\012\040\013\034\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
- "\001\001\000\002\001\001\000\006\012\031\013\024\001" +
- "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
- "\000\002\001\001\000\006\012\041\013\024\001\001\000" +
- "\002\001\001\000\002\001\001\000\006\012\040\013\024" +
- "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
- "\001\000\002\001\001\000\002\001\001\000\004\015\046" +
- "\001\001\000\002\001\001\000\010\010\061\011\064\014" +
- "\052\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
+ "\001\000\002\001\001\000\002\001\001\000\006\012\044" +
+ "\013\034\001\001\000\002\001\001\000\006\012\046\013" +
+ "\034\001\001\000\002\001\001\000\004\015\050\001\001" +
+ "\000\002\001\001\000\010\010\063\011\066\014\054\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
- "\001\001\000\002\001\001\000\004\014\072\001\001\000" +
- "\002\001\001\000\002\001\001\000\004\014\075\001\001" +
- "\000\002\001\001\000\010\006\103\007\104\015\101\001" +
+ "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
- "\000\002\001\001\000\006\007\106\015\101\001\001\000" +
+ "\000\002\001\001\000\004\014\074\001\001\000\002\001" +
+ "\001\000\002\001\001\000\004\014\077\001\001\000\002" +
+ "\001\001\000\010\006\105\007\106\015\103\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
- "\001\001\000\002\001\001\000\002\001\001\000\006\007" +
- "\106\015\101\001\001\000\002\001\001" });
+ "\001\001\000\006\007\110\015\103\001\001\000\002\001" +
+ "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
+ "\000\002\001\001\000\002\001\001\000\006\007\110\015" +
+ "\103\001\001\000\002\001\001" });
/** Access to reduce_goto
table. */
public short[][] reduce_table() {return _reduce_table;}
@@ -667,12 +682,12 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 32: // OPERATION ::= OPERATION TK_or OPERATION
+ case 32: // OPERATION ::= TK_or OPERATION OPERATION
{
Node RESULT =null;
- int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
- int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
- Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
+ int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
+ int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
+ Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int op2left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
int op2right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
Node op2 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
@@ -682,12 +697,12 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 33: // OPERATION ::= OPERATION TK_concat OPERATION
+ case 33: // OPERATION ::= TK_concat OPERATION OPERATION
{
Node RESULT =null;
- int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).left;
- int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)).right;
- Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-2)).value;
+ int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
+ int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
+ Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
int op2left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
int op2right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
Node op2 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
@@ -697,67 +712,55 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 34: // OPERATION ::= OPERATION TK_kleene
+ case 34: // OPERATION ::= TK_kleene OPERATION
{
Node RESULT =null;
- int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
- int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
- Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
+ int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
+ int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
+ Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
RESULT = buildTree("*",op1,null,true,Type.KLEENE);
CUP$Parser$result = parser.getSymbolFactory().newSymbol("OPERATION",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 35: // OPERATION ::= OPERATION TK_positive
+ case 35: // OPERATION ::= TK_positive OPERATION
{
Node RESULT =null;
- int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
- int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
- Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
+ int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
+ int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
+ Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
RESULT = buildTree("+",op1,null,op1.anulable,Type.POSITIVE);
CUP$Parser$result = parser.getSymbolFactory().newSymbol("OPERATION",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 36: // OPERATION ::= OPERATION TK_optional
+ case 36: // OPERATION ::= TK_optional OPERATION
{
Node RESULT =null;
- int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
- int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
- Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
+ int op1left = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
+ int op1right = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
+ Node op1 = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
RESULT = buildTree("?",op1,null,true,Type.OPTIONAL);
CUP$Parser$result = parser.getSymbolFactory().newSymbol("OPERATION",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 37: // OPERATION ::= TK_lpar OPERATION TK_rpar
- {
- Node RESULT =null;
- int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
- int opright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right;
- Node op = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value;
- RESULT = op;
- CUP$Parser$result = parser.getSymbolFactory().newSymbol("OPERATION",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
- }
- return CUP$Parser$result;
-
- /*. . . . . . . . . . . . . . . . . . . .*/
- case 38: // OPERATION ::= OPERAND
+ case 37: // OPERATION ::= OPERAND
{
Node RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
int opright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right;
Node op = (Node)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value;
- RESULT = op;
+ RESULT = op;
CUP$Parser$result = parser.getSymbolFactory().newSymbol("OPERATION",8, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT);
}
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 39: // OPERAND ::= TK_lbr TK_id TK_rbr
+ case 38: // OPERAND ::= TK_lbr TK_id TK_rbr
{
Node RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left;
@@ -769,7 +772,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 40: // OPERAND ::= TK_str
+ case 39: // OPERAND ::= TK_str
{
Node RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
@@ -781,7 +784,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 41: // OPERAND ::= TK_newline
+ case 40: // OPERAND ::= TK_newline
{
Node RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
@@ -793,7 +796,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 42: // OPERAND ::= TK_singlequ
+ case 41: // OPERAND ::= TK_singlequ
{
Node RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
@@ -805,7 +808,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 43: // OPERAND ::= TK_doublequ
+ case 42: // OPERAND ::= TK_doublequ
{
Node RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
@@ -817,7 +820,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 44: // EVALUATIONS ::= EVALUATIONS EVALUATION
+ case 43: // EVALUATIONS ::= EVALUATIONS EVALUATION
{
Object RESULT =null;
@@ -826,7 +829,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 45: // EVALUATIONS ::= EVALUATION
+ case 44: // EVALUATIONS ::= EVALUATION
{
Object RESULT =null;
@@ -835,7 +838,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 46: // EVALUATIONS ::= EVALUATIONS error
+ case 45: // EVALUATIONS ::= EVALUATIONS error
{
Object RESULT =null;
@@ -844,7 +847,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 47: // EVALUATIONS ::= error
+ case 46: // EVALUATIONS ::= error
{
Object RESULT =null;
@@ -853,7 +856,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 48: // EVALUATION ::= IDS TK_colon TK_str TK_semicolon
+ case 47: // EVALUATION ::= IDS TK_colon TK_str TK_semicolon
{
Object RESULT =null;
int expleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-3)).left;
@@ -868,7 +871,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 49: // IDS ::= TK_id
+ case 48: // IDS ::= TK_id
{
String RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
@@ -880,7 +883,7 @@ class CUP$Parser$actions {
return CUP$Parser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 50: // IDS ::= TK_char
+ case 49: // IDS ::= TK_char
{
String RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left;
diff --git a/src/Language/ParserF.cup b/src/Language/ParserF.cup
index 0d4f946..10d14c5 100644
--- a/src/Language/ParserF.cup
+++ b/src/Language/ParserF.cup
@@ -37,9 +37,6 @@ non terminal String CHARACTER;
non terminal String IDS;
/* 5. Precedencias */
-precedence left TK_or;
-precedence left TK_concat;
-precedence left TK_positive, TK_kleene, TK_optional;
/* 6. Gramatica Libre de Contexto */
@@ -93,12 +90,11 @@ CHARACTER ::=
TK_kleene :ch {:RESULT = ch;:} ;
OPERATION ::=
- OPERATION TK_or :op {:painter.OPERATOR(opleft,opright);:} OPERATION |
- OPERATION TK_concat :op {:painter.OPERATOR(opleft,opright);:} OPERATION |
- OPERATION TK_kleene :op {:painter.OPERATOR(opleft,opright);:} |
- OPERATION TK_positive:op {:painter.OPERATOR(opleft,opright);:} |
- OPERATION TK_optional:op {:painter.OPERATOR(opleft,opright);:} |
- TK_lpar OPERATION TK_rpar |
+ TK_or :op {:painter.OPERATOR(opleft,opright);:} OPERATION OPERATION |
+ TK_concat :op {:painter.OPERATOR(opleft,opright);:} OPERATION OPERATION |
+ TK_kleene :op {:painter.OPERATOR(opleft,opright);:} OPERATION |
+ TK_positive:op {:painter.OPERATOR(opleft,opright);:} OPERATION |
+ TK_optional:op {:painter.OPERATOR(opleft,opright);:} OPERATION |
OPERAND ;
OPERAND ::=
diff --git a/src/Language/ParserF.java b/src/Language/ParserF.java
index c5bc0eb..94f4e9c 100644
--- a/src/Language/ParserF.java
+++ b/src/Language/ParserF.java
@@ -32,7 +32,7 @@ public final Class getSymbolContainer() {
/** Production table. */
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
- "\000\074\000\002\002\004\000\002\002\005\000\002\002" +
+ "\000\076\000\002\002\004\000\002\002\005\000\002\002" +
"\004\000\002\003\005\000\002\003\004\000\002\003\003" +
"\000\002\003\004\000\002\003\003\000\002\010\003\000" +
"\002\004\004\000\002\004\003\000\002\004\004\000\002" +
@@ -44,13 +44,14 @@ public final Class getSymbolContainer() {
"\003\000\002\015\003\000\002\015\003\000\002\015\003" +
"\000\002\015\003\000\002\015\003\000\002\015\003\000" +
"\002\015\003\000\002\015\003\000\002\023\002\000\002" +
- "\013\006\000\002\024\002\000\002\013\006\000\002\013" +
- "\004\000\002\013\004\000\002\013\004\000\002\013\005" +
- "\000\002\013\003\000\002\014\005\000\002\014\003\000" +
- "\002\014\003\000\002\014\003\000\002\014\003\000\002" +
- "\006\004\000\002\006\003\000\002\006\004\000\002\006" +
- "\003\000\002\025\002\000\002\026\002\000\002\007\010" +
- "\000\002\016\003\000\002\016\003" });
+ "\013\006\000\002\024\002\000\002\013\006\000\002\025" +
+ "\002\000\002\013\005\000\002\026\002\000\002\013\005" +
+ "\000\002\027\002\000\002\013\005\000\002\013\003\000" +
+ "\002\014\005\000\002\014\003\000\002\014\003\000\002" +
+ "\014\003\000\002\014\003\000\002\006\004\000\002\006" +
+ "\003\000\002\006\004\000\002\006\003\000\002\030\002" +
+ "\000\002\031\002\000\002\007\010\000\002\016\003\000" +
+ "\002\016\003" });
/** Access to production table. */
public short[][] production_table() {return _production_table;}
@@ -58,84 +59,104 @@ public final Class getSymbolContainer() {
/** Parse-action table. */
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
- "\000\123\000\004\012\004\001\002\000\016\003\017\004" +
+ "\000\130\000\004\012\004\001\002\000\016\003\017\004" +
"\015\005\021\007\014\013\012\030\011\001\002\000\004" +
"\002\006\001\002\000\004\002\001\001\002\000\012\003" +
- "\112\005\021\007\014\013\ufffa\001\002\000\004\013\124" +
+ "\117\005\021\007\014\013\ufffa\001\002\000\004\013\131" +
"\001\002\000\012\003\ufff9\005\ufff9\007\ufff9\013\ufff9\001" +
- "\002\000\004\002\uffff\001\002\000\016\003\107\004\015" +
+ "\002\000\004\002\uffff\001\002\000\016\003\114\004\015" +
"\005\021\007\014\013\ufffc\030\011\001\002\000\010\013" +
- "\uffc6\017\uffc6\021\uffc6\001\002\000\004\017\ufff4\001\002" +
+ "\uffc4\017\uffc4\021\uffc4\001\002\000\004\017\ufff4\001\002" +
"\000\004\021\ufff1\001\002\000\016\003\ufff5\004\ufff5\005" +
"\ufff5\007\ufff5\013\ufff5\030\ufff5\001\002\000\016\003\ufff7" +
"\004\ufff7\005\ufff7\007\ufff7\013\ufff7\030\ufff7\001\002\000" +
- "\010\013\uffc7\017\uffc7\021\uffc7\001\002\000\004\021\023" +
- "\001\002\000\016\006\026\012\027\014\030\031\025\032" +
- "\033\033\032\001\002\000\016\016\051\023\037\024\042" +
- "\025\036\026\040\027\041\001\002\000\020\015\uffd0\016" +
- "\uffd0\023\uffd0\024\uffd0\025\uffd0\026\uffd0\027\uffd0\001\002" +
- "\000\020\015\uffd2\016\uffd2\023\uffd2\024\uffd2\025\uffd2\026" +
- "\uffd2\027\uffd2\001\002\000\006\005\021\007\014\001\002" +
- "\000\016\006\026\012\027\014\030\031\025\032\033\033" +
- "\032\001\002\000\020\015\uffd4\016\uffd4\023\uffd4\024\uffd4" +
- "\025\uffd4\026\uffd4\027\uffd4\001\002\000\020\015\uffd1\016" +
- "\uffd1\023\uffd1\024\uffd1\025\uffd1\026\uffd1\027\uffd1\001\002" +
- "\000\020\015\uffcf\016\uffcf\023\uffcf\024\uffcf\025\uffcf\026" +
- "\uffcf\027\uffcf\001\002\000\016\015\035\023\037\024\042" +
- "\025\036\026\040\027\041\001\002\000\020\015\uffd5\016" +
- "\uffd5\023\uffd5\024\uffd5\025\uffd5\026\uffd5\027\uffd5\001\002" +
- "\000\020\015\uffd7\016\uffd7\023\uffd7\024\uffd7\025\uffd7\026" +
- "\uffd7\027\uffd7\001\002\000\016\006\uffda\012\uffda\014\uffda" +
- "\031\uffda\032\uffda\033\uffda\001\002\000\020\015\uffd8\016" +
- "\uffd8\023\uffd8\024\uffd8\025\uffd8\026\uffd8\027\uffd8\001\002" +
- "\000\020\015\uffd6\016\uffd6\023\uffd6\024\uffd6\025\uffd6\026" +
- "\uffd6\027\uffd6\001\002\000\016\006\uffdc\012\uffdc\014\uffdc" +
- "\031\uffdc\032\uffdc\033\uffdc\001\002\000\016\006\026\012" +
- "\027\014\030\031\025\032\033\033\032\001\002\000\020" +
- "\015\uffdb\016\uffdb\023\037\024\uffdb\025\036\026\040\027" +
- "\041\001\002\000\016\006\026\012\027\014\030\031\025" +
- "\032\033\033\032\001\002\000\020\015\uffd9\016\uffd9\023" +
- "\uffd9\024\uffd9\025\036\026\040\027\041\001\002\000\004" +
- "\013\050\001\002\000\020\015\uffd3\016\uffd3\023\uffd3\024" +
- "\uffd3\025\uffd3\026\uffd3\027\uffd3\001\002\000\016\003\ufff0" +
- "\004\ufff0\005\ufff0\007\ufff0\013\ufff0\030\ufff0\001\002\000" +
- "\004\017\053\001\002\000\006\005\021\007\014\001\002" +
- "\000\004\021\ufff3\001\002\000\004\021\056\001\002\000" +
- "\036\007\066\010\076\011\071\012\077\013\063\014\074" +
- "\015\060\016\065\017\064\020\075\023\057\024\062\025" +
- "\067\026\072\001\002\000\010\016\uffdf\020\uffdf\022\uffdf" +
+ "\010\013\uffc5\017\uffc5\021\uffc5\001\002\000\004\021\023" +
+ "\001\002\000\026\006\025\012\036\023\024\024\026\025" +
+ "\030\026\033\027\032\031\031\032\035\033\027\001\002" +
+ "\000\026\006\uffda\012\uffda\023\uffda\024\uffda\025\uffda\026" +
+ "\uffda\027\uffda\031\uffda\032\uffda\033\uffda\001\002\000\030" +
+ "\006\uffd0\012\uffd0\016\uffd0\023\uffd0\024\uffd0\025\uffd0\026" +
+ "\uffd0\027\uffd0\031\uffd0\032\uffd0\033\uffd0\001\002\000\026" +
+ "\006\uffdc\012\uffdc\023\uffdc\024\uffdc\025\uffdc\026\uffdc\027" +
+ "\uffdc\031\uffdc\032\uffdc\033\uffdc\001\002\000\030\006\uffcf" +
+ "\012\uffcf\016\uffcf\023\uffcf\024\uffcf\025\uffcf\026\uffcf\027" +
+ "\uffcf\031\uffcf\032\uffcf\033\uffcf\001\002\000\026\006\uffd6" +
+ "\012\uffd6\023\uffd6\024\uffd6\025\uffd6\026\uffd6\027\uffd6\031" +
+ "\uffd6\032\uffd6\033\uffd6\001\002\000\030\006\uffce\012\uffce" +
+ "\016\uffce\023\uffce\024\uffce\025\uffce\026\uffce\027\uffce\031" +
+ "\uffce\032\uffce\033\uffce\001\002\000\026\006\uffd4\012\uffd4" +
+ "\023\uffd4\024\uffd4\025\uffd4\026\uffd4\027\uffd4\031\uffd4\032" +
+ "\uffd4\033\uffd4\001\002\000\026\006\uffd8\012\uffd8\023\uffd8" +
+ "\024\uffd8\025\uffd8\026\uffd8\027\uffd8\031\uffd8\032\uffd8\033" +
+ "\uffd8\001\002\000\004\016\042\001\002\000\030\006\uffcd" +
+ "\012\uffcd\016\uffcd\023\uffcd\024\uffcd\025\uffcd\026\uffcd\027" +
+ "\uffcd\031\uffcd\032\uffcd\033\uffcd\001\002\000\006\005\021" +
+ "\007\014\001\002\000\030\006\uffd2\012\uffd2\016\uffd2\023" +
+ "\uffd2\024\uffd2\025\uffd2\026\uffd2\027\uffd2\031\uffd2\032\uffd2" +
+ "\033\uffd2\001\002\000\004\013\041\001\002\000\030\006" +
+ "\uffd1\012\uffd1\016\uffd1\023\uffd1\024\uffd1\025\uffd1\026\uffd1" +
+ "\027\uffd1\031\uffd1\032\uffd1\033\uffd1\001\002\000\016\003" +
+ "\ufff0\004\ufff0\005\ufff0\007\ufff0\013\ufff0\030\ufff0\001\002" +
+ "\000\026\006\025\012\036\023\024\024\026\025\030\026" +
+ "\033\027\032\031\031\032\035\033\027\001\002\000\030" +
+ "\006\uffd7\012\uffd7\016\uffd7\023\uffd7\024\uffd7\025\uffd7\026" +
+ "\uffd7\027\uffd7\031\uffd7\032\uffd7\033\uffd7\001\002\000\026" +
+ "\006\025\012\036\023\024\024\026\025\030\026\033\027" +
+ "\032\031\031\032\035\033\027\001\002\000\030\006\uffd3" +
+ "\012\uffd3\016\uffd3\023\uffd3\024\uffd3\025\uffd3\026\uffd3\027" +
+ "\uffd3\031\uffd3\032\uffd3\033\uffd3\001\002\000\026\006\025" +
+ "\012\036\023\024\024\026\025\030\026\033\027\032\031" +
+ "\031\032\035\033\027\001\002\000\030\006\uffd5\012\uffd5" +
+ "\016\uffd5\023\uffd5\024\uffd5\025\uffd5\026\uffd5\027\uffd5\031" +
+ "\uffd5\032\uffd5\033\uffd5\001\002\000\026\006\025\012\036" +
+ "\023\024\024\026\025\030\026\033\027\032\031\031\032" +
+ "\035\033\027\001\002\000\026\006\025\012\036\023\024" +
+ "\024\026\025\030\026\033\027\032\031\031\032\035\033" +
+ "\027\001\002\000\030\006\uffdb\012\uffdb\016\uffdb\023\uffdb" +
+ "\024\uffdb\025\uffdb\026\uffdb\027\uffdb\031\uffdb\032\uffdb\033" +
+ "\uffdb\001\002\000\026\006\025\012\036\023\024\024\026" +
+ "\025\030\026\033\027\032\031\031\032\035\033\027\001" +
+ "\002\000\026\006\025\012\036\023\024\024\026\025\030" +
+ "\026\033\027\032\031\031\032\035\033\027\001\002\000" +
+ "\030\006\uffd9\012\uffd9\016\uffd9\023\uffd9\024\uffd9\025\uffd9" +
+ "\026\uffd9\027\uffd9\031\uffd9\032\uffd9\033\uffd9\001\002\000" +
+ "\004\017\060\001\002\000\006\005\021\007\014\001\002" +
+ "\000\004\021\ufff3\001\002\000\004\021\063\001\002\000" +
+ "\036\007\073\010\103\011\076\012\104\013\070\014\101" +
+ "\015\065\016\072\017\071\020\102\023\064\024\067\025" +
+ "\074\026\077\001\002\000\010\016\uffdf\020\uffdf\022\uffdf" +
"\001\002\000\010\016\uffe4\020\uffe4\022\uffe4\001\002\000" +
"\010\016\uffeb\020\uffeb\022\uffef\001\002\000\010\016\uffe0" +
"\020\uffe0\022\uffe0\001\002\000\010\016\uffe6\020\uffe6\022" +
"\uffe6\001\002\000\010\016\uffe2\020\uffe2\022\uffe2\001\002" +
"\000\010\016\uffe3\020\uffe3\022\uffe3\001\002\000\010\016" +
"\uffea\020\uffea\022\uffea\001\002\000\010\016\uffde\020\uffde" +
- "\022\uffde\001\002\000\004\016\102\001\002\000\010\016" +
+ "\022\uffde\001\002\000\004\016\107\001\002\000\010\016" +
"\uffe8\020\uffe8\022\uffe8\001\002\000\010\016\uffdd\020\uffdd" +
- "\022\uffdd\001\002\000\006\016\uffed\020\100\001\002\000" +
+ "\022\uffdd\001\002\000\006\016\uffed\020\105\001\002\000" +
"\010\016\uffe5\020\uffe5\022\uffe5\001\002\000\010\016\uffe1" +
"\020\uffe1\022\uffe1\001\002\000\010\016\uffe9\020\uffe9\022" +
"\uffe9\001\002\000\010\016\uffe7\020\uffe7\022\uffe7\001\002" +
- "\000\036\007\066\010\076\011\071\012\077\013\063\014" +
- "\074\015\060\016\065\017\064\020\075\023\057\024\062" +
- "\025\067\026\072\001\002\000\006\016\uffec\020\uffec\001" +
+ "\000\036\007\073\010\103\011\076\012\104\013\070\014" +
+ "\101\015\065\016\072\017\071\020\102\023\064\024\067" +
+ "\025\074\026\077\001\002\000\006\016\uffec\020\uffec\001" +
"\002\000\016\003\ufff2\004\ufff2\005\ufff2\007\ufff2\013\ufff2" +
- "\030\ufff2\001\002\000\004\022\104\001\002\000\036\007" +
- "\066\010\076\011\071\012\077\013\063\014\074\015\060" +
- "\016\065\017\064\020\075\023\057\024\062\025\067\026" +
- "\072\001\002\000\004\016\uffee\001\002\000\012\003\112" +
+ "\030\ufff2\001\002\000\004\022\111\001\002\000\036\007" +
+ "\073\010\103\011\076\012\104\013\070\014\101\015\065" +
+ "\016\072\017\071\020\102\023\064\024\067\025\074\026" +
+ "\077\001\002\000\004\016\uffee\001\002\000\012\003\117" +
"\005\021\007\014\013\ufffd\001\002\000\016\003\ufff6\004" +
"\ufff6\005\ufff6\007\ufff6\013\ufff6\030\ufff6\001\002\000\016" +
"\003\ufff8\004\ufff8\005\ufff8\007\ufff8\013\ufff8\030\ufff8\001" +
- "\002\000\004\017\uffca\001\002\000\012\003\uffcb\005\uffcb" +
- "\007\uffcb\013\uffcb\001\002\000\012\003\115\005\021\007" +
- "\014\013\ufffe\001\002\000\012\003\uffcd\005\uffcd\007\uffcd" +
- "\013\uffcd\001\002\000\012\003\uffcc\005\uffcc\007\uffcc\013" +
- "\uffcc\001\002\000\012\003\uffce\005\uffce\007\uffce\013\uffce" +
- "\001\002\000\004\017\120\001\002\000\004\006\121\001" +
- "\002\000\004\016\uffc9\001\002\000\004\016\123\001\002" +
- "\000\012\003\uffc8\005\uffc8\007\uffc8\013\uffc8\001\002\000" +
- "\004\002\000\001\002\000\012\003\115\005\021\007\014" +
+ "\002\000\004\017\uffc8\001\002\000\012\003\uffc9\005\uffc9" +
+ "\007\uffc9\013\uffc9\001\002\000\012\003\122\005\021\007" +
+ "\014\013\ufffe\001\002\000\012\003\uffcb\005\uffcb\007\uffcb" +
+ "\013\uffcb\001\002\000\012\003\uffca\005\uffca\007\uffca\013" +
+ "\uffca\001\002\000\012\003\uffcc\005\uffcc\007\uffcc\013\uffcc" +
+ "\001\002\000\004\017\125\001\002\000\004\006\126\001" +
+ "\002\000\004\016\uffc7\001\002\000\004\016\130\001\002" +
+ "\000\012\003\uffc6\005\uffc6\007\uffc6\013\uffc6\001\002\000" +
+ "\004\002\000\001\002\000\012\003\122\005\021\007\014" +
"\013\ufffb\001\002" });
/** Access to parse-action table. */
@@ -144,39 +165,42 @@ public final Class getSymbolContainer() {
/** reduce_goto
table. */
protected static final short[][] _reduce_table =
unpackFromStrings(new String[] {
- "\000\123\000\004\002\004\001\001\000\014\003\007\004" +
+ "\000\130\000\004\002\004\001\001\000\014\003\007\004" +
"\012\005\017\010\006\016\015\001\001\000\002\001\001" +
- "\000\002\001\001\000\010\006\124\007\113\016\110\001" +
+ "\000\002\001\001\000\010\006\131\007\120\016\115\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
- "\000\010\005\107\010\105\016\015\001\001\000\002\001" +
- "\001\000\004\017\051\001\001\000\004\021\021\001\001" +
+ "\000\010\005\114\010\112\016\015\001\001\000\002\001" +
+ "\001\000\004\017\056\001\001\000\004\021\021\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
- "\002\001\001\000\006\013\023\014\030\001\001\000\002" +
- "\001\001\000\002\001\001\000\002\001\001\000\004\016" +
- "\046\001\001\000\006\013\033\014\030\001\001\000\002" +
+ "\002\001\001\000\006\013\033\014\036\001\001\000\004" +
+ "\024\053\001\001\000\002\001\001\000\004\023\050\001" +
+ "\001\000\002\001\001\000\004\026\046\001\001\000\002" +
+ "\001\001\000\004\027\044\001\001\000\004\025\042\001" +
+ "\001\000\002\001\001\000\002\001\001\000\004\016\037" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
- "\001\000\002\001\001\000\002\001\001\000\004\024\044" +
- "\001\001\000\002\001\001\000\002\001\001\000\004\023" +
- "\042\001\001\000\006\013\043\014\030\001\001\000\002" +
- "\001\001\000\006\013\045\014\030\001\001\000\002\001" +
- "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
- "\000\002\001\001\000\004\016\053\001\001\000\004\020" +
- "\054\001\001\000\002\001\001\000\010\011\067\012\072" +
- "\015\060\001\001\000\002\001\001\000\002\001\001\000" +
- "\004\022\102\001\001\000\002\001\001\000\002\001\001" +
- "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
+ "\001\000\002\001\001\000\006\013\043\014\036\001\001" +
+ "\000\002\001\001\000\006\013\045\014\036\001\001\000" +
+ "\002\001\001\000\006\013\047\014\036\001\001\000\002" +
+ "\001\001\000\006\013\051\014\036\001\001\000\006\013" +
+ "\052\014\036\001\001\000\002\001\001\000\006\013\054" +
+ "\014\036\001\001\000\006\013\055\014\036\001\001\000" +
+ "\002\001\001\000\002\001\001\000\004\016\060\001\001" +
+ "\000\004\020\061\001\001\000\002\001\001\000\010\011" +
+ "\074\012\077\015\065\001\001\000\002\001\001\000\002" +
+ "\001\001\000\004\022\107\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
- "\001\000\002\001\001\000\002\001\001\000\004\015\100" +
+ "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
+ "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
+ "\004\015\105\001\001\000\002\001\001\000\002\001\001" +
+ "\000\002\001\001\000\004\015\111\001\001\000\002\001" +
+ "\001\000\010\006\117\007\120\016\115\001\001\000\002" +
+ "\001\001\000\002\001\001\000\004\030\123\001\001\000" +
+ "\002\001\001\000\006\007\122\016\115\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
- "\001\000\004\015\104\001\001\000\002\001\001\000\010" +
- "\006\112\007\113\016\110\001\001\000\002\001\001\000" +
- "\002\001\001\000\004\025\116\001\001\000\002\001\001" +
- "\000\006\007\115\016\110\001\001\000\002\001\001\000" +
- "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
- "\001\001\000\004\026\121\001\001\000\002\001\001\000" +
- "\002\001\001\000\002\001\001\000\006\007\115\016\110" +
- "\001\001" });
+ "\001\000\002\001\001\000\004\031\126\001\001\000\002" +
+ "\001\001\000\002\001\001\000\002\001\001\000\006\007" +
+ "\122\016\115\001\001" });
/** Access to reduce_goto
table. */
public short[][] reduce_table() {return _reduce_table;}
@@ -691,14 +715,14 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 38: // OPERATION ::= OPERATION TK_or NT$4 OPERATION
+ case 38: // OPERATION ::= TK_or NT$4 OPERATION OPERATION
{
Object RESULT =null;
// propagate RESULT from NT$4
- RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).value;
- int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).left;
- int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).right;
- String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
+ RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
+ int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).left;
+ int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).right;
+ String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).value;
CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
@@ -717,66 +741,99 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 40: // OPERATION ::= OPERATION TK_concat NT$5 OPERATION
+ case 40: // OPERATION ::= TK_concat NT$5 OPERATION OPERATION
{
Object RESULT =null;
// propagate RESULT from NT$5
- RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).value;
- int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).left;
- int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).right;
- String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
+ RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
+ int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).left;
+ int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).right;
+ String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).value;
CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 41: // OPERATION ::= OPERATION TK_kleene
+ case 41: // NT$6 ::=
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).right;
String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.peek()).value;
- painter.OPERATOR(opleft,opright);
- CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+painter.OPERATOR(opleft,opright);
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$6",19, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+ }
+ return CUP$ParserF$result;
+
+ /*. . . . . . . . . . . . . . . . . . . .*/
+ case 42: // OPERATION ::= TK_kleene NT$6 OPERATION
+ {
+ Object RESULT =null;
+ // propagate RESULT from NT$6
+ RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).value;
+ int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).left;
+ int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).right;
+ String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
+
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 42: // OPERATION ::= OPERATION TK_positive
+ case 43: // NT$7 ::=
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).right;
String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.peek()).value;
- painter.OPERATOR(opleft,opright);
- CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+painter.OPERATOR(opleft,opright);
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$7",20, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+ }
+ return CUP$ParserF$result;
+
+ /*. . . . . . . . . . . . . . . . . . . .*/
+ case 44: // OPERATION ::= TK_positive NT$7 OPERATION
+ {
+ Object RESULT =null;
+ // propagate RESULT from NT$7
+ RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).value;
+ int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).left;
+ int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).right;
+ String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
+
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 43: // OPERATION ::= OPERATION TK_optional
+ case 45: // NT$8 ::=
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).right;
String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.peek()).value;
- painter.OPERATOR(opleft,opright);
- CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+painter.OPERATOR(opleft,opright);
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$8",21, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 44: // OPERATION ::= TK_lpar OPERATION TK_rpar
+ case 46: // OPERATION ::= TK_optional NT$8 OPERATION
{
Object RESULT =null;
+ // propagate RESULT from NT$8
+ RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).value;
+ int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).left;
+ int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).right;
+ String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERATION",9, ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 45: // OPERATION ::= OPERAND
+ case 47: // OPERATION ::= OPERAND
{
Object RESULT =null;
@@ -785,7 +842,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 46: // OPERAND ::= TK_lbr IDS TK_rbr
+ case 48: // OPERAND ::= TK_lbr IDS TK_rbr
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).left;
@@ -797,19 +854,19 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 47: // OPERAND ::= TK_str
+ case 49: // OPERAND ::= TK_str
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
int opright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).right;
String op = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.peek()).value;
- painter.STRING(opleft,opright);
+ painter.STRING(opleft,opright);
CUP$ParserF$result = parser.getSymbolFactory().newSymbol("OPERAND",10, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 48: // OPERAND ::= TK_newline
+ case 50: // OPERAND ::= TK_newline
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
@@ -821,7 +878,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 49: // OPERAND ::= TK_singlequ
+ case 51: // OPERAND ::= TK_singlequ
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
@@ -833,7 +890,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 50: // OPERAND ::= TK_doublequ
+ case 52: // OPERAND ::= TK_doublequ
{
Object RESULT =null;
int opleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
@@ -845,7 +902,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 51: // EVALUATIONS ::= EVALUATIONS EVALUATION
+ case 53: // EVALUATIONS ::= EVALUATIONS EVALUATION
{
Object RESULT =null;
@@ -854,7 +911,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 52: // EVALUATIONS ::= EVALUATION
+ case 54: // EVALUATIONS ::= EVALUATION
{
Object RESULT =null;
@@ -863,7 +920,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 53: // EVALUATIONS ::= EVALUATIONS error
+ case 55: // EVALUATIONS ::= EVALUATIONS error
{
Object RESULT =null;
@@ -872,7 +929,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 54: // EVALUATIONS ::= error
+ case 56: // EVALUATIONS ::= error
{
Object RESULT =null;
@@ -881,19 +938,19 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 55: // NT$6 ::=
+ case 57: // NT$9 ::=
{
Object RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
int idright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).right;
String id = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.peek()).value;
painter.REGEXUSE(idleft,idright);
- CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$6",19, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$9",22, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 56: // NT$7 ::=
+ case 58: // NT$10 ::=
{
Object RESULT =(Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-2)).value;
int idleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-3)).left;
@@ -903,15 +960,15 @@ class CUP$ParserF$actions {
int strright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).right;
String str = (String)((java_cup.runtime.Symbol) CUP$ParserF$stack.peek()).value;
painter.STRING(strleft,strright);
- CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$7",20, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
+ CUP$ParserF$result = parser.getSymbolFactory().newSymbol("NT$10",23, ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()), RESULT);
}
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 57: // EVALUATION ::= IDS NT$6 TK_colon TK_str NT$7 TK_semicolon
+ case 59: // EVALUATION ::= IDS NT$9 TK_colon TK_str NT$10 TK_semicolon
{
Object RESULT =null;
- // propagate RESULT from NT$7
+ // propagate RESULT from NT$10
RESULT = (Object) ((java_cup.runtime.Symbol) CUP$ParserF$stack.elementAt(CUP$ParserF$top-1)).value;
int idleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-5)).left;
int idright = ((java_cup.runtime.Symbol)CUP$ParserF$stack.elementAt(CUP$ParserF$top-5)).right;
@@ -925,7 +982,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 58: // IDS ::= TK_id
+ case 60: // IDS ::= TK_id
{
String RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;
@@ -937,7 +994,7 @@ class CUP$ParserF$actions {
return CUP$ParserF$result;
/*. . . . . . . . . . . . . . . . . . . .*/
- case 59: // IDS ::= TK_char
+ case 61: // IDS ::= TK_char
{
String RESULT =null;
int idleft = ((java_cup.runtime.Symbol)CUP$ParserF$stack.peek()).left;