public final FunctionExpressionContext functionExpression()

in x-pack/plugin/sql/src/main/java/org/elasticsearch/xpack/sql/parser/SqlBaseParser.java [6744:6824]


    public final FunctionExpressionContext functionExpression() throws RecognitionException {
        FunctionExpressionContext _localctx = new FunctionExpressionContext(_ctx, getState());
        enterRule(_localctx, 84, RULE_functionExpression);
        try {
            setState(745);
            _errHandler.sync(this);
            switch (_input.LA(1)) {
                case ANALYZE:
                case ANALYZED:
                case CATALOGS:
                case COLUMNS:
                case CURRENT_DATE:
                case CURRENT_TIME:
                case CURRENT_TIMESTAMP:
                case DAY:
                case DEBUG:
                case EXECUTABLE:
                case EXPLAIN:
                case FIRST:
                case FORMAT:
                case FULL:
                case FUNCTIONS:
                case GRAPHVIZ:
                case HOUR:
                case INTERVAL:
                case LAST:
                case LEFT:
                case LIMIT:
                case MAPPED:
                case MINUTE:
                case MONTH:
                case OPTIMIZED:
                case PARSED:
                case PHYSICAL:
                case PIVOT:
                case PLAN:
                case RIGHT:
                case RLIKE:
                case QUERY:
                case SCHEMAS:
                case SECOND:
                case SHOW:
                case SYS:
                case TABLES:
                case TEXT:
                case TOP:
                case TYPE:
                case TYPES:
                case VERIFY:
                case YEAR:
                case IDENTIFIER:
                case DIGIT_IDENTIFIER:
                case QUOTED_IDENTIFIER:
                case BACKQUOTED_IDENTIFIER:
                    enterOuterAlt(_localctx, 1); {
                    setState(740);
                    functionTemplate();
                }
                    break;
                case FUNCTION_ESC:
                    enterOuterAlt(_localctx, 2); {
                    setState(741);
                    match(FUNCTION_ESC);
                    setState(742);
                    functionTemplate();
                    setState(743);
                    match(ESC_END);
                }
                    break;
                default:
                    throw new NoViableAltException(this);
            }
        } catch (RecognitionException re) {
            _localctx.exception = re;
            _errHandler.reportError(this, re);
            _errHandler.recover(this, re);
        } finally {
            exitRule();
        }
        return _localctx;
    }