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 2013/09/27 13:56:07 UTC
svn commit: r1526861 - in /uima/sandbox/ruta/trunk:
ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/editor/
ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/
ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/codeassist/ r...
Author: pkluegl
Date: Fri Sep 27 11:56:07 2013
New Revision: 1526861
URL: http://svn.apache.org/r1526861
Log:
UIMA-3287
- fixed highlighting of implicit elements
- fixed some more bugs concerning type/feature declarations
Modified:
uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/editor/ReferenceFinder.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/codeassist/RutaReferenceVisitor.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaAbstractDeclaration.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaDeclareDeclarationsStatement.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaFeatureDeclaration.java
uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/StatementFactory.java
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/editor/ReferenceFinder.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/editor/ReferenceFinder.java?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/editor/ReferenceFinder.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/editor/ReferenceFinder.java Fri Sep 27 11:56:07 2013
@@ -22,8 +22,10 @@ package org.apache.uima.ruta.ide.ui.edit
import java.util.ArrayList;
import java.util.List;
+import org.apache.uima.ruta.ide.parser.ast.ActionFactory;
import org.apache.uima.ruta.ide.parser.ast.ComponentDeclaration;
import org.apache.uima.ruta.ide.parser.ast.ComponentReference;
+import org.apache.uima.ruta.ide.parser.ast.ConditionFactory;
import org.apache.uima.ruta.ide.parser.ast.RutaAction;
import org.apache.uima.ruta.ide.parser.ast.RutaCondition;
import org.apache.uima.ruta.ide.parser.ast.RutaVariableReference;
@@ -39,7 +41,29 @@ public class ReferenceFinder extends AST
public ReferenceFinder(ASTNode node) {
super();
- this.node = node;
+ this.node = getRealNode(node);
+ }
+
+ private ASTNode getRealNode(ASTNode node) {
+ if (node instanceof RutaAction) {
+ RutaAction a = (RutaAction) node;
+ if (ActionFactory.IMPLICIT.equals(a.getName()) && !a.getChilds().isEmpty()) {
+ Expression expression = a.getChilds().get(0);
+ if (expression != null && !expression.getChilds().isEmpty()) {
+ return (ASTNode) expression.getChilds().get(0);
+ }
+ }
+ }
+ if (node instanceof RutaCondition) {
+ RutaCondition c = (RutaCondition) node;
+ if (ConditionFactory.IMPLICIT.equals(c.getName()) && !c.getChilds().isEmpty()) {
+ Expression expression = c.getChilds().get(0);
+ if (expression != null && !expression.getChilds().isEmpty()) {
+ return (ASTNode) expression.getChilds().get(0);
+ }
+ }
+ }
+ return node;
}
@Override
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.g Fri Sep 27 11:56:07 2013
@@ -514,7 +514,7 @@ declaration returns [List<Statement> stm
}
addType($blockDeclaration::env, id.getText(), type.toString(), featureTypes, featureNames);
declarations.add( StatementFactory.createAnnotationType(id,declareToken, type, features));
- stmt = StatementFactory.createDeclareDeclarationsStatement(declareToken, declarations, type);
+ stmt = StatementFactory.createDeclareDeclarationsStatement(declareToken, declarations, type, features);
stmts.add(stmt);
}
)
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/codeassist/RutaReferenceVisitor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/codeassist/RutaReferenceVisitor.java?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/codeassist/RutaReferenceVisitor.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/codeassist/RutaReferenceVisitor.java Fri Sep 27 11:56:07 2013
@@ -51,8 +51,10 @@ public class RutaReferenceVisitor extend
if (result != null) {
return false;
}
- if (s instanceof RutaVariableReference || s instanceof ComponentDeclaration
- || s instanceof ComponentReference) {
+ int sourceStart = s.sourceStart();
+ int sourceEnd = s.sourceEnd();
+ if ((s instanceof RutaVariableReference || s instanceof ComponentDeclaration || s instanceof ComponentReference)
+ && sourceStart <= start && sourceEnd >= start) {
result = s;
} else if (s instanceof RutaAction && ((RutaAction) s).getNameStart() <= start
&& start <= ((RutaAction) s).getNameEnd()) {
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaAbstractDeclaration.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaAbstractDeclaration.java?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaAbstractDeclaration.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaAbstractDeclaration.java Fri Sep 27 11:56:07 2013
@@ -28,7 +28,7 @@ public abstract class RutaAbstractDeclar
public RutaAbstractDeclaration(String name, int nameStart, int nameEnd, int declStart,
int declEnd, SimpleReference ref) {
- super(name, nameStart, nameEnd, nameStart, nameEnd); // declStart, declEnd);
+ super(name, nameStart, nameEnd, declStart, declEnd);
this.setName(name);
this.ref = ref;
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaDeclareDeclarationsStatement.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaDeclareDeclarationsStatement.java?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaDeclareDeclarationsStatement.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaDeclareDeclarationsStatement.java Fri Sep 27 11:56:07 2013
@@ -26,17 +26,14 @@ import org.eclipse.dltk.ast.ASTVisitor;
public class RutaDeclareDeclarationsStatement extends RutaDeclarationsStatement {
private ASTNode parent;
-
- // public RutaDeclarationsStatement(int declStart, int declEnd,
- // List<RutaAbstractDeclaration> declarations, Expression init) {
- // this(declStart, declEnd, declarations, init, 0, 0);
- // }
+ private List<RutaFeatureDeclaration> features;
public RutaDeclareDeclarationsStatement(int stmtStart, int stmtEnd,
List<RutaAbstractDeclaration> declarations, ASTNode parent, int typeTokenStart,
- int typeTokenEnd) {
+ int typeTokenEnd, List<RutaFeatureDeclaration> features) {
super(stmtStart, stmtEnd, declarations, null, typeTokenStart, typeTokenEnd);
this.parent = parent;
+ this.features = features;
}
@Override
@@ -50,6 +47,12 @@ public class RutaDeclareDeclarationsStat
decl.traverse(visitor);
}
}
+ if(features != null) {
+ for (RutaFeatureDeclaration feat : features) {
+ feat.traverse(visitor);
+ }
+ }
+
visitor.endvisit(this);
}
}
@@ -63,4 +66,12 @@ public class RutaDeclareDeclarationsStat
return parent;
}
+ public List<RutaFeatureDeclaration> getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(List<RutaFeatureDeclaration> features) {
+ this.features = features;
+ }
+
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaFeatureDeclaration.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaFeatureDeclaration.java?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaFeatureDeclaration.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/RutaFeatureDeclaration.java Fri Sep 27 11:56:07 2013
@@ -19,18 +19,36 @@
package org.apache.uima.ruta.ide.parser.ast;
+import org.eclipse.dltk.ast.ASTNode;
+import org.eclipse.dltk.ast.ASTVisitor;
import org.eclipse.dltk.ast.references.SimpleReference;
public class RutaFeatureDeclaration extends RutaAbstractDeclaration {
private String type;
+ private ASTNode declType;
+
public RutaFeatureDeclaration(String name, String type, int nameStart, int nameEnd,
- int declStart, int declEnd, SimpleReference ref) {
+ int declStart, int declEnd, SimpleReference ref, Object declType) {
super(name, nameStart, nameEnd, declStart, declEnd, ref);
this.type = type;
+ if(declType instanceof ASTNode) {
+ this.declType = (ASTNode) declType;
+ }
}
+
+ @Override
+ public void traverse(ASTVisitor visitor) throws Exception {
+ if (visitor.visit(this)) {
+ declType.traverse(visitor);
+ getRef().traverse(visitor);
+ visitor.endvisit(this);
+ }
+ }
+
+
public void setType(String type) {
this.type = type;
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/StatementFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/StatementFactory.java?rev=1526861&r1=1526860&r2=1526861&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/StatementFactory.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/parser/ast/StatementFactory.java Fri Sep 27 11:56:07 2013
@@ -20,6 +20,7 @@
package org.apache.uima.ruta.ide.parser.ast;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.antlr.runtime.CommonToken;
@@ -238,12 +239,17 @@ public class StatementFactory extends Ab
int nameBounds[] = getBounds(eachName);
SimpleReference ref = new SimpleReference(nameBounds[0], nameBounds[1], eachName.getText());
return new RutaFeatureDeclaration(eachName.getText(), type, nameBounds[0], nameBounds[1],
- declBounds[0], declBounds[1], ref);
+ declBounds[0], declBounds[1], ref, eachTO);
}
@SuppressWarnings("unchecked")
public static Statement createDeclareDeclarationsStatement(Token declareToken, List declarations,
ASTNode parent) {
+ return createDeclareDeclarationsStatement(declareToken, declarations, parent, new ArrayList<RutaFeatureDeclaration>(0));
+ }
+
+ public static Statement createDeclareDeclarationsStatement(Token declareToken, List declarations,
+ ASTNode parent, List<RutaFeatureDeclaration> features) {
List<RutaAbstractDeclaration> decls = declarations;
for (RutaAbstractDeclaration d : decls) {
if (d == null) {
@@ -258,9 +264,14 @@ public class StatementFactory extends Ab
int end = decls.get(decls.size() - 1).sourceEnd();
statementBounds[1] = Math.max(statementBounds[1], end);
}
+ if(features != null && !features.isEmpty()) {
+ int end = features.get(features.size() - 1).sourceEnd();
+ statementBounds[1] = Math.max(statementBounds[1], end);
+ }
return new RutaDeclareDeclarationsStatement(statementBounds[0], statementBounds[1],
- declarations, parent, declBounds[0], declBounds[1]);
+ decls, parent, declBounds[0], declBounds[1], features);
}
+
@SuppressWarnings("unchecked")
public static Statement createDeclarationsStatement(Token declareToken, List declarations,