diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-02-15 11:19:46 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-02-15 11:19:46 +0100 |
commit | d030467ed4b417c910bfb063a5e77e4a49553d82 (patch) | |
tree | 5e158d35a3cbb0110ffd52392bd33668f60a0408 /searchlib/src/main/javacc | |
parent | d29d335828d98e248f1cb593882d2d4f08fe702c (diff) |
Allow quoted string slice labels
Diffstat (limited to 'searchlib/src/main/javacc')
-rwxr-xr-x | searchlib/src/main/javacc/RankingExpressionParser.jj | 12 |
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() : |