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