You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2016/09/01 07:28:52 UTC

svn commit: r1758716 - in /uima/ruta/trunk: ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/ ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/ ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/

Author: pkluegl
Date: Thu Sep  1 07:28:52 2016
New Revision: 1758716

URL: http://svn.apache.org/viewvc?rev=1758716&view=rev
Log:
UIMA-5090
- fixed ide parser

Modified:
    uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java
    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/ExpressionFactory.java

Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java?rev=1758716&r1=1758715&r2=1758716&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/validator/LanguageCheckerVisitor.java Thu Sep  1 07:28:52 2016
@@ -614,6 +614,12 @@ public class LanguageCheckerVisitor exte
         return false;
       }
       RutaVariableReference ref = (RutaVariableReference) s;
+      if(ref.getType() == RutaTypeConstants.RUTA_TYPE_WT || ref.getType() == RutaTypeConstants.RUTA_TYPE_WL) {
+        if(StringUtils.isBlank(ref.getName())) {
+          // declaration with a string expression: do not check
+          return false;
+        }
+      }
       if ((ref.getType() & RutaTypeConstants.RUTA_TYPE_AT) != 0) {
         // types
         String name = ref.getName();

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=1758716&r1=1758715&r2=1758716&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 Thu Sep  1 07:28:52 2016
@@ -486,14 +486,14 @@ variableDeclaration returns [List<Statem
 		 stmts.add(StatementFactory.createDeclarationsStatement(type, decls, init));
 		 }
         |
-        type = WORDLIST id = Identifier (ASSIGN_EQUAL (wl = wordListExpression | wl = stringExpression))? SEMI
+        type = WORDLIST id = Identifier (ASSIGN_EQUAL wl = wordListOrStringExpression )? SEMI
         {
         addVariable(id.getText(), type.getText());
         decls.add(StatementFactory.createListVariable(id,type,wl));
         stmts.add(StatementFactory.createDeclarationsStatement(type, decls, wl));
         }
         |
-        type = WORDTABLE id = Identifier (ASSIGN_EQUAL (wt = wordTableExpression | wt = stringExpression))?  SEMI
+        type = WORDTABLE id = Identifier (ASSIGN_EQUAL wt = wordTableOrStringExpression)?  SEMI
         {
         addVariable(id.getText(), type.getText());
         decls.add(StatementFactory.createTableVariable(id,type,wt));
@@ -2447,6 +2447,15 @@ wordListExpression returns [Expression e
 	;
 
 
+wordListOrStringExpression returns [Expression expr = null]
+	:
+	(stringExpression)=>id = stringExpression
+	{expr = ExpressionFactory.createListVariableReference(id);}
+	|
+	e = wordListExpression
+	{expr = e;}
+	;
+
 wordTableExpression returns [Expression expr = null]
 	:
 	id = Identifier
@@ -2456,6 +2465,15 @@ wordTableExpression returns [Expression
 	{expr = ExpressionFactory.createRessourceReference(path);}
 	;
 
+wordTableOrStringExpression returns [Expression expr = null]
+	:
+	(stringExpression)=>id = stringExpression
+	{expr = ExpressionFactory.createTableVariableReference(id);}
+	|
+	e = wordTableExpression
+	{expr = e;}
+	;
+
 //seems OK
 numberExpression returns [Expression expr = null]
 @init {

Modified: uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ExpressionFactory.java?rev=1758716&r1=1758715&r2=1758716&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ExpressionFactory.java (original)
+++ uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ExpressionFactory.java Thu Sep  1 07:28:52 2016
@@ -281,6 +281,17 @@ public class ExpressionFactory extends A
   public static Expression createTableVariableReference(Token id) {
     return newVariableReference(id, RutaTypeConstants.RUTA_TYPE_WT);
   }
+  
+  public static Expression createListVariableReference(Expression ref) {
+    int bounds[] = getSurroundingBounds(ref);
+    return new RutaVariableReference(bounds[0], bounds[1], "", RutaTypeConstants.RUTA_TYPE_WL);
+  }
+  
+  public static Expression createTableVariableReference(Expression ref) {
+    int bounds[] = getSurroundingBounds(ref);
+    return new RutaVariableReference(bounds[0], bounds[1], "", RutaTypeConstants.RUTA_TYPE_WT);
+  }
+  
 
   public static Expression createRessourceReference(Token path) {
     int bounds[] = getBounds(path);
@@ -428,5 +439,7 @@ public class ExpressionFactory extends A
     return new NullExpression(bounds[0], bounds[1]);
   }
 
+  
+
  
 }