Author: pkluegl
Date: Thu Jun 16 08:27:35 2016
New Revision: 1748664
URL: http://svn.apache.org/viewvc?rev=1748664&view=rev
Log:
UIMA-4977
- fixed FOREACH syntax check
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/java/org/apache/uima/ruta/ide/parser/ast/ScriptFactory.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=1748664&r1=1748663&r2=1748664&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 Jun 16 08:27:35 2016
@@ -243,12 +243,6 @@ public class LanguageCheckerVisitor exte
checkPackage(s);
return false;
}
- if(s instanceof ForEachBlock) {
- String name = ((ForEachBlock) s).getName();
- Map<String, Integer> map = new HashMap<>();
- map.put(name, RutaTypeConstants.RUTA_TYPE_UA);
- knownLocalVariables.push(map);
- }
if (s instanceof RutaMacroDeclaration) {
RutaMacroDeclaration decl = (RutaMacroDeclaration) s;
Map<Token, Token> definition = decl.getDefinition();
@@ -639,9 +633,9 @@ public class LanguageCheckerVisitor exte
return false;
}
Integer variableType = getVariableType(name);
- if(variableType != null && variableType ==
RutaTypeConstants.RUTA_TYPE_AT
+ if(variableType != null && (variableType ==
RutaTypeConstants.RUTA_TYPE_AT
|| variableType == RutaTypeConstants.RUTA_TYPE_UA
- || variableType == RutaTypeConstants.RUTA_TYPE_UAL) {
+ || variableType == RutaTypeConstants.RUTA_TYPE_UAL)) {
return false;
}
if (isFeatureMatch(name) != null) {
@@ -904,7 +898,7 @@ public class LanguageCheckerVisitor exte
Integer variableType1 = getVariableType(aref);
Integer variableType2 = getVariableType(bref);
if (match == null && variableType1 != null && variableType2 != null &&
(variableType1 == RutaTypeConstants.RUTA_TYPE_AT
- || variableType2 == RutaTypeConstants.RUTA_TYPE_AT)) {
+ || variableType2 == RutaTypeConstants.RUTA_TYPE_AT|| variableType1
== RutaTypeConstants.RUTA_TYPE_UA)) {
// do not check on variables!
return;
}
@@ -977,12 +971,15 @@ public class LanguageCheckerVisitor exte
public boolean visit(MethodDeclaration s) throws Exception {
if (s instanceof RutaBlock) {
RutaBlock b = (RutaBlock) s;
- knownLocalVariables.push(new HashMap<String, Integer>());
String name = b.getName();
+ HashMap<String, Integer> map = new HashMap<String, Integer>();
+ if(b instanceof ForEachBlock) {
+ map.put(name, RutaTypeConstants.RUTA_TYPE_UA);
+ }
+ knownLocalVariables.push(map);
blocks.push(name);
// TODO add syntax check for block extensions
}
-
return true;
}
Modified:
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ScriptFactory.java
URL:
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ScriptFactory.java?rev=1748664&r1=1748663&r2=1748664&view=diff
==============================================================================
---
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ScriptFactory.java
(original)
+++
uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/ScriptFactory.java
Thu Jun 16 08:27:35 2016
@@ -200,8 +200,8 @@ public class ScriptFactory extends Abstr
*/
public RutaBlock createScriptBlock(Token id, Token type, RutaBlock
rutaBlock) {
boolean forEach = false;
- if (id != null) {
- forEach = StringUtils.equals(id.getText(),
RutaParser.tokenNames[RutaLexer.ForEachString]);
+ if (type != null) {
+ forEach = StringUtils.equals(type.getText(), "FOREACH");
}
int[] bounds = getBounds(type, id);
int[] nameBounds = getBounds(id);