diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-12-22 15:44:09 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-12-22 15:44:09 +0100 |
commit | 07b29b192fa5e373a90fe0c7e6661f9e8024577e (patch) | |
tree | 4b6068b80c549ca8fa05a9d7884a444b5a224247 /searchlib | |
parent | 1887446f4eb928d4208e9e33d18cbb0e2c164e13 (diff) |
Concat skeleton
Diffstat (limited to 'searchlib')
-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 67da9c59432..3fc06225ed3 100755 --- a/searchlib/src/main/javacc/RankingExpressionParser.jj +++ b/searchlib/src/main/javacc/RankingExpressionParser.jj @@ -122,6 +122,7 @@ TOKEN : <REDUCE: "reduce"> | <JOIN: "join"> | <RENAME: "rename"> | + <CONCAT: "concat"> | <TENSOR: "tensor"> | <RANGE: "range"> | <DIAG: "diag"> | @@ -356,6 +357,7 @@ ExpressionNode tensorFunction() : tensorExpression = tensorReduceComposites() | tensorExpression = tensorJoin() | tensorExpression = tensorRename() | + tensorExpression = tensorConcat() | tensorExpression = tensorGenerate() | tensorExpression = tensorRange() | tensorExpression = tensorDiag() | @@ -430,6 +432,18 @@ ExpressionNode tensorRename() : { return new TensorFunctionNode(new Rename(TensorFunctionNode.wrapArgument(tensor), fromDimensions, toDimensions)); } } +ExpressionNode tensorConcat() : +{ + ExpressionNode tensor1, tensor2; + String dimension; +} +{ + <CONCAT> <LBRACE> tensor1 = expression() <COMMA> tensor2 = expression() <COMMA> dimension = tag() <RBRACE> + { return new TensorFunctionNode(new Concat(TensorFunctionNode.wrapArgument(tensor1), + TensorFunctionNode.wrapArgument(tensor2), + dimension)); } +} + ExpressionNode tensorGenerate() : { TensorType type; @@ -597,6 +611,7 @@ String tensorFunctionName() : ( <REDUCE> { return token.image; } ) | ( <JOIN> { return token.image; } ) | ( <RENAME> { return token.image; } ) | + ( <CONCAT> { return token.image; } ) | ( <TENSOR> { return token.image; } ) | ( <RANGE> { return token.image; } ) | ( <DIAG> { return token.image; } ) | |