Files
mcDandy-more_math/more_math/Parser/.antlr/MathExprParser.java
T
2026-01-24 23:15:03 +01:00

5127 lines
171 KiB
Java

// Generated from d:\stability\Data\Packages\ComfyUI\custom_nodes\more_math\more_math\Parser\MathExpr.g4 by ANTLR 4.9.2
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class MathExprParser extends Parser {
static { RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
SIN=1, COS=2, TAN=3, ASIN=4, ACOS=5, ATAN=6, ATAN2=7, SINH=8, COSH=9,
TANH=10, ASINH=11, ACOSH=12, ATANH=13, ABS=14, SQRT=15, LN=16, LOG=17,
EXP=18, SMIN=19, SMAX=20, TMIN=21, TMAX=22, TNORM=23, SNORM=24, FLOOR=25,
CEIL=26, ROUND=27, GAMMA=28, POWE=29, SIGM=30, CLAMP=31, SFFT=32, SIFFT=33,
ANGL=34, PRNT=35, PRINT_SHAPE=36, NVL=37, LERP=38, STEP=39, SMOOTHSTEP=40,
FRACT=41, RELU=42, SOFTPLUS=43, GELU=44, SIGN=45, MAP=46, EZCONV=47, CONV=48,
SWAP=49, PERM=50, RESHAPE=51, RANGE=52, TOPK=53, BOTK=54, PINV=55, SUM=56,
MEAN=57, STD=58, VAR=59, QUARTILE=60, PERCENTILE=61, QUANTILE=62, DOT=63,
MOMENT=64, NOISE=65, RAND=66, CAUCHY=67, EXPONENTIAL=68, LOGNORMAL=69,
BERNOULLI=70, POISSON=71, COSSIM=72, FLIP=73, COV=74, SORT=75, APPEND=76,
PLUS=77, MINUS=78, MULT=79, DIV=80, MOD=81, POW=82, GE=83, GT=84, LE=85,
LT=86, EQ=87, EQUEALS=88, NE=89, PIPE=90, LPAREN=91, RPAREN=92, COMMA=93,
SEMICOLON=94, ARROW=95, LBRACKET=96, RBRACKET=97, CONSTANT=98, NUMBER=99,
VARIABLE=100, WS=101;
public static final int
RULE_start = 0, RULE_funcDef = 1, RULE_varDef = 2, RULE_paramList = 3,
RULE_expr = 4, RULE_compExpr = 5, RULE_addExpr = 6, RULE_mulExpr = 7,
RULE_powExpr = 8, RULE_unaryExpr = 9, RULE_indexExpr = 10, RULE_atom = 11,
RULE_exprList = 12, RULE_func1 = 13, RULE_func2 = 14, RULE_func3 = 15,
RULE_func4 = 16, RULE_funcN = 17;
private static String[] makeRuleNames() {
return new String[] {
"start", "funcDef", "varDef", "paramList", "expr", "compExpr", "addExpr",
"mulExpr", "powExpr", "unaryExpr", "indexExpr", "atom", "exprList", "func1",
"func2", "func3", "func4", "funcN"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, "'sin'", "'cos'", "'tan'", "'asin'", "'acos'", "'atan'", "'atan2'",
"'sinh'", "'cosh'", "'tanh'", "'asinh'", "'acosh'", "'atanh'", "'abs'",
"'sqrt'", "'ln'", "'log'", "'exp'", "'smin'", "'smax'", "'tmin'", "'tmax'",
"'tnorm'", "'snorm'", "'floor'", "'ceil'", "'round'", "'gamma'", "'pow'",
"'sigm'", "'clamp'", "'fft'", "'ifft'", "'angle'", "'print'", null, null,
"'lerp'", "'step'", "'smoothstep'", "'fract'", "'relu'", "'softplus'",
"'gelu'", "'sign'", "'map'", null, null, "'swap'", null, null, "'range'",
"'topk'", "'botk'", "'pinv'", "'sum'", "'mean'", "'std'", "'var'", null,
null, "'quantile'", "'dot'", "'moment'", null, null, null, null, null,
null, null, "'cossim'", "'flip'", "'cov'", "'sort'", "'append'", "'+'",
"'-'", "'*'", "'/'", "'%'", "'^'", "'>='", "'>'", "'<='", "'<'", "'=='",
"'='", "'!='", "'|'", "'('", "')'", "','", "';'", "'->'", "'['", "']'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "SIN", "COS", "TAN", "ASIN", "ACOS", "ATAN", "ATAN2", "SINH", "COSH",
"TANH", "ASINH", "ACOSH", "ATANH", "ABS", "SQRT", "LN", "LOG", "EXP",
"SMIN", "SMAX", "TMIN", "TMAX", "TNORM", "SNORM", "FLOOR", "CEIL", "ROUND",
"GAMMA", "POWE", "SIGM", "CLAMP", "SFFT", "SIFFT", "ANGL", "PRNT", "PRINT_SHAPE",
"NVL", "LERP", "STEP", "SMOOTHSTEP", "FRACT", "RELU", "SOFTPLUS", "GELU",
"SIGN", "MAP", "EZCONV", "CONV", "SWAP", "PERM", "RESHAPE", "RANGE",
"TOPK", "BOTK", "PINV", "SUM", "MEAN", "STD", "VAR", "QUARTILE", "PERCENTILE",
"QUANTILE", "DOT", "MOMENT", "NOISE", "RAND", "CAUCHY", "EXPONENTIAL",
"LOGNORMAL", "BERNOULLI", "POISSON", "COSSIM", "FLIP", "COV", "SORT",
"APPEND", "PLUS", "MINUS", "MULT", "DIV", "MOD", "POW", "GE", "GT", "LE",
"LT", "EQ", "EQUEALS", "NE", "PIPE", "LPAREN", "RPAREN", "COMMA", "SEMICOLON",
"ARROW", "LBRACKET", "RBRACKET", "CONSTANT", "NUMBER", "VARIABLE", "WS"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getGrammarFileName() { return "MathExpr.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public ATN getATN() { return _ATN; }
public MathExprParser(TokenStream input) {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
public static class StartContext extends ParserRuleContext {
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode EOF() { return getToken(MathExprParser.EOF, 0); }
public List<FuncDefContext> funcDef() {
return getRuleContexts(FuncDefContext.class);
}
public FuncDefContext funcDef(int i) {
return getRuleContext(FuncDefContext.class,i);
}
public List<VarDefContext> varDef() {
return getRuleContexts(VarDefContext.class);
}
public VarDefContext varDef(int i) {
return getRuleContext(VarDefContext.class,i);
}
public StartContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_start; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterStart(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitStart(this);
}
}
public final StartContext start() throws RecognitionException {
StartContext _localctx = new StartContext(_ctx, getState());
enterRule(_localctx, 0, RULE_start);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
setState(39);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(36);
funcDef();
}
}
}
setState(41);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,0,_ctx);
}
setState(45);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,1,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
{
{
setState(42);
varDef();
}
}
}
setState(47);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,1,_ctx);
}
setState(48);
expr();
setState(49);
match(EOF);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class FuncDefContext extends ParserRuleContext {
public FuncDefContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_funcDef; }
public FuncDefContext() { }
public void copyFrom(FuncDefContext ctx) {
super.copyFrom(ctx);
}
}
public static class FunctionDefContext extends FuncDefContext {
public TerminalNode VARIABLE() { return getToken(MathExprParser.VARIABLE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TerminalNode ARROW() { return getToken(MathExprParser.ARROW, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(MathExprParser.SEMICOLON, 0); }
public ParamListContext paramList() {
return getRuleContext(ParamListContext.class,0);
}
public FunctionDefContext(FuncDefContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFunctionDef(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFunctionDef(this);
}
}
public final FuncDefContext funcDef() throws RecognitionException {
FuncDefContext _localctx = new FuncDefContext(_ctx, getState());
enterRule(_localctx, 2, RULE_funcDef);
int _la;
try {
_localctx = new FunctionDefContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(51);
match(VARIABLE);
setState(52);
match(LPAREN);
setState(54);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==VARIABLE) {
{
setState(53);
paramList();
}
}
setState(56);
match(RPAREN);
setState(57);
match(ARROW);
setState(58);
expr();
setState(59);
match(SEMICOLON);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class VarDefContext extends ParserRuleContext {
public TerminalNode VARIABLE() { return getToken(MathExprParser.VARIABLE, 0); }
public TerminalNode EQUEALS() { return getToken(MathExprParser.EQUEALS, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode SEMICOLON() { return getToken(MathExprParser.SEMICOLON, 0); }
public VarDefContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_varDef; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterVarDef(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitVarDef(this);
}
}
public final VarDefContext varDef() throws RecognitionException {
VarDefContext _localctx = new VarDefContext(_ctx, getState());
enterRule(_localctx, 4, RULE_varDef);
try {
enterOuterAlt(_localctx, 1);
{
setState(61);
match(VARIABLE);
setState(62);
match(EQUEALS);
setState(63);
expr();
setState(64);
match(SEMICOLON);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ParamListContext extends ParserRuleContext {
public List<TerminalNode> VARIABLE() { return getTokens(MathExprParser.VARIABLE); }
public TerminalNode VARIABLE(int i) {
return getToken(MathExprParser.VARIABLE, i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public ParamListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_paramList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterParamList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitParamList(this);
}
}
public final ParamListContext paramList() throws RecognitionException {
ParamListContext _localctx = new ParamListContext(_ctx, getState());
enterRule(_localctx, 6, RULE_paramList);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(66);
match(VARIABLE);
setState(71);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(67);
match(COMMA);
setState(68);
match(VARIABLE);
}
}
setState(73);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ExprContext extends ParserRuleContext {
public AtomContext atom() {
return getRuleContext(AtomContext.class,0);
}
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public ExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_expr; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterExpr(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitExpr(this);
}
}
public final ExprContext expr() throws RecognitionException {
ExprContext _localctx = new ExprContext(_ctx, getState());
enterRule(_localctx, 8, RULE_expr);
try {
setState(76);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,4,_ctx) ) {
case 1:
enterOuterAlt(_localctx, 1);
{
setState(74);
atom();
}
break;
case 2:
enterOuterAlt(_localctx, 2);
{
setState(75);
compExpr(0);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class CompExprContext extends ParserRuleContext {
public CompExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_compExpr; }
public CompExprContext() { }
public void copyFrom(CompExprContext ctx) {
super.copyFrom(ctx);
}
}
public static class LtExpContext extends CompExprContext {
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public TerminalNode LT() { return getToken(MathExprParser.LT, 0); }
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public LtExpContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterLtExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitLtExp(this);
}
}
public static class EqExpContext extends CompExprContext {
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public TerminalNode EQ() { return getToken(MathExprParser.EQ, 0); }
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public EqExpContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterEqExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitEqExp(this);
}
}
public static class ToAddContext extends CompExprContext {
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public ToAddContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterToAdd(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitToAdd(this);
}
}
public static class GeExpContext extends CompExprContext {
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public TerminalNode GE() { return getToken(MathExprParser.GE, 0); }
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public GeExpContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterGeExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitGeExp(this);
}
}
public static class LeExpContext extends CompExprContext {
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public TerminalNode LE() { return getToken(MathExprParser.LE, 0); }
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public LeExpContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterLeExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitLeExp(this);
}
}
public static class NeExpContext extends CompExprContext {
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public TerminalNode NE() { return getToken(MathExprParser.NE, 0); }
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public NeExpContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterNeExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitNeExp(this);
}
}
public static class GtExpContext extends CompExprContext {
public CompExprContext compExpr() {
return getRuleContext(CompExprContext.class,0);
}
public TerminalNode GT() { return getToken(MathExprParser.GT, 0); }
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public GtExpContext(CompExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterGtExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitGtExp(this);
}
}
public final CompExprContext compExpr() throws RecognitionException {
return compExpr(0);
}
private CompExprContext compExpr(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
CompExprContext _localctx = new CompExprContext(_ctx, _parentState);
CompExprContext _prevctx = _localctx;
int _startState = 10;
enterRecursionRule(_localctx, 10, RULE_compExpr, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new ToAddContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(79);
addExpr(0);
}
_ctx.stop = _input.LT(-1);
setState(101);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,6,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(99);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) {
case 1:
{
_localctx = new GtExpContext(new CompExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_compExpr);
setState(81);
if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
setState(82);
match(GT);
setState(83);
addExpr(0);
}
break;
case 2:
{
_localctx = new GeExpContext(new CompExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_compExpr);
setState(84);
if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
setState(85);
match(GE);
setState(86);
addExpr(0);
}
break;
case 3:
{
_localctx = new LtExpContext(new CompExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_compExpr);
setState(87);
if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
setState(88);
match(LT);
setState(89);
addExpr(0);
}
break;
case 4:
{
_localctx = new LeExpContext(new CompExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_compExpr);
setState(90);
if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
setState(91);
match(LE);
setState(92);
addExpr(0);
}
break;
case 5:
{
_localctx = new EqExpContext(new CompExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_compExpr);
setState(93);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(94);
match(EQ);
setState(95);
addExpr(0);
}
break;
case 6:
{
_localctx = new NeExpContext(new CompExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_compExpr);
setState(96);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(97);
match(NE);
setState(98);
addExpr(0);
}
break;
}
}
}
setState(103);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,6,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class AddExprContext extends ParserRuleContext {
public AddExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_addExpr; }
public AddExprContext() { }
public void copyFrom(AddExprContext ctx) {
super.copyFrom(ctx);
}
}
public static class AddExpContext extends AddExprContext {
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public TerminalNode PLUS() { return getToken(MathExprParser.PLUS, 0); }
public MulExprContext mulExpr() {
return getRuleContext(MulExprContext.class,0);
}
public AddExpContext(AddExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAddExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAddExp(this);
}
}
public static class ToMulContext extends AddExprContext {
public MulExprContext mulExpr() {
return getRuleContext(MulExprContext.class,0);
}
public ToMulContext(AddExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterToMul(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitToMul(this);
}
}
public static class SubExpContext extends AddExprContext {
public AddExprContext addExpr() {
return getRuleContext(AddExprContext.class,0);
}
public TerminalNode MINUS() { return getToken(MathExprParser.MINUS, 0); }
public MulExprContext mulExpr() {
return getRuleContext(MulExprContext.class,0);
}
public SubExpContext(AddExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSubExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSubExp(this);
}
}
public final AddExprContext addExpr() throws RecognitionException {
return addExpr(0);
}
private AddExprContext addExpr(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
AddExprContext _localctx = new AddExprContext(_ctx, _parentState);
AddExprContext _prevctx = _localctx;
int _startState = 12;
enterRecursionRule(_localctx, 12, RULE_addExpr, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new ToMulContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(105);
mulExpr(0);
}
_ctx.stop = _input.LT(-1);
setState(115);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(113);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) {
case 1:
{
_localctx = new AddExpContext(new AddExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_addExpr);
setState(107);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(108);
match(PLUS);
setState(109);
mulExpr(0);
}
break;
case 2:
{
_localctx = new SubExpContext(new AddExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_addExpr);
setState(110);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(111);
match(MINUS);
setState(112);
mulExpr(0);
}
break;
}
}
}
setState(117);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,8,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class MulExprContext extends ParserRuleContext {
public MulExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_mulExpr; }
public MulExprContext() { }
public void copyFrom(MulExprContext ctx) {
super.copyFrom(ctx);
}
}
public static class MulExpContext extends MulExprContext {
public MulExprContext mulExpr() {
return getRuleContext(MulExprContext.class,0);
}
public TerminalNode MULT() { return getToken(MathExprParser.MULT, 0); }
public PowExprContext powExpr() {
return getRuleContext(PowExprContext.class,0);
}
public MulExpContext(MulExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterMulExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitMulExp(this);
}
}
public static class ModExpContext extends MulExprContext {
public MulExprContext mulExpr() {
return getRuleContext(MulExprContext.class,0);
}
public TerminalNode MOD() { return getToken(MathExprParser.MOD, 0); }
public PowExprContext powExpr() {
return getRuleContext(PowExprContext.class,0);
}
public ModExpContext(MulExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterModExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitModExp(this);
}
}
public static class DivExpContext extends MulExprContext {
public MulExprContext mulExpr() {
return getRuleContext(MulExprContext.class,0);
}
public TerminalNode DIV() { return getToken(MathExprParser.DIV, 0); }
public PowExprContext powExpr() {
return getRuleContext(PowExprContext.class,0);
}
public DivExpContext(MulExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterDivExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitDivExp(this);
}
}
public static class ToPowContext extends MulExprContext {
public PowExprContext powExpr() {
return getRuleContext(PowExprContext.class,0);
}
public ToPowContext(MulExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterToPow(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitToPow(this);
}
}
public final MulExprContext mulExpr() throws RecognitionException {
return mulExpr(0);
}
private MulExprContext mulExpr(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
MulExprContext _localctx = new MulExprContext(_ctx, _parentState);
MulExprContext _prevctx = _localctx;
int _startState = 14;
enterRecursionRule(_localctx, 14, RULE_mulExpr, _p);
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new ToPowContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(119);
powExpr();
}
_ctx.stop = _input.LT(-1);
setState(132);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
setState(130);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,9,_ctx) ) {
case 1:
{
_localctx = new MulExpContext(new MulExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_mulExpr);
setState(121);
if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
setState(122);
match(MULT);
setState(123);
powExpr();
}
break;
case 2:
{
_localctx = new DivExpContext(new MulExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_mulExpr);
setState(124);
if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
setState(125);
match(DIV);
setState(126);
powExpr();
}
break;
case 3:
{
_localctx = new ModExpContext(new MulExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_mulExpr);
setState(127);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(128);
match(MOD);
setState(129);
powExpr();
}
break;
}
}
}
setState(134);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,10,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class PowExprContext extends ParserRuleContext {
public PowExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_powExpr; }
public PowExprContext() { }
public void copyFrom(PowExprContext ctx) {
super.copyFrom(ctx);
}
}
public static class PowExpContext extends PowExprContext {
public UnaryExprContext unaryExpr() {
return getRuleContext(UnaryExprContext.class,0);
}
public TerminalNode POW() { return getToken(MathExprParser.POW, 0); }
public PowExprContext powExpr() {
return getRuleContext(PowExprContext.class,0);
}
public PowExpContext(PowExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPowExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPowExp(this);
}
}
public static class ToUnaryContext extends PowExprContext {
public UnaryExprContext unaryExpr() {
return getRuleContext(UnaryExprContext.class,0);
}
public ToUnaryContext(PowExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterToUnary(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitToUnary(this);
}
}
public final PowExprContext powExpr() throws RecognitionException {
PowExprContext _localctx = new PowExprContext(_ctx, getState());
enterRule(_localctx, 16, RULE_powExpr);
try {
setState(140);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) {
case 1:
_localctx = new PowExpContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(135);
unaryExpr();
setState(136);
match(POW);
setState(137);
powExpr();
}
break;
case 2:
_localctx = new ToUnaryContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(139);
unaryExpr();
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class UnaryExprContext extends ParserRuleContext {
public UnaryExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_unaryExpr; }
public UnaryExprContext() { }
public void copyFrom(UnaryExprContext ctx) {
super.copyFrom(ctx);
}
}
public static class UnaryPlusContext extends UnaryExprContext {
public TerminalNode PLUS() { return getToken(MathExprParser.PLUS, 0); }
public UnaryExprContext unaryExpr() {
return getRuleContext(UnaryExprContext.class,0);
}
public UnaryPlusContext(UnaryExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterUnaryPlus(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitUnaryPlus(this);
}
}
public static class UnaryMinusContext extends UnaryExprContext {
public TerminalNode MINUS() { return getToken(MathExprParser.MINUS, 0); }
public UnaryExprContext unaryExpr() {
return getRuleContext(UnaryExprContext.class,0);
}
public UnaryMinusContext(UnaryExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterUnaryMinus(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitUnaryMinus(this);
}
}
public static class ToIndexContext extends UnaryExprContext {
public IndexExprContext indexExpr() {
return getRuleContext(IndexExprContext.class,0);
}
public ToIndexContext(UnaryExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterToIndex(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitToIndex(this);
}
}
public final UnaryExprContext unaryExpr() throws RecognitionException {
UnaryExprContext _localctx = new UnaryExprContext(_ctx, getState());
enterRule(_localctx, 18, RULE_unaryExpr);
try {
setState(147);
_errHandler.sync(this);
switch (_input.LA(1)) {
case PLUS:
_localctx = new UnaryPlusContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(142);
match(PLUS);
setState(143);
unaryExpr();
}
break;
case MINUS:
_localctx = new UnaryMinusContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(144);
match(MINUS);
setState(145);
unaryExpr();
}
break;
case SIN:
case COS:
case TAN:
case ASIN:
case ACOS:
case ATAN:
case ATAN2:
case SINH:
case COSH:
case TANH:
case ASINH:
case ACOSH:
case ATANH:
case ABS:
case SQRT:
case LN:
case LOG:
case EXP:
case SMIN:
case SMAX:
case TMIN:
case TMAX:
case TNORM:
case SNORM:
case FLOOR:
case CEIL:
case ROUND:
case GAMMA:
case POWE:
case SIGM:
case CLAMP:
case SFFT:
case SIFFT:
case ANGL:
case PRNT:
case PRINT_SHAPE:
case NVL:
case LERP:
case STEP:
case SMOOTHSTEP:
case FRACT:
case RELU:
case SOFTPLUS:
case GELU:
case SIGN:
case MAP:
case EZCONV:
case CONV:
case SWAP:
case PERM:
case RESHAPE:
case RANGE:
case TOPK:
case BOTK:
case PINV:
case SUM:
case MEAN:
case STD:
case VAR:
case QUARTILE:
case PERCENTILE:
case QUANTILE:
case DOT:
case MOMENT:
case NOISE:
case RAND:
case CAUCHY:
case EXPONENTIAL:
case LOGNORMAL:
case BERNOULLI:
case POISSON:
case COSSIM:
case FLIP:
case COV:
case SORT:
case APPEND:
case PIPE:
case LPAREN:
case LBRACKET:
case CONSTANT:
case NUMBER:
case VARIABLE:
_localctx = new ToIndexContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(146);
indexExpr(0);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class IndexExprContext extends ParserRuleContext {
public IndexExprContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_indexExpr; }
public IndexExprContext() { }
public void copyFrom(IndexExprContext ctx) {
super.copyFrom(ctx);
}
}
public static class IndexExpContext extends IndexExprContext {
public IndexExprContext indexExpr() {
return getRuleContext(IndexExprContext.class,0);
}
public TerminalNode LBRACKET() { return getToken(MathExprParser.LBRACKET, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RBRACKET() { return getToken(MathExprParser.RBRACKET, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public IndexExpContext(IndexExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterIndexExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitIndexExp(this);
}
}
public static class ToAtomContext extends IndexExprContext {
public AtomContext atom() {
return getRuleContext(AtomContext.class,0);
}
public ToAtomContext(IndexExprContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterToAtom(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitToAtom(this);
}
}
public final IndexExprContext indexExpr() throws RecognitionException {
return indexExpr(0);
}
private IndexExprContext indexExpr(int _p) throws RecognitionException {
ParserRuleContext _parentctx = _ctx;
int _parentState = getState();
IndexExprContext _localctx = new IndexExprContext(_ctx, _parentState);
IndexExprContext _prevctx = _localctx;
int _startState = 20;
enterRecursionRule(_localctx, 20, RULE_indexExpr, _p);
int _la;
try {
int _alt;
enterOuterAlt(_localctx, 1);
{
{
_localctx = new ToAtomContext(_localctx);
_ctx = _localctx;
_prevctx = _localctx;
setState(150);
atom();
}
_ctx.stop = _input.LT(-1);
setState(166);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,14,_ctx);
while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
if ( _alt==1 ) {
if ( _parseListeners!=null ) triggerExitRuleEvent();
_prevctx = _localctx;
{
{
_localctx = new IndexExpContext(new IndexExprContext(_parentctx, _parentState));
pushNewRecursionContext(_localctx, _startState, RULE_indexExpr);
setState(152);
if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
setState(153);
match(LBRACKET);
setState(154);
expr();
setState(159);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(155);
match(COMMA);
setState(156);
expr();
}
}
setState(161);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(162);
match(RBRACKET);
}
}
}
setState(168);
_errHandler.sync(this);
_alt = getInterpreter().adaptivePredict(_input,14,_ctx);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
unrollRecursionContexts(_parentctx);
}
return _localctx;
}
public static class AtomContext extends ParserRuleContext {
public AtomContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_atom; }
public AtomContext() { }
public void copyFrom(AtomContext ctx) {
super.copyFrom(ctx);
}
}
public static class Func4ExpContext extends AtomContext {
public Func4Context func4() {
return getRuleContext(Func4Context.class,0);
}
public Func4ExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFunc4Exp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFunc4Exp(this);
}
}
public static class Func2ExpContext extends AtomContext {
public Func2Context func2() {
return getRuleContext(Func2Context.class,0);
}
public Func2ExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFunc2Exp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFunc2Exp(this);
}
}
public static class VariableExpContext extends AtomContext {
public TerminalNode VARIABLE() { return getToken(MathExprParser.VARIABLE, 0); }
public VariableExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterVariableExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitVariableExp(this);
}
}
public static class CallExpContext extends AtomContext {
public TerminalNode VARIABLE() { return getToken(MathExprParser.VARIABLE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ExprListContext exprList() {
return getRuleContext(ExprListContext.class,0);
}
public CallExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCallExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCallExp(this);
}
}
public static class Func3ExpContext extends AtomContext {
public Func3Context func3() {
return getRuleContext(Func3Context.class,0);
}
public Func3ExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFunc3Exp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFunc3Exp(this);
}
}
public static class ParenExpContext extends AtomContext {
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ParenExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterParenExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitParenExp(this);
}
}
public static class ConstantExpContext extends AtomContext {
public TerminalNode CONSTANT() { return getToken(MathExprParser.CONSTANT, 0); }
public ConstantExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterConstantExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitConstantExp(this);
}
}
public static class Func1ExpContext extends AtomContext {
public Func1Context func1() {
return getRuleContext(Func1Context.class,0);
}
public Func1ExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFunc1Exp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFunc1Exp(this);
}
}
public static class FuncNExpContext extends AtomContext {
public FuncNContext funcN() {
return getRuleContext(FuncNContext.class,0);
}
public FuncNExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFuncNExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFuncNExp(this);
}
}
public static class NumberExpContext extends AtomContext {
public TerminalNode NUMBER() { return getToken(MathExprParser.NUMBER, 0); }
public NumberExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterNumberExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitNumberExp(this);
}
}
public static class AbsExpContext extends AtomContext {
public List<TerminalNode> PIPE() { return getTokens(MathExprParser.PIPE); }
public TerminalNode PIPE(int i) {
return getToken(MathExprParser.PIPE, i);
}
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public AbsExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAbsExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAbsExp(this);
}
}
public static class ListExpContext extends AtomContext {
public TerminalNode LBRACKET() { return getToken(MathExprParser.LBRACKET, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RBRACKET() { return getToken(MathExprParser.RBRACKET, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public ListExpContext(AtomContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterListExp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitListExp(this);
}
}
public final AtomContext atom() throws RecognitionException {
AtomContext _localctx = new AtomContext(_ctx, getState());
enterRule(_localctx, 22, RULE_atom);
int _la;
try {
setState(202);
_errHandler.sync(this);
switch ( getInterpreter().adaptivePredict(_input,17,_ctx) ) {
case 1:
_localctx = new Func1ExpContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(169);
func1();
}
break;
case 2:
_localctx = new Func2ExpContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(170);
func2();
}
break;
case 3:
_localctx = new Func3ExpContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(171);
func3();
}
break;
case 4:
_localctx = new Func4ExpContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(172);
func4();
}
break;
case 5:
_localctx = new FuncNExpContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(173);
funcN();
}
break;
case 6:
_localctx = new VariableExpContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(174);
match(VARIABLE);
}
break;
case 7:
_localctx = new NumberExpContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(175);
match(NUMBER);
}
break;
case 8:
_localctx = new ConstantExpContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(176);
match(CONSTANT);
}
break;
case 9:
_localctx = new ParenExpContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(177);
match(LPAREN);
setState(178);
expr();
setState(179);
match(RPAREN);
}
break;
case 10:
_localctx = new AbsExpContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(181);
match(PIPE);
setState(182);
expr();
setState(183);
match(PIPE);
}
break;
case 11:
_localctx = new ListExpContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(185);
match(LBRACKET);
setState(186);
expr();
setState(191);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(187);
match(COMMA);
setState(188);
expr();
}
}
setState(193);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(194);
match(RBRACKET);
}
break;
case 12:
_localctx = new CallExpContext(_localctx);
enterOuterAlt(_localctx, 12);
{
setState(196);
match(VARIABLE);
setState(197);
match(LPAREN);
setState(199);
_errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << SIN) | (1L << COS) | (1L << TAN) | (1L << ASIN) | (1L << ACOS) | (1L << ATAN) | (1L << ATAN2) | (1L << SINH) | (1L << COSH) | (1L << TANH) | (1L << ASINH) | (1L << ACOSH) | (1L << ATANH) | (1L << ABS) | (1L << SQRT) | (1L << LN) | (1L << LOG) | (1L << EXP) | (1L << SMIN) | (1L << SMAX) | (1L << TMIN) | (1L << TMAX) | (1L << TNORM) | (1L << SNORM) | (1L << FLOOR) | (1L << CEIL) | (1L << ROUND) | (1L << GAMMA) | (1L << POWE) | (1L << SIGM) | (1L << CLAMP) | (1L << SFFT) | (1L << SIFFT) | (1L << ANGL) | (1L << PRNT) | (1L << PRINT_SHAPE) | (1L << NVL) | (1L << LERP) | (1L << STEP) | (1L << SMOOTHSTEP) | (1L << FRACT) | (1L << RELU) | (1L << SOFTPLUS) | (1L << GELU) | (1L << SIGN) | (1L << MAP) | (1L << EZCONV) | (1L << CONV) | (1L << SWAP) | (1L << PERM) | (1L << RESHAPE) | (1L << RANGE) | (1L << TOPK) | (1L << BOTK) | (1L << PINV) | (1L << SUM) | (1L << MEAN) | (1L << STD) | (1L << VAR) | (1L << QUARTILE) | (1L << PERCENTILE) | (1L << QUANTILE) | (1L << DOT))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (MOMENT - 64)) | (1L << (NOISE - 64)) | (1L << (RAND - 64)) | (1L << (CAUCHY - 64)) | (1L << (EXPONENTIAL - 64)) | (1L << (LOGNORMAL - 64)) | (1L << (BERNOULLI - 64)) | (1L << (POISSON - 64)) | (1L << (COSSIM - 64)) | (1L << (FLIP - 64)) | (1L << (COV - 64)) | (1L << (SORT - 64)) | (1L << (APPEND - 64)) | (1L << (PLUS - 64)) | (1L << (MINUS - 64)) | (1L << (PIPE - 64)) | (1L << (LPAREN - 64)) | (1L << (LBRACKET - 64)) | (1L << (CONSTANT - 64)) | (1L << (NUMBER - 64)) | (1L << (VARIABLE - 64)))) != 0)) {
{
setState(198);
exprList();
}
}
setState(201);
match(RPAREN);
}
break;
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class ExprListContext extends ParserRuleContext {
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public ExprListContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_exprList; }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterExprList(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitExprList(this);
}
}
public final ExprListContext exprList() throws RecognitionException {
ExprListContext _localctx = new ExprListContext(_ctx, getState());
enterRule(_localctx, 24, RULE_exprList);
int _la;
try {
enterOuterAlt(_localctx, 1);
{
setState(204);
expr();
setState(209);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(205);
match(COMMA);
setState(206);
expr();
}
}
setState(211);
_errHandler.sync(this);
_la = _input.LA(1);
}
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Func1Context extends ParserRuleContext {
public Func1Context(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_func1; }
public Func1Context() { }
public void copyFrom(Func1Context ctx) {
super.copyFrom(ctx);
}
}
public static class SoftplusFuncContext extends Func1Context {
public TerminalNode SOFTPLUS() { return getToken(MathExprParser.SOFTPLUS, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SoftplusFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSoftplusFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSoftplusFunc(this);
}
}
public static class SortFuncContext extends Func1Context {
public TerminalNode SORT() { return getToken(MathExprParser.SORT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SortFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSortFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSortFunc(this);
}
}
public static class TanhFuncContext extends Func1Context {
public TerminalNode TANH() { return getToken(MathExprParser.TANH, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TanhFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterTanhFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitTanhFunc(this);
}
}
public static class AcoshFuncContext extends Func1Context {
public TerminalNode ACOSH() { return getToken(MathExprParser.ACOSH, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AcoshFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAcoshFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAcoshFunc(this);
}
}
public static class NoiseFuncContext extends Func1Context {
public TerminalNode NOISE() { return getToken(MathExprParser.NOISE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public NoiseFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterNoiseFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitNoiseFunc(this);
}
}
public static class SqrtFuncContext extends Func1Context {
public TerminalNode SQRT() { return getToken(MathExprParser.SQRT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SqrtFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSqrtFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSqrtFunc(this);
}
}
public static class FloorFuncContext extends Func1Context {
public TerminalNode FLOOR() { return getToken(MathExprParser.FLOOR, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public FloorFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFloorFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFloorFunc(this);
}
}
public static class RoundFuncContext extends Func1Context {
public TerminalNode ROUND() { return getToken(MathExprParser.ROUND, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public RoundFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterRoundFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitRoundFunc(this);
}
}
public static class MeanFuncContext extends Func1Context {
public TerminalNode MEAN() { return getToken(MathExprParser.MEAN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public MeanFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterMeanFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitMeanFunc(this);
}
}
public static class CeilFuncContext extends Func1Context {
public TerminalNode CEIL() { return getToken(MathExprParser.CEIL, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public CeilFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCeilFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCeilFunc(this);
}
}
public static class GeluFuncContext extends Func1Context {
public TerminalNode GELU() { return getToken(MathExprParser.GELU, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public GeluFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterGeluFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitGeluFunc(this);
}
}
public static class PrintFuncContext extends Func1Context {
public TerminalNode PRNT() { return getToken(MathExprParser.PRNT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PrintFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPrintFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPrintFunc(this);
}
}
public static class AbsFuncContext extends Func1Context {
public TerminalNode ABS() { return getToken(MathExprParser.ABS, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AbsFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAbsFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAbsFunc(this);
}
}
public static class AtanFuncContext extends Func1Context {
public TerminalNode ATAN() { return getToken(MathExprParser.ATAN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AtanFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAtanFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAtanFunc(this);
}
}
public static class ReluFuncContext extends Func1Context {
public TerminalNode RELU() { return getToken(MathExprParser.RELU, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ReluFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterReluFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitReluFunc(this);
}
}
public static class SinhFuncContext extends Func1Context {
public TerminalNode SINH() { return getToken(MathExprParser.SINH, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SinhFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSinhFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSinhFunc(this);
}
}
public static class SigmoidFuncContext extends Func1Context {
public TerminalNode SIGM() { return getToken(MathExprParser.SIGM, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SigmoidFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSigmoidFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSigmoidFunc(this);
}
}
public static class LogFuncContext extends Func1Context {
public TerminalNode LOG() { return getToken(MathExprParser.LOG, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public LogFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterLogFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitLogFunc(this);
}
}
public static class LnFuncContext extends Func1Context {
public TerminalNode LN() { return getToken(MathExprParser.LN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public LnFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterLnFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitLnFunc(this);
}
}
public static class TNormFuncContext extends Func1Context {
public TerminalNode TNORM() { return getToken(MathExprParser.TNORM, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TNormFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterTNormFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitTNormFunc(this);
}
}
public static class SNormFuncContext extends Func1Context {
public TerminalNode SNORM() { return getToken(MathExprParser.SNORM, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SNormFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSNormFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSNormFunc(this);
}
}
public static class SinFuncContext extends Func1Context {
public TerminalNode SIN() { return getToken(MathExprParser.SIN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SinFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSinFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSinFunc(this);
}
}
public static class StdFuncContext extends Func1Context {
public TerminalNode STD() { return getToken(MathExprParser.STD, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public StdFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterStdFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitStdFunc(this);
}
}
public static class RandFuncContext extends Func1Context {
public TerminalNode RAND() { return getToken(MathExprParser.RAND, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public RandFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterRandFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitRandFunc(this);
}
}
public static class AcosFuncContext extends Func1Context {
public TerminalNode ACOS() { return getToken(MathExprParser.ACOS, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AcosFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAcosFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAcosFunc(this);
}
}
public static class CoshFuncContext extends Func1Context {
public TerminalNode COSH() { return getToken(MathExprParser.COSH, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public CoshFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCoshFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCoshFunc(this);
}
}
public static class AnglFuncContext extends Func1Context {
public TerminalNode ANGL() { return getToken(MathExprParser.ANGL, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AnglFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAnglFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAnglFunc(this);
}
}
public static class SumFuncContext extends Func1Context {
public TerminalNode SUM() { return getToken(MathExprParser.SUM, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SumFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSumFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSumFunc(this);
}
}
public static class SignFuncContext extends Func1Context {
public TerminalNode SIGN() { return getToken(MathExprParser.SIGN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SignFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSignFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSignFunc(this);
}
}
public static class TanFuncContext extends Func1Context {
public TerminalNode TAN() { return getToken(MathExprParser.TAN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TanFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterTanFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitTanFunc(this);
}
}
public static class PinvFuncContext extends Func1Context {
public TerminalNode PINV() { return getToken(MathExprParser.PINV, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PinvFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPinvFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPinvFunc(this);
}
}
public static class SifftFuncContext extends Func1Context {
public TerminalNode SIFFT() { return getToken(MathExprParser.SIFFT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SifftFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSifftFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSifftFunc(this);
}
}
public static class FractFuncContext extends Func1Context {
public TerminalNode FRACT() { return getToken(MathExprParser.FRACT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public FractFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFractFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFractFunc(this);
}
}
public static class GammaFuncContext extends Func1Context {
public TerminalNode GAMMA() { return getToken(MathExprParser.GAMMA, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public GammaFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterGammaFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitGammaFunc(this);
}
}
public static class CosFuncContext extends Func1Context {
public TerminalNode COS() { return getToken(MathExprParser.COS, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public CosFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCosFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCosFunc(this);
}
}
public static class VarFuncContext extends Func1Context {
public TerminalNode VAR() { return getToken(MathExprParser.VAR, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public VarFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterVarFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitVarFunc(this);
}
}
public static class AsinFuncContext extends Func1Context {
public TerminalNode ASIN() { return getToken(MathExprParser.ASIN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AsinFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAsinFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAsinFunc(this);
}
}
public static class AsinhFuncContext extends Func1Context {
public TerminalNode ASINH() { return getToken(MathExprParser.ASINH, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AsinhFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAsinhFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAsinhFunc(this);
}
}
public static class SfftFuncContext extends Func1Context {
public TerminalNode SFFT() { return getToken(MathExprParser.SFFT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SfftFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSfftFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSfftFunc(this);
}
}
public static class AtanhFuncContext extends Func1Context {
public TerminalNode ATANH() { return getToken(MathExprParser.ATANH, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AtanhFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAtanhFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAtanhFunc(this);
}
}
public static class ExpFuncContext extends Func1Context {
public TerminalNode EXP() { return getToken(MathExprParser.EXP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ExpFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterExpFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitExpFunc(this);
}
}
public static class PrintShapeFuncContext extends Func1Context {
public TerminalNode PRINT_SHAPE() { return getToken(MathExprParser.PRINT_SHAPE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public ExprContext expr() {
return getRuleContext(ExprContext.class,0);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PrintShapeFuncContext(Func1Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPrintShapeFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPrintShapeFunc(this);
}
}
public final Func1Context func1() throws RecognitionException {
Func1Context _localctx = new Func1Context(_ctx, getState());
enterRule(_localctx, 26, RULE_func1);
try {
setState(422);
_errHandler.sync(this);
switch (_input.LA(1)) {
case SIN:
_localctx = new SinFuncContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(212);
match(SIN);
setState(213);
match(LPAREN);
setState(214);
expr();
setState(215);
match(RPAREN);
}
break;
case COS:
_localctx = new CosFuncContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(217);
match(COS);
setState(218);
match(LPAREN);
setState(219);
expr();
setState(220);
match(RPAREN);
}
break;
case TAN:
_localctx = new TanFuncContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(222);
match(TAN);
setState(223);
match(LPAREN);
setState(224);
expr();
setState(225);
match(RPAREN);
}
break;
case ASIN:
_localctx = new AsinFuncContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(227);
match(ASIN);
setState(228);
match(LPAREN);
setState(229);
expr();
setState(230);
match(RPAREN);
}
break;
case ACOS:
_localctx = new AcosFuncContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(232);
match(ACOS);
setState(233);
match(LPAREN);
setState(234);
expr();
setState(235);
match(RPAREN);
}
break;
case ATAN:
_localctx = new AtanFuncContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(237);
match(ATAN);
setState(238);
match(LPAREN);
setState(239);
expr();
setState(240);
match(RPAREN);
}
break;
case SINH:
_localctx = new SinhFuncContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(242);
match(SINH);
setState(243);
match(LPAREN);
setState(244);
expr();
setState(245);
match(RPAREN);
}
break;
case COSH:
_localctx = new CoshFuncContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(247);
match(COSH);
setState(248);
match(LPAREN);
setState(249);
expr();
setState(250);
match(RPAREN);
}
break;
case TANH:
_localctx = new TanhFuncContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(252);
match(TANH);
setState(253);
match(LPAREN);
setState(254);
expr();
setState(255);
match(RPAREN);
}
break;
case ASINH:
_localctx = new AsinhFuncContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(257);
match(ASINH);
setState(258);
match(LPAREN);
setState(259);
expr();
setState(260);
match(RPAREN);
}
break;
case ACOSH:
_localctx = new AcoshFuncContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(262);
match(ACOSH);
setState(263);
match(LPAREN);
setState(264);
expr();
setState(265);
match(RPAREN);
}
break;
case ATANH:
_localctx = new AtanhFuncContext(_localctx);
enterOuterAlt(_localctx, 12);
{
setState(267);
match(ATANH);
setState(268);
match(LPAREN);
setState(269);
expr();
setState(270);
match(RPAREN);
}
break;
case ABS:
_localctx = new AbsFuncContext(_localctx);
enterOuterAlt(_localctx, 13);
{
setState(272);
match(ABS);
setState(273);
match(LPAREN);
setState(274);
expr();
setState(275);
match(RPAREN);
}
break;
case SQRT:
_localctx = new SqrtFuncContext(_localctx);
enterOuterAlt(_localctx, 14);
{
setState(277);
match(SQRT);
setState(278);
match(LPAREN);
setState(279);
expr();
setState(280);
match(RPAREN);
}
break;
case LN:
_localctx = new LnFuncContext(_localctx);
enterOuterAlt(_localctx, 15);
{
setState(282);
match(LN);
setState(283);
match(LPAREN);
setState(284);
expr();
setState(285);
match(RPAREN);
}
break;
case LOG:
_localctx = new LogFuncContext(_localctx);
enterOuterAlt(_localctx, 16);
{
setState(287);
match(LOG);
setState(288);
match(LPAREN);
setState(289);
expr();
setState(290);
match(RPAREN);
}
break;
case EXP:
_localctx = new ExpFuncContext(_localctx);
enterOuterAlt(_localctx, 17);
{
setState(292);
match(EXP);
setState(293);
match(LPAREN);
setState(294);
expr();
setState(295);
match(RPAREN);
}
break;
case TNORM:
_localctx = new TNormFuncContext(_localctx);
enterOuterAlt(_localctx, 18);
{
setState(297);
match(TNORM);
setState(298);
match(LPAREN);
setState(299);
expr();
setState(300);
match(RPAREN);
}
break;
case SNORM:
_localctx = new SNormFuncContext(_localctx);
enterOuterAlt(_localctx, 19);
{
setState(302);
match(SNORM);
setState(303);
match(LPAREN);
setState(304);
expr();
setState(305);
match(RPAREN);
}
break;
case FLOOR:
_localctx = new FloorFuncContext(_localctx);
enterOuterAlt(_localctx, 20);
{
setState(307);
match(FLOOR);
setState(308);
match(LPAREN);
setState(309);
expr();
setState(310);
match(RPAREN);
}
break;
case CEIL:
_localctx = new CeilFuncContext(_localctx);
enterOuterAlt(_localctx, 21);
{
setState(312);
match(CEIL);
setState(313);
match(LPAREN);
setState(314);
expr();
setState(315);
match(RPAREN);
}
break;
case ROUND:
_localctx = new RoundFuncContext(_localctx);
enterOuterAlt(_localctx, 22);
{
setState(317);
match(ROUND);
setState(318);
match(LPAREN);
setState(319);
expr();
setState(320);
match(RPAREN);
}
break;
case GAMMA:
_localctx = new GammaFuncContext(_localctx);
enterOuterAlt(_localctx, 23);
{
setState(322);
match(GAMMA);
setState(323);
match(LPAREN);
setState(324);
expr();
setState(325);
match(RPAREN);
}
break;
case SIGM:
_localctx = new SigmoidFuncContext(_localctx);
enterOuterAlt(_localctx, 24);
{
setState(327);
match(SIGM);
setState(328);
match(LPAREN);
setState(329);
expr();
setState(330);
match(RPAREN);
}
break;
case SFFT:
_localctx = new SfftFuncContext(_localctx);
enterOuterAlt(_localctx, 25);
{
setState(332);
match(SFFT);
setState(333);
match(LPAREN);
setState(334);
expr();
setState(335);
match(RPAREN);
}
break;
case SIFFT:
_localctx = new SifftFuncContext(_localctx);
enterOuterAlt(_localctx, 26);
{
setState(337);
match(SIFFT);
setState(338);
match(LPAREN);
setState(339);
expr();
setState(340);
match(RPAREN);
}
break;
case ANGL:
_localctx = new AnglFuncContext(_localctx);
enterOuterAlt(_localctx, 27);
{
setState(342);
match(ANGL);
setState(343);
match(LPAREN);
setState(344);
expr();
setState(345);
match(RPAREN);
}
break;
case PRNT:
_localctx = new PrintFuncContext(_localctx);
enterOuterAlt(_localctx, 28);
{
setState(347);
match(PRNT);
setState(348);
match(LPAREN);
setState(349);
expr();
setState(350);
match(RPAREN);
}
break;
case FRACT:
_localctx = new FractFuncContext(_localctx);
enterOuterAlt(_localctx, 29);
{
setState(352);
match(FRACT);
setState(353);
match(LPAREN);
setState(354);
expr();
setState(355);
match(RPAREN);
}
break;
case RELU:
_localctx = new ReluFuncContext(_localctx);
enterOuterAlt(_localctx, 30);
{
setState(357);
match(RELU);
setState(358);
match(LPAREN);
setState(359);
expr();
setState(360);
match(RPAREN);
}
break;
case SOFTPLUS:
_localctx = new SoftplusFuncContext(_localctx);
enterOuterAlt(_localctx, 31);
{
setState(362);
match(SOFTPLUS);
setState(363);
match(LPAREN);
setState(364);
expr();
setState(365);
match(RPAREN);
}
break;
case GELU:
_localctx = new GeluFuncContext(_localctx);
enterOuterAlt(_localctx, 32);
{
setState(367);
match(GELU);
setState(368);
match(LPAREN);
setState(369);
expr();
setState(370);
match(RPAREN);
}
break;
case SIGN:
_localctx = new SignFuncContext(_localctx);
enterOuterAlt(_localctx, 33);
{
setState(372);
match(SIGN);
setState(373);
match(LPAREN);
setState(374);
expr();
setState(375);
match(RPAREN);
}
break;
case PRINT_SHAPE:
_localctx = new PrintShapeFuncContext(_localctx);
enterOuterAlt(_localctx, 34);
{
setState(377);
match(PRINT_SHAPE);
setState(378);
match(LPAREN);
setState(379);
expr();
setState(380);
match(RPAREN);
}
break;
case PINV:
_localctx = new PinvFuncContext(_localctx);
enterOuterAlt(_localctx, 35);
{
setState(382);
match(PINV);
setState(383);
match(LPAREN);
setState(384);
expr();
setState(385);
match(RPAREN);
}
break;
case SUM:
_localctx = new SumFuncContext(_localctx);
enterOuterAlt(_localctx, 36);
{
setState(387);
match(SUM);
setState(388);
match(LPAREN);
setState(389);
expr();
setState(390);
match(RPAREN);
}
break;
case MEAN:
_localctx = new MeanFuncContext(_localctx);
enterOuterAlt(_localctx, 37);
{
setState(392);
match(MEAN);
setState(393);
match(LPAREN);
setState(394);
expr();
setState(395);
match(RPAREN);
}
break;
case STD:
_localctx = new StdFuncContext(_localctx);
enterOuterAlt(_localctx, 38);
{
setState(397);
match(STD);
setState(398);
match(LPAREN);
setState(399);
expr();
setState(400);
match(RPAREN);
}
break;
case VAR:
_localctx = new VarFuncContext(_localctx);
enterOuterAlt(_localctx, 39);
{
setState(402);
match(VAR);
setState(403);
match(LPAREN);
setState(404);
expr();
setState(405);
match(RPAREN);
}
break;
case SORT:
_localctx = new SortFuncContext(_localctx);
enterOuterAlt(_localctx, 40);
{
setState(407);
match(SORT);
setState(408);
match(LPAREN);
setState(409);
expr();
setState(410);
match(RPAREN);
}
break;
case NOISE:
_localctx = new NoiseFuncContext(_localctx);
enterOuterAlt(_localctx, 41);
{
setState(412);
match(NOISE);
setState(413);
match(LPAREN);
setState(414);
expr();
setState(415);
match(RPAREN);
}
break;
case RAND:
_localctx = new RandFuncContext(_localctx);
enterOuterAlt(_localctx, 42);
{
setState(417);
match(RAND);
setState(418);
match(LPAREN);
setState(419);
expr();
setState(420);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Func2Context extends ParserRuleContext {
public Func2Context(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_func2; }
public Func2Context() { }
public void copyFrom(Func2Context ctx) {
super.copyFrom(ctx);
}
}
public static class TopkFuncContext extends Func2Context {
public TerminalNode TOPK() { return getToken(MathExprParser.TOPK, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TopkFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterTopkFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitTopkFunc(this);
}
}
public static class PercentileFuncContext extends Func2Context {
public TerminalNode PERCENTILE() { return getToken(MathExprParser.PERCENTILE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PercentileFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPercentileFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPercentileFunc(this);
}
}
public static class ExponentialFuncContext extends Func2Context {
public TerminalNode EXPONENTIAL() { return getToken(MathExprParser.EXPONENTIAL, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ExponentialFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterExponentialFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitExponentialFunc(this);
}
}
public static class PoissonFuncContext extends Func2Context {
public TerminalNode POISSON() { return getToken(MathExprParser.POISSON, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PoissonFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPoissonFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPoissonFunc(this);
}
}
public static class CovFuncContext extends Func2Context {
public TerminalNode COV() { return getToken(MathExprParser.COV, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public CovFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCovFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCovFunc(this);
}
}
public static class BernoulliFuncContext extends Func2Context {
public TerminalNode BERNOULLI() { return getToken(MathExprParser.BERNOULLI, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public BernoulliFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterBernoulliFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitBernoulliFunc(this);
}
}
public static class StepFuncContext extends Func2Context {
public TerminalNode STEP() { return getToken(MathExprParser.STEP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public StepFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterStepFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitStepFunc(this);
}
}
public static class Atan2FuncContext extends Func2Context {
public TerminalNode ATAN2() { return getToken(MathExprParser.ATAN2, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public Atan2FuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAtan2Func(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAtan2Func(this);
}
}
public static class QuantileFuncContext extends Func2Context {
public TerminalNode QUANTILE() { return getToken(MathExprParser.QUANTILE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public QuantileFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterQuantileFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitQuantileFunc(this);
}
}
public static class BotkFuncContext extends Func2Context {
public TerminalNode BOTK() { return getToken(MathExprParser.BOTK, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public BotkFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterBotkFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitBotkFunc(this);
}
}
public static class TMaxFuncContext extends Func2Context {
public TerminalNode TMAX() { return getToken(MathExprParser.TMAX, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TMaxFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterTMaxFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitTMaxFunc(this);
}
}
public static class CossimFuncContext extends Func2Context {
public TerminalNode COSSIM() { return getToken(MathExprParser.COSSIM, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public CossimFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCossimFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCossimFunc(this);
}
}
public static class PowFuncContext extends Func2Context {
public TerminalNode POWE() { return getToken(MathExprParser.POWE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PowFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPowFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPowFunc(this);
}
}
public static class DotFuncContext extends Func2Context {
public TerminalNode DOT() { return getToken(MathExprParser.DOT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public DotFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterDotFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitDotFunc(this);
}
}
public static class AppendFuncContext extends Func2Context {
public TerminalNode APPEND() { return getToken(MathExprParser.APPEND, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public AppendFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterAppendFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitAppendFunc(this);
}
}
public static class FlipFuncContext extends Func2Context {
public TerminalNode FLIP() { return getToken(MathExprParser.FLIP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public FlipFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterFlipFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitFlipFunc(this);
}
}
public static class QuartileFuncContext extends Func2Context {
public TerminalNode QUARTILE() { return getToken(MathExprParser.QUARTILE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public QuartileFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterQuartileFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitQuartileFunc(this);
}
}
public static class TMinFuncContext extends Func2Context {
public TerminalNode TMIN() { return getToken(MathExprParser.TMIN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public TMinFuncContext(Func2Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterTMinFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitTMinFunc(this);
}
}
public final Func2Context func2() throws RecognitionException {
Func2Context _localctx = new Func2Context(_ctx, getState());
enterRule(_localctx, 28, RULE_func2);
try {
setState(550);
_errHandler.sync(this);
switch (_input.LA(1)) {
case POWE:
_localctx = new PowFuncContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(424);
match(POWE);
setState(425);
match(LPAREN);
setState(426);
expr();
setState(427);
match(COMMA);
setState(428);
expr();
setState(429);
match(RPAREN);
}
break;
case ATAN2:
_localctx = new Atan2FuncContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(431);
match(ATAN2);
setState(432);
match(LPAREN);
setState(433);
expr();
setState(434);
match(COMMA);
setState(435);
expr();
setState(436);
match(RPAREN);
}
break;
case TMIN:
_localctx = new TMinFuncContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(438);
match(TMIN);
setState(439);
match(LPAREN);
setState(440);
expr();
setState(441);
match(COMMA);
setState(442);
expr();
setState(443);
match(RPAREN);
}
break;
case TMAX:
_localctx = new TMaxFuncContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(445);
match(TMAX);
setState(446);
match(LPAREN);
setState(447);
expr();
setState(448);
match(COMMA);
setState(449);
expr();
setState(450);
match(RPAREN);
}
break;
case STEP:
_localctx = new StepFuncContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(452);
match(STEP);
setState(453);
match(LPAREN);
setState(454);
expr();
setState(455);
match(COMMA);
setState(456);
expr();
setState(457);
match(RPAREN);
}
break;
case TOPK:
_localctx = new TopkFuncContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(459);
match(TOPK);
setState(460);
match(LPAREN);
setState(461);
expr();
setState(462);
match(COMMA);
setState(463);
expr();
setState(464);
match(RPAREN);
}
break;
case BOTK:
_localctx = new BotkFuncContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(466);
match(BOTK);
setState(467);
match(LPAREN);
setState(468);
expr();
setState(469);
match(COMMA);
setState(470);
expr();
setState(471);
match(RPAREN);
}
break;
case QUARTILE:
_localctx = new QuartileFuncContext(_localctx);
enterOuterAlt(_localctx, 8);
{
setState(473);
match(QUARTILE);
setState(474);
match(LPAREN);
setState(475);
expr();
setState(476);
match(COMMA);
setState(477);
expr();
setState(478);
match(RPAREN);
}
break;
case PERCENTILE:
_localctx = new PercentileFuncContext(_localctx);
enterOuterAlt(_localctx, 9);
{
setState(480);
match(PERCENTILE);
setState(481);
match(LPAREN);
setState(482);
expr();
setState(483);
match(COMMA);
setState(484);
expr();
setState(485);
match(RPAREN);
}
break;
case QUANTILE:
_localctx = new QuantileFuncContext(_localctx);
enterOuterAlt(_localctx, 10);
{
setState(487);
match(QUANTILE);
setState(488);
match(LPAREN);
setState(489);
expr();
setState(490);
match(COMMA);
setState(491);
expr();
setState(492);
match(RPAREN);
}
break;
case DOT:
_localctx = new DotFuncContext(_localctx);
enterOuterAlt(_localctx, 11);
{
setState(494);
match(DOT);
setState(495);
match(LPAREN);
setState(496);
expr();
setState(497);
match(COMMA);
setState(498);
expr();
setState(499);
match(RPAREN);
}
break;
case COSSIM:
_localctx = new CossimFuncContext(_localctx);
enterOuterAlt(_localctx, 12);
{
setState(501);
match(COSSIM);
setState(502);
match(LPAREN);
setState(503);
expr();
setState(504);
match(COMMA);
setState(505);
expr();
setState(506);
match(RPAREN);
}
break;
case FLIP:
_localctx = new FlipFuncContext(_localctx);
enterOuterAlt(_localctx, 13);
{
setState(508);
match(FLIP);
setState(509);
match(LPAREN);
setState(510);
expr();
setState(511);
match(COMMA);
setState(512);
expr();
setState(513);
match(RPAREN);
}
break;
case COV:
_localctx = new CovFuncContext(_localctx);
enterOuterAlt(_localctx, 14);
{
setState(515);
match(COV);
setState(516);
match(LPAREN);
setState(517);
expr();
setState(518);
match(COMMA);
setState(519);
expr();
setState(520);
match(RPAREN);
}
break;
case APPEND:
_localctx = new AppendFuncContext(_localctx);
enterOuterAlt(_localctx, 15);
{
setState(522);
match(APPEND);
setState(523);
match(LPAREN);
setState(524);
expr();
setState(525);
match(COMMA);
setState(526);
expr();
setState(527);
match(RPAREN);
}
break;
case EXPONENTIAL:
_localctx = new ExponentialFuncContext(_localctx);
enterOuterAlt(_localctx, 16);
{
setState(529);
match(EXPONENTIAL);
setState(530);
match(LPAREN);
setState(531);
expr();
setState(532);
match(COMMA);
setState(533);
expr();
setState(534);
match(RPAREN);
}
break;
case BERNOULLI:
_localctx = new BernoulliFuncContext(_localctx);
enterOuterAlt(_localctx, 17);
{
setState(536);
match(BERNOULLI);
setState(537);
match(LPAREN);
setState(538);
expr();
setState(539);
match(COMMA);
setState(540);
expr();
setState(541);
match(RPAREN);
}
break;
case POISSON:
_localctx = new PoissonFuncContext(_localctx);
enterOuterAlt(_localctx, 18);
{
setState(543);
match(POISSON);
setState(544);
match(LPAREN);
setState(545);
expr();
setState(546);
match(COMMA);
setState(547);
expr();
setState(548);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Func3Context extends ParserRuleContext {
public Func3Context(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_func3; }
public Func3Context() { }
public void copyFrom(Func3Context ctx) {
super.copyFrom(ctx);
}
}
public static class MomentFuncContext extends Func3Context {
public TerminalNode MOMENT() { return getToken(MathExprParser.MOMENT, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public MomentFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterMomentFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitMomentFunc(this);
}
}
public static class LerpFuncContext extends Func3Context {
public TerminalNode LERP() { return getToken(MathExprParser.LERP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public LerpFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterLerpFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitLerpFunc(this);
}
}
public static class SmoothstepFuncContext extends Func3Context {
public TerminalNode SMOOTHSTEP() { return getToken(MathExprParser.SMOOTHSTEP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SmoothstepFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSmoothstepFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSmoothstepFunc(this);
}
}
public static class CauchyFuncContext extends Func3Context {
public TerminalNode CAUCHY() { return getToken(MathExprParser.CAUCHY, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public CauchyFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterCauchyFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitCauchyFunc(this);
}
}
public static class LogNormalFuncContext extends Func3Context {
public TerminalNode LOGNORMAL() { return getToken(MathExprParser.LOGNORMAL, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public LogNormalFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterLogNormalFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitLogNormalFunc(this);
}
}
public static class RangeFuncContext extends Func3Context {
public TerminalNode RANGE() { return getToken(MathExprParser.RANGE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public RangeFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterRangeFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitRangeFunc(this);
}
}
public static class ClampFuncContext extends Func3Context {
public TerminalNode CLAMP() { return getToken(MathExprParser.CLAMP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ClampFuncContext(Func3Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterClampFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitClampFunc(this);
}
}
public final Func3Context func3() throws RecognitionException {
Func3Context _localctx = new Func3Context(_ctx, getState());
enterRule(_localctx, 30, RULE_func3);
try {
setState(615);
_errHandler.sync(this);
switch (_input.LA(1)) {
case CLAMP:
_localctx = new ClampFuncContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(552);
match(CLAMP);
setState(553);
match(LPAREN);
setState(554);
expr();
setState(555);
match(COMMA);
setState(556);
expr();
setState(557);
match(COMMA);
setState(558);
expr();
setState(559);
match(RPAREN);
}
break;
case LERP:
_localctx = new LerpFuncContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(561);
match(LERP);
setState(562);
match(LPAREN);
setState(563);
expr();
setState(564);
match(COMMA);
setState(565);
expr();
setState(566);
match(COMMA);
setState(567);
expr();
setState(568);
match(RPAREN);
}
break;
case SMOOTHSTEP:
_localctx = new SmoothstepFuncContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(570);
match(SMOOTHSTEP);
setState(571);
match(LPAREN);
setState(572);
expr();
setState(573);
match(COMMA);
setState(574);
expr();
setState(575);
match(COMMA);
setState(576);
expr();
setState(577);
match(RPAREN);
}
break;
case RANGE:
_localctx = new RangeFuncContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(579);
match(RANGE);
setState(580);
match(LPAREN);
setState(581);
expr();
setState(582);
match(COMMA);
setState(583);
expr();
setState(584);
match(COMMA);
setState(585);
expr();
setState(586);
match(RPAREN);
}
break;
case MOMENT:
_localctx = new MomentFuncContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(588);
match(MOMENT);
setState(589);
match(LPAREN);
setState(590);
expr();
setState(591);
match(COMMA);
setState(592);
expr();
setState(593);
match(COMMA);
setState(594);
expr();
setState(595);
match(RPAREN);
}
break;
case CAUCHY:
_localctx = new CauchyFuncContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(597);
match(CAUCHY);
setState(598);
match(LPAREN);
setState(599);
expr();
setState(600);
match(COMMA);
setState(601);
expr();
setState(602);
match(COMMA);
setState(603);
expr();
setState(604);
match(RPAREN);
}
break;
case LOGNORMAL:
_localctx = new LogNormalFuncContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(606);
match(LOGNORMAL);
setState(607);
match(LPAREN);
setState(608);
expr();
setState(609);
match(COMMA);
setState(610);
expr();
setState(611);
match(COMMA);
setState(612);
expr();
setState(613);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class Func4Context extends ParserRuleContext {
public Func4Context(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_func4; }
public Func4Context() { }
public void copyFrom(Func4Context ctx) {
super.copyFrom(ctx);
}
}
public static class NvlFuncContext extends Func4Context {
public TerminalNode NVL() { return getToken(MathExprParser.NVL, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public NvlFuncContext(Func4Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterNvlFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitNvlFunc(this);
}
}
public static class SwapFuncContext extends Func4Context {
public TerminalNode SWAP() { return getToken(MathExprParser.SWAP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public SwapFuncContext(Func4Context ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSwapFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSwapFunc(this);
}
}
public final Func4Context func4() throws RecognitionException {
Func4Context _localctx = new Func4Context(_ctx, getState());
enterRule(_localctx, 32, RULE_func4);
try {
setState(639);
_errHandler.sync(this);
switch (_input.LA(1)) {
case SWAP:
_localctx = new SwapFuncContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(617);
match(SWAP);
setState(618);
match(LPAREN);
setState(619);
expr();
setState(620);
match(COMMA);
setState(621);
expr();
setState(622);
match(COMMA);
setState(623);
expr();
setState(624);
match(COMMA);
setState(625);
expr();
setState(626);
match(RPAREN);
}
break;
case NVL:
_localctx = new NvlFuncContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(628);
match(NVL);
setState(629);
match(LPAREN);
setState(630);
expr();
setState(631);
match(COMMA);
setState(632);
expr();
setState(633);
match(COMMA);
setState(634);
expr();
setState(635);
match(COMMA);
setState(636);
expr();
setState(637);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public static class FuncNContext extends ParserRuleContext {
public FuncNContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
@Override public int getRuleIndex() { return RULE_funcN; }
public FuncNContext() { }
public void copyFrom(FuncNContext ctx) {
super.copyFrom(ctx);
}
}
public static class SMaxFuncContext extends FuncNContext {
public TerminalNode SMAX() { return getToken(MathExprParser.SMAX, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public SMaxFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSMaxFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSMaxFunc(this);
}
}
public static class MapFuncContext extends FuncNContext {
public TerminalNode MAP() { return getToken(MathExprParser.MAP, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public MapFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterMapFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitMapFunc(this);
}
}
public static class EzConvFuncContext extends FuncNContext {
public TerminalNode EZCONV() { return getToken(MathExprParser.EZCONV, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public EzConvFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterEzConvFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitEzConvFunc(this);
}
}
public static class PermuteFuncContext extends FuncNContext {
public TerminalNode PERM() { return getToken(MathExprParser.PERM, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public PermuteFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterPermuteFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitPermuteFunc(this);
}
}
public static class ReshapeFuncContext extends FuncNContext {
public TerminalNode RESHAPE() { return getToken(MathExprParser.RESHAPE, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode COMMA() { return getToken(MathExprParser.COMMA, 0); }
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public ReshapeFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterReshapeFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitReshapeFunc(this);
}
}
public static class SMinFuncContext extends FuncNContext {
public TerminalNode SMIN() { return getToken(MathExprParser.SMIN, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public SMinFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterSMinFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitSMinFunc(this);
}
}
public static class ConvFuncContext extends FuncNContext {
public TerminalNode CONV() { return getToken(MathExprParser.CONV, 0); }
public TerminalNode LPAREN() { return getToken(MathExprParser.LPAREN, 0); }
public List<ExprContext> expr() {
return getRuleContexts(ExprContext.class);
}
public ExprContext expr(int i) {
return getRuleContext(ExprContext.class,i);
}
public TerminalNode RPAREN() { return getToken(MathExprParser.RPAREN, 0); }
public List<TerminalNode> COMMA() { return getTokens(MathExprParser.COMMA); }
public TerminalNode COMMA(int i) {
return getToken(MathExprParser.COMMA, i);
}
public ConvFuncContext(FuncNContext ctx) { copyFrom(ctx); }
@Override
public void enterRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).enterConvFunc(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
if ( listener instanceof MathExprListener ) ((MathExprListener)listener).exitConvFunc(this);
}
}
public final FuncNContext funcN() throws RecognitionException {
FuncNContext _localctx = new FuncNContext(_ctx, getState());
enterRule(_localctx, 34, RULE_funcN);
int _la;
try {
setState(712);
_errHandler.sync(this);
switch (_input.LA(1)) {
case SMIN:
_localctx = new SMinFuncContext(_localctx);
enterOuterAlt(_localctx, 1);
{
setState(641);
match(SMIN);
setState(642);
match(LPAREN);
setState(643);
expr();
setState(648);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(644);
match(COMMA);
setState(645);
expr();
}
}
setState(650);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(651);
match(RPAREN);
}
break;
case SMAX:
_localctx = new SMaxFuncContext(_localctx);
enterOuterAlt(_localctx, 2);
{
setState(653);
match(SMAX);
setState(654);
match(LPAREN);
setState(655);
expr();
setState(660);
_errHandler.sync(this);
_la = _input.LA(1);
while (_la==COMMA) {
{
{
setState(656);
match(COMMA);
setState(657);
expr();
}
}
setState(662);
_errHandler.sync(this);
_la = _input.LA(1);
}
setState(663);
match(RPAREN);
}
break;
case MAP:
_localctx = new MapFuncContext(_localctx);
enterOuterAlt(_localctx, 3);
{
setState(665);
match(MAP);
setState(666);
match(LPAREN);
setState(667);
expr();
setState(670);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(668);
match(COMMA);
setState(669);
expr();
}
}
setState(672);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==COMMA );
setState(674);
match(RPAREN);
}
break;
case EZCONV:
_localctx = new EzConvFuncContext(_localctx);
enterOuterAlt(_localctx, 4);
{
setState(676);
match(EZCONV);
setState(677);
match(LPAREN);
setState(678);
expr();
setState(681);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(679);
match(COMMA);
setState(680);
expr();
}
}
setState(683);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==COMMA );
setState(685);
match(RPAREN);
}
break;
case CONV:
_localctx = new ConvFuncContext(_localctx);
enterOuterAlt(_localctx, 5);
{
setState(687);
match(CONV);
setState(688);
match(LPAREN);
setState(689);
expr();
setState(692);
_errHandler.sync(this);
_la = _input.LA(1);
do {
{
{
setState(690);
match(COMMA);
setState(691);
expr();
}
}
setState(694);
_errHandler.sync(this);
_la = _input.LA(1);
} while ( _la==COMMA );
setState(696);
match(RPAREN);
}
break;
case PERM:
_localctx = new PermuteFuncContext(_localctx);
enterOuterAlt(_localctx, 6);
{
setState(698);
match(PERM);
setState(699);
match(LPAREN);
setState(700);
expr();
setState(701);
match(COMMA);
setState(702);
expr();
setState(703);
match(RPAREN);
}
break;
case RESHAPE:
_localctx = new ReshapeFuncContext(_localctx);
enterOuterAlt(_localctx, 7);
{
setState(705);
match(RESHAPE);
setState(706);
match(LPAREN);
setState(707);
expr();
setState(708);
match(COMMA);
setState(709);
expr();
setState(710);
match(RPAREN);
}
break;
default:
throw new NoViableAltException(this);
}
}
catch (RecognitionException re) {
_localctx.exception = re;
_errHandler.reportError(this, re);
_errHandler.recover(this, re);
}
finally {
exitRule();
}
return _localctx;
}
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 5:
return compExpr_sempred((CompExprContext)_localctx, predIndex);
case 6:
return addExpr_sempred((AddExprContext)_localctx, predIndex);
case 7:
return mulExpr_sempred((MulExprContext)_localctx, predIndex);
case 10:
return indexExpr_sempred((IndexExprContext)_localctx, predIndex);
}
return true;
}
private boolean compExpr_sempred(CompExprContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return precpred(_ctx, 7);
case 1:
return precpred(_ctx, 6);
case 2:
return precpred(_ctx, 5);
case 3:
return precpred(_ctx, 4);
case 4:
return precpred(_ctx, 3);
case 5:
return precpred(_ctx, 2);
}
return true;
}
private boolean addExpr_sempred(AddExprContext _localctx, int predIndex) {
switch (predIndex) {
case 6:
return precpred(_ctx, 3);
case 7:
return precpred(_ctx, 2);
}
return true;
}
private boolean mulExpr_sempred(MulExprContext _localctx, int predIndex) {
switch (predIndex) {
case 8:
return precpred(_ctx, 4);
case 9:
return precpred(_ctx, 3);
case 10:
return precpred(_ctx, 2);
}
return true;
}
private boolean indexExpr_sempred(IndexExprContext _localctx, int predIndex) {
switch (predIndex) {
case 11:
return precpred(_ctx, 2);
}
return true;
}
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3g\u02cd\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\3\2\7\2(\n\2\f\2\16\2+\13\2\3\2\7\2.\n\2\f\2\16\2\61\13\2\3"+
"\2\3\2\3\2\3\3\3\3\3\3\5\39\n\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3"+
"\4\3\5\3\5\3\5\7\5H\n\5\f\5\16\5K\13\5\3\6\3\6\5\6O\n\6\3\7\3\7\3\7\3"+
"\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7"+
"\7\7f\n\7\f\7\16\7i\13\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\7\bt\n\b"+
"\f\b\16\bw\13\b\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\3\t\7\t\u0085"+
"\n\t\f\t\16\t\u0088\13\t\3\n\3\n\3\n\3\n\3\n\5\n\u008f\n\n\3\13\3\13\3"+
"\13\3\13\3\13\5\13\u0096\n\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\7\f\u00a0"+
"\n\f\f\f\16\f\u00a3\13\f\3\f\3\f\7\f\u00a7\n\f\f\f\16\f\u00aa\13\f\3\r"+
"\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3"+
"\r\3\r\7\r\u00c0\n\r\f\r\16\r\u00c3\13\r\3\r\3\r\3\r\3\r\3\r\5\r\u00ca"+
"\n\r\3\r\5\r\u00cd\n\r\3\16\3\16\3\16\7\16\u00d2\n\16\f\16\16\16\u00d5"+
"\13\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+
"\3\17\5\17\u01a9\n\17\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20"+
"\3\20\3\20\3\20\3\20\5\20\u0229\n\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+
"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+
"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+
"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+
"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+
"\5\21\u026a\n\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22"+
"\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\3\22\5\22\u0282\n\22"+
"\3\23\3\23\3\23\3\23\3\23\7\23\u0289\n\23\f\23\16\23\u028c\13\23\3\23"+
"\3\23\3\23\3\23\3\23\3\23\3\23\7\23\u0295\n\23\f\23\16\23\u0298\13\23"+
"\3\23\3\23\3\23\3\23\3\23\3\23\3\23\6\23\u02a1\n\23\r\23\16\23\u02a2\3"+
"\23\3\23\3\23\3\23\3\23\3\23\3\23\6\23\u02ac\n\23\r\23\16\23\u02ad\3\23"+
"\3\23\3\23\3\23\3\23\3\23\3\23\6\23\u02b7\n\23\r\23\16\23\u02b8\3\23\3"+
"\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3"+
"\23\5\23\u02cb\n\23\3\23\2\6\f\16\20\26\24\2\4\6\b\n\f\16\20\22\24\26"+
"\30\32\34\36 \"$\2\2\2\u0329\2)\3\2\2\2\4\65\3\2\2\2\6?\3\2\2\2\bD\3\2"+
"\2\2\nN\3\2\2\2\fP\3\2\2\2\16j\3\2\2\2\20x\3\2\2\2\22\u008e\3\2\2\2\24"+
"\u0095\3\2\2\2\26\u0097\3\2\2\2\30\u00cc\3\2\2\2\32\u00ce\3\2\2\2\34\u01a8"+
"\3\2\2\2\36\u0228\3\2\2\2 \u0269\3\2\2\2\"\u0281\3\2\2\2$\u02ca\3\2\2"+
"\2&(\5\4\3\2\'&\3\2\2\2(+\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*/\3\2\2\2+)\3\2"+
"\2\2,.\5\6\4\2-,\3\2\2\2.\61\3\2\2\2/-\3\2\2\2/\60\3\2\2\2\60\62\3\2\2"+
"\2\61/\3\2\2\2\62\63\5\n\6\2\63\64\7\2\2\3\64\3\3\2\2\2\65\66\7f\2\2\66"+
"8\7]\2\2\679\5\b\5\28\67\3\2\2\289\3\2\2\29:\3\2\2\2:;\7^\2\2;<\7a\2\2"+
"<=\5\n\6\2=>\7`\2\2>\5\3\2\2\2?@\7f\2\2@A\7Z\2\2AB\5\n\6\2BC\7`\2\2C\7"+
"\3\2\2\2DI\7f\2\2EF\7_\2\2FH\7f\2\2GE\3\2\2\2HK\3\2\2\2IG\3\2\2\2IJ\3"+
"\2\2\2J\t\3\2\2\2KI\3\2\2\2LO\5\30\r\2MO\5\f\7\2NL\3\2\2\2NM\3\2\2\2O"+
"\13\3\2\2\2PQ\b\7\1\2QR\5\16\b\2Rg\3\2\2\2ST\f\t\2\2TU\7V\2\2Uf\5\16\b"+
"\2VW\f\b\2\2WX\7U\2\2Xf\5\16\b\2YZ\f\7\2\2Z[\7X\2\2[f\5\16\b\2\\]\f\6"+
"\2\2]^\7W\2\2^f\5\16\b\2_`\f\5\2\2`a\7Y\2\2af\5\16\b\2bc\f\4\2\2cd\7["+
"\2\2df\5\16\b\2eS\3\2\2\2eV\3\2\2\2eY\3\2\2\2e\\\3\2\2\2e_\3\2\2\2eb\3"+
"\2\2\2fi\3\2\2\2ge\3\2\2\2gh\3\2\2\2h\r\3\2\2\2ig\3\2\2\2jk\b\b\1\2kl"+
"\5\20\t\2lu\3\2\2\2mn\f\5\2\2no\7O\2\2ot\5\20\t\2pq\f\4\2\2qr\7P\2\2r"+
"t\5\20\t\2sm\3\2\2\2sp\3\2\2\2tw\3\2\2\2us\3\2\2\2uv\3\2\2\2v\17\3\2\2"+
"\2wu\3\2\2\2xy\b\t\1\2yz\5\22\n\2z\u0086\3\2\2\2{|\f\6\2\2|}\7Q\2\2}\u0085"+
"\5\22\n\2~\177\f\5\2\2\177\u0080\7R\2\2\u0080\u0085\5\22\n\2\u0081\u0082"+
"\f\4\2\2\u0082\u0083\7S\2\2\u0083\u0085\5\22\n\2\u0084{\3\2\2\2\u0084"+
"~\3\2\2\2\u0084\u0081\3\2\2\2\u0085\u0088\3\2\2\2\u0086\u0084\3\2\2\2"+
"\u0086\u0087\3\2\2\2\u0087\21\3\2\2\2\u0088\u0086\3\2\2\2\u0089\u008a"+
"\5\24\13\2\u008a\u008b\7T\2\2\u008b\u008c\5\22\n\2\u008c\u008f\3\2\2\2"+
"\u008d\u008f\5\24\13\2\u008e\u0089\3\2\2\2\u008e\u008d\3\2\2\2\u008f\23"+
"\3\2\2\2\u0090\u0091\7O\2\2\u0091\u0096\5\24\13\2\u0092\u0093\7P\2\2\u0093"+
"\u0096\5\24\13\2\u0094\u0096\5\26\f\2\u0095\u0090\3\2\2\2\u0095\u0092"+
"\3\2\2\2\u0095\u0094\3\2\2\2\u0096\25\3\2\2\2\u0097\u0098\b\f\1\2\u0098"+
"\u0099\5\30\r\2\u0099\u00a8\3\2\2\2\u009a\u009b\f\4\2\2\u009b\u009c\7"+
"b\2\2\u009c\u00a1\5\n\6\2\u009d\u009e\7_\2\2\u009e\u00a0\5\n\6\2\u009f"+
"\u009d\3\2\2\2\u00a0\u00a3\3\2\2\2\u00a1\u009f\3\2\2\2\u00a1\u00a2\3\2"+
"\2\2\u00a2\u00a4\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a4\u00a5\7c\2\2\u00a5"+
"\u00a7\3\2\2\2\u00a6\u009a\3\2\2\2\u00a7\u00aa\3\2\2\2\u00a8\u00a6\3\2"+
"\2\2\u00a8\u00a9\3\2\2\2\u00a9\27\3\2\2\2\u00aa\u00a8\3\2\2\2\u00ab\u00cd"+
"\5\34\17\2\u00ac\u00cd\5\36\20\2\u00ad\u00cd\5 \21\2\u00ae\u00cd\5\"\22"+
"\2\u00af\u00cd\5$\23\2\u00b0\u00cd\7f\2\2\u00b1\u00cd\7e\2\2\u00b2\u00cd"+
"\7d\2\2\u00b3\u00b4\7]\2\2\u00b4\u00b5\5\n\6\2\u00b5\u00b6\7^\2\2\u00b6"+
"\u00cd\3\2\2\2\u00b7\u00b8\7\\\2\2\u00b8\u00b9\5\n\6\2\u00b9\u00ba\7\\"+
"\2\2\u00ba\u00cd\3\2\2\2\u00bb\u00bc\7b\2\2\u00bc\u00c1\5\n\6\2\u00bd"+
"\u00be\7_\2\2\u00be\u00c0\5\n\6\2\u00bf\u00bd\3\2\2\2\u00c0\u00c3\3\2"+
"\2\2\u00c1\u00bf\3\2\2\2\u00c1\u00c2\3\2\2\2\u00c2\u00c4\3\2\2\2\u00c3"+
"\u00c1\3\2\2\2\u00c4\u00c5\7c\2\2\u00c5\u00cd\3\2\2\2\u00c6\u00c7\7f\2"+
"\2\u00c7\u00c9\7]\2\2\u00c8\u00ca\5\32\16\2\u00c9\u00c8\3\2\2\2\u00c9"+
"\u00ca\3\2\2\2\u00ca\u00cb\3\2\2\2\u00cb\u00cd\7^\2\2\u00cc\u00ab\3\2"+
"\2\2\u00cc\u00ac\3\2\2\2\u00cc\u00ad\3\2\2\2\u00cc\u00ae\3\2\2\2\u00cc"+
"\u00af\3\2\2\2\u00cc\u00b0\3\2\2\2\u00cc\u00b1\3\2\2\2\u00cc\u00b2\3\2"+
"\2\2\u00cc\u00b3\3\2\2\2\u00cc\u00b7\3\2\2\2\u00cc\u00bb\3\2\2\2\u00cc"+
"\u00c6\3\2\2\2\u00cd\31\3\2\2\2\u00ce\u00d3\5\n\6\2\u00cf\u00d0\7_\2\2"+
"\u00d0\u00d2\5\n\6\2\u00d1\u00cf\3\2\2\2\u00d2\u00d5\3\2\2\2\u00d3\u00d1"+
"\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4\33\3\2\2\2\u00d5\u00d3\3\2\2\2\u00d6"+
"\u00d7\7\3\2\2\u00d7\u00d8\7]\2\2\u00d8\u00d9\5\n\6\2\u00d9\u00da\7^\2"+
"\2\u00da\u01a9\3\2\2\2\u00db\u00dc\7\4\2\2\u00dc\u00dd\7]\2\2\u00dd\u00de"+
"\5\n\6\2\u00de\u00df\7^\2\2\u00df\u01a9\3\2\2\2\u00e0\u00e1\7\5\2\2\u00e1"+
"\u00e2\7]\2\2\u00e2\u00e3\5\n\6\2\u00e3\u00e4\7^\2\2\u00e4\u01a9\3\2\2"+
"\2\u00e5\u00e6\7\6\2\2\u00e6\u00e7\7]\2\2\u00e7\u00e8\5\n\6\2\u00e8\u00e9"+
"\7^\2\2\u00e9\u01a9\3\2\2\2\u00ea\u00eb\7\7\2\2\u00eb\u00ec\7]\2\2\u00ec"+
"\u00ed\5\n\6\2\u00ed\u00ee\7^\2\2\u00ee\u01a9\3\2\2\2\u00ef\u00f0\7\b"+
"\2\2\u00f0\u00f1\7]\2\2\u00f1\u00f2\5\n\6\2\u00f2\u00f3\7^\2\2\u00f3\u01a9"+
"\3\2\2\2\u00f4\u00f5\7\n\2\2\u00f5\u00f6\7]\2\2\u00f6\u00f7\5\n\6\2\u00f7"+
"\u00f8\7^\2\2\u00f8\u01a9\3\2\2\2\u00f9\u00fa\7\13\2\2\u00fa\u00fb\7]"+
"\2\2\u00fb\u00fc\5\n\6\2\u00fc\u00fd\7^\2\2\u00fd\u01a9\3\2\2\2\u00fe"+
"\u00ff\7\f\2\2\u00ff\u0100\7]\2\2\u0100\u0101\5\n\6\2\u0101\u0102\7^\2"+
"\2\u0102\u01a9\3\2\2\2\u0103\u0104\7\r\2\2\u0104\u0105\7]\2\2\u0105\u0106"+
"\5\n\6\2\u0106\u0107\7^\2\2\u0107\u01a9\3\2\2\2\u0108\u0109\7\16\2\2\u0109"+
"\u010a\7]\2\2\u010a\u010b\5\n\6\2\u010b\u010c\7^\2\2\u010c\u01a9\3\2\2"+
"\2\u010d\u010e\7\17\2\2\u010e\u010f\7]\2\2\u010f\u0110\5\n\6\2\u0110\u0111"+
"\7^\2\2\u0111\u01a9\3\2\2\2\u0112\u0113\7\20\2\2\u0113\u0114\7]\2\2\u0114"+
"\u0115\5\n\6\2\u0115\u0116\7^\2\2\u0116\u01a9\3\2\2\2\u0117\u0118\7\21"+
"\2\2\u0118\u0119\7]\2\2\u0119\u011a\5\n\6\2\u011a\u011b\7^\2\2\u011b\u01a9"+
"\3\2\2\2\u011c\u011d\7\22\2\2\u011d\u011e\7]\2\2\u011e\u011f\5\n\6\2\u011f"+
"\u0120\7^\2\2\u0120\u01a9\3\2\2\2\u0121\u0122\7\23\2\2\u0122\u0123\7]"+
"\2\2\u0123\u0124\5\n\6\2\u0124\u0125\7^\2\2\u0125\u01a9\3\2\2\2\u0126"+
"\u0127\7\24\2\2\u0127\u0128\7]\2\2\u0128\u0129\5\n\6\2\u0129\u012a\7^"+
"\2\2\u012a\u01a9\3\2\2\2\u012b\u012c\7\31\2\2\u012c\u012d\7]\2\2\u012d"+
"\u012e\5\n\6\2\u012e\u012f\7^\2\2\u012f\u01a9\3\2\2\2\u0130\u0131\7\32"+
"\2\2\u0131\u0132\7]\2\2\u0132\u0133\5\n\6\2\u0133\u0134\7^\2\2\u0134\u01a9"+
"\3\2\2\2\u0135\u0136\7\33\2\2\u0136\u0137\7]\2\2\u0137\u0138\5\n\6\2\u0138"+
"\u0139\7^\2\2\u0139\u01a9\3\2\2\2\u013a\u013b\7\34\2\2\u013b\u013c\7]"+
"\2\2\u013c\u013d\5\n\6\2\u013d\u013e\7^\2\2\u013e\u01a9\3\2\2\2\u013f"+
"\u0140\7\35\2\2\u0140\u0141\7]\2\2\u0141\u0142\5\n\6\2\u0142\u0143\7^"+
"\2\2\u0143\u01a9\3\2\2\2\u0144\u0145\7\36\2\2\u0145\u0146\7]\2\2\u0146"+
"\u0147\5\n\6\2\u0147\u0148\7^\2\2\u0148\u01a9\3\2\2\2\u0149\u014a\7 \2"+
"\2\u014a\u014b\7]\2\2\u014b\u014c\5\n\6\2\u014c\u014d\7^\2\2\u014d\u01a9"+
"\3\2\2\2\u014e\u014f\7\"\2\2\u014f\u0150\7]\2\2\u0150\u0151\5\n\6\2\u0151"+
"\u0152\7^\2\2\u0152\u01a9\3\2\2\2\u0153\u0154\7#\2\2\u0154\u0155\7]\2"+
"\2\u0155\u0156\5\n\6\2\u0156\u0157\7^\2\2\u0157\u01a9\3\2\2\2\u0158\u0159"+
"\7$\2\2\u0159\u015a\7]\2\2\u015a\u015b\5\n\6\2\u015b\u015c\7^\2\2\u015c"+
"\u01a9\3\2\2\2\u015d\u015e\7%\2\2\u015e\u015f\7]\2\2\u015f\u0160\5\n\6"+
"\2\u0160\u0161\7^\2\2\u0161\u01a9\3\2\2\2\u0162\u0163\7+\2\2\u0163\u0164"+
"\7]\2\2\u0164\u0165\5\n\6\2\u0165\u0166\7^\2\2\u0166\u01a9\3\2\2\2\u0167"+
"\u0168\7,\2\2\u0168\u0169\7]\2\2\u0169\u016a\5\n\6\2\u016a\u016b\7^\2"+
"\2\u016b\u01a9\3\2\2\2\u016c\u016d\7-\2\2\u016d\u016e\7]\2\2\u016e\u016f"+
"\5\n\6\2\u016f\u0170\7^\2\2\u0170\u01a9\3\2\2\2\u0171\u0172\7.\2\2\u0172"+
"\u0173\7]\2\2\u0173\u0174\5\n\6\2\u0174\u0175\7^\2\2\u0175\u01a9\3\2\2"+
"\2\u0176\u0177\7/\2\2\u0177\u0178\7]\2\2\u0178\u0179\5\n\6\2\u0179\u017a"+
"\7^\2\2\u017a\u01a9\3\2\2\2\u017b\u017c\7&\2\2\u017c\u017d\7]\2\2\u017d"+
"\u017e\5\n\6\2\u017e\u017f\7^\2\2\u017f\u01a9\3\2\2\2\u0180\u0181\79\2"+
"\2\u0181\u0182\7]\2\2\u0182\u0183\5\n\6\2\u0183\u0184\7^\2\2\u0184\u01a9"+
"\3\2\2\2\u0185\u0186\7:\2\2\u0186\u0187\7]\2\2\u0187\u0188\5\n\6\2\u0188"+
"\u0189\7^\2\2\u0189\u01a9\3\2\2\2\u018a\u018b\7;\2\2\u018b\u018c\7]\2"+
"\2\u018c\u018d\5\n\6\2\u018d\u018e\7^\2\2\u018e\u01a9\3\2\2\2\u018f\u0190"+
"\7<\2\2\u0190\u0191\7]\2\2\u0191\u0192\5\n\6\2\u0192\u0193\7^\2\2\u0193"+
"\u01a9\3\2\2\2\u0194\u0195\7=\2\2\u0195\u0196\7]\2\2\u0196\u0197\5\n\6"+
"\2\u0197\u0198\7^\2\2\u0198\u01a9\3\2\2\2\u0199\u019a\7M\2\2\u019a\u019b"+
"\7]\2\2\u019b\u019c\5\n\6\2\u019c\u019d\7^\2\2\u019d\u01a9\3\2\2\2\u019e"+
"\u019f\7C\2\2\u019f\u01a0\7]\2\2\u01a0\u01a1\5\n\6\2\u01a1\u01a2\7^\2"+
"\2\u01a2\u01a9\3\2\2\2\u01a3\u01a4\7D\2\2\u01a4\u01a5\7]\2\2\u01a5\u01a6"+
"\5\n\6\2\u01a6\u01a7\7^\2\2\u01a7\u01a9\3\2\2\2\u01a8\u00d6\3\2\2\2\u01a8"+
"\u00db\3\2\2\2\u01a8\u00e0\3\2\2\2\u01a8\u00e5\3\2\2\2\u01a8\u00ea\3\2"+
"\2\2\u01a8\u00ef\3\2\2\2\u01a8\u00f4\3\2\2\2\u01a8\u00f9\3\2\2\2\u01a8"+
"\u00fe\3\2\2\2\u01a8\u0103\3\2\2\2\u01a8\u0108\3\2\2\2\u01a8\u010d\3\2"+
"\2\2\u01a8\u0112\3\2\2\2\u01a8\u0117\3\2\2\2\u01a8\u011c\3\2\2\2\u01a8"+
"\u0121\3\2\2\2\u01a8\u0126\3\2\2\2\u01a8\u012b\3\2\2\2\u01a8\u0130\3\2"+
"\2\2\u01a8\u0135\3\2\2\2\u01a8\u013a\3\2\2\2\u01a8\u013f\3\2\2\2\u01a8"+
"\u0144\3\2\2\2\u01a8\u0149\3\2\2\2\u01a8\u014e\3\2\2\2\u01a8\u0153\3\2"+
"\2\2\u01a8\u0158\3\2\2\2\u01a8\u015d\3\2\2\2\u01a8\u0162\3\2\2\2\u01a8"+
"\u0167\3\2\2\2\u01a8\u016c\3\2\2\2\u01a8\u0171\3\2\2\2\u01a8\u0176\3\2"+
"\2\2\u01a8\u017b\3\2\2\2\u01a8\u0180\3\2\2\2\u01a8\u0185\3\2\2\2\u01a8"+
"\u018a\3\2\2\2\u01a8\u018f\3\2\2\2\u01a8\u0194\3\2\2\2\u01a8\u0199\3\2"+
"\2\2\u01a8\u019e\3\2\2\2\u01a8\u01a3\3\2\2\2\u01a9\35\3\2\2\2\u01aa\u01ab"+
"\7\37\2\2\u01ab\u01ac\7]\2\2\u01ac\u01ad\5\n\6\2\u01ad\u01ae\7_\2\2\u01ae"+
"\u01af\5\n\6\2\u01af\u01b0\7^\2\2\u01b0\u0229\3\2\2\2\u01b1\u01b2\7\t"+
"\2\2\u01b2\u01b3\7]\2\2\u01b3\u01b4\5\n\6\2\u01b4\u01b5\7_\2\2\u01b5\u01b6"+
"\5\n\6\2\u01b6\u01b7\7^\2\2\u01b7\u0229\3\2\2\2\u01b8\u01b9\7\27\2\2\u01b9"+
"\u01ba\7]\2\2\u01ba\u01bb\5\n\6\2\u01bb\u01bc\7_\2\2\u01bc\u01bd\5\n\6"+
"\2\u01bd\u01be\7^\2\2\u01be\u0229\3\2\2\2\u01bf\u01c0\7\30\2\2\u01c0\u01c1"+
"\7]\2\2\u01c1\u01c2\5\n\6\2\u01c2\u01c3\7_\2\2\u01c3\u01c4\5\n\6\2\u01c4"+
"\u01c5\7^\2\2\u01c5\u0229\3\2\2\2\u01c6\u01c7\7)\2\2\u01c7\u01c8\7]\2"+
"\2\u01c8\u01c9\5\n\6\2\u01c9\u01ca\7_\2\2\u01ca\u01cb\5\n\6\2\u01cb\u01cc"+
"\7^\2\2\u01cc\u0229\3\2\2\2\u01cd\u01ce\7\67\2\2\u01ce\u01cf\7]\2\2\u01cf"+
"\u01d0\5\n\6\2\u01d0\u01d1\7_\2\2\u01d1\u01d2\5\n\6\2\u01d2\u01d3\7^\2"+
"\2\u01d3\u0229\3\2\2\2\u01d4\u01d5\78\2\2\u01d5\u01d6\7]\2\2\u01d6\u01d7"+
"\5\n\6\2\u01d7\u01d8\7_\2\2\u01d8\u01d9\5\n\6\2\u01d9\u01da\7^\2\2\u01da"+
"\u0229\3\2\2\2\u01db\u01dc\7>\2\2\u01dc\u01dd\7]\2\2\u01dd\u01de\5\n\6"+
"\2\u01de\u01df\7_\2\2\u01df\u01e0\5\n\6\2\u01e0\u01e1\7^\2\2\u01e1\u0229"+
"\3\2\2\2\u01e2\u01e3\7?\2\2\u01e3\u01e4\7]\2\2\u01e4\u01e5\5\n\6\2\u01e5"+
"\u01e6\7_\2\2\u01e6\u01e7\5\n\6\2\u01e7\u01e8\7^\2\2\u01e8\u0229\3\2\2"+
"\2\u01e9\u01ea\7@\2\2\u01ea\u01eb\7]\2\2\u01eb\u01ec\5\n\6\2\u01ec\u01ed"+
"\7_\2\2\u01ed\u01ee\5\n\6\2\u01ee\u01ef\7^\2\2\u01ef\u0229\3\2\2\2\u01f0"+
"\u01f1\7A\2\2\u01f1\u01f2\7]\2\2\u01f2\u01f3\5\n\6\2\u01f3\u01f4\7_\2"+
"\2\u01f4\u01f5\5\n\6\2\u01f5\u01f6\7^\2\2\u01f6\u0229\3\2\2\2\u01f7\u01f8"+
"\7J\2\2\u01f8\u01f9\7]\2\2\u01f9\u01fa\5\n\6\2\u01fa\u01fb\7_\2\2\u01fb"+
"\u01fc\5\n\6\2\u01fc\u01fd\7^\2\2\u01fd\u0229\3\2\2\2\u01fe\u01ff\7K\2"+
"\2\u01ff\u0200\7]\2\2\u0200\u0201\5\n\6\2\u0201\u0202\7_\2\2\u0202\u0203"+
"\5\n\6\2\u0203\u0204\7^\2\2\u0204\u0229\3\2\2\2\u0205\u0206\7L\2\2\u0206"+
"\u0207\7]\2\2\u0207\u0208\5\n\6\2\u0208\u0209\7_\2\2\u0209\u020a\5\n\6"+
"\2\u020a\u020b\7^\2\2\u020b\u0229\3\2\2\2\u020c\u020d\7N\2\2\u020d\u020e"+
"\7]\2\2\u020e\u020f\5\n\6\2\u020f\u0210\7_\2\2\u0210\u0211\5\n\6\2\u0211"+
"\u0212\7^\2\2\u0212\u0229\3\2\2\2\u0213\u0214\7F\2\2\u0214\u0215\7]\2"+
"\2\u0215\u0216\5\n\6\2\u0216\u0217\7_\2\2\u0217\u0218\5\n\6\2\u0218\u0219"+
"\7^\2\2\u0219\u0229\3\2\2\2\u021a\u021b\7H\2\2\u021b\u021c\7]\2\2\u021c"+
"\u021d\5\n\6\2\u021d\u021e\7_\2\2\u021e\u021f\5\n\6\2\u021f\u0220\7^\2"+
"\2\u0220\u0229\3\2\2\2\u0221\u0222\7I\2\2\u0222\u0223\7]\2\2\u0223\u0224"+
"\5\n\6\2\u0224\u0225\7_\2\2\u0225\u0226\5\n\6\2\u0226\u0227\7^\2\2\u0227"+
"\u0229\3\2\2\2\u0228\u01aa\3\2\2\2\u0228\u01b1\3\2\2\2\u0228\u01b8\3\2"+
"\2\2\u0228\u01bf\3\2\2\2\u0228\u01c6\3\2\2\2\u0228\u01cd\3\2\2\2\u0228"+
"\u01d4\3\2\2\2\u0228\u01db\3\2\2\2\u0228\u01e2\3\2\2\2\u0228\u01e9\3\2"+
"\2\2\u0228\u01f0\3\2\2\2\u0228\u01f7\3\2\2\2\u0228\u01fe\3\2\2\2\u0228"+
"\u0205\3\2\2\2\u0228\u020c\3\2\2\2\u0228\u0213\3\2\2\2\u0228\u021a\3\2"+
"\2\2\u0228\u0221\3\2\2\2\u0229\37\3\2\2\2\u022a\u022b\7!\2\2\u022b\u022c"+
"\7]\2\2\u022c\u022d\5\n\6\2\u022d\u022e\7_\2\2\u022e\u022f\5\n\6\2\u022f"+
"\u0230\7_\2\2\u0230\u0231\5\n\6\2\u0231\u0232\7^\2\2\u0232\u026a\3\2\2"+
"\2\u0233\u0234\7(\2\2\u0234\u0235\7]\2\2\u0235\u0236\5\n\6\2\u0236\u0237"+
"\7_\2\2\u0237\u0238\5\n\6\2\u0238\u0239\7_\2\2\u0239\u023a\5\n\6\2\u023a"+
"\u023b\7^\2\2\u023b\u026a\3\2\2\2\u023c\u023d\7*\2\2\u023d\u023e\7]\2"+
"\2\u023e\u023f\5\n\6\2\u023f\u0240\7_\2\2\u0240\u0241\5\n\6\2\u0241\u0242"+
"\7_\2\2\u0242\u0243\5\n\6\2\u0243\u0244\7^\2\2\u0244\u026a\3\2\2\2\u0245"+
"\u0246\7\66\2\2\u0246\u0247\7]\2\2\u0247\u0248\5\n\6\2\u0248\u0249\7_"+
"\2\2\u0249\u024a\5\n\6\2\u024a\u024b\7_\2\2\u024b\u024c\5\n\6\2\u024c"+
"\u024d\7^\2\2\u024d\u026a\3\2\2\2\u024e\u024f\7B\2\2\u024f\u0250\7]\2"+
"\2\u0250\u0251\5\n\6\2\u0251\u0252\7_\2\2\u0252\u0253\5\n\6\2\u0253\u0254"+
"\7_\2\2\u0254\u0255\5\n\6\2\u0255\u0256\7^\2\2\u0256\u026a\3\2\2\2\u0257"+
"\u0258\7E\2\2\u0258\u0259\7]\2\2\u0259\u025a\5\n\6\2\u025a\u025b\7_\2"+
"\2\u025b\u025c\5\n\6\2\u025c\u025d\7_\2\2\u025d\u025e\5\n\6\2\u025e\u025f"+
"\7^\2\2\u025f\u026a\3\2\2\2\u0260\u0261\7G\2\2\u0261\u0262\7]\2\2\u0262"+
"\u0263\5\n\6\2\u0263\u0264\7_\2\2\u0264\u0265\5\n\6\2\u0265\u0266\7_\2"+
"\2\u0266\u0267\5\n\6\2\u0267\u0268\7^\2\2\u0268\u026a\3\2\2\2\u0269\u022a"+
"\3\2\2\2\u0269\u0233\3\2\2\2\u0269\u023c\3\2\2\2\u0269\u0245\3\2\2\2\u0269"+
"\u024e\3\2\2\2\u0269\u0257\3\2\2\2\u0269\u0260\3\2\2\2\u026a!\3\2\2\2"+
"\u026b\u026c\7\63\2\2\u026c\u026d\7]\2\2\u026d\u026e\5\n\6\2\u026e\u026f"+
"\7_\2\2\u026f\u0270\5\n\6\2\u0270\u0271\7_\2\2\u0271\u0272\5\n\6\2\u0272"+
"\u0273\7_\2\2\u0273\u0274\5\n\6\2\u0274\u0275\7^\2\2\u0275\u0282\3\2\2"+
"\2\u0276\u0277\7\'\2\2\u0277\u0278\7]\2\2\u0278\u0279\5\n\6\2\u0279\u027a"+
"\7_\2\2\u027a\u027b\5\n\6\2\u027b\u027c\7_\2\2\u027c\u027d\5\n\6\2\u027d"+
"\u027e\7_\2\2\u027e\u027f\5\n\6\2\u027f\u0280\7^\2\2\u0280\u0282\3\2\2"+
"\2\u0281\u026b\3\2\2\2\u0281\u0276\3\2\2\2\u0282#\3\2\2\2\u0283\u0284"+
"\7\25\2\2\u0284\u0285\7]\2\2\u0285\u028a\5\n\6\2\u0286\u0287\7_\2\2\u0287"+
"\u0289\5\n\6\2\u0288\u0286\3\2\2\2\u0289\u028c\3\2\2\2\u028a\u0288\3\2"+
"\2\2\u028a\u028b\3\2\2\2\u028b\u028d\3\2\2\2\u028c\u028a\3\2\2\2\u028d"+
"\u028e\7^\2\2\u028e\u02cb\3\2\2\2\u028f\u0290\7\26\2\2\u0290\u0291\7]"+
"\2\2\u0291\u0296\5\n\6\2\u0292\u0293\7_\2\2\u0293\u0295\5\n\6\2\u0294"+
"\u0292\3\2\2\2\u0295\u0298\3\2\2\2\u0296\u0294\3\2\2\2\u0296\u0297\3\2"+
"\2\2\u0297\u0299\3\2\2\2\u0298\u0296\3\2\2\2\u0299\u029a\7^\2\2\u029a"+
"\u02cb\3\2\2\2\u029b\u029c\7\60\2\2\u029c\u029d\7]\2\2\u029d\u02a0\5\n"+
"\6\2\u029e\u029f\7_\2\2\u029f\u02a1\5\n\6\2\u02a0\u029e\3\2\2\2\u02a1"+
"\u02a2\3\2\2\2\u02a2\u02a0\3\2\2\2\u02a2\u02a3\3\2\2\2\u02a3\u02a4\3\2"+
"\2\2\u02a4\u02a5\7^\2\2\u02a5\u02cb\3\2\2\2\u02a6\u02a7\7\61\2\2\u02a7"+
"\u02a8\7]\2\2\u02a8\u02ab\5\n\6\2\u02a9\u02aa\7_\2\2\u02aa\u02ac\5\n\6"+
"\2\u02ab\u02a9\3\2\2\2\u02ac\u02ad\3\2\2\2\u02ad\u02ab\3\2\2\2\u02ad\u02ae"+
"\3\2\2\2\u02ae\u02af\3\2\2\2\u02af\u02b0\7^\2\2\u02b0\u02cb\3\2\2\2\u02b1"+
"\u02b2\7\62\2\2\u02b2\u02b3\7]\2\2\u02b3\u02b6\5\n\6\2\u02b4\u02b5\7_"+
"\2\2\u02b5\u02b7\5\n\6\2\u02b6\u02b4\3\2\2\2\u02b7\u02b8\3\2\2\2\u02b8"+
"\u02b6\3\2\2\2\u02b8\u02b9\3\2\2\2\u02b9\u02ba\3\2\2\2\u02ba\u02bb\7^"+
"\2\2\u02bb\u02cb\3\2\2\2\u02bc\u02bd\7\64\2\2\u02bd\u02be\7]\2\2\u02be"+
"\u02bf\5\n\6\2\u02bf\u02c0\7_\2\2\u02c0\u02c1\5\n\6\2\u02c1\u02c2\7^\2"+
"\2\u02c2\u02cb\3\2\2\2\u02c3\u02c4\7\65\2\2\u02c4\u02c5\7]\2\2\u02c5\u02c6"+
"\5\n\6\2\u02c6\u02c7\7_\2\2\u02c7\u02c8\5\n\6\2\u02c8\u02c9\7^\2\2\u02c9"+
"\u02cb\3\2\2\2\u02ca\u0283\3\2\2\2\u02ca\u028f\3\2\2\2\u02ca\u029b\3\2"+
"\2\2\u02ca\u02a6\3\2\2\2\u02ca\u02b1\3\2\2\2\u02ca\u02bc\3\2\2\2\u02ca"+
"\u02c3\3\2\2\2\u02cb%\3\2\2\2\37)/8INegsu\u0084\u0086\u008e\u0095\u00a1"+
"\u00a8\u00c1\u00c9\u00cc\u00d3\u01a8\u0228\u0269\u0281\u028a\u0296\u02a2"+
"\u02ad\u02b8\u02ca";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}