diff options
3 files changed, 4 insertions, 1 deletions
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index fdad824cd1b..83496c7c5f1 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -794,6 +794,7 @@ String tag() : } { name = identifier() { return name; } | + <SUB> <INTEGER> { return "-" + token.image; } | <INTEGER> { return token.image; } } 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 38f152d728c..00750c70d2c 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 @@ -387,6 +387,8 @@ public class EvaluationTestCase { EvaluationTester tester = new EvaluationTester(); tester.assertEvaluates("tensor(x{}):{ {x:a}:1.0, {x:b}:2.0, {x:c}:3.0 }", "tensor(x{}):{ {x:a}:1.0, {x:b}:2.0, {x:c}:3.0 }"); + tester.assertEvaluates("tensor(x{}):{ {x:1}:1.0, {x:-2}:2.0 }", + "tensor(x{}):{ {x:1}:1.0, {x:-2}:2.0 }"); tester.assertEvaluates("tensor(x[3]):[1.0, 2, 3.0]", "tensor(x[3]):[1.0, 2.0, 3]"); tester.assertEvaluates("tensor(x{},y{}):{ {x:a,y:0}:1.0, {x:b,y:0}:2.0, {x:c,y:0}:3.0 }", diff --git a/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java b/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java index 3812dd26370..556eec6174e 100644 --- a/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java +++ b/vespajlib/src/main/java/com/yahoo/tensor/TensorAddress.java @@ -163,7 +163,7 @@ public abstract class TensorAddress implements Comparable<TensorAddress> { /** Supports building of a tensor address */ public static class Builder { - private Pattern identifierPattern = Pattern.compile("[A-Za-z0-9_]+"); + private Pattern identifierPattern = Pattern.compile("[-,A-Za-z0-9_@]([A-Z,a-z0-9_@$])*"); private final TensorType type; private final String[] labels; |