aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/javacc/RankingExpressionParser.jj
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-02-15 11:19:46 +0100
committerJon Bratseth <bratseth@gmail.com>2022-02-15 11:19:46 +0100
commitd030467ed4b417c910bfb063a5e77e4a49553d82 (patch)
tree5e158d35a3cbb0110ffd52392bd33668f60a0408 /searchlib/src/main/javacc/RankingExpressionParser.jj
parentd29d335828d98e248f1cb593882d2d4f08fe702c (diff)
Allow quoted string slice labels
Diffstat (limited to 'searchlib/src/main/javacc/RankingExpressionParser.jj')
-rwxr-xr-xsearchlib/src/main/javacc/RankingExpressionParser.jj12
1 files changed, 7 insertions, 5 deletions
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj
index 0d46ab4ddb6..865820320d8 100755
--- a/searchlib/src/main/javacc/RankingExpressionParser.jj
+++ b/searchlib/src/main/javacc/RankingExpressionParser.jj
@@ -1032,11 +1032,13 @@ Slice.DimensionValue dimensionValue(Optional dimensionName) :
{
value = expression()
{
- if (value instanceof ReferenceNode && ((ReferenceNode)value).reference().isIdentifier())
- return new Slice.DimensionValue(dimensionName, ((ReferenceNode)value).reference().name());
- else
- return new Slice.DimensionValue(dimensionName, TensorFunctionNode.wrapScalar(value));
-}
+ if (value instanceof ReferenceNode && ((ReferenceNode)value).reference().isIdentifier()) // A label
+ return new Slice.DimensionValue(dimensionName, ((ReferenceNode)value).reference().name());
+ else if (value instanceof ConstantNode && ((ConstantNode)value).getValue() instanceof StringValue) // A quoted label
+ return new Slice.DimensionValue(dimensionName, ((StringValue)((ConstantNode)value).getValue()).asString());
+ else
+ return new Slice.DimensionValue(dimensionName, TensorFunctionNode.wrapScalar(value));
+ }
}
String label() :