summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArnstein Ressem <aressem@gmail.com>2022-03-03 13:59:48 +0100
committerGitHub <noreply@github.com>2022-03-03 13:59:48 +0100
commit95979285c20b384c3053d210c9e4e4661e13ecd5 (patch)
tree19c07c9218682ae161921f27ac51a306fd30e082 /searchlib
parent4f9b53d052fda832c166b44f416c9920dc9eb373 (diff)
Revert "'true' and 'false' literals in ranking expressions"
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/abi-spec.json3
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/BooleanValue.java2
-rwxr-xr-xsearchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ConstantNode.java3
-rwxr-xr-xsearchlib/src/main/javacc/RankingExpressionParser.jj21
-rw-r--r--searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java4
-rw-r--r--searchlib/src/tests/rankingexpression/rankingexpressionlist4
6 files changed, 18 insertions, 19 deletions
diff --git a/searchlib/abi-spec.json b/searchlib/abi-spec.json
index 5a534562d32..ced2517ff9f 100644
--- a/searchlib/abi-spec.json
+++ b/searchlib/abi-spec.json
@@ -943,6 +943,7 @@
"public final java.lang.String tag()",
"public final java.util.List tagCommaLeadingList()",
"public final com.yahoo.searchlib.rankingexpression.rule.ExpressionNode constantPrimitive(boolean)",
+ "public final com.yahoo.searchlib.rankingexpression.evaluation.Value primitiveValue()",
"public final com.yahoo.searchlib.rankingexpression.rule.TensorFunctionNode tensorValueBody(com.yahoo.tensor.TensorType, java.util.List)",
"public final com.yahoo.tensor.functions.DynamicTensor mappedTensorValueBody(com.yahoo.tensor.TensorType)",
"public final com.yahoo.tensor.functions.DynamicTensor mixedTensorValueBody(com.yahoo.tensor.TensorType, java.util.List)",
@@ -1085,8 +1086,6 @@
"public static final int MIN",
"public static final int PROD",
"public static final int SUM",
- "public static final int TRUE",
- "public static final int FALSE",
"public static final int IDENTIFIER",
"public static final int SINGLE_LINE_COMMENT",
"public static final int DEFAULT",
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/BooleanValue.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/BooleanValue.java
index 49f267ca522..770be98c739 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/BooleanValue.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/evaluation/BooleanValue.java
@@ -15,7 +15,7 @@ public class BooleanValue extends DoubleCompatibleValue {
* Create a boolean value which is frozen at the outset.
*/
public static BooleanValue frozen(boolean value) {
- BooleanValue booleanValue = new BooleanValue(value);
+ BooleanValue booleanValue=new BooleanValue(value);
booleanValue.freeze();
return booleanValue;
}
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ConstantNode.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ConstantNode.java
index 2cfe20d8131..46e833197f9 100755
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ConstantNode.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/ConstantNode.java
@@ -2,7 +2,6 @@
package com.yahoo.searchlib.rankingexpression.rule;
import com.yahoo.searchlib.rankingexpression.Reference;
-import com.yahoo.searchlib.rankingexpression.evaluation.BooleanValue;
import com.yahoo.searchlib.rankingexpression.evaluation.Context;
import com.yahoo.searchlib.rankingexpression.evaluation.Value;
import com.yahoo.tensor.TensorType;
@@ -40,8 +39,6 @@ public final class ConstantNode extends ExpressionNode {
@Override
public StringBuilder toString(StringBuilder string, SerializationContext context, Deque<String> path, CompositeNode parent) {
- if (value instanceof BooleanValue) // Convert booleans to floats
- return string.append(value.asBoolean() ? "1.0" : "0.0");
return string.append(value.toString());
}
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj
index ebe1e048247..865820320d8 100755
--- a/searchlib/src/main/javacc/RankingExpressionParser.jj
+++ b/searchlib/src/main/javacc/RankingExpressionParser.jj
@@ -153,8 +153,6 @@ TOKEN :
<MIN: "min"> |
<PROD: "prod"> |
<SUM: "sum"> |
- <TRUE: "true"> |
- <FALSE: "false"> |
<IDENTIFIER: (["A"-"Z","a"-"z","0"-"9","_","@"](["A"-"Z","a"-"z","0"-"9","_","@","$"])*)>
}
@@ -799,9 +797,7 @@ String identifier() :
func = binaryFunctionName() { return func.toString(); } |
<IF> { return token.image; } |
<IN> { return token.image; } |
- <IDENTIFIER> { return token.image; } |
- <TRUE> { return token.image; } |
- <FALSE> { return token.image; }
+ <IDENTIFIER> { return token.image; }
}
List<String> identifierList() :
@@ -858,14 +854,25 @@ ExpressionNode constantPrimitive(boolean negate) :
( <INTEGER> { value = token.image; } |
<FLOAT> { value = token.image; }
) { node = new ConstantNode(Value.parse(negate ? ("-" + value) : value)); } |
- ( <STRING> | <TRUE> | <FALSE> ) {
- node = new ConstantNode(Value.parse(token.image));
+ <STRING> {
+ value = token.image;
+ node = new ConstantNode(Value.parse(value));
if (negate) node = new NegativeNode(node);
}
)
{ return node; }
}
+Value primitiveValue() :
+{
+ String sign = "";
+}
+{
+ ( <SUB> { sign = "-";} ) ?
+ ( <INTEGER> | <FLOAT> | <STRING> )
+ { return Value.parse(sign + token.image); }
+}
+
TensorFunctionNode tensorValueBody(TensorType type, List dimensionOrder) :
{
DynamicTensor dynamicTensor;
diff --git a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java
index 19e32c23234..efa98fba2eb 100644
--- a/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java
+++ b/searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java
@@ -133,10 +133,6 @@ public class EvaluationTestCase {
public void testBooleanEvaluation() {
EvaluationTester tester = new EvaluationTester();
- // literals
- tester.assertEvaluates(false, "false");
- tester.assertEvaluates(true, "true");
-
// and
tester.assertEvaluates(false, "0 && 0");
tester.assertEvaluates(false, "0 && 1");
diff --git a/searchlib/src/tests/rankingexpression/rankingexpressionlist b/searchlib/src/tests/rankingexpression/rankingexpressionlist
index 970505e25aa..c032ffd1a01 100644
--- a/searchlib/src/tests/rankingexpression/rankingexpressionlist
+++ b/searchlib/src/tests/rankingexpression/rankingexpressionlist
@@ -165,5 +165,5 @@ if(1.09999~=1.1,2,3); if (1.09999 ~= 1.1, 2, 3)
1 && 0 || 1
!a && (a || a)
10 ^ 3
-true; 1.0
-false; 0.0
+true
+false