summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-12-22 15:44:09 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2016-12-22 15:44:09 +0100
commit07b29b192fa5e373a90fe0c7e6661f9e8024577e (patch)
tree4b6068b80c549ca8fa05a9d7884a444b5a224247 /searchlib
parent1887446f4eb928d4208e9e33d18cbb0e2c164e13 (diff)
Concat skeleton
Diffstat (limited to 'searchlib')
-rwxr-xr-xsearchlib/src/main/javacc/RankingExpressionParser.jj15
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; } ) |