From c58a1614763db71e81e3e2ee1dc4f68669ea213a Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Fri, 4 Mar 2022 13:23:41 +0100 Subject: Revert "Revert "'true' and 'false' literals in ranking expressions"" This reverts commit 95979285c20b384c3053d210c9e4e4661e13ecd5. --- .../rankingexpression/evaluation/BooleanValue.java | 2 +- .../rankingexpression/rule/ConstantNode.java | 3 +++ .../src/main/javacc/RankingExpressionParser.jj | 21 +++++++-------------- 3 files changed, 11 insertions(+), 15 deletions(-) (limited to 'searchlib/src/main') 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 770be98c739..49f267ca522 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 46e833197f9..2cfe20d8131 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,6 +2,7 @@ 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; @@ -39,6 +40,8 @@ public final class ConstantNode extends ExpressionNode { @Override public StringBuilder toString(StringBuilder string, SerializationContext context, Deque 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 865820320d8..ebe1e048247 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -153,6 +153,8 @@ TOKEN : | | | + | + | } @@ -797,7 +799,9 @@ String identifier() : func = binaryFunctionName() { return func.toString(); } | { return token.image; } | { return token.image; } | - { return token.image; } + { return token.image; } | + { return token.image; } | + { return token.image; } } List identifierList() : @@ -854,25 +858,14 @@ ExpressionNode constantPrimitive(boolean negate) : ( { value = token.image; } | { value = token.image; } ) { node = new ConstantNode(Value.parse(negate ? ("-" + value) : value)); } | - { - value = token.image; - node = new ConstantNode(Value.parse(value)); + ( | | ) { + node = new ConstantNode(Value.parse(token.image)); if (negate) node = new NegativeNode(node); } ) { return node; } } -Value primitiveValue() : -{ - String sign = ""; -} -{ - ( { sign = "-";} ) ? - ( | | ) - { return Value.parse(sign + token.image); } -} - TensorFunctionNode tensorValueBody(TensorType type, List dimensionOrder) : { DynamicTensor dynamicTensor; -- cgit v1.2.3