diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-16 09:49:05 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-16 09:49:05 +0100 |
commit | 45992cec4b915513372b1d8e777e505aaee3f4a1 (patch) | |
tree | 17642d76df3a1c0b78465c92c7097cb2ca99957b /searchlib/src/main | |
parent | 8456f802f14447fa4d93154eb0945bc7867686a4 (diff) |
Expression parse mapped 1-d tensor short form
Diffstat (limited to 'searchlib/src/main')
-rwxr-xr-x | searchlib/src/main/javacc/RankingExpressionParser.jj | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index 1bfb13cff6f..e413e398183 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -868,8 +868,8 @@ DynamicTensor mixedTensorValueBody(TensorType type, List dimensionOrder) : } { <LCURLY> - mixedBlock(type, dimensionOrder, cells) - ( <COMMA> mixedBlock(type, dimensionOrder, cells))* + keyValueOrMixedBlock(type, dimensionOrder, cells) + ( <COMMA> keyValueOrMixedBlock(type, dimensionOrder, cells))* <RCURLY> { return DynamicTensor.from(type, cells); } } @@ -883,6 +883,21 @@ DynamicTensor indexedTensorValueBody(TensorType type, List dimensionOrder) : { return DynamicTensor.from(type, TensorFunctionNode.wrapScalars(type, dimensionOrder, cells)); } } +void keyValueOrMixedBlock(TensorType type, List dimensionOrder, java.util.Map cellMap) : {} +{ + LOOKAHEAD(3) mixedBlock(type, dimensionOrder, cellMap) | keyValue(type, cellMap) +} + +void keyValue(TensorType type, java.util.Map cellMap) : +{ + String label; + ExpressionNode value; +} +{ + label = tag() <COLON> value = expression() + { cellMap.put(TensorAddress.ofLabels(label), TensorFunctionNode.wrapScalar(value)); } +} + void mixedBlock(TensorType type, List dimensionOrder, java.util.Map cellMap) : { String label; |