diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-02 11:35:37 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-02 11:35:37 +0100 |
commit | fe102598a18b21a859d5b802883ccb2f462962f9 (patch) | |
tree | 70a8d6d239797c18a8634665e2a65bfaabebabba /searchlib/src/main | |
parent | 6d7909e022817be11b5f088cbd1e537d9b71919d (diff) |
Add merge
Diffstat (limited to 'searchlib/src/main')
-rwxr-xr-x | searchlib/src/main/javacc/RankingExpressionParser.jj | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj index c3d597fca46..6fa915a134d 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -126,6 +126,7 @@ TOKEN : <MAP: "map"> | <REDUCE: "reduce"> | <JOIN: "join"> | + <MERGE: "merge"> | <RENAME: "rename"> | <CONCAT: "concat"> | <TENSOR: "tensor"> | @@ -384,6 +385,7 @@ TensorFunctionNode tensorFunction() : tensorExpression = tensorReduce() | tensorExpression = tensorReduceComposites() | tensorExpression = tensorJoin() | + tensorExpression = tensorMerge() | tensorExpression = tensorRename() | tensorExpression = tensorConcat() | tensorExpression = tensorGenerate() | @@ -447,6 +449,18 @@ TensorFunctionNode tensorJoin() : doubleJoiner.asDoubleBinaryOperator())); } } +TensorFunctionNode tensorMerge() : +{ + ExpressionNode tensor1, tensor2; + LambdaFunctionNode doubleMerger; +} +{ + <MERGE> <LBRACE> tensor1 = expression() <COMMA> tensor2 = expression() <COMMA> doubleMerger = lambdaFunction() <RBRACE> + { return new TensorFunctionNode(new Merge(TensorFunctionNode.wrap(tensor1), + TensorFunctionNode.wrap(tensor2), + doubleMerger.asDoubleBinaryOperator())); } +} + TensorFunctionNode tensorRename() : { ExpressionNode tensor; @@ -671,6 +685,7 @@ String tensorFunctionName() : ( <MAP> { return token.image; } ) | ( <REDUCE> { return token.image; } ) | ( <JOIN> { return token.image; } ) | + ( <MERGE> { return token.image; } ) | ( <RENAME> { return token.image; } ) | ( <CONCAT> { return token.image; } ) | ( <TENSOR> { return token.image; } ) | |