diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-07 14:29:36 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-11-07 14:29:36 +0100 |
commit | 2a2f56cf9bc196e2cbef3bb2be065e5dedefe2c8 (patch) | |
tree | 52b0f1ca59c33f4d974c1c7e548db4cc324ed703 /searchlib | |
parent | ec23c4e592ce76fd676b1d28e51800ed7a875a49 (diff) |
Treat inner square brackets as syntactic sugar
Diffstat (limited to 'searchlib')
-rwxr-xr-x | searchlib/src/main/javacc/RankingExpressionParser.jj | 8 | ||||
-rw-r--r-- | searchlib/src/test/java/com/yahoo/searchlib/rankingexpression/evaluation/EvaluationTestCase.java | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index 47555d95e58..01eed897bfd 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -855,10 +855,10 @@ DynamicTensor indexedTensorValueBody(TensorType type) : ExpressionNode value; } { - <LSQUARE> - ( value = expression() { cells.add(value); } )* - ( <COMMA> value = expression() { cells.add(value); } )* - <RSQUARE> + <LSQUARE> // TODO: Parse inner square brackets properly + ( (<LSQUARE>)* value = expression() (<RSQUARE>)* { cells.add(value); } )* + ( <COMMA> (<LSQUARE>)* value = expression() (<RSQUARE>)* { cells.add(value); } )* +// <RSQUARE> { return DynamicTensor.from(type, TensorFunctionNode.wrap(cells)); } } 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 e28daefdabf..9ba5da05a06 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 @@ -371,6 +371,8 @@ public class EvaluationTestCase { tester.assertEvaluates("tensor(x{}):{ {x:a}:6.0, {x:b}:4.0, {x:c}:14.0 }", "tensor(x{}):{ {x:a}:1+2+3, {x:b}:if(1>2,3,4), {x:c}:sum(tensor0*tensor1) }", "{ {x:0}:7 }", "tensor(x{}):{ {x:0}:2 }"); + tester.assertEvaluates("tensor<float>(d0[1],x[3]):[[1.0, 0.5, 0.25]]", + "tensor<float>(d0[1],x[3]):[[one,one_half,a_quarter]]"); } @Test |