aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/main/javacc/RankingExpressionParser.jj
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2021-10-06 10:52:56 +0200
committerLester Solbakken <lesters@oath.com>2021-10-06 10:52:56 +0200
commitbcd003d3253a5e51c19149dcc8fa44e8fd526adb (patch)
tree8c8505ae2a075996a4724da106337262398ad72e /searchlib/src/main/javacc/RankingExpressionParser.jj
parent4de0026c1065403d028d7157abb571830603e6c9 (diff)
Add non-primitive tensor expand function
Diffstat (limited to 'searchlib/src/main/javacc/RankingExpressionParser.jj')
-rwxr-xr-xsearchlib/src/main/javacc/RankingExpressionParser.jj15
1 files changed, 14 insertions, 1 deletions
diff --git a/searchlib/src/main/javacc/RankingExpressionParser.jj b/searchlib/src/main/javacc/RankingExpressionParser.jj
index 7bfbfd6c005..88eb0feeb73 100755
--- a/searchlib/src/main/javacc/RankingExpressionParser.jj
+++ b/searchlib/src/main/javacc/RankingExpressionParser.jj
@@ -144,6 +144,7 @@ TOKEN :
<ARGMAX: "argmax"> |
<ARGMIN: "argmin"> |
<CELL_CAST: "cell_cast"> |
+ <EXPAND: "expand"> |
<AVG: "avg" > |
<COUNT: "count"> |
@@ -384,7 +385,8 @@ TensorFunctionNode tensorFunction() :
tensorExpression = tensorXwPlusB() |
tensorExpression = tensorArgmax() |
tensorExpression = tensorArgmin() |
- tensorExpression = tensorCellCast()
+ tensorExpression = tensorCellCast() |
+ tensorExpression = tensorExpand()
)
{ return tensorExpression; }
}
@@ -581,6 +583,16 @@ TensorFunctionNode tensorXwPlusB() :
dimension)); }
}
+TensorFunctionNode tensorExpand() :
+{
+ ExpressionNode argument;
+ String dimension;
+}
+{
+ <EXPAND> <LBRACE> argument = expression() <COMMA> dimension = identifier() <RBRACE>
+ { return new TensorFunctionNode(new Expand(TensorFunctionNode.wrap(argument), dimension)); }
+}
+
TensorFunctionNode tensorArgmax() :
{
ExpressionNode tensor;
@@ -696,6 +708,7 @@ String tensorFunctionName() :
( <ARGMAX> { return token.image; } ) |
( <ARGMIN> { return token.image; } ) |
( <CELL_CAST> { return token.image; } ) |
+ ( <EXPAND> { return token.image; } ) |
( aggregator = tensorReduceAggregator() { return aggregator.toString(); } )
}