Author: pkluegl
Date: Tue Nov 5 15:30:09 2019
New Revision: 1869410
URL: http://svn.apache.org/viewvc?rev=1869410&view=rev
Log:
UIMA-5431: fixed ordering of rule jump ids of IDE parser
Modified:
uima/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRule.java
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaStatement.java
Modified:
uima/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1869410&r1=1869409&r2=1869410&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
(original)
+++
uima/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
Tue Nov 5 15:30:09 2019
@@ -740,12 +740,11 @@ options {
as = rawActions s = SEMI
{stmt = scriptFactory.createImplicitRule(as, s);}
|
+ {stmt = scriptFactory.createRule(null, null, true);}
elements=ruleElementsRoot
- {stmt = scriptFactory.createRule(elements, null, false);}
+ {stmt.setExpressions(elements);}
s = SEMI
- {stmt = scriptFactory.createRule(elements, s);}
-
-
+ {stmt.setEnd(((CommonToken)s).getStopIndex()+1);}
;
regexpRule returns [RutaRule stmt = null]
Modified:
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRule.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRule.java?rev=1869410&r1=1869409&r2=1869410&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRule.java
(original)
+++
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaRule.java
Tue Nov 5 15:30:09 2019
@@ -32,6 +32,7 @@ public class RutaRule extends RutaStatem
this.id = id;
}
+ @Override
public String toString() {
return this.getClass().getSimpleName() + " : " + super.toString();
}
@@ -39,4 +40,5 @@ public class RutaRule extends RutaStatem
public int getId() {
return id;
}
+
}
Modified:
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaStatement.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaStatement.java?rev=1869410&r1=1869409&r2=1869410&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaStatement.java
(original)
+++
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaStatement.java
Tue Nov 5 15:30:09 2019
@@ -31,22 +31,12 @@ import org.eclipse.dltk.ast.statements.S
import org.eclipse.dltk.utils.CorePrinter;
public class RutaStatement extends Statement {
+
private List<Expression> expressions;
public RutaStatement(List<Expression> expressions) {
- if (!expressions.isEmpty()) {
- // First
- Expression first = expressions.get(0);
- if (first != null) {
- this.setStart(first.sourceStart());
- }
- // Last
- Expression last = expressions.get(expressions.size() - 1);
- if (last != null) {
- this.setEnd(last.sourceEnd());
- }
- }
- this.expressions = expressions;
+
+ setExpressions(expressions);
}
public RutaStatement(int start, int end, List<Expression> expressions) {
@@ -54,7 +44,7 @@ public class RutaStatement extends State
if (expressions == null) {
this.expressions = new ArrayList<Expression>();
} else {
- this.expressions = expressions;
+ setExpressions(expressions);
}
}
@@ -124,6 +114,23 @@ public class RutaStatement extends State
public void setExpressions(List<Expression> asList) {
this.expressions = asList;
+ updateBoundaries();
+ }
+
+ private void updateBoundaries() {
+
+ if (expressions != null && !expressions.isEmpty()) {
+ // First
+ Expression first = expressions.get(0);
+ if (first != null) {
+ this.setStart(first.sourceStart());
+ }
+ // Last
+ Expression last = expressions.get(expressions.size() - 1);
+ if (last != null) {
+ this.setEnd(last.sourceEnd());
+ }
+ }
}
}