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 2012/01/09 11:22:04 UTC
svn commit: r1229085 [1/5] - in /uima/sandbox/trunk/TextMarker:
uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/
uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/
uimaj-ep-textmarker-engine/src/main/jav...
Author: pkluegl
Date: Mon Jan 9 10:22:03 2012
New Revision: 1229085
URL: http://svn.apache.org/viewvc?rev=1229085&view=rev
Log:
UIMA-2319
added prototypical language elements for float support.
Added:
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java
- copied, changed from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java
- copied, changed from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java
Removed:
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedIntegerExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceIntegerExpression.java
Modified:
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.tokens
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.g
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerParser.tokens
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/verbalize/ExpressionVerbalizer.java
uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-ide/src/main/java/org/apache/uima/textmarker/ide/core/parser/TextMarkerParser.g
Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/TextMarkerEnvironment.java Mon Jan 9 10:22:03 2012
@@ -91,6 +91,7 @@ public class TextMarkerEnvironment {
availableTypes.put("INT", Integer.class);
availableTypes.put("STRING", String.class);
availableTypes.put("DOUBLE", Double.class);
+ availableTypes.put("FLOAT", Double.class);
availableTypes.put("BOOLEAN", Boolean.class);
availableTypes.put("TYPE", Type.class);
availableTypes.put("CONDITION", AbstractTextMarkerCondition.class);
@@ -100,12 +101,14 @@ public class TextMarkerEnvironment {
availableTypes.put("BOOLEANLIST", List.class);
availableTypes.put("INTLIST", List.class);
availableTypes.put("DOUBLELIST", List.class);
+ availableTypes.put("FLOATLIST", List.class);
availableTypes.put("STRINGLIST", List.class);
availableTypes.put("TYPELIST", List.class);
availableListTypes = new HashMap<String, Class<?>>();
availableListTypes.put("BOOLEANLIST", Boolean.class);
availableListTypes.put("INTLIST", Integer.class);
availableListTypes.put("DOUBLELIST", Double.class);
+ availableListTypes.put("FLOATLIST", Float.class);
availableListTypes.put("STRINGLIST", String.class);
availableListTypes.put("TYPELIST", Type.class);
resourcePaths = getResourcePaths();
@@ -242,10 +245,12 @@ public class TextMarkerEnvironment {
private Object getInitialValue(Class<?> type) {
if (Integer.class.equals(type)) {
return 0;
+ } else if (Double.class.equals(type)) {
+ return 0d;
+ } else if (Float.class.equals(type)) {
+ return 0f;
} else if (String.class.equals(type)) {
return "";
- } else if (Double.class.equals(type)) {
- return 0;
} else if (Boolean.class.equals(type)) {
return false;
} else if (Type.class.equals(type)) {
Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/ExpressionFactory.java Mon Jan 9 10:22:03 2012
@@ -42,10 +42,10 @@ import org.apache.uima.textmarker.expres
import org.apache.uima.textmarker.expression.list.SimpleTypeListExpression;
import org.apache.uima.textmarker.expression.list.StringListExpression;
import org.apache.uima.textmarker.expression.list.TypeListExpression;
-import org.apache.uima.textmarker.expression.number.ComposedDoubleExpression;
+import org.apache.uima.textmarker.expression.number.ComposedNumberExpression;
import org.apache.uima.textmarker.expression.number.NegativeNumberExpression;
import org.apache.uima.textmarker.expression.number.NumberExpression;
-import org.apache.uima.textmarker.expression.number.ReferenceDoubleExpression;
+import org.apache.uima.textmarker.expression.number.ReferenceNumberExpression;
import org.apache.uima.textmarker.expression.number.SimpleNumberExpression;
import org.apache.uima.textmarker.expression.resource.LiteralWordListExpression;
import org.apache.uima.textmarker.expression.resource.LiteralWordTableExpression;
@@ -87,7 +87,7 @@ public class ExpressionFactory {
}
public static NumberExpression createReferenceNumberExpression(Token var, Token minus) {
- ReferenceDoubleExpression simpleNumberExpression = new ReferenceDoubleExpression(var.getText());
+ ReferenceNumberExpression simpleNumberExpression = new ReferenceNumberExpression(var.getText());
if (minus != null) {
return new NegativeNumberExpression(simpleNumberExpression);
} else {
@@ -101,7 +101,7 @@ public class ExpressionFactory {
for (Token token : opTokens) {
ops.add(token.getText());
}
- return new ComposedDoubleExpression(expressions, ops);
+ return new ComposedNumberExpression(expressions, ops);
}
public static NumberExpression createComposedNumberExpression(NumberExpression expression,
@@ -110,7 +110,7 @@ public class ExpressionFactory {
List<NumberExpression> exprList = new ArrayList<NumberExpression>();
ops.add(opToken.getText());
exprList.add(expression);
- return new ComposedDoubleExpression(exprList, ops);
+ return new ComposedNumberExpression(exprList, ops);
}
public static StringExpression createSimpleStringExpression(Token token) {
@@ -200,6 +200,10 @@ public class ExpressionFactory {
return new ReferenceNumberListExpression(var.getText());
}
+ public static NumberListExpression createReferenceFloatListExpression(Token var) {
+ return new ReferenceNumberListExpression(var.getText());
+ }
+
public static BooleanListExpression createBooleanListExpression(List<BooleanExpression> list) {
return new SimpleBooleanListExpression(list);
}
@@ -216,4 +220,6 @@ public class ExpressionFactory {
return new SimpleStringListExpression(list);
}
+
+
}
Copied: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java (from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java)
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java?p2=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java&p1=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java&r1=1181740&r2=1229085&rev=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedDoubleExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ComposedNumberExpression.java Mon Jan 9 10:22:03 2012
@@ -24,13 +24,13 @@ import java.util.List;
import org.apache.uima.textmarker.TextMarkerStatement;
-public class ComposedDoubleExpression extends AbstractNumberExpression {
+public class ComposedNumberExpression extends AbstractNumberExpression {
private final List<NumberExpression> expressions;
private final List<String> ops;
- public ComposedDoubleExpression(List<NumberExpression> expressions, List<String> ops) {
+ public ComposedNumberExpression(List<NumberExpression> expressions, List<String> ops) {
super();
this.expressions = expressions;
this.ops = ops;
@@ -46,13 +46,30 @@ public class ComposedDoubleExpression ex
for (int i = 0; i < getOperators().size(); i++) {
double second = 0;
if (getExpressions().size() > i + 1) {
- second = getExpressions().get(i + 1).getIntegerValue(parent);
+ second = getExpressions().get(i + 1).getDoubleValue(parent);
}
result = calculate(result, second, getOperators().get(i));
}
return result;
}
-
+
+ @Override
+ public double getFloatValue(TextMarkerStatement parent) {
+ NumberExpression numberExpression = getExpressions().get(0);
+ if (numberExpression == null) {
+ return 0;
+ }
+ double result = numberExpression.getFloatValue(parent);
+ for (int i = 0; i < getOperators().size(); i++) {
+ double second = 0;
+ if (getExpressions().size() > i + 1) {
+ second = getExpressions().get(i + 1).getFloatValue(parent);
+ }
+ result = calculate(result, second, getOperators().get(i));
+ }
+ return result;
+ }
+
@Override
public int getIntegerValue(TextMarkerStatement parent) {
int result = getExpressions().get(0).getIntegerValue(parent);
@@ -79,4 +96,6 @@ public class ComposedDoubleExpression ex
return ops;
}
+
+
}
Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NegativeNumberExpression.java Mon Jan 9 10:22:03 2012
@@ -36,6 +36,11 @@ public class NegativeNumberExpression ex
}
@Override
+ public double getFloatValue(TextMarkerStatement parent) {
+ return -ne.getFloatValue(parent);
+ }
+
+ @Override
public int getIntegerValue(TextMarkerStatement parent) {
return -ne.getIntegerValue(parent);
}
@@ -49,4 +54,6 @@ public class NegativeNumberExpression ex
return ne;
}
+
+
}
Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/NumberExpression.java Mon Jan 9 10:22:03 2012
@@ -27,5 +27,7 @@ public abstract class NumberExpression e
public abstract int getIntegerValue(TextMarkerStatement parent);
public abstract double getDoubleValue(TextMarkerStatement parent);
+
+ public abstract double getFloatValue(TextMarkerStatement parent);
}
Copied: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java (from r1181740, uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java)
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java?p2=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java&p1=uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java&r1=1181740&r2=1229085&rev=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceDoubleExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/ReferenceNumberExpression.java Mon Jan 9 10:22:03 2012
@@ -21,11 +21,11 @@ package org.apache.uima.textmarker.expre
import org.apache.uima.textmarker.TextMarkerStatement;
-public class ReferenceDoubleExpression extends NumberExpression {
+public class ReferenceNumberExpression extends NumberExpression {
private final String var;
- public ReferenceDoubleExpression(String var) {
+ public ReferenceNumberExpression(String var) {
super();
this.var = var;
}
@@ -41,6 +41,16 @@ public class ReferenceDoubleExpression e
}
@Override
+ public double getFloatValue(TextMarkerStatement parent) {
+ Object value = parent.getEnvironment().getVariableValue(getVar());
+ double variableValue = 0;
+ if (value instanceof Number) {
+ variableValue = ((Number) value).floatValue();
+ }
+ return variableValue;
+ }
+
+ @Override
public int getIntegerValue(TextMarkerStatement parent) {
Object value = parent.getEnvironment().getVariableValue(getVar());
int variableValue = 0;
Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/expression/number/SimpleNumberExpression.java Mon Jan 9 10:22:03 2012
@@ -36,6 +36,11 @@ public class SimpleNumberExpression exte
}
@Override
+ public double getFloatValue(TextMarkerStatement parent) {
+ return number.floatValue();
+ }
+
+ @Override
public int getIntegerValue(TextMarkerStatement parent) {
return number.intValue();
}
Modified: uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g
URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g?rev=1229085&r1=1229084&r2=1229085&view=diff
==============================================================================
--- uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g (original)
+++ uima/sandbox/trunk/TextMarker/uimaj-ep-textmarker-engine/src/main/java/org/apache/uima/textmarker/parser/TextMarkerLexer.g Mon Jan 9 10:22:03 2012
@@ -322,6 +322,7 @@ AutomataBlockString : 'RULES';
TypeString : 'TYPE';
IntString : 'INT';
DoubleString : 'DOUBLE';
+FloatString : 'FLOAT';
StringString : 'STRING';
BooleanString : 'BOOLEAN';
TypeSystemString: 'TYPESYSTEM';
@@ -333,6 +334,8 @@ BOOLEANLIST
INTLIST : 'INTLIST';
DOUBLELIST
: 'DOUBLELIST';
+FLOATLIST
+ : 'FLOATLIST';
STRINGLIST
: 'STRINGLIST';
TYPELIST: 'TYPELIST';