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());
+      }
+    }
   }
 
 }


Reply via email to