All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ai.vespa.schemals.parser.yqlplus.YQLPlusParser Maven / Gradle / Ivy

There is a newer version: 8.441.21
Show newest version
/* Generated by: CongoCC Parser Generator. YQLPlusParser.java  */
package ai.vespa.schemals.parser.yqlplus;

import com.yahoo.search.yql.*;
import java.util.ArrayDeque;
import java.util.Deque;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.ListIterator;
import java.util.concurrent.CancellationException;
import ai.vespa.schemals.parser.yqlplus.Token.TokenType;
import static ai.vespa.schemals.parser.yqlplus.Token.TokenType.*;
import ai.vespa.schemals.parser.yqlplus.ast.InvalidNode;
import ai.vespa.schemals.parser.yqlplus.ast.identifierStr;
import ai.vespa.schemals.parser.yqlplus.ast.vespa_grouping_identifier;
import ai.vespa.schemals.parser.yqlplus.ast.vespa_grouping_node;
import ai.vespa.schemals.parser.yqlplus.ast.vespa_grouping;
import ai.vespa.schemals.parser.yqlplus.ast.vespa_grouping_arg;
import ai.vespa.schemals.parser.yqlplus.ast.ident;
import ai.vespa.schemals.parser.yqlplus.ast.keyword_as_ident;
import ai.vespa.schemals.parser.yqlplus.ast.program;
import ai.vespa.schemals.parser.yqlplus.ast.statement;
import ai.vespa.schemals.parser.yqlplus.ast.output_statement;
import ai.vespa.schemals.parser.yqlplus.ast.source_statement;
import ai.vespa.schemals.parser.yqlplus.ast.pipeline_step;
import ai.vespa.schemals.parser.yqlplus.ast.vespa_grouping_fun;
import ai.vespa.schemals.parser.yqlplus.ast.output_spec;
import ai.vespa.schemals.parser.yqlplus.ast.query_statement;
import ai.vespa.schemals.parser.yqlplus.ast.select_statement;
import ai.vespa.schemals.parser.yqlplus.ast.select_field_spec;
import ai.vespa.schemals.parser.yqlplus.ast.project_spec;
import ai.vespa.schemals.parser.yqlplus.ast.timeout_fun;
import ai.vespa.schemals.parser.yqlplus.ast.select_source;
import ai.vespa.schemals.parser.yqlplus.ast.select_source_sources;
import ai.vespa.schemals.parser.yqlplus.ast.select_source_all;
import ai.vespa.schemals.parser.yqlplus.ast.select_source_multi;
import ai.vespa.schemals.parser.yqlplus.ast.select_source_from;
import ai.vespa.schemals.parser.yqlplus.ast.source_list;
import ai.vespa.schemals.parser.yqlplus.ast.source_spec;
import ai.vespa.schemals.parser.yqlplus.ast.alias_def;
import ai.vespa.schemals.parser.yqlplus.ast.data_source;
import ai.vespa.schemals.parser.yqlplus.ast.call_source;
import ai.vespa.schemals.parser.yqlplus.ast.sequence_source;
import ai.vespa.schemals.parser.yqlplus.ast.namespaced_name;
import ai.vespa.schemals.parser.yqlplus.ast.orderby_fun;
import ai.vespa.schemals.parser.yqlplus.ast.orderby_fields;
import ai.vespa.schemals.parser.yqlplus.ast.orderby_field;
import ai.vespa.schemals.parser.yqlplus.ast.limit_fun;
import ai.vespa.schemals.parser.yqlplus.ast.offset_fun;
import ai.vespa.schemals.parser.yqlplus.ast.where_fun;
import ai.vespa.schemals.parser.yqlplus.ast.field_def;
import ai.vespa.schemals.parser.yqlplus.ast.map_expression;
import ai.vespa.schemals.parser.yqlplus.ast.arguments;
import ai.vespa.schemals.parser.yqlplus.ast.argument;
import ai.vespa.schemals.parser.yqlplus.ast.expression;
import ai.vespa.schemals.parser.yqlplus.ast.null_operator;
import ai.vespa.schemals.parser.yqlplus.ast.annotate_expression;
import ai.vespa.schemals.parser.yqlplus.ast.annotation;
import ai.vespa.schemals.parser.yqlplus.ast.logical_OR_expression;
import ai.vespa.schemals.parser.yqlplus.ast.logical_AND_expression;
import ai.vespa.schemals.parser.yqlplus.ast.equality_expression;
import ai.vespa.schemals.parser.yqlplus.ast.in_not_in_target;
import ai.vespa.schemals.parser.yqlplus.ast.equality_op;
import ai.vespa.schemals.parser.yqlplus.ast.relational_expression;
import ai.vespa.schemals.parser.yqlplus.ast.relational_op;
import ai.vespa.schemals.parser.yqlplus.ast.additive_expression;
import ai.vespa.schemals.parser.yqlplus.ast.additive_op;
import ai.vespa.schemals.parser.yqlplus.ast.multiplicative_expression;
import ai.vespa.schemals.parser.yqlplus.ast.mult_op;
import ai.vespa.schemals.parser.yqlplus.ast.unary_expression;
import ai.vespa.schemals.parser.yqlplus.ast.unary_op;
import ai.vespa.schemals.parser.yqlplus.ast.dereferenced_expression;
import ai.vespa.schemals.parser.yqlplus.ast.indexref;
import ai.vespa.schemals.parser.yqlplus.ast.propertyref;
import ai.vespa.schemals.parser.yqlplus.ast.primary_expression;
import ai.vespa.schemals.parser.yqlplus.ast.call_expression;
import ai.vespa.schemals.parser.yqlplus.ast.fieldref;
import ai.vespa.schemals.parser.yqlplus.ast.parameter;
import ai.vespa.schemals.parser.yqlplus.ast.property_name_and_value;
import ai.vespa.schemals.parser.yqlplus.ast.property_name;
import ai.vespa.schemals.parser.yqlplus.ast.dotted_idents;
import ai.vespa.schemals.parser.yqlplus.ast.constant_expression;
import ai.vespa.schemals.parser.yqlplus.ast.array_literal;
import ai.vespa.schemals.parser.yqlplus.ast.scalar_literal;
import ai.vespa.schemals.parser.yqlplus.ast.array_parameter;
import ai.vespa.schemals.parser.yqlplus.ast.literal_list;
import ai.vespa.schemals.parser.yqlplus.ast.literal_element;
import ai.vespa.schemals.parser.yqlplus.ast.fixed_or_parameter;


public class YQLPlusParser {
    protected Deque expression_stack = new ArrayDeque<>();
    static final int UNLIMITED = Integer.MAX_VALUE;
    // The last token successfully "consumed"
    Token lastConsumedToken;
    private TokenType nextTokenType;
    // Normally null when parsing, populated when doing lookahead
    private Token currentLookaheadToken;
    private int remainingLookahead;
    private boolean hitFailure;
    private boolean passedPredicate;
    private int passedPredicateThreshold = -1;
    private String currentlyParsedProduction;
    private String currentLookaheadProduction;
    private int lookaheadRoutineNesting;
    private EnumSet outerFollowSet;
    private final boolean legacyGlitchyLookahead = false;
    private final Token DUMMY_START_TOKEN = new Token();
    private boolean cancelled;

    public void cancel() {
        cancelled = true;
    }

    public boolean isCancelled() {
        return cancelled;
    }

    /** Generated Lexer. */
    private YQLPlusLexer token_source;

    public void setInputSource(String inputSource) {
        token_source.setInputSource(inputSource);
    }

    String getInputSource() {
        return token_source.getInputSource();
    }

    //=================================
    // Generated constructors
    //=================================
    public YQLPlusParser(String inputSource, CharSequence content) {
        this(new YQLPlusLexer(inputSource, content));
    }

    public YQLPlusParser(CharSequence content) {
        this("input", content);
    }

    /**
    * @param inputSource just the name of the input source (typically the filename) that
    * will be used in error messages and so on.
    * @param path The location (typically the filename) from which to get the input to parse
    */
    public YQLPlusParser(String inputSource, Path path) throws IOException {
        this(inputSource, TokenSource.stringFromBytes(Files.readAllBytes(path)));
    }

    public YQLPlusParser(String inputSource, Path path, Charset charset) throws IOException {
        this(inputSource, TokenSource.stringFromBytes(Files.readAllBytes(path), charset));
    }

    /**
    * @param path The location (typically the filename) from which to get the input to parse
    */
    public YQLPlusParser(Path path) throws IOException {
        this(path.toString(), path);
    }

    /** Constructor with user supplied Lexer. */
    public YQLPlusParser(YQLPlusLexer lexer) {
        token_source = lexer;
        lastConsumedToken = DUMMY_START_TOKEN;
        lastConsumedToken.setTokenSource(lexer);
    }

    /**
    * Set the starting line/column for location reporting.
    * By default, this is 1,1.
    */
    public void setStartingPos(int startingLine, int startingColumn) {
        token_source.setStartingPos(startingLine, startingColumn);
    }

    // this method is for testing only.
    public boolean getLegacyGlitchyLookahead() {
        return legacyGlitchyLookahead;
    }

    // If the next token is cached, it returns that
    // Otherwise, it goes to the token_source, i.e. the Lexer.
    private Token nextToken(final Token tok) {
        Token result = token_source.getNextToken(tok);
        while (result.isUnparsed()) {
            result = token_source.getNextToken(result);
            if (result.isInvalid()) {
                if (isParserTolerant()) {
                    result.setUnparsed(true);
                }
            }
        }
        nextTokenType = null;
        return result;
    }

    /**
    * @return the next Token off the stream. This is the same as #getToken(1)
    */
    public final Token getNextToken() {
        return getToken(1);
    }

    /**
    * @param index how many tokens to look ahead
    * @return the specific regular (i.e. parsed) Token index ahead/behind in the stream.
    * If we are in a lookahead, it looks ahead from the currentLookaheadToken
    * Otherwise, it is the lastConsumedToken. If you pass in a negative
    * number it goes backward.
    */
    public final Token getToken(final int index) {
        Token t = currentLookaheadToken == null ? lastConsumedToken : currentLookaheadToken;
        for (int i = 0; i < index; i++) {
            t = nextToken(t);
        }
        for (int i = 0; i > index; i--) {
            t = t.getPrevious();
            if (t == null) break;
        }
        return t;
    }

    private TokenType nextTokenType() {
        if (nextTokenType == null) {
            nextTokenType = nextToken(lastConsumedToken).getType();
        }
        return nextTokenType;
    }

    boolean activateTokenTypes(TokenType...types) {
        if (token_source.activeTokenTypes == null) return false;
        boolean result = false;
        for (TokenType tt : types) {
            result |= token_source.activeTokenTypes.add(tt);
        }
        if (result) {
            token_source.reset(getToken(0));
            nextTokenType = null;
        }
        return result;
    }

    boolean deactivateTokenTypes(TokenType...types) {
        boolean result = false;
        if (token_source.activeTokenTypes == null) {
            token_source.activeTokenTypes = EnumSet.allOf(TokenType.class);
        }
        for (TokenType tt : types) {
            result |= token_source.activeTokenTypes.remove(tt);
        }
        if (result) {
            token_source.reset(getToken(0));
            nextTokenType = null;
        }
        return result;
    }

    private static final HashMap> enumSetCache = new HashMap<>();

    private static EnumSet tokenTypeSet(TokenType first, TokenType...rest) {
        TokenType[] key = new TokenType[1 + rest.length];
        key[0] = first;
        if (rest.length > 0) {
            System.arraycopy(rest, 0, key, 1, rest.length);
        }
        Arrays.sort(key);
        if (enumSetCache.containsKey(key)) {
            return enumSetCache.get(key);
        }
        EnumSet result = (rest.length == 0) ? EnumSet.of(first) : EnumSet.of(first, rest);
        enumSetCache.put(key, result);
        return result;
    }

    //====================================================================//
    // Start of methods for BNF Productions                               //
    // This code is generated by the ParserProductions.java.ftl template. //
    //====================================================================//
    private static final EnumSet identifierStr_FIRST_SET = identifierStr_FIRST_SET_init();

    private static EnumSet identifierStr_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:129:1
    final public String identifierStr() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "identifierStr";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:129:1
        identifierStr thisProduction = null;
        if (buildTree) {
            thisProduction = new identifierStr();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$identifierStr();
            }
            if (nextTokenType() == SELECT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:131:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$131$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(SELECT, false, followSet24);
            } else if (nextTokenType() == LIMIT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:132:11
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$132$11.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(LIMIT, false, followSet33);
            } else if (nextTokenType() == OFFSET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:133:11
                EnumSet followSet42 = null;
                if (outerFollowSet != null) {
                    followSet42 = follow_set$YQLPlus_ccc$133$11.clone();
                    followSet42.addAll(outerFollowSet);
                }
                consumeToken(OFFSET, false, followSet42);
            } else if (nextTokenType() == ORDER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:134:11
                EnumSet followSet51 = null;
                if (outerFollowSet != null) {
                    followSet51 = follow_set$YQLPlus_ccc$134$11.clone();
                    followSet51.addAll(outerFollowSet);
                }
                consumeToken(ORDER, false, followSet51);
            } else if (nextTokenType() == BY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:135:11
                EnumSet followSet60 = null;
                if (outerFollowSet != null) {
                    followSet60 = follow_set$YQLPlus_ccc$135$11.clone();
                    followSet60.addAll(outerFollowSet);
                }
                consumeToken(BY, false, followSet60);
            } else if (nextTokenType() == DESC) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:136:11
                EnumSet followSet69 = null;
                if (outerFollowSet != null) {
                    followSet69 = follow_set$YQLPlus_ccc$136$11.clone();
                    followSet69.addAll(outerFollowSet);
                }
                consumeToken(DESC, false, followSet69);
            } else if (nextTokenType() == OUTPUT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:137:11
                EnumSet followSet78 = null;
                if (outerFollowSet != null) {
                    followSet78 = follow_set$YQLPlus_ccc$137$11.clone();
                    followSet78.addAll(outerFollowSet);
                }
                consumeToken(OUTPUT, false, followSet78);
            } else if (nextTokenType() == COUNT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:138:11
                EnumSet followSet87 = null;
                if (outerFollowSet != null) {
                    followSet87 = follow_set$YQLPlus_ccc$138$11.clone();
                    followSet87.addAll(outerFollowSet);
                }
                consumeToken(COUNT, false, followSet87);
            } else if (nextTokenType() == NOT_IN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:139:11
                EnumSet followSet96 = null;
                if (outerFollowSet != null) {
                    followSet96 = follow_set$YQLPlus_ccc$139$11.clone();
                    followSet96.addAll(outerFollowSet);
                }
                consumeToken(NOT_IN, false, followSet96);
            } else if (nextTokenType() == IN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:140:11
                EnumSet followSet105 = null;
                if (outerFollowSet != null) {
                    followSet105 = follow_set$YQLPlus_ccc$140$11.clone();
                    followSet105.addAll(outerFollowSet);
                }
                consumeToken(IN, false, followSet105);
            } else if (nextTokenType() == LIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:141:11
                EnumSet followSet114 = null;
                if (outerFollowSet != null) {
                    followSet114 = follow_set$YQLPlus_ccc$141$11.clone();
                    followSet114.addAll(outerFollowSet);
                }
                consumeToken(LIKE, false, followSet114);
            } else if (nextTokenType() == CONTAINS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:142:11
                EnumSet followSet123 = null;
                if (outerFollowSet != null) {
                    followSet123 = follow_set$YQLPlus_ccc$142$11.clone();
                    followSet123.addAll(outerFollowSet);
                }
                consumeToken(CONTAINS, false, followSet123);
            } else if (nextTokenType() == NOTLIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:143:11
                EnumSet followSet132 = null;
                if (outerFollowSet != null) {
                    followSet132 = follow_set$YQLPlus_ccc$143$11.clone();
                    followSet132.addAll(outerFollowSet);
                }
                consumeToken(NOTLIKE, false, followSet132);
            } else if (nextTokenType() == MATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:144:11
                EnumSet followSet141 = null;
                if (outerFollowSet != null) {
                    followSet141 = follow_set$YQLPlus_ccc$144$11.clone();
                    followSet141.addAll(outerFollowSet);
                }
                consumeToken(MATCHES, false, followSet141);
            } else if (nextTokenType() == NOTMATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:145:11
                EnumSet followSet150 = null;
                if (outerFollowSet != null) {
                    followSet150 = follow_set$YQLPlus_ccc$145$11.clone();
                    followSet150.addAll(outerFollowSet);
                }
                consumeToken(NOTMATCHES, false, followSet150);
            } else if (nextTokenType() == IS_NULL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:146:11
                EnumSet followSet159 = null;
                if (outerFollowSet != null) {
                    followSet159 = follow_set$YQLPlus_ccc$146$11.clone();
                    followSet159.addAll(outerFollowSet);
                }
                consumeToken(IS_NULL, false, followSet159);
            } else if (nextTokenType() == IS_NOT_NULL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:147:11
                EnumSet followSet168 = null;
                if (outerFollowSet != null) {
                    followSet168 = follow_set$YQLPlus_ccc$147$11.clone();
                    followSet168.addAll(outerFollowSet);
                }
                consumeToken(IS_NOT_NULL, false, followSet168);
            } else if (nextTokenType() == TIMEOUT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:148:11
                EnumSet followSet177 = null;
                if (outerFollowSet != null) {
                    followSet177 = follow_set$YQLPlus_ccc$148$11.clone();
                    followSet177.addAll(outerFollowSet);
                }
                consumeToken(TIMEOUT, false, followSet177);
            } else if (nextTokenType() == IDENTIFIER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:149:11
                EnumSet followSet186 = null;
                if (outerFollowSet != null) {
                    followSet186 = follow_set$YQLPlus_ccc$149$11.clone();
                    followSet186.addAll(outerFollowSet);
                }
                consumeToken(IDENTIFIER, false, followSet186);
            } else if (nextTokenType() == LETTER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:150:11
                EnumSet followSet195 = null;
                if (outerFollowSet != null) {
                    followSet195 = follow_set$YQLPlus_ccc$150$11.clone();
                    followSet195.addAll(outerFollowSet);
                }
                consumeToken(LETTER, false, followSet195);
            } else {
                pushOntoCallStack("identifierStr", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 131, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$131$9$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:152:5
            return lastConsumedToken.toString();
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet vespa_grouping_identifier_FIRST_SET = vespa_grouping_identifier_FIRST_SET_init();

    private static EnumSet vespa_grouping_identifier_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:157:1
    final public void vespa_grouping_identifier() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "vespa_grouping_identifier";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:157:1
        vespa_grouping_identifier thisProduction = null;
        if (buildTree) {
            thisProduction = new vespa_grouping_identifier();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$vespa_grouping_identifier();
            }
            if (nextTokenType() == SELECT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:159:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$159$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(SELECT, false, followSet24);
            } else if (nextTokenType() == LIMIT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:160:11
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$160$11.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(LIMIT, false, followSet33);
            } else if (nextTokenType() == OFFSET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:161:11
                EnumSet followSet42 = null;
                if (outerFollowSet != null) {
                    followSet42 = follow_set$YQLPlus_ccc$161$11.clone();
                    followSet42.addAll(outerFollowSet);
                }
                consumeToken(OFFSET, false, followSet42);
            } else if (nextTokenType() == WHERE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:162:11
                EnumSet followSet51 = null;
                if (outerFollowSet != null) {
                    followSet51 = follow_set$YQLPlus_ccc$162$11.clone();
                    followSet51.addAll(outerFollowSet);
                }
                consumeToken(WHERE, false, followSet51);
            } else if (nextTokenType() == ORDER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:163:11
                EnumSet followSet60 = null;
                if (outerFollowSet != null) {
                    followSet60 = follow_set$YQLPlus_ccc$163$11.clone();
                    followSet60.addAll(outerFollowSet);
                }
                consumeToken(ORDER, false, followSet60);
            } else if (nextTokenType() == BY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:164:11
                EnumSet followSet69 = null;
                if (outerFollowSet != null) {
                    followSet69 = follow_set$YQLPlus_ccc$164$11.clone();
                    followSet69.addAll(outerFollowSet);
                }
                consumeToken(BY, false, followSet69);
            } else if (nextTokenType() == ORDERBY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:165:11
                EnumSet followSet78 = null;
                if (outerFollowSet != null) {
                    followSet78 = follow_set$YQLPlus_ccc$165$11.clone();
                    followSet78.addAll(outerFollowSet);
                }
                consumeToken(ORDERBY, false, followSet78);
            } else if (nextTokenType() == DESC) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:166:11
                EnumSet followSet87 = null;
                if (outerFollowSet != null) {
                    followSet87 = follow_set$YQLPlus_ccc$166$11.clone();
                    followSet87.addAll(outerFollowSet);
                }
                consumeToken(DESC, false, followSet87);
            } else if (nextTokenType() == ASC) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:167:11
                EnumSet followSet96 = null;
                if (outerFollowSet != null) {
                    followSet96 = follow_set$YQLPlus_ccc$167$11.clone();
                    followSet96.addAll(outerFollowSet);
                }
                consumeToken(ASC, false, followSet96);
            } else if (nextTokenType() == FROM) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:168:11
                EnumSet followSet105 = null;
                if (outerFollowSet != null) {
                    followSet105 = follow_set$YQLPlus_ccc$168$11.clone();
                    followSet105.addAll(outerFollowSet);
                }
                consumeToken(FROM, false, followSet105);
            } else if (nextTokenType() == SOURCES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:169:11
                EnumSet followSet114 = null;
                if (outerFollowSet != null) {
                    followSet114 = follow_set$YQLPlus_ccc$169$11.clone();
                    followSet114.addAll(outerFollowSet);
                }
                consumeToken(SOURCES, false, followSet114);
            } else if (nextTokenType() == AS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:170:11
                EnumSet followSet123 = null;
                if (outerFollowSet != null) {
                    followSet123 = follow_set$YQLPlus_ccc$170$11.clone();
                    followSet123.addAll(outerFollowSet);
                }
                consumeToken(AS, false, followSet123);
            } else if (nextTokenType() == COMMA) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:171:11
                EnumSet followSet132 = null;
                if (outerFollowSet != null) {
                    followSet132 = follow_set$YQLPlus_ccc$171$11.clone();
                    followSet132.addAll(outerFollowSet);
                }
                consumeToken(COMMA, false, followSet132);
            } else if (nextTokenType() == OUTPUT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:172:11
                EnumSet followSet141 = null;
                if (outerFollowSet != null) {
                    followSet141 = follow_set$YQLPlus_ccc$172$11.clone();
                    followSet141.addAll(outerFollowSet);
                }
                consumeToken(OUTPUT, false, followSet141);
            } else if (nextTokenType() == COUNT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:173:11
                EnumSet followSet150 = null;
                if (outerFollowSet != null) {
                    followSet150 = follow_set$YQLPlus_ccc$173$11.clone();
                    followSet150.addAll(outerFollowSet);
                }
                consumeToken(COUNT, false, followSet150);
            } else if (nextTokenType() == LBRACE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:174:11
                EnumSet followSet159 = null;
                if (outerFollowSet != null) {
                    followSet159 = follow_set$YQLPlus_ccc$174$11.clone();
                    followSet159.addAll(outerFollowSet);
                }
                consumeToken(LBRACE, false, followSet159);
            } else if (nextTokenType() == RBRACE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:175:11
                EnumSet followSet168 = null;
                if (outerFollowSet != null) {
                    followSet168 = follow_set$YQLPlus_ccc$175$11.clone();
                    followSet168.addAll(outerFollowSet);
                }
                consumeToken(RBRACE, false, followSet168);
            } else if (nextTokenType() == COLON) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:176:11
                EnumSet followSet177 = null;
                if (outerFollowSet != null) {
                    followSet177 = follow_set$YQLPlus_ccc$176$11.clone();
                    followSet177.addAll(outerFollowSet);
                }
                consumeToken(COLON, false, followSet177);
            } else if (nextTokenType() == AND) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:177:11
                EnumSet followSet186 = null;
                if (outerFollowSet != null) {
                    followSet186 = follow_set$YQLPlus_ccc$177$11.clone();
                    followSet186.addAll(outerFollowSet);
                }
                consumeToken(AND, false, followSet186);
            } else if (nextTokenType() == OR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:178:11
                EnumSet followSet195 = null;
                if (outerFollowSet != null) {
                    followSet195 = follow_set$YQLPlus_ccc$178$11.clone();
                    followSet195.addAll(outerFollowSet);
                }
                consumeToken(OR, false, followSet195);
            } else if (nextTokenType() == NOT_IN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:179:11
                EnumSet followSet204 = null;
                if (outerFollowSet != null) {
                    followSet204 = follow_set$YQLPlus_ccc$179$11.clone();
                    followSet204.addAll(outerFollowSet);
                }
                consumeToken(NOT_IN, false, followSet204);
            } else if (nextTokenType() == IN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:180:11
                EnumSet followSet213 = null;
                if (outerFollowSet != null) {
                    followSet213 = follow_set$YQLPlus_ccc$180$11.clone();
                    followSet213.addAll(outerFollowSet);
                }
                consumeToken(IN, false, followSet213);
            } else if (nextTokenType() == LIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:181:11
                EnumSet followSet222 = null;
                if (outerFollowSet != null) {
                    followSet222 = follow_set$YQLPlus_ccc$181$11.clone();
                    followSet222.addAll(outerFollowSet);
                }
                consumeToken(LIKE, false, followSet222);
            } else if (nextTokenType() == CONTAINS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:182:11
                EnumSet followSet231 = null;
                if (outerFollowSet != null) {
                    followSet231 = follow_set$YQLPlus_ccc$182$11.clone();
                    followSet231.addAll(outerFollowSet);
                }
                consumeToken(CONTAINS, false, followSet231);
            } else if (nextTokenType() == NOTLIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:183:11
                EnumSet followSet240 = null;
                if (outerFollowSet != null) {
                    followSet240 = follow_set$YQLPlus_ccc$183$11.clone();
                    followSet240.addAll(outerFollowSet);
                }
                consumeToken(NOTLIKE, false, followSet240);
            } else if (nextTokenType() == MATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:184:11
                EnumSet followSet249 = null;
                if (outerFollowSet != null) {
                    followSet249 = follow_set$YQLPlus_ccc$184$11.clone();
                    followSet249.addAll(outerFollowSet);
                }
                consumeToken(MATCHES, false, followSet249);
            } else if (nextTokenType() == NOTMATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:185:11
                EnumSet followSet258 = null;
                if (outerFollowSet != null) {
                    followSet258 = follow_set$YQLPlus_ccc$185$11.clone();
                    followSet258.addAll(outerFollowSet);
                }
                consumeToken(NOTMATCHES, false, followSet258);
            } else if (nextTokenType() == NULL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:186:11
                EnumSet followSet267 = null;
                if (outerFollowSet != null) {
                    followSet267 = follow_set$YQLPlus_ccc$186$11.clone();
                    followSet267.addAll(outerFollowSet);
                }
                consumeToken(NULL, false, followSet267);
            } else if (nextTokenType() == IS_NULL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:187:11
                EnumSet followSet276 = null;
                if (outerFollowSet != null) {
                    followSet276 = follow_set$YQLPlus_ccc$187$11.clone();
                    followSet276.addAll(outerFollowSet);
                }
                consumeToken(IS_NULL, false, followSet276);
            } else if (nextTokenType() == IS_NOT_NULL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:188:11
                EnumSet followSet285 = null;
                if (outerFollowSet != null) {
                    followSet285 = follow_set$YQLPlus_ccc$188$11.clone();
                    followSet285.addAll(outerFollowSet);
                }
                consumeToken(IS_NOT_NULL, false, followSet285);
            } else if (nextTokenType() == DOT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:189:11
                EnumSet followSet294 = null;
                if (outerFollowSet != null) {
                    followSet294 = follow_set$YQLPlus_ccc$189$11.clone();
                    followSet294.addAll(outerFollowSet);
                }
                consumeToken(DOT, false, followSet294);
            } else if (nextTokenType() == AT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:190:11
                EnumSet followSet303 = null;
                if (outerFollowSet != null) {
                    followSet303 = follow_set$YQLPlus_ccc$190$11.clone();
                    followSet303.addAll(outerFollowSet);
                }
                consumeToken(AT, false, followSet303);
            } else if (nextTokenType() == TIMEOUT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:191:11
                EnumSet followSet312 = null;
                if (outerFollowSet != null) {
                    followSet312 = follow_set$YQLPlus_ccc$191$11.clone();
                    followSet312.addAll(outerFollowSet);
                }
                consumeToken(TIMEOUT, false, followSet312);
            } else if (nextTokenType() == ALL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:192:11
                EnumSet followSet321 = null;
                if (outerFollowSet != null) {
                    followSet321 = follow_set$YQLPlus_ccc$192$11.clone();
                    followSet321.addAll(outerFollowSet);
                }
                consumeToken(ALL, false, followSet321);
            } else if (nextTokenType() == EACH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:193:11
                EnumSet followSet330 = null;
                if (outerFollowSet != null) {
                    followSet330 = follow_set$YQLPlus_ccc$193$11.clone();
                    followSet330.addAll(outerFollowSet);
                }
                consumeToken(EACH, false, followSet330);
            } else if (first_set$YQLPlus_ccc$194$11.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:194:11
                pushOntoCallStack("vespa_grouping_identifier", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 194, 11);
                try {
                    identifierStr();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("vespa_grouping_identifier", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 159, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$159$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet vespa_grouping_node_FIRST_SET = vespa_grouping_node_FIRST_SET_init();

    private static EnumSet vespa_grouping_node_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:199:1
    final public void vespa_grouping_node() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "vespa_grouping_node";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:199:1
        vespa_grouping_node thisProduction = null;
        if (buildTree) {
            thisProduction = new vespa_grouping_node();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$vespa_grouping_node();
            }
            if (nextTokenType() == MINUS || nextTokenType == EXCLAMATION) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:201:9
                pushOntoCallStack("vespa_grouping_node", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 201, 9);
                try {
                    unary_op();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == PLUS || nextTokenType == MINUS) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:202:11
                pushOntoCallStack("vespa_grouping_node", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 202, 11);
                try {
                    additive_op();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == STAR || nextTokenType == DIV || nextTokenType == MODULO) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:203:11
                pushOntoCallStack("vespa_grouping_node", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 203, 11);
                try {
                    mult_op();
                } finally {
                    popCallStack();
                }
            } else if (first_set$YQLPlus_ccc$204$11.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:204:11
                pushOntoCallStack("vespa_grouping_node", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 204, 11);
                try {
                    scalar_literal();
                } finally {
                    popCallStack();
                }
            } else if (first_set$YQLPlus_ccc$205$11.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:205:11
                pushOntoCallStack("vespa_grouping_node", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 205, 11);
                try {
                    vespa_grouping_identifier();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("vespa_grouping_node", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 201, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$201$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:209:1
    final public void vespa_grouping() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "vespa_grouping";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:209:1
        vespa_grouping thisProduction = null;
        if (buildTree) {
            thisProduction = new vespa_grouping();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$vespa_grouping();
            }
            if (nextTokenType() == ALL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:211:10
                consumeToken(ALL, false, follow_set$YQLPlus_ccc$211$10);
            } else if (nextTokenType() == EACH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:211:18
                consumeToken(EACH, false, follow_set$YQLPlus_ccc$211$18);
            } else {
                pushOntoCallStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 211, 10);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$211$10$, parsingStack);
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:211:26
            pushOntoCallStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 211, 26);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$211$26.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                vespa_grouping_arg();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:9
            if (nextTokenType() == AS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:10
                consumeToken(AS, false, follow_set$YQLPlus_ccc$212$10);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:15
                pushOntoCallStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 212, 15);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$212$15.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    vespa_grouping_arg();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:9
            if (nextTokenType() == WHERE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:10
                consumeToken(WHERE, false, follow_set$YQLPlus_ccc$213$10);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:18
                pushOntoCallStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 213, 18);
                try {
                    vespa_grouping_arg();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:217:1
    final public void vespa_grouping_arg() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "vespa_grouping_arg";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:217:1
        vespa_grouping_arg thisProduction = null;
        if (buildTree) {
            thisProduction = new vespa_grouping_arg();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$vespa_grouping_arg();
            }
            if (nextTokenType() == LPAREN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:219:10
                consumeToken(LPAREN, false, follow_set$YQLPlus_ccc$219$10);
            } else if (nextTokenType() == LBRACKET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:219:21
                consumeToken(LBRACKET, false, follow_set$YQLPlus_ccc$219$21);
            } else if (nextTokenType() == LT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:219:34
                consumeToken(LT, false, follow_set$YQLPlus_ccc$219$34);
            } else {
                pushOntoCallStack("vespa_grouping_arg", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 219, 10);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$219$10$, parsingStack);
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:9
            while (true) {
                // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
                if (nextTokenType() == LPAREN || nextTokenType == LBRACKET || nextTokenType == LT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
                    pushOntoCallStack("vespa_grouping_arg", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 220, 11);
                    outerFollowSet = follow_set$YQLPlus_ccc$220$11;
                    try {
                        vespa_grouping_arg();
                    } finally {
                        popCallStack();
                    }
                } else if (first_set$YQLPlus_ccc$220$32.contains(nextTokenType())) {
                    // Code for OneOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:32
                    while (true) {
                        // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:33
                        pushOntoCallStack("vespa_grouping_arg", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 220, 33);
                        outerFollowSet = follow_set$YQLPlus_ccc$220$33;
                        try {
                            vespa_grouping_node();
                        } finally {
                            popCallStack();
                        }
                        if (!(first_set$YQLPlus_ccc$220$33$.contains(nextTokenType()))) break;
                    }
                } else {
                    break;
                }
            }
            if (nextTokenType() == RPAREN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:221:10
                EnumSet followSet94 = null;
                if (outerFollowSet != null) {
                    followSet94 = follow_set$YQLPlus_ccc$221$10.clone();
                    followSet94.addAll(outerFollowSet);
                }
                consumeToken(RPAREN, false, followSet94);
            } else if (nextTokenType() == RBRACKET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:221:21
                EnumSet followSet103 = null;
                if (outerFollowSet != null) {
                    followSet103 = follow_set$YQLPlus_ccc$221$21.clone();
                    followSet103.addAll(outerFollowSet);
                }
                consumeToken(RBRACKET, false, followSet103);
            } else if (nextTokenType() == GT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:221:34
                EnumSet followSet112 = null;
                if (outerFollowSet != null) {
                    followSet112 = follow_set$YQLPlus_ccc$221$34.clone();
                    followSet112.addAll(outerFollowSet);
                }
                consumeToken(GT, false, followSet112);
            } else {
                pushOntoCallStack("vespa_grouping_arg", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 221, 10);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$221$10$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet ident_FIRST_SET = ident_FIRST_SET_init();

    private static EnumSet ident_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:225:1
    final public String ident() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "ident";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:225:1
        ident thisProduction = null;
        if (buildTree) {
            thisProduction = new ident();
            openNodeScope(thisProduction);
        }
        String identifier;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:229:5
            if (pendingRecovery) {
                recover$ident();
            }
            if (first_set$YQLPlus_ccc$229$5.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:229:7
                pushOntoCallStack("ident", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 229, 7);
                try {
                    identifier = identifierStr();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:229:34
                return identifier;
            } else if (first_set$YQLPlus_ccc$230$7.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:230:8
                pushOntoCallStack("ident", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 230, 8);
                try {
                    identifier = keyword_as_ident();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:230:38
                return identifier;
            } else {
                pushOntoCallStack("ident", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 229, 5);
                throw new ParseException(lastConsumedToken, ident_FIRST_SET, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet keyword_as_ident_FIRST_SET = keyword_as_ident_FIRST_SET_init();

    private static EnumSet keyword_as_ident_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LIKE, MATCHES);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:233:1
    final public String keyword_as_ident() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "keyword_as_ident";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:233:1
        keyword_as_ident thisProduction = null;
        if (buildTree) {
            thisProduction = new keyword_as_ident();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$keyword_as_ident();
            }
            if (nextTokenType() == SELECT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:235:11
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$235$11.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(SELECT, false, followSet24);
            } else if (nextTokenType() == LIMIT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:236:11
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$236$11.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(LIMIT, false, followSet33);
            } else if (nextTokenType() == OFFSET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:237:11
                EnumSet followSet42 = null;
                if (outerFollowSet != null) {
                    followSet42 = follow_set$YQLPlus_ccc$237$11.clone();
                    followSet42.addAll(outerFollowSet);
                }
                consumeToken(OFFSET, false, followSet42);
            } else if (nextTokenType() == WHERE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:238:11
                EnumSet followSet51 = null;
                if (outerFollowSet != null) {
                    followSet51 = follow_set$YQLPlus_ccc$238$11.clone();
                    followSet51.addAll(outerFollowSet);
                }
                consumeToken(WHERE, false, followSet51);
            } else if (nextTokenType() == ORDER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:239:11
                EnumSet followSet60 = null;
                if (outerFollowSet != null) {
                    followSet60 = follow_set$YQLPlus_ccc$239$11.clone();
                    followSet60.addAll(outerFollowSet);
                }
                consumeToken(ORDER, false, followSet60);
            } else if (nextTokenType() == BY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:240:11
                EnumSet followSet69 = null;
                if (outerFollowSet != null) {
                    followSet69 = follow_set$YQLPlus_ccc$240$11.clone();
                    followSet69.addAll(outerFollowSet);
                }
                consumeToken(BY, false, followSet69);
            } else if (nextTokenType() == DESC) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:241:11
                EnumSet followSet78 = null;
                if (outerFollowSet != null) {
                    followSet78 = follow_set$YQLPlus_ccc$241$11.clone();
                    followSet78.addAll(outerFollowSet);
                }
                consumeToken(DESC, false, followSet78);
            } else if (nextTokenType() == OUTPUT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:242:11
                EnumSet followSet87 = null;
                if (outerFollowSet != null) {
                    followSet87 = follow_set$YQLPlus_ccc$242$11.clone();
                    followSet87.addAll(outerFollowSet);
                }
                consumeToken(OUTPUT, false, followSet87);
            } else if (nextTokenType() == COUNT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:243:11
                EnumSet followSet96 = null;
                if (outerFollowSet != null) {
                    followSet96 = follow_set$YQLPlus_ccc$243$11.clone();
                    followSet96.addAll(outerFollowSet);
                }
                consumeToken(COUNT, false, followSet96);
            } else if (nextTokenType() == SOURCES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:244:11
                EnumSet followSet105 = null;
                if (outerFollowSet != null) {
                    followSet105 = follow_set$YQLPlus_ccc$244$11.clone();
                    followSet105.addAll(outerFollowSet);
                }
                consumeToken(SOURCES, false, followSet105);
            } else if (nextTokenType() == MATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:245:11
                EnumSet followSet114 = null;
                if (outerFollowSet != null) {
                    followSet114 = follow_set$YQLPlus_ccc$245$11.clone();
                    followSet114.addAll(outerFollowSet);
                }
                consumeToken(MATCHES, false, followSet114);
            } else if (nextTokenType() == LIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:246:11
                EnumSet followSet123 = null;
                if (outerFollowSet != null) {
                    followSet123 = follow_set$YQLPlus_ccc$246$11.clone();
                    followSet123.addAll(outerFollowSet);
                }
                consumeToken(LIKE, false, followSet123);
            } else {
                pushOntoCallStack("keyword_as_ident", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 235, 11);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$235$11$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:248:5
            return lastConsumedToken.toString();
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:253:1
    final public void program() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "program";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:253:1
        program thisProduction = null;
        if (buildTree) {
            thisProduction = new program();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$program();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:255:9
            while (true) {
                if (!(nextTokenType() == SELECT)) break;
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:255:10
                pushOntoCallStack("program", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 255, 10);
                outerFollowSet = follow_set$YQLPlus_ccc$255$10;
                try {
                    statement();
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:255:20
                if (nextTokenType() == SEMI) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:255:21
                    consumeToken(SEMI, false, follow_set$YQLPlus_ccc$255$21);
                }
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:255:32
            EnumSet followSet44 = null;
            if (outerFollowSet != null) {
                followSet44 = follow_set$YQLPlus_ccc$255$32.clone();
                followSet44.addAll(outerFollowSet);
            }
            consumeToken(EOF, false, followSet44);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:259:1
    final public void statement() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "statement";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:259:1
        statement thisProduction = null;
        if (buildTree) {
            thisProduction = new statement();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$statement();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:261:9
            pushOntoCallStack("statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 261, 9);
            try {
                output_statement();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:265:1
    final public void output_statement() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "output_statement";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:265:1
        output_statement thisProduction = null;
        if (buildTree) {
            thisProduction = new output_statement();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$output_statement();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:267:9
            pushOntoCallStack("output_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 267, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$267$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                source_statement();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:267:26
            if (nextTokenType() == OUTPUT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:267:27
                pushOntoCallStack("output_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 267, 27);
                try {
                    output_spec();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:271:1
    final public void source_statement() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "source_statement";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:271:1
        source_statement thisProduction = null;
        if (buildTree) {
            thisProduction = new source_statement();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$source_statement();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:9
            pushOntoCallStack("source_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 273, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$273$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                query_statement();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:25
            while (true) {
                if (!(nextTokenType() == PIPE)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:26
                consumeToken(PIPE, false, follow_set$YQLPlus_ccc$273$26);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:33
                pushOntoCallStack("source_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 273, 33);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$273$33.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    pipeline_step();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet pipeline_step_FIRST_SET = pipeline_step_FIRST_SET_init();

    private static EnumSet pipeline_step_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, ALL, EACH, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:277:1
    final public void pipeline_step() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "pipeline_step";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:277:1
        pipeline_step thisProduction = null;
        if (buildTree) {
            thisProduction = new pipeline_step();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$pipeline_step();
            }
            if (first_set$YQLPlus_ccc$279$9.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:9
                pushOntoCallStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 9);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$279$9$.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    namespaced_name();
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:25
                if (nextTokenType() == LPAREN) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:26
                    pushOntoCallStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 26);
                    try {
                        arguments(false);
                    } finally {
                        popCallStack();
                    }
                }
            } else if (nextTokenType() == LBRACKET || nextTokenType == LBRACE || nextTokenType == ALL || nextTokenType == EACH) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:47
                pushOntoCallStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 47);
                try {
                    vespa_grouping_fun();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$279$9$$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:283:1
    final public void vespa_grouping_fun() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "vespa_grouping_fun";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:283:1
        vespa_grouping_fun thisProduction = null;
        if (buildTree) {
            thisProduction = new vespa_grouping_fun();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$vespa_grouping_fun();
            }
            if (nextTokenType() == ALL || nextTokenType == EACH) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:9
                pushOntoCallStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 9);
                try {
                    vespa_grouping();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LBRACKET || nextTokenType == LBRACE) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:26
                pushOntoCallStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 26);
                outerFollowSet = follow_set$YQLPlus_ccc$285$26;
                try {
                    annotation();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:37
                pushOntoCallStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 37);
                try {
                    vespa_grouping();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$285$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:289:1
    final public void output_spec() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "output_spec";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:289:1
        output_spec thisProduction = null;
        if (buildTree) {
            thisProduction = new output_spec();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$output_spec();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:291:9
            consumeToken(OUTPUT, false, follow_set$YQLPlus_ccc$291$9);
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:291:18
            if (nextTokenType() == COUNT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:291:19
                consumeToken(COUNT, false, follow_set$YQLPlus_ccc$291$19);
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:291:29
            consumeToken(AS, false, follow_set$YQLPlus_ccc$291$29);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:291:34
            pushOntoCallStack("output_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 291, 34);
            try {
                ident();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:295:1
    final public void query_statement() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "query_statement";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:295:1
        query_statement thisProduction = null;
        if (buildTree) {
            thisProduction = new query_statement();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$query_statement();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:297:9
            pushOntoCallStack("query_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 297, 9);
            try {
                select_statement();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:301:1
    final public void select_statement() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_statement";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:301:1
        select_statement thisProduction = null;
        if (buildTree) {
            thisProduction = new select_statement();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_statement();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:9
            consumeToken(SELECT, false, follow_set$YQLPlus_ccc$303$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:18
            pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 18);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$303$18.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                select_field_spec();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:36
            if (nextTokenType() == FROM) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:37
                pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 37);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$303$37.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    select_source();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:53
            if (nextTokenType() == WHERE) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:54
                pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 54);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$303$54.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    where_fun();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:66
            if (nextTokenType() == ORDERBY) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:67
                pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 67);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$303$67.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    orderby_fun();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:81
            if (nextTokenType() == LIMIT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:82
                pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 82);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$303$82.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    limit_fun();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:94
            if (nextTokenType() == OFFSET) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:95
                pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 95);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$303$95.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    offset_fun();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:108
            if (nextTokenType() == TIMEOUT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:109
                pushOntoCallStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 109);
                try {
                    timeout_fun();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet select_field_spec_FIRST_SET = select_field_spec_FIRST_SET_init();

    private static EnumSet select_field_spec_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:308:1
    final public void select_field_spec() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_field_spec";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:308:1
        select_field_spec thisProduction = null;
        if (buildTree) {
            thisProduction = new select_field_spec();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_field_spec();
            }
            if (nextTokenType() == STAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:310:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$310$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(STAR, false, followSet24);
            } else if (first_set$YQLPlus_ccc$310$18.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:310:18
                pushOntoCallStack("select_field_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 310, 18);
                try {
                    project_spec();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("select_field_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 310, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$310$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet project_spec_FIRST_SET = project_spec_FIRST_SET_init();

    private static EnumSet project_spec_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:314:1
    final public void project_spec() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "project_spec";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:314:1
        project_spec thisProduction = null;
        if (buildTree) {
            thisProduction = new project_spec();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$project_spec();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:9
            pushOntoCallStack("project_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 316, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$316$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                field_def();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:19
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:20
                consumeToken(COMMA, false, follow_set$YQLPlus_ccc$316$20);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:28
                pushOntoCallStack("project_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 316, 28);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$316$28.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    field_def();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:320:1
    final public void timeout_fun() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "timeout_fun";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:320:1
        timeout_fun thisProduction = null;
        if (buildTree) {
            thisProduction = new timeout_fun();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$timeout_fun();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:322:9
            consumeToken(TIMEOUT, false, follow_set$YQLPlus_ccc$322$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:322:19
            pushOntoCallStack("timeout_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 322, 19);
            try {
                fixed_or_parameter();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:326:1
    final public void select_source() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_source";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:326:1
        select_source thisProduction = null;
        if (buildTree) {
            thisProduction = new select_source();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_source();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:328:9
            consumeToken(FROM, false, follow_set$YQLPlus_ccc$328$9);
            if (nextTokenType() == SOURCES) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:329:13
                pushOntoCallStack("select_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 329, 13);
                try {
                    select_source_sources();
                } finally {
                    popCallStack();
                }
            } else if (first_set$YQLPlus_ccc$330$15.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:330:15
                pushOntoCallStack("select_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 330, 15);
                try {
                    select_source_from();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("select_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 329, 13);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$329$13, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:335:1
    final public void select_source_sources() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_source_sources";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:335:1
        select_source_sources thisProduction = null;
        if (buildTree) {
            thisProduction = new select_source_sources();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_source_sources();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:9
            consumeToken(SOURCES, false, follow_set$YQLPlus_ccc$337$9);
            if (nextTokenType() == STAR) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:20
                pushOntoCallStack("select_source_sources", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 337, 20);
                try {
                    select_source_all();
                } finally {
                    popCallStack();
                }
            } else if (first_set$YQLPlus_ccc$337$40.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:40
                pushOntoCallStack("select_source_sources", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 337, 40);
                try {
                    select_source_multi();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("select_source_sources", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 337, 20);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$337$20, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:341:1
    final public void select_source_all() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_source_all";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:341:1
        select_source_all thisProduction = null;
        if (buildTree) {
            thisProduction = new select_source_all();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_source_all();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:343:9
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$YQLPlus_ccc$343$9.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(STAR, false, followSet20);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet select_source_multi_FIRST_SET = select_source_multi_FIRST_SET_init();

    private static EnumSet select_source_multi_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:347:1
    final public void select_source_multi() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_source_multi";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:347:1
        select_source_multi thisProduction = null;
        if (buildTree) {
            thisProduction = new select_source_multi();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_source_multi();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:349:9
            pushOntoCallStack("select_source_multi", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 349, 9);
            try {
                source_list();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet select_source_from_FIRST_SET = select_source_from_FIRST_SET_init();

    private static EnumSet select_source_from_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:353:1
    final public void select_source_from() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "select_source_from";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:353:1
        select_source_from thisProduction = null;
        if (buildTree) {
            thisProduction = new select_source_from();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$select_source_from();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:355:9
            pushOntoCallStack("select_source_from", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 355, 9);
            try {
                source_spec();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet source_list_FIRST_SET = source_list_FIRST_SET_init();

    private static EnumSet source_list_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:359:1
    final public void source_list() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "source_list";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:359:1
        source_list thisProduction = null;
        if (buildTree) {
            thisProduction = new source_list();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$source_list();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:9
            pushOntoCallStack("source_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 361, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$361$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                namespaced_name();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:25
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:26
                consumeToken(COMMA, false, follow_set$YQLPlus_ccc$361$26);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:34
                pushOntoCallStack("source_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 361, 34);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$361$34.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    namespaced_name();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet source_spec_FIRST_SET = source_spec_FIRST_SET_init();

    private static EnumSet source_spec_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:365:1
    final public void source_spec() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "source_spec";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:365:1
        source_spec thisProduction = null;
        if (buildTree) {
            thisProduction = new source_spec();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$source_spec();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:9
            pushOntoCallStack("source_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 367, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$367$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                data_source();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:21
            if (first_set$YQLPlus_ccc$367$22.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:22
                pushOntoCallStack("source_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 367, 22);
                try {
                    alias_def();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet alias_def_FIRST_SET = alias_def_FIRST_SET_init();

    private static EnumSet alias_def_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, AS, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:371:1
    final public void alias_def() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "alias_def";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:371:1
        alias_def thisProduction = null;
        if (buildTree) {
            thisProduction = new alias_def();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$alias_def();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:373:9
            if (nextTokenType() == AS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:373:10
                consumeToken(AS, false, follow_set$YQLPlus_ccc$373$10);
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:373:17
            pushOntoCallStack("alias_def", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 373, 17);
            try {
                identifierStr();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet data_source_FIRST_SET = data_source_FIRST_SET_init();

    private static EnumSet data_source_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:377:1
    final public void data_source() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "data_source";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:377:1
        data_source thisProduction = null;
        if (buildTree) {
            thisProduction = new data_source();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$data_source();
            }
            if (nextTokenType() == AT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:379:9
                pushOntoCallStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 379, 9);
                try {
                    sequence_source();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LPAREN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:10
                consumeToken(LPAREN, false, follow_set$YQLPlus_ccc$380$10);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:19
                pushOntoCallStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 380, 19);
                outerFollowSet = follow_set$YQLPlus_ccc$380$19;
                try {
                    source_statement();
                } finally {
                    popCallStack();
                }
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:36
                EnumSet followSet47 = null;
                if (outerFollowSet != null) {
                    followSet47 = follow_set$YQLPlus_ccc$380$36.clone();
                    followSet47.addAll(outerFollowSet);
                }
                consumeToken(RPAREN, false, followSet47);
            } else if (first_set$YQLPlus_ccc$381$9.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:381:9
                pushOntoCallStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 381, 9);
                try {
                    call_source();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 379, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$379$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet call_source_FIRST_SET = call_source_FIRST_SET_init();

    private static EnumSet call_source_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:385:1
    final public void call_source() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "call_source";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:385:1
        call_source thisProduction = null;
        if (buildTree) {
            thisProduction = new call_source();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$call_source();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:9
            pushOntoCallStack("call_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 387, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$387$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                namespaced_name();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:25
            if (nextTokenType() == LPAREN) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:26
                pushOntoCallStack("call_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 387, 26);
                try {
                    arguments(true);
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:391:1
    final public void sequence_source() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "sequence_source";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:391:1
        sequence_source thisProduction = null;
        if (buildTree) {
            thisProduction = new sequence_source();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$sequence_source();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:393:9
            consumeToken(AT, false, follow_set$YQLPlus_ccc$393$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:393:14
            pushOntoCallStack("sequence_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 393, 14);
            try {
                ident();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet namespaced_name_FIRST_SET = namespaced_name_FIRST_SET_init();

    private static EnumSet namespaced_name_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:397:1
    final public void namespaced_name() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "namespaced_name";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:397:1
        namespaced_name thisProduction = null;
        if (buildTree) {
            thisProduction = new namespaced_name();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$namespaced_name();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:9
            pushOntoCallStack("namespaced_name", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 399, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$399$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                dotted_idents();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:23
            if (nextTokenType() == DOT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:24
                consumeToken(DOT, false, follow_set$YQLPlus_ccc$399$24);
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:30
                EnumSet followSet36 = null;
                if (outerFollowSet != null) {
                    followSet36 = follow_set$YQLPlus_ccc$399$30.clone();
                    followSet36.addAll(outerFollowSet);
                }
                consumeToken(STAR, false, followSet36);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:403:1
    final public void orderby_fun() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "orderby_fun";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:403:1
        orderby_fun thisProduction = null;
        if (buildTree) {
            thisProduction = new orderby_fun();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$orderby_fun();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:405:9
            consumeToken(ORDERBY, false, follow_set$YQLPlus_ccc$405$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:405:19
            pushOntoCallStack("orderby_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 405, 19);
            try {
                orderby_fields();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet orderby_fields_FIRST_SET = orderby_fields_FIRST_SET_init();

    private static EnumSet orderby_fields_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:409:1
    final public void orderby_fields() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "orderby_fields";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:409:1
        orderby_fields thisProduction = null;
        if (buildTree) {
            thisProduction = new orderby_fields();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$orderby_fields();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:9
            pushOntoCallStack("orderby_fields", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 411, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$411$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                orderby_field();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:23
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:24
                consumeToken(COMMA, false, follow_set$YQLPlus_ccc$411$24);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:32
                pushOntoCallStack("orderby_fields", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 411, 32);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$411$32.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    orderby_field();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet orderby_field_FIRST_SET = orderby_field_FIRST_SET_init();

    private static EnumSet orderby_field_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:415:1
    final public void orderby_field() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "orderby_field";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:415:1
        orderby_field thisProduction = null;
        if (buildTree) {
            thisProduction = new orderby_field();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$orderby_field();
            }
            if (first_set$YQLPlus_ccc$417$9.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:10
                pushOntoCallStack("orderby_field", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 417, 10);
                outerFollowSet = follow_set$YQLPlus_ccc$417$10;
                try {
                    expression(true);
                } finally {
                    popCallStack();
                }
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:27
                EnumSet followSet35 = null;
                if (outerFollowSet != null) {
                    followSet35 = follow_set$YQLPlus_ccc$417$27.clone();
                    followSet35.addAll(outerFollowSet);
                }
                consumeToken(DESC, false, followSet35);
            } else if (first_set$YQLPlus_ccc$418$11.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:12
                pushOntoCallStack("orderby_field", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 418, 12);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$418$12.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    expression(true);
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:29
                if (nextTokenType() == ASC) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:30
                    EnumSet followSet63 = null;
                    if (outerFollowSet != null) {
                        followSet63 = follow_set$YQLPlus_ccc$418$30.clone();
                        followSet63.addAll(outerFollowSet);
                    }
                    consumeToken(ASC, false, followSet63);
                }
            } else {
                pushOntoCallStack("orderby_field", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 417, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$417$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:422:1
    final public void limit_fun() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "limit_fun";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:422:1
        limit_fun thisProduction = null;
        if (buildTree) {
            thisProduction = new limit_fun();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$limit_fun();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:424:9
            consumeToken(LIMIT, false, follow_set$YQLPlus_ccc$424$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:424:17
            pushOntoCallStack("limit_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 424, 17);
            try {
                fixed_or_parameter();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:428:1
    final public void offset_fun() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "offset_fun";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:428:1
        offset_fun thisProduction = null;
        if (buildTree) {
            thisProduction = new offset_fun();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$offset_fun();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:430:9
            consumeToken(OFFSET, false, follow_set$YQLPlus_ccc$430$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:430:18
            pushOntoCallStack("offset_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 430, 18);
            try {
                fixed_or_parameter();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:434:1
    final public void where_fun() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "where_fun";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:434:1
        where_fun thisProduction = null;
        if (buildTree) {
            thisProduction = new where_fun();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$where_fun();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:436:9
            consumeToken(WHERE, false, follow_set$YQLPlus_ccc$436$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:436:17
            pushOntoCallStack("where_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 436, 17);
            try {
                expression(true);
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet field_def_FIRST_SET = field_def_FIRST_SET_init();

    private static EnumSet field_def_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:440:1
    final public void field_def() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "field_def";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:440:1
        field_def thisProduction = null;
        if (buildTree) {
            thisProduction = new field_def();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$field_def();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:9
            pushOntoCallStack("field_def", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 442, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$442$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                expression(true);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:26
            if (first_set$YQLPlus_ccc$442$27.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:27
                pushOntoCallStack("field_def", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 442, 27);
                try {
                    alias_def();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:446:1
    final public void map_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "map_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:446:1
        map_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new map_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$map_expression();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:9
            consumeToken(LBRACE, false, follow_set$YQLPlus_ccc$448$9);
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:18
            if (first_set$YQLPlus_ccc$448$19.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:19
                pushOntoCallStack("map_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 448, 19);
                outerFollowSet = follow_set$YQLPlus_ccc$448$19$;
                try {
                    property_name_and_value();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:45
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:46
                consumeToken(COMMA, false, follow_set$YQLPlus_ccc$448$46);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:54
                pushOntoCallStack("map_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 448, 54);
                outerFollowSet = follow_set$YQLPlus_ccc$448$54;
                try {
                    property_name_and_value();
                } finally {
                    popCallStack();
                }
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:80
            EnumSet followSet52 = null;
            if (outerFollowSet != null) {
                followSet52 = follow_set$YQLPlus_ccc$448$80.clone();
                followSet52.addAll(outerFollowSet);
            }
            consumeToken(RBRACE, false, followSet52);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:452:1
    final public void arguments(boolean in_select) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "arguments";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:452:1
        arguments thisProduction = null;
        if (buildTree) {
            thisProduction = new arguments();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$arguments();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:9
            consumeToken(LPAREN, false, follow_set$YQLPlus_ccc$454$9);
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:18
            if (first_set$YQLPlus_ccc$454$19.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:19
                pushOntoCallStack("arguments", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 454, 19);
                outerFollowSet = follow_set$YQLPlus_ccc$454$19$;
                try {
                    argument(in_select);
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:39
                while (true) {
                    if (!(nextTokenType() == COMMA)) break;
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:40
                    consumeToken(COMMA, false, follow_set$YQLPlus_ccc$454$40);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:48
                    pushOntoCallStack("arguments", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 454, 48);
                    outerFollowSet = follow_set$YQLPlus_ccc$454$48;
                    try {
                        argument(in_select);
                    } finally {
                        popCallStack();
                    }
                }
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:72
            EnumSet followSet52 = null;
            if (outerFollowSet != null) {
                followSet52 = follow_set$YQLPlus_ccc$454$72.clone();
                followSet52.addAll(outerFollowSet);
            }
            consumeToken(RPAREN, false, followSet52);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet argument_FIRST_SET = argument_FIRST_SET_init();

    private static EnumSet argument_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:458:1
    final public void argument(boolean in_select) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "argument";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:458:1
        argument thisProduction = null;
        if (buildTree) {
            thisProduction = new argument();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$argument();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:460:9
            pushOntoCallStack("argument", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 460, 9);
            try {
                expression(in_select);
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet expression_FIRST_SET = expression_FIRST_SET_init();

    private static EnumSet expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:466:1
    final public void expression(boolean select) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:466:1
        expression thisProduction = null;
        if (buildTree) {
            thisProduction = new expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$expression();
            }
            if (nextTokenType() == NULL) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:468:9
                pushOntoCallStack("expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 468, 9);
                try {
                    null_operator();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LBRACKET || nextTokenType == LBRACE) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:469:11
                pushOntoCallStack("expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 469, 11);
                try {
                    annotate_expression();
                } finally {
                    popCallStack();
                }
            } else if (first_set$YQLPlus_ccc$470$11.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:470:11
                pushOntoCallStack("expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 470, 11);
                try {
                    logical_OR_expression();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 468, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$468$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:475:1
    final public void null_operator() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "null_operator";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:475:1
        null_operator thisProduction = null;
        if (buildTree) {
            thisProduction = new null_operator();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$null_operator();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:477:9
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$YQLPlus_ccc$477$9.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(NULL, false, followSet20);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:481:1
    final public void annotate_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "annotate_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:481:1
        annotate_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new annotate_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$annotate_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:483:9
            pushOntoCallStack("annotate_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 483, 9);
            outerFollowSet = follow_set$YQLPlus_ccc$483$9;
            try {
                annotation();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:483:20
            pushOntoCallStack("annotate_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 483, 20);
            try {
                logical_OR_expression();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:487:1
    final public void annotation() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "annotation";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:487:1
        annotation thisProduction = null;
        if (buildTree) {
            thisProduction = new annotation();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$annotation();
            }
            if (nextTokenType() == LBRACKET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:10
                consumeToken(LBRACKET, false, follow_set$YQLPlus_ccc$489$10);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:21
                pushOntoCallStack("annotation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 489, 21);
                outerFollowSet = follow_set$YQLPlus_ccc$489$21;
                try {
                    map_expression();
                } finally {
                    popCallStack();
                }
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:36
                EnumSet followSet39 = null;
                if (outerFollowSet != null) {
                    followSet39 = follow_set$YQLPlus_ccc$489$36.clone();
                    followSet39.addAll(outerFollowSet);
                }
                consumeToken(RBRACKET, false, followSet39);
            } else if (nextTokenType() == LBRACE) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:490:11
                pushOntoCallStack("annotation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 490, 11);
                try {
                    map_expression();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("annotation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 489, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$489$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet logical_OR_expression_FIRST_SET = logical_OR_expression_FIRST_SET_init();

    private static EnumSet logical_OR_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:494:1
    final public void logical_OR_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "logical_OR_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:494:1
        logical_OR_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new logical_OR_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$logical_OR_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:9
            pushOntoCallStack("logical_OR_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 496, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$496$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                logical_AND_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:32
            while (true) {
                if (!(nextTokenType() == OR)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:34
                consumeToken(OR, false, follow_set$YQLPlus_ccc$496$34);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:39
                pushOntoCallStack("logical_OR_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 496, 39);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$496$39.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    logical_AND_expression();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet logical_AND_expression_FIRST_SET = logical_AND_expression_FIRST_SET_init();

    private static EnumSet logical_AND_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:500:1
    final public void logical_AND_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "logical_AND_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:500:1
        logical_AND_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new logical_AND_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$logical_AND_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:9
            pushOntoCallStack("logical_AND_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 502, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$502$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                equality_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:29
            while (true) {
                if (!(nextTokenType() == AND)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:31
                consumeToken(AND, false, follow_set$YQLPlus_ccc$502$31);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:37
                pushOntoCallStack("logical_AND_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 502, 37);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$502$37.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    equality_expression();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet equality_expression_FIRST_SET = equality_expression_FIRST_SET_init();

    private static EnumSet equality_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:506:1
    final public void equality_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "equality_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:506:1
        equality_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new equality_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$equality_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:508:9
            pushOntoCallStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 508, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$508$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                relational_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:508:31
            // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:13
            if (nextTokenType() == NOT_IN || nextTokenType == IN) {
                if (nextTokenType() == IN) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:16
                    consumeToken(IN, false, follow_set$YQLPlus_ccc$509$16);
                } else if (nextTokenType() == NOT_IN) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:23
                    consumeToken(NOT_IN, false, follow_set$YQLPlus_ccc$509$23);
                } else {
                    pushOntoCallStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 509, 16);
                    throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$509$16$, parsingStack);
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:33
                pushOntoCallStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 509, 33);
                try {
                    in_not_in_target();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == IS_NULL || nextTokenType == IS_NOT_NULL) {
                if (nextTokenType() == IS_NULL) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:510:17
                    EnumSet followSet85 = null;
                    if (outerFollowSet != null) {
                        followSet85 = follow_set$YQLPlus_ccc$510$17.clone();
                        followSet85.addAll(outerFollowSet);
                    }
                    consumeToken(IS_NULL, false, followSet85);
                } else if (nextTokenType() == IS_NOT_NULL) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:510:29
                    EnumSet followSet94 = null;
                    if (outerFollowSet != null) {
                        followSet94 = follow_set$YQLPlus_ccc$510$29.clone();
                        followSet94.addAll(outerFollowSet);
                    }
                    consumeToken(IS_NOT_NULL, false, followSet94);
                } else {
                    pushOntoCallStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 510, 17);
                    throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$510$17$, parsingStack);
                }
            } else if (first_set$YQLPlus_ccc$511$15.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:511:17
                pushOntoCallStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 511, 17);
                outerFollowSet = follow_set$YQLPlus_ccc$511$17;
                try {
                    equality_op();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:511:29
                pushOntoCallStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 511, 29);
                try {
                    relational_expression();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:516:1
    final public void in_not_in_target() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "in_not_in_target";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:516:1
        in_not_in_target thisProduction = null;
        if (buildTree) {
            thisProduction = new in_not_in_target();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$in_not_in_target();
            }
            if (nextTokenType() == LPAREN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:11
                consumeToken(LPAREN, false, follow_set$YQLPlus_ccc$518$11);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:20
                pushOntoCallStack("in_not_in_target", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 518, 20);
                outerFollowSet = follow_set$YQLPlus_ccc$518$20;
                try {
                    select_statement();
                } finally {
                    popCallStack();
                }
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:37
                EnumSet followSet39 = null;
                if (outerFollowSet != null) {
                    followSet39 = follow_set$YQLPlus_ccc$518$37.clone();
                    followSet39.addAll(outerFollowSet);
                }
                consumeToken(RPAREN, false, followSet39);
            } else if (nextTokenType() == LPAREN) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:519:11
                pushOntoCallStack("in_not_in_target", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 519, 11);
                try {
                    literal_list();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("in_not_in_target", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 518, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$518$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet equality_op_FIRST_SET = tokenTypeSet(NEQ, EQ, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES);

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:523:1
    final public void equality_op() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "equality_op";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:523:1
        equality_op thisProduction = null;
        if (buildTree) {
            thisProduction = new equality_op();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$equality_op();
            }
            if (nextTokenType() == EQ) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:11
                EnumSet followSet31 = null;
                if (outerFollowSet != null) {
                    followSet31 = follow_set$YQLPlus_ccc$525$11.clone();
                    followSet31.addAll(outerFollowSet);
                }
                consumeToken(EQ, false, followSet31);
            } else if (nextTokenType() == NEQ) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:18
                EnumSet followSet40 = null;
                if (outerFollowSet != null) {
                    followSet40 = follow_set$YQLPlus_ccc$525$18.clone();
                    followSet40.addAll(outerFollowSet);
                }
                consumeToken(NEQ, false, followSet40);
            } else if (nextTokenType() == LIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:26
                EnumSet followSet49 = null;
                if (outerFollowSet != null) {
                    followSet49 = follow_set$YQLPlus_ccc$525$26.clone();
                    followSet49.addAll(outerFollowSet);
                }
                consumeToken(LIKE, false, followSet49);
            } else if (nextTokenType() == NOTLIKE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:35
                EnumSet followSet58 = null;
                if (outerFollowSet != null) {
                    followSet58 = follow_set$YQLPlus_ccc$525$35.clone();
                    followSet58.addAll(outerFollowSet);
                }
                consumeToken(NOTLIKE, false, followSet58);
            } else if (nextTokenType() == MATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:47
                EnumSet followSet67 = null;
                if (outerFollowSet != null) {
                    followSet67 = follow_set$YQLPlus_ccc$525$47.clone();
                    followSet67.addAll(outerFollowSet);
                }
                consumeToken(MATCHES, false, followSet67);
            } else if (nextTokenType() == NOTMATCHES) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:59
                EnumSet followSet76 = null;
                if (outerFollowSet != null) {
                    followSet76 = follow_set$YQLPlus_ccc$525$59.clone();
                    followSet76.addAll(outerFollowSet);
                }
                consumeToken(NOTMATCHES, false, followSet76);
            } else if (nextTokenType() == CONTAINS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:525:74
                EnumSet followSet85 = null;
                if (outerFollowSet != null) {
                    followSet85 = follow_set$YQLPlus_ccc$525$74.clone();
                    followSet85.addAll(outerFollowSet);
                }
                consumeToken(CONTAINS, false, followSet85);
            } else {
                pushOntoCallStack("equality_op", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 525, 11);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$525$11$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet relational_expression_FIRST_SET = relational_expression_FIRST_SET_init();

    private static EnumSet relational_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:529:1
    final public void relational_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "relational_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:529:1
        relational_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new relational_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$relational_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:9
            pushOntoCallStack("relational_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 531, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$531$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                additive_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:29
            if (nextTokenType() == LT || nextTokenType == GT || nextTokenType == LTEQ || nextTokenType == GTEQ) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:30
                pushOntoCallStack("relational_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 531, 30);
                outerFollowSet = follow_set$YQLPlus_ccc$531$30;
                try {
                    relational_op();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:44
                pushOntoCallStack("relational_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 531, 44);
                try {
                    additive_expression();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:535:1
    final public void relational_op() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "relational_op";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:535:1
        relational_op thisProduction = null;
        if (buildTree) {
            thisProduction = new relational_op();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$relational_op();
            }
            if (nextTokenType() == LT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:537:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$537$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(LT, false, followSet24);
            } else if (nextTokenType() == GT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:537:16
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$537$16.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(GT, false, followSet33);
            } else if (nextTokenType() == LTEQ) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:537:23
                EnumSet followSet42 = null;
                if (outerFollowSet != null) {
                    followSet42 = follow_set$YQLPlus_ccc$537$23.clone();
                    followSet42.addAll(outerFollowSet);
                }
                consumeToken(LTEQ, false, followSet42);
            } else if (nextTokenType() == GTEQ) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:537:32
                EnumSet followSet51 = null;
                if (outerFollowSet != null) {
                    followSet51 = follow_set$YQLPlus_ccc$537$32.clone();
                    followSet51.addAll(outerFollowSet);
                }
                consumeToken(GTEQ, false, followSet51);
            } else {
                pushOntoCallStack("relational_op", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 537, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$537$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet additive_expression_FIRST_SET = additive_expression_FIRST_SET_init();

    private static EnumSet additive_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:541:1
    final public void additive_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "additive_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:541:1
        additive_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new additive_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$additive_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:9
            pushOntoCallStack("additive_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 543, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$543$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                multiplicative_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:35
            if (nextTokenType() == PLUS || nextTokenType == MINUS) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:37
                pushOntoCallStack("additive_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 543, 37);
                outerFollowSet = follow_set$YQLPlus_ccc$543$37;
                try {
                    additive_op();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:49
                pushOntoCallStack("additive_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 543, 49);
                try {
                    additive_expression();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:547:1
    final public void additive_op() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "additive_op";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:547:1
        additive_op thisProduction = null;
        if (buildTree) {
            thisProduction = new additive_op();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$additive_op();
            }
            if (nextTokenType() == PLUS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:549:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$549$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(PLUS, false, followSet24);
            } else if (nextTokenType() == MINUS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:549:18
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$549$18.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(MINUS, false, followSet33);
            } else {
                pushOntoCallStack("additive_op", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 549, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$549$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet multiplicative_expression_FIRST_SET = multiplicative_expression_FIRST_SET_init();

    private static EnumSet multiplicative_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:553:1
    final public void multiplicative_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "multiplicative_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:553:1
        multiplicative_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new multiplicative_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$multiplicative_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:9
            pushOntoCallStack("multiplicative_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 555, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$555$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                unary_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:26
            if (nextTokenType() == STAR || nextTokenType == DIV || nextTokenType == MODULO) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:27
                pushOntoCallStack("multiplicative_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 555, 27);
                outerFollowSet = follow_set$YQLPlus_ccc$555$27;
                try {
                    mult_op();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:35
                pushOntoCallStack("multiplicative_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 555, 35);
                try {
                    multiplicative_expression();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:559:1
    final public void mult_op() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "mult_op";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:559:1
        mult_op thisProduction = null;
        if (buildTree) {
            thisProduction = new mult_op();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$mult_op();
            }
            if (nextTokenType() == STAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:561:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$561$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(STAR, false, followSet24);
            } else if (nextTokenType() == DIV) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:561:18
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$561$18.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(DIV, false, followSet33);
            } else if (nextTokenType() == MODULO) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:561:26
                EnumSet followSet42 = null;
                if (outerFollowSet != null) {
                    followSet42 = follow_set$YQLPlus_ccc$561$26.clone();
                    followSet42.addAll(outerFollowSet);
                }
                consumeToken(MODULO, false, followSet42);
            } else {
                pushOntoCallStack("mult_op", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 561, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$561$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet unary_expression_FIRST_SET = unary_expression_FIRST_SET_init();

    private static EnumSet unary_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:565:1
    final public void unary_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "unary_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:565:1
        unary_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new unary_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$unary_expression();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:567:9
            if (nextTokenType() == MINUS || nextTokenType == EXCLAMATION) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:567:10
                pushOntoCallStack("unary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 567, 10);
                outerFollowSet = follow_set$YQLPlus_ccc$567$10;
                try {
                    unary_op();
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:567:21
            pushOntoCallStack("unary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 567, 21);
            try {
                dereferenced_expression();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:571:1
    final public void unary_op() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "unary_op";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:571:1
        unary_op thisProduction = null;
        if (buildTree) {
            thisProduction = new unary_op();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$unary_op();
            }
            if (nextTokenType() == MINUS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:573:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$573$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(MINUS, false, followSet24);
            } else if (nextTokenType() == EXCLAMATION) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:573:19
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$573$19.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(EXCLAMATION, false, followSet33);
            } else {
                pushOntoCallStack("unary_op", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 573, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$573$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:577:1
    final public void dereferenced_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "dereferenced_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:577:1
        dereferenced_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new dereferenced_expression();
            openNodeScope(thisProduction);
        }
        boolean in_select = true;
        // TODO: Peek into epxression stack
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$dereferenced_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:582:9
            pushOntoCallStack("dereferenced_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 582, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$582$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                primary_expression();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:582:28
            while (true) {
                // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
                if (nextTokenType() == LBRACKET) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
                    pushOntoCallStack("dereferenced_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 583, 13);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$YQLPlus_ccc$583$13.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        indexref(in_select);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == DOT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:584:15
                    pushOntoCallStack("dereferenced_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 584, 15);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$YQLPlus_ccc$584$15.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        propertyref();
                    } finally {
                        popCallStack();
                    }
                } else {
                    break;
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:589:1
    final public void indexref(boolean in_select) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "indexref";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:589:1
        indexref thisProduction = null;
        if (buildTree) {
            thisProduction = new indexref();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$indexref();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:9
            consumeToken(LBRACKET, false, follow_set$YQLPlus_ccc$591$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:20
            pushOntoCallStack("indexref", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 591, 20);
            outerFollowSet = follow_set$YQLPlus_ccc$591$20;
            try {
                expression(in_select);
            } finally {
                popCallStack();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:42
            EnumSet followSet28 = null;
            if (outerFollowSet != null) {
                followSet28 = follow_set$YQLPlus_ccc$591$42.clone();
                followSet28.addAll(outerFollowSet);
            }
            consumeToken(RBRACKET, false, followSet28);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:595:1
    final public void propertyref() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "propertyref";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:595:1
        propertyref thisProduction = null;
        if (buildTree) {
            thisProduction = new propertyref();
            openNodeScope(thisProduction);
        }
        String nm;
        // TODO: handle this further
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$propertyref();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:600:9
            consumeToken(DOT, false, follow_set$YQLPlus_ccc$600$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:600:15
            pushOntoCallStack("propertyref", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 600, 15);
            try {
                nm = identifierStr();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:604:1
    final public void primary_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "primary_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:604:1
        primary_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new primary_expression();
            openNodeScope(thisProduction);
        }
        boolean in_select = true;
        // TODO: peek into expression stack
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$primary_expression();
            }
            if (nextTokenType() == LPAREN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:10
                consumeToken(LPAREN, false, follow_set$YQLPlus_ccc$609$10);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:19
                pushOntoCallStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 609, 19);
                outerFollowSet = follow_set$YQLPlus_ccc$609$19;
                try {
                    expression(in_select);
                } finally {
                    popCallStack();
                }
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:41
                EnumSet followSet39 = null;
                if (outerFollowSet != null) {
                    followSet39 = follow_set$YQLPlus_ccc$609$41.clone();
                    followSet39.addAll(outerFollowSet);
                }
                consumeToken(RPAREN, false, followSet39);
            } else if (first_set$YQLPlus_ccc$610$11.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:610:11
                pushOntoCallStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 610, 11);
                try {
                    constant_expression();
                } finally {
                    popCallStack();
                }
            } else if (first_set$YQLPlus_ccc$611$11.contains(nextTokenType())) {
                if (scan$YQLPlus_ccc$612$13()) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:24
                    pushOntoCallStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 612, 24);
                    try {
                        call_expression(in_select);
                    } finally {
                        popCallStack();
                    }
                } else if (first_set$YQLPlus_ccc$613$15.contains(nextTokenType())) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:613:15
                    pushOntoCallStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 613, 15);
                    try {
                        fieldref();
                    } finally {
                        popCallStack();
                    }
                } else {
                    pushOntoCallStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 612, 13);
                    throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$612$13, parsingStack);
                }
            } else {
                pushOntoCallStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 609, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$609$9, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet call_expression_FIRST_SET = call_expression_FIRST_SET_init();

    private static EnumSet call_expression_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:618:1
    final public void call_expression(boolean in_select) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "call_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:618:1
        call_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new call_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$call_expression();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:620:9
            pushOntoCallStack("call_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 620, 9);
            outerFollowSet = follow_set$YQLPlus_ccc$620$9;
            try {
                namespaced_name();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:620:25
            pushOntoCallStack("call_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 620, 25);
            try {
                arguments(in_select);
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet fieldref_FIRST_SET = fieldref_FIRST_SET_init();

    private static EnumSet fieldref_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:624:1
    final public void fieldref() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "fieldref";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:624:1
        fieldref thisProduction = null;
        if (buildTree) {
            thisProduction = new fieldref();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$fieldref();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:626:9
            pushOntoCallStack("fieldref", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 626, 9);
            try {
                namespaced_name();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:630:1
    final public void parameter() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "parameter";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:630:1
        parameter thisProduction = null;
        if (buildTree) {
            thisProduction = new parameter();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$parameter();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:632:9
            consumeToken(AT, false, follow_set$YQLPlus_ccc$632$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:632:14
            pushOntoCallStack("parameter", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 632, 14);
            try {
                ident();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet property_name_and_value_FIRST_SET = property_name_and_value_FIRST_SET_init();

    private static EnumSet property_name_and_value_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:636:1
    final public void property_name_and_value() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "property_name_and_value";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:636:1
        property_name_and_value thisProduction = null;
        if (buildTree) {
            thisProduction = new property_name_and_value();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$property_name_and_value();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:9
            pushOntoCallStack("property_name_and_value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 638, 9);
            outerFollowSet = follow_set$YQLPlus_ccc$638$9;
            try {
                property_name();
            } finally {
                popCallStack();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:23
            consumeToken(COLON, false, follow_set$YQLPlus_ccc$638$23);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:31
            pushOntoCallStack("property_name_and_value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 638, 31);
            try {
                constant_expression();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet property_name_FIRST_SET = property_name_FIRST_SET_init();

    private static EnumSet property_name_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:642:1
    final public void property_name() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "property_name";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:642:1
        property_name thisProduction = null;
        if (buildTree) {
            thisProduction = new property_name();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$property_name();
            }
            if (first_set$YQLPlus_ccc$644$9.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:644:9
                pushOntoCallStack("property_name", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 644, 9);
                try {
                    dotted_idents();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == STRING) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:644:25
                EnumSet followSet32 = null;
                if (outerFollowSet != null) {
                    followSet32 = follow_set$YQLPlus_ccc$644$25.clone();
                    followSet32.addAll(outerFollowSet);
                }
                consumeToken(STRING, false, followSet32);
            } else {
                pushOntoCallStack("property_name", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 644, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$644$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet dotted_idents_FIRST_SET = dotted_idents_FIRST_SET_init();

    private static EnumSet dotted_idents_FIRST_SET_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:648:1
    final public void dotted_idents() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "dotted_idents";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:648:1
        dotted_idents thisProduction = null;
        if (buildTree) {
            thisProduction = new dotted_idents();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$dotted_idents();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:9
            pushOntoCallStack("dotted_idents", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 650, 9);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$YQLPlus_ccc$650$9.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                ident();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:15
            while (true) {
                if (!(nextTokenType() == DOT)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:16
                consumeToken(DOT, false, follow_set$YQLPlus_ccc$650$16);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:22
                pushOntoCallStack("dotted_idents", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 650, 22);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$YQLPlus_ccc$650$22.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    ident();
                } finally {
                    popCallStack();
                }
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet constant_expression_FIRST_SET = constant_expression_FIRST_SET_init();

    private static EnumSet constant_expression_FIRST_SET_init() {
        return tokenTypeSet(TRUE, FALSE, LBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:654:1
    final public void constant_expression() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "constant_expression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:654:1
        constant_expression thisProduction = null;
        if (buildTree) {
            thisProduction = new constant_expression();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$constant_expression();
            }
            if (first_set$YQLPlus_ccc$656$9.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:656:9
                pushOntoCallStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 656, 9);
                try {
                    scalar_literal();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LBRACKET) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:657:11
                pushOntoCallStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 657, 11);
                try {
                    array_literal();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == AT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:658:11
                pushOntoCallStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 658, 11);
                try {
                    parameter();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LBRACE) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:659:11
                pushOntoCallStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 659, 11);
                try {
                    map_expression();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 656, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$656$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:663:1
    final public void array_literal() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "array_literal";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:663:1
        array_literal thisProduction = null;
        if (buildTree) {
            thisProduction = new array_literal();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$array_literal();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:9
            consumeToken(LBRACKET, false, follow_set$YQLPlus_ccc$665$9);
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:20
            if (first_set$YQLPlus_ccc$665$21.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:21
                pushOntoCallStack("array_literal", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 665, 21);
                outerFollowSet = follow_set$YQLPlus_ccc$665$21$;
                try {
                    constant_expression();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:43
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:44
                consumeToken(COMMA, false, follow_set$YQLPlus_ccc$665$44);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:52
                pushOntoCallStack("array_literal", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 665, 52);
                outerFollowSet = follow_set$YQLPlus_ccc$665$52;
                try {
                    constant_expression();
                } finally {
                    popCallStack();
                }
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:74
            EnumSet followSet52 = null;
            if (outerFollowSet != null) {
                followSet52 = follow_set$YQLPlus_ccc$665$74.clone();
                followSet52.addAll(outerFollowSet);
            }
            consumeToken(RBRACKET, false, followSet52);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet scalar_literal_FIRST_SET = tokenTypeSet(TRUE, FALSE, LONG_INT, INT, FLOAT, STRING);

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:669:1
    final public void scalar_literal() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "scalar_literal";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:669:1
        scalar_literal thisProduction = null;
        if (buildTree) {
            thisProduction = new scalar_literal();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$scalar_literal();
            }
            if (nextTokenType() == TRUE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:671:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$671$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(TRUE, false, followSet24);
            } else if (nextTokenType() == FALSE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:672:11
                EnumSet followSet33 = null;
                if (outerFollowSet != null) {
                    followSet33 = follow_set$YQLPlus_ccc$672$11.clone();
                    followSet33.addAll(outerFollowSet);
                }
                consumeToken(FALSE, false, followSet33);
            } else if (nextTokenType() == STRING) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:673:11
                EnumSet followSet42 = null;
                if (outerFollowSet != null) {
                    followSet42 = follow_set$YQLPlus_ccc$673$11.clone();
                    followSet42.addAll(outerFollowSet);
                }
                consumeToken(STRING, false, followSet42);
            } else if (nextTokenType() == LONG_INT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:674:11
                EnumSet followSet51 = null;
                if (outerFollowSet != null) {
                    followSet51 = follow_set$YQLPlus_ccc$674$11.clone();
                    followSet51.addAll(outerFollowSet);
                }
                consumeToken(LONG_INT, false, followSet51);
            } else if (nextTokenType() == INT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:675:11
                EnumSet followSet60 = null;
                if (outerFollowSet != null) {
                    followSet60 = follow_set$YQLPlus_ccc$675$11.clone();
                    followSet60.addAll(outerFollowSet);
                }
                consumeToken(INT, false, followSet60);
            } else if (nextTokenType() == FLOAT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:676:11
                EnumSet followSet69 = null;
                if (outerFollowSet != null) {
                    followSet69 = follow_set$YQLPlus_ccc$676$11.clone();
                    followSet69.addAll(outerFollowSet);
                }
                consumeToken(FLOAT, false, followSet69);
            } else {
                pushOntoCallStack("scalar_literal", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 671, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$671$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:680:1
    final public void array_parameter() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "array_parameter";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:680:1
        array_parameter thisProduction = null;
        if (buildTree) {
            thisProduction = new array_parameter();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$array_parameter();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:682:9
            consumeToken(AT, false, follow_set$YQLPlus_ccc$682$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:682:14
            pushOntoCallStack("array_parameter", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 682, 14);
            try {
                ident();
            } finally {
                popCallStack();
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:686:1
    final public void literal_list() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "literal_list";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:686:1
        literal_list thisProduction = null;
        if (buildTree) {
            thisProduction = new literal_list();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$literal_list();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:9
            consumeToken(LPAREN, false, follow_set$YQLPlus_ccc$688$9);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:18
            pushOntoCallStack("literal_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 688, 18);
            outerFollowSet = follow_set$YQLPlus_ccc$688$18;
            try {
                literal_element();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:34
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:35
                consumeToken(COMMA, false, follow_set$YQLPlus_ccc$688$35);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:43
                pushOntoCallStack("literal_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 688, 43);
                outerFollowSet = follow_set$YQLPlus_ccc$688$43;
                try {
                    literal_element();
                } finally {
                    popCallStack();
                }
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:61
            EnumSet followSet44 = null;
            if (outerFollowSet != null) {
                followSet44 = follow_set$YQLPlus_ccc$688$61.clone();
                followSet44.addAll(outerFollowSet);
            }
            consumeToken(RPAREN, false, followSet44);
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private static final EnumSet literal_element_FIRST_SET = tokenTypeSet(TRUE, FALSE, AT, LONG_INT, INT, FLOAT, STRING);

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:692:1
    final public void literal_element() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "literal_element";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:692:1
        literal_element thisProduction = null;
        if (buildTree) {
            thisProduction = new literal_element();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$literal_element();
            }
            if (first_set$YQLPlus_ccc$694$9.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:694:9
                pushOntoCallStack("literal_element", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 694, 9);
                try {
                    scalar_literal();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == AT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:694:26
                pushOntoCallStack("literal_element", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 694, 26);
                try {
                    parameter();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("literal_element", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 694, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$694$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:698:1
    final public void fixed_or_parameter() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "fixed_or_parameter";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:698:1
        fixed_or_parameter thisProduction = null;
        if (buildTree) {
            thisProduction = new fixed_or_parameter();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$fixed_or_parameter();
            }
            if (nextTokenType() == INT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:700:9
                EnumSet followSet24 = null;
                if (outerFollowSet != null) {
                    followSet24 = follow_set$YQLPlus_ccc$700$9.clone();
                    followSet24.addAll(outerFollowSet);
                }
                consumeToken(INT, false, followSet24);
            } else if (nextTokenType() == AT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:700:17
                pushOntoCallStack("fixed_or_parameter", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 700, 17);
                try {
                    parameter();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("fixed_or_parameter", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 700, 9);
                throw new ParseException(lastConsumedToken, first_set$YQLPlus_ccc$700$9$, parsingStack);
            }
        } catch (ParseException e) {
            parseException3 = e;
            if (isParserTolerant()) this.pendingRecovery = true;
            throw e;
        } finally {
            restoreCallStack(callStackSize4);
            if (thisProduction != null) {
                if (parseException3 == null) {
                    closeNodeScope(thisProduction, true);
                } else {
                    closeNodeScope(thisProduction, true);
                    thisProduction.setDirty(true);
                }
            }
        }
    }

    private void recover$identifierStr() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (identifierStr_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$vespa_grouping_identifier() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (vespa_grouping_identifier_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$vespa_grouping_node() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (vespa_grouping_node_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$vespa_grouping() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == ALL || nextTokenType == EACH) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$vespa_grouping_arg() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LPAREN || nextTokenType == LBRACKET || nextTokenType == LT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$ident() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (true) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$keyword_as_ident() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (keyword_as_ident_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$program() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == EOF || nextTokenType == SELECT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$statement() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SELECT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$output_statement() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SELECT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$source_statement() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SELECT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$pipeline_step() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (pipeline_step_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$vespa_grouping_fun() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LBRACKET || nextTokenType == LBRACE || nextTokenType == ALL || nextTokenType == EACH) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$output_spec() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == OUTPUT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$query_statement() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SELECT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_statement() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SELECT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_field_spec() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (select_field_spec_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$project_spec() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (project_spec_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$timeout_fun() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == TIMEOUT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_source() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == FROM) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_source_sources() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SOURCES) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_source_all() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == STAR) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_source_multi() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (select_source_multi_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$select_source_from() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (select_source_from_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$source_list() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (source_list_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$source_spec() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (source_spec_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$alias_def() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (alias_def_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$data_source() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (data_source_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$call_source() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (call_source_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$sequence_source() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == AT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$namespaced_name() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (namespaced_name_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$orderby_fun() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == ORDERBY) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$orderby_fields() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (orderby_fields_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$orderby_field() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (orderby_field_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$limit_fun() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LIMIT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$offset_fun() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == OFFSET) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$where_fun() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == WHERE) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$field_def() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (field_def_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$map_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LBRACE) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$arguments() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LPAREN) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$argument() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (argument_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$null_operator() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == NULL) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$annotate_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LBRACKET || nextTokenType == LBRACE) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$annotation() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LBRACKET || nextTokenType == LBRACE) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$logical_OR_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (logical_OR_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$logical_AND_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (logical_AND_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$equality_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (equality_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$in_not_in_target() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LPAREN) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$equality_op() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (equality_op_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$relational_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (relational_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$relational_op() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LT || nextTokenType == GT || nextTokenType == LTEQ || nextTokenType == GTEQ) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$additive_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (additive_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$additive_op() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == PLUS || nextTokenType == MINUS) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$multiplicative_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (multiplicative_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$mult_op() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == STAR || nextTokenType == DIV || nextTokenType == MODULO) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$unary_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (unary_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$unary_op() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == MINUS || nextTokenType == EXCLAMATION) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$dereferenced_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (true) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$indexref() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LBRACKET) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$propertyref() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (true) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$primary_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (true) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$call_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (call_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$fieldref() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (fieldref_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$parameter() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == AT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$property_name_and_value() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (property_name_and_value_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$property_name() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (property_name_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$dotted_idents() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (dotted_idents_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$constant_expression() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (constant_expression_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$array_literal() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LBRACKET) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$scalar_literal() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (scalar_literal_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$array_parameter() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == AT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$literal_list() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LPAREN) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$literal_element() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (literal_element_FIRST_SET.contains(nextTokenType())) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private void recover$fixed_or_parameter() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == AT || nextTokenType == INT) {
                success = true;
                break;
            }
            lastConsumedToken = nextToken(lastConsumedToken);
            skippedTokens.add(lastConsumedToken);
        }
        if (!success && !skippedTokens.isEmpty()) {
            lastConsumedToken = initialToken;
        }
        if (success && !skippedTokens.isEmpty()) {
            InvalidNode iv = new InvalidNode();
            iv.copyLocationInfo(skippedTokens.get(0));
            for (Token tok : skippedTokens) {
                iv.add(tok);
                iv.setEndOffset(tok.getEndOffset());
            }
            pushNode(iv);
        }
        pendingRecovery = !success;
    }

    private static final EnumSet first_set$YQLPlus_ccc$131$9$ = first_set$YQLPlus_ccc$131$9$_init();

    private static EnumSet first_set$YQLPlus_ccc$131$9$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$159$9$ = first_set$YQLPlus_ccc$159$9$_init();

    private static EnumSet first_set$YQLPlus_ccc$159$9$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$194$11 = first_set$YQLPlus_ccc$194$11_init();

    private static EnumSet first_set$YQLPlus_ccc$194$11_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$201$9 = first_set$YQLPlus_ccc$201$9_init();

    private static EnumSet first_set$YQLPlus_ccc$201$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$204$11 = tokenTypeSet(TRUE, FALSE, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet first_set$YQLPlus_ccc$205$11 = first_set$YQLPlus_ccc$205$11_init();

    private static EnumSet first_set$YQLPlus_ccc$205$11_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$211$10$ = tokenTypeSet(ALL, EACH);
    private static final EnumSet first_set$YQLPlus_ccc$219$10$ = tokenTypeSet(LPAREN, LBRACKET, LT);
    private static final EnumSet first_set$YQLPlus_ccc$220$32 = first_set$YQLPlus_ccc$220$32_init();

    private static EnumSet first_set$YQLPlus_ccc$220$32_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$220$33$ = first_set$YQLPlus_ccc$220$33$_init();

    private static EnumSet first_set$YQLPlus_ccc$220$33$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$221$10$ = tokenTypeSet(RPAREN, RBRACKET, GT);
    private static final EnumSet first_set$YQLPlus_ccc$229$5 = first_set$YQLPlus_ccc$229$5_init();

    private static EnumSet first_set$YQLPlus_ccc$229$5_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$230$7 = first_set$YQLPlus_ccc$230$7_init();

    private static EnumSet first_set$YQLPlus_ccc$230$7_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LIKE, MATCHES);
    }

    private static final EnumSet first_set$YQLPlus_ccc$235$11$ = first_set$YQLPlus_ccc$235$11$_init();

    private static EnumSet first_set$YQLPlus_ccc$235$11$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LIKE, MATCHES);
    }

    private static final EnumSet first_set$YQLPlus_ccc$279$9$$ = first_set$YQLPlus_ccc$279$9$$_init();

    private static EnumSet first_set$YQLPlus_ccc$279$9$$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, ALL, EACH, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$279$9 = first_set$YQLPlus_ccc$279$9_init();

    private static EnumSet first_set$YQLPlus_ccc$279$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$285$9 = tokenTypeSet(LBRACKET, LBRACE, ALL, EACH);
    private static final EnumSet first_set$YQLPlus_ccc$310$9$ = first_set$YQLPlus_ccc$310$9$_init();

    private static EnumSet first_set$YQLPlus_ccc$310$9$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$310$18 = first_set$YQLPlus_ccc$310$18_init();

    private static EnumSet first_set$YQLPlus_ccc$310$18_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$329$13 = first_set$YQLPlus_ccc$329$13_init();

    private static EnumSet first_set$YQLPlus_ccc$329$13_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$330$15 = first_set$YQLPlus_ccc$330$15_init();

    private static EnumSet first_set$YQLPlus_ccc$330$15_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$337$20 = first_set$YQLPlus_ccc$337$20_init();

    private static EnumSet first_set$YQLPlus_ccc$337$20_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$337$40 = first_set$YQLPlus_ccc$337$40_init();

    private static EnumSet first_set$YQLPlus_ccc$337$40_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$367$22 = first_set$YQLPlus_ccc$367$22_init();

    private static EnumSet first_set$YQLPlus_ccc$367$22_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, AS, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$373$17 = first_set$YQLPlus_ccc$373$17_init();

    private static EnumSet first_set$YQLPlus_ccc$373$17_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$379$9 = first_set$YQLPlus_ccc$379$9_init();

    private static EnumSet first_set$YQLPlus_ccc$379$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$381$9 = first_set$YQLPlus_ccc$381$9_init();

    private static EnumSet first_set$YQLPlus_ccc$381$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$393$14 = first_set$YQLPlus_ccc$393$14_init();

    private static EnumSet first_set$YQLPlus_ccc$393$14_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$417$9$ = first_set$YQLPlus_ccc$417$9$_init();

    private static EnumSet first_set$YQLPlus_ccc$417$9$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$417$9 = first_set$YQLPlus_ccc$417$9_init();

    private static EnumSet first_set$YQLPlus_ccc$417$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$418$11 = first_set$YQLPlus_ccc$418$11_init();

    private static EnumSet first_set$YQLPlus_ccc$418$11_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$442$27 = first_set$YQLPlus_ccc$442$27_init();

    private static EnumSet first_set$YQLPlus_ccc$442$27_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, AS, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$448$19 = first_set$YQLPlus_ccc$448$19_init();

    private static EnumSet first_set$YQLPlus_ccc$448$19_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$454$19 = first_set$YQLPlus_ccc$454$19_init();

    private static EnumSet first_set$YQLPlus_ccc$454$19_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$468$9 = first_set$YQLPlus_ccc$468$9_init();

    private static EnumSet first_set$YQLPlus_ccc$468$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$470$11 = first_set$YQLPlus_ccc$470$11_init();

    private static EnumSet first_set$YQLPlus_ccc$470$11_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$489$9 = tokenTypeSet(LBRACKET, LBRACE);
    private static final EnumSet first_set$YQLPlus_ccc$509$16$ = tokenTypeSet(NOT_IN, IN);
    private static final EnumSet first_set$YQLPlus_ccc$510$17$ = tokenTypeSet(IS_NULL, IS_NOT_NULL);
    private static final EnumSet first_set$YQLPlus_ccc$511$15 = tokenTypeSet(NEQ, EQ, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES);
    private static final EnumSet first_set$YQLPlus_ccc$511$17 = tokenTypeSet(NEQ, EQ, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES);
    private static final EnumSet first_set$YQLPlus_ccc$518$9 = tokenTypeSet(LPAREN);
    private static final EnumSet first_set$YQLPlus_ccc$525$11$ = tokenTypeSet(NEQ, EQ, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES);
    private static final EnumSet first_set$YQLPlus_ccc$537$9$ = tokenTypeSet(LT, GT, LTEQ, GTEQ);
    private static final EnumSet first_set$YQLPlus_ccc$549$9$ = tokenTypeSet(PLUS, MINUS);
    private static final EnumSet first_set$YQLPlus_ccc$561$9$ = tokenTypeSet(STAR, DIV, MODULO);
    private static final EnumSet first_set$YQLPlus_ccc$573$9$ = tokenTypeSet(MINUS, EXCLAMATION);
    private static final EnumSet first_set$YQLPlus_ccc$600$15 = first_set$YQLPlus_ccc$600$15_init();

    private static EnumSet first_set$YQLPlus_ccc$600$15_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$609$9 = first_set$YQLPlus_ccc$609$9_init();

    private static EnumSet first_set$YQLPlus_ccc$609$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$610$11 = first_set$YQLPlus_ccc$610$11_init();

    private static EnumSet first_set$YQLPlus_ccc$610$11_init() {
        return tokenTypeSet(TRUE, FALSE, LBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$611$11 = first_set$YQLPlus_ccc$611$11_init();

    private static EnumSet first_set$YQLPlus_ccc$611$11_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$612$13 = first_set$YQLPlus_ccc$612$13_init();

    private static EnumSet first_set$YQLPlus_ccc$612$13_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$613$15 = first_set$YQLPlus_ccc$613$15_init();

    private static EnumSet first_set$YQLPlus_ccc$613$15_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$632$14 = first_set$YQLPlus_ccc$632$14_init();

    private static EnumSet first_set$YQLPlus_ccc$632$14_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$644$9$ = first_set$YQLPlus_ccc$644$9$_init();

    private static EnumSet first_set$YQLPlus_ccc$644$9$_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$644$9 = first_set$YQLPlus_ccc$644$9_init();

    private static EnumSet first_set$YQLPlus_ccc$644$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$650$9 = first_set$YQLPlus_ccc$650$9_init();

    private static EnumSet first_set$YQLPlus_ccc$650$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$650$22 = first_set$YQLPlus_ccc$650$22_init();

    private static EnumSet first_set$YQLPlus_ccc$650$22_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet first_set$YQLPlus_ccc$656$9$ = first_set$YQLPlus_ccc$656$9$_init();

    private static EnumSet first_set$YQLPlus_ccc$656$9$_init() {
        return tokenTypeSet(TRUE, FALSE, LBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$656$9 = tokenTypeSet(TRUE, FALSE, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet first_set$YQLPlus_ccc$665$21 = first_set$YQLPlus_ccc$665$21_init();

    private static EnumSet first_set$YQLPlus_ccc$665$21_init() {
        return tokenTypeSet(TRUE, FALSE, LBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    private static final EnumSet first_set$YQLPlus_ccc$671$9$ = tokenTypeSet(TRUE, FALSE, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet first_set$YQLPlus_ccc$694$9$ = tokenTypeSet(TRUE, FALSE, AT, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet first_set$YQLPlus_ccc$694$9 = tokenTypeSet(TRUE, FALSE, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet first_set$YQLPlus_ccc$700$9$ = tokenTypeSet(AT, INT);
    private static final EnumSet follow_set$YQLPlus_ccc$131$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$132$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$133$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$134$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$135$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$136$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$137$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$138$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$139$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$140$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$141$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$142$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$143$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$144$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$145$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$146$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$147$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$148$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$149$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$150$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$159$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$160$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$161$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$162$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$163$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$164$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$165$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$166$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$167$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$168$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$169$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$170$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$171$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$172$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$173$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$174$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$175$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$176$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$177$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$178$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$179$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$180$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$181$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$182$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$183$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$184$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$185$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$186$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$187$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$188$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$189$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$190$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$191$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$192$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$193$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$211$10 = tokenTypeSet(LPAREN, LBRACKET, LT);
    private static final EnumSet follow_set$YQLPlus_ccc$211$18 = tokenTypeSet(LPAREN, LBRACKET, LT);
    private static final EnumSet follow_set$YQLPlus_ccc$211$26 = tokenTypeSet(WHERE, AS);
    private static final EnumSet follow_set$YQLPlus_ccc$212$10 = tokenTypeSet(LPAREN, LBRACKET, LT);
    private static final EnumSet follow_set$YQLPlus_ccc$212$15 = tokenTypeSet(WHERE);
    private static final EnumSet follow_set$YQLPlus_ccc$213$10 = tokenTypeSet(LPAREN, LBRACKET, LT);
    private static final EnumSet follow_set$YQLPlus_ccc$219$10 = follow_set$YQLPlus_ccc$219$10_init();

    private static EnumSet follow_set$YQLPlus_ccc$219$10_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LPAREN, RPAREN, LBRACKET, RBRACKET, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LT, GT, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$219$21 = follow_set$YQLPlus_ccc$219$21_init();

    private static EnumSet follow_set$YQLPlus_ccc$219$21_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LPAREN, RPAREN, LBRACKET, RBRACKET, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LT, GT, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$219$34 = follow_set$YQLPlus_ccc$219$34_init();

    private static EnumSet follow_set$YQLPlus_ccc$219$34_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LPAREN, RPAREN, LBRACKET, RBRACKET, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LT, GT, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$220$11 = follow_set$YQLPlus_ccc$220$11_init();

    private static EnumSet follow_set$YQLPlus_ccc$220$11_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, LPAREN, RPAREN, LBRACKET, RBRACKET, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, LT, GT, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$220$33 = follow_set$YQLPlus_ccc$220$33_init();

    private static EnumSet follow_set$YQLPlus_ccc$220$33_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, ASC, FROM, SOURCES, AS, COMMA, OUTPUT, COUNT, TRUE, FALSE, RPAREN, RBRACKET, LBRACE, RBRACE, COLON, AND, OR, NOT_IN, IN, GT, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, PLUS, MINUS, DIV, MODULO, EXCLAMATION, NULL, DOT, AT, TIMEOUT, ALL, EACH, ORDERBY, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$221$10 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$221$21 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$221$34 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$235$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$236$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$237$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$238$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$239$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$240$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$241$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$242$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$243$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$244$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$245$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$246$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$255$10 = tokenTypeSet(EOF, SELECT, SEMI);
    private static final EnumSet follow_set$YQLPlus_ccc$255$21 = tokenTypeSet(EOF, SELECT);
    private static final EnumSet follow_set$YQLPlus_ccc$255$32 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$267$9 = tokenTypeSet(OUTPUT);
    private static final EnumSet follow_set$YQLPlus_ccc$273$9 = tokenTypeSet(PIPE);
    private static final EnumSet follow_set$YQLPlus_ccc$273$26 = follow_set$YQLPlus_ccc$273$26_init();

    private static EnumSet follow_set$YQLPlus_ccc$273$26_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, ALL, EACH, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$273$33 = tokenTypeSet(PIPE);
    private static final EnumSet follow_set$YQLPlus_ccc$279$9$ = tokenTypeSet(LPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$285$26 = tokenTypeSet(ALL, EACH);
    private static final EnumSet follow_set$YQLPlus_ccc$291$9 = tokenTypeSet(AS, COUNT);
    private static final EnumSet follow_set$YQLPlus_ccc$291$19 = tokenTypeSet(AS);
    private static final EnumSet follow_set$YQLPlus_ccc$291$29 = follow_set$YQLPlus_ccc$291$29_init();

    private static EnumSet follow_set$YQLPlus_ccc$291$29_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$303$9 = follow_set$YQLPlus_ccc$303$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$303$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$303$18 = tokenTypeSet(LIMIT, OFFSET, WHERE, FROM, TIMEOUT, ORDERBY);
    private static final EnumSet follow_set$YQLPlus_ccc$303$37 = tokenTypeSet(LIMIT, OFFSET, WHERE, TIMEOUT, ORDERBY);
    private static final EnumSet follow_set$YQLPlus_ccc$303$54 = tokenTypeSet(LIMIT, OFFSET, TIMEOUT, ORDERBY);
    private static final EnumSet follow_set$YQLPlus_ccc$303$67 = tokenTypeSet(LIMIT, OFFSET, TIMEOUT);
    private static final EnumSet follow_set$YQLPlus_ccc$303$82 = tokenTypeSet(OFFSET, TIMEOUT);
    private static final EnumSet follow_set$YQLPlus_ccc$303$95 = tokenTypeSet(TIMEOUT);
    private static final EnumSet follow_set$YQLPlus_ccc$310$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$316$9 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$YQLPlus_ccc$316$20 = follow_set$YQLPlus_ccc$316$20_init();

    private static EnumSet follow_set$YQLPlus_ccc$316$20_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$316$28 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$YQLPlus_ccc$322$9 = tokenTypeSet(AT, INT);
    private static final EnumSet follow_set$YQLPlus_ccc$328$9 = follow_set$YQLPlus_ccc$328$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$328$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, LPAREN, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$337$9 = follow_set$YQLPlus_ccc$337$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$337$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, STAR, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$343$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$361$9 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$YQLPlus_ccc$361$26 = follow_set$YQLPlus_ccc$361$26_init();

    private static EnumSet follow_set$YQLPlus_ccc$361$26_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$361$34 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$YQLPlus_ccc$367$9 = follow_set$YQLPlus_ccc$367$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$367$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, AS, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$373$10 = follow_set$YQLPlus_ccc$373$10_init();

    private static EnumSet follow_set$YQLPlus_ccc$373$10_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$380$10 = tokenTypeSet(SELECT);
    private static final EnumSet follow_set$YQLPlus_ccc$380$19 = tokenTypeSet(RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$380$36 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$387$9 = tokenTypeSet(LPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$393$9 = follow_set$YQLPlus_ccc$393$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$393$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$399$9 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$YQLPlus_ccc$399$24 = tokenTypeSet(STAR);
    private static final EnumSet follow_set$YQLPlus_ccc$399$30 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$405$9 = follow_set$YQLPlus_ccc$405$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$405$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$411$9 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$YQLPlus_ccc$411$24 = follow_set$YQLPlus_ccc$411$24_init();

    private static EnumSet follow_set$YQLPlus_ccc$411$24_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$411$32 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$YQLPlus_ccc$417$10 = tokenTypeSet(DESC);
    private static final EnumSet follow_set$YQLPlus_ccc$417$27 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$418$12 = tokenTypeSet(ASC);
    private static final EnumSet follow_set$YQLPlus_ccc$418$30 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$424$9 = tokenTypeSet(AT, INT);
    private static final EnumSet follow_set$YQLPlus_ccc$430$9 = tokenTypeSet(AT, INT);
    private static final EnumSet follow_set$YQLPlus_ccc$436$9 = follow_set$YQLPlus_ccc$436$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$436$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$442$9 = follow_set$YQLPlus_ccc$442$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$442$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, AS, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$448$9 = follow_set$YQLPlus_ccc$448$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$448$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, COMMA, OUTPUT, COUNT, RBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$448$19$ = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$YQLPlus_ccc$448$46 = follow_set$YQLPlus_ccc$448$46_init();

    private static EnumSet follow_set$YQLPlus_ccc$448$46_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$448$54 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$YQLPlus_ccc$448$80 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$454$9 = follow_set$YQLPlus_ccc$454$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$454$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, RPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$454$19$ = tokenTypeSet(COMMA, RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$454$40 = follow_set$YQLPlus_ccc$454$40_init();

    private static EnumSet follow_set$YQLPlus_ccc$454$40_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$454$48 = tokenTypeSet(COMMA, RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$454$72 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$477$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$483$9 = follow_set$YQLPlus_ccc$483$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$483$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$489$10 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$YQLPlus_ccc$489$21 = tokenTypeSet(RBRACKET);
    private static final EnumSet follow_set$YQLPlus_ccc$489$36 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$496$9 = tokenTypeSet(OR);
    private static final EnumSet follow_set$YQLPlus_ccc$496$34 = follow_set$YQLPlus_ccc$496$34_init();

    private static EnumSet follow_set$YQLPlus_ccc$496$34_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$496$39 = tokenTypeSet(OR);
    private static final EnumSet follow_set$YQLPlus_ccc$502$9 = tokenTypeSet(AND);
    private static final EnumSet follow_set$YQLPlus_ccc$502$31 = follow_set$YQLPlus_ccc$502$31_init();

    private static EnumSet follow_set$YQLPlus_ccc$502$31_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$502$37 = tokenTypeSet(AND);
    private static final EnumSet follow_set$YQLPlus_ccc$508$9 = follow_set$YQLPlus_ccc$508$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$508$9_init() {
        return tokenTypeSet(NOT_IN, IN, NEQ, EQ, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, IS_NULL, IS_NOT_NULL);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$509$16 = tokenTypeSet(LPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$509$23 = tokenTypeSet(LPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$510$17 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$510$29 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$511$17 = follow_set$YQLPlus_ccc$511$17_init();

    private static EnumSet follow_set$YQLPlus_ccc$511$17_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$518$11 = tokenTypeSet(SELECT);
    private static final EnumSet follow_set$YQLPlus_ccc$518$20 = tokenTypeSet(RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$518$37 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$18 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$26 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$35 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$47 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$59 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$525$74 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$531$9 = tokenTypeSet(LT, GT, LTEQ, GTEQ);
    private static final EnumSet follow_set$YQLPlus_ccc$531$30 = follow_set$YQLPlus_ccc$531$30_init();

    private static EnumSet follow_set$YQLPlus_ccc$531$30_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$537$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$537$16 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$537$23 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$537$32 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$543$9 = tokenTypeSet(PLUS, MINUS);
    private static final EnumSet follow_set$YQLPlus_ccc$543$37 = follow_set$YQLPlus_ccc$543$37_init();

    private static EnumSet follow_set$YQLPlus_ccc$543$37_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$549$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$549$18 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$555$9 = tokenTypeSet(STAR, DIV, MODULO);
    private static final EnumSet follow_set$YQLPlus_ccc$555$27 = follow_set$YQLPlus_ccc$555$27_init();

    private static EnumSet follow_set$YQLPlus_ccc$555$27_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$561$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$561$18 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$561$26 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$567$10 = follow_set$YQLPlus_ccc$567$10_init();

    private static EnumSet follow_set$YQLPlus_ccc$567$10_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$573$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$573$19 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$582$9 = tokenTypeSet(LBRACKET, DOT);
    private static final EnumSet follow_set$YQLPlus_ccc$583$13 = tokenTypeSet(LBRACKET, DOT);
    private static final EnumSet follow_set$YQLPlus_ccc$584$15 = tokenTypeSet(LBRACKET, DOT);
    private static final EnumSet follow_set$YQLPlus_ccc$591$9 = follow_set$YQLPlus_ccc$591$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$591$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$591$20 = tokenTypeSet(RBRACKET);
    private static final EnumSet follow_set$YQLPlus_ccc$591$42 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$600$9 = follow_set$YQLPlus_ccc$600$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$600$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, ORDER, BY, DESC, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$609$10 = follow_set$YQLPlus_ccc$609$10_init();

    private static EnumSet follow_set$YQLPlus_ccc$609$10_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, TRUE, FALSE, LPAREN, LBRACKET, LBRACE, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, MINUS, EXCLAMATION, NULL, AT, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LONG_INT, INT, FLOAT, LETTER, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$609$19 = tokenTypeSet(RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$609$41 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$620$9 = tokenTypeSet(LPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$632$9 = follow_set$YQLPlus_ccc$632$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$632$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$638$9 = tokenTypeSet(COLON);
    private static final EnumSet follow_set$YQLPlus_ccc$638$23 = follow_set$YQLPlus_ccc$638$23_init();

    private static EnumSet follow_set$YQLPlus_ccc$638$23_init() {
        return tokenTypeSet(TRUE, FALSE, LBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$644$25 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$650$9 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$YQLPlus_ccc$650$16 = follow_set$YQLPlus_ccc$650$16_init();

    private static EnumSet follow_set$YQLPlus_ccc$650$16_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$650$22 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$YQLPlus_ccc$665$9 = follow_set$YQLPlus_ccc$665$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$665$9_init() {
        return tokenTypeSet(COMMA, TRUE, FALSE, LBRACKET, RBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$665$21$ = tokenTypeSet(COMMA, RBRACKET);
    private static final EnumSet follow_set$YQLPlus_ccc$665$44 = follow_set$YQLPlus_ccc$665$44_init();

    private static EnumSet follow_set$YQLPlus_ccc$665$44_init() {
        return tokenTypeSet(TRUE, FALSE, LBRACKET, LBRACE, AT, LONG_INT, INT, FLOAT, STRING);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$665$52 = tokenTypeSet(COMMA, RBRACKET);
    private static final EnumSet follow_set$YQLPlus_ccc$665$74 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$671$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$672$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$673$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$674$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$675$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$676$11 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$682$9 = follow_set$YQLPlus_ccc$682$9_init();

    private static EnumSet follow_set$YQLPlus_ccc$682$9_init() {
        return tokenTypeSet(SELECT, LIMIT, OFFSET, WHERE, ORDER, BY, DESC, SOURCES, OUTPUT, COUNT, NOT_IN, IN, LIKE, CONTAINS, NOTLIKE, MATCHES, NOTMATCHES, TIMEOUT, IS_NULL, IS_NOT_NULL, IDENTIFIER, LETTER);
    }

    private static final EnumSet follow_set$YQLPlus_ccc$688$9 = tokenTypeSet(TRUE, FALSE, AT, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet follow_set$YQLPlus_ccc$688$18 = tokenTypeSet(COMMA, RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$688$35 = tokenTypeSet(TRUE, FALSE, AT, LONG_INT, INT, FLOAT, STRING);
    private static final EnumSet follow_set$YQLPlus_ccc$688$43 = tokenTypeSet(COMMA, RPAREN);
    private static final EnumSet follow_set$YQLPlus_ccc$688$61 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$YQLPlus_ccc$700$9 = EnumSet.noneOf(TokenType.class);

    private boolean scanToken(TokenType expectedType, TokenType...additionalTypes) {
        Token peekedToken = nextToken(currentLookaheadToken);
        TokenType type = peekedToken.getType();
        if (type != expectedType) {
            boolean matched = false;
            for (TokenType tt : additionalTypes) {
                if (type == tt) {
                    matched = true;
                    break;
                }
            }
            if (!matched) return false;
        }
        --remainingLookahead;
        currentLookaheadToken = peekedToken;
        return true;
    }

    private boolean scanToken(EnumSet types) {
        Token peekedToken = nextToken(currentLookaheadToken);
        TokenType type = peekedToken.getType();
        if (!types.contains(type)) return false;
        --remainingLookahead;
        currentLookaheadToken = peekedToken;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:10
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$212$10(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:10
            if (!scanToken(AS)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:15
            // NonTerminal vespa_grouping_arg at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:15
            pushOntoLookaheadStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 212, 15);
            currentLookaheadProduction = "vespa_grouping_arg";
            try {
                if (!check$vespa_grouping_arg(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:10
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$213$10(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:10
            if (!scanToken(WHERE)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:18
            // NonTerminal vespa_grouping_arg at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:18
            pushOntoLookaheadStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 213, 18);
            currentLookaheadProduction = "vespa_grouping_arg";
            try {
                if (!check$vespa_grouping_arg(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$220$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
            Token token2 = currentLookaheadToken;
            int remainingLookahead2 = remainingLookahead;
            boolean hitFailure2 = hitFailure;
            boolean passedPredicate2 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$YQLPlus_ccc$220$11$(false)) {
                    currentLookaheadToken = token2;
                    remainingLookahead = remainingLookahead2;
                    hitFailure = hitFailure2;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$220$32(false)) {
                        currentLookaheadToken = token2;
                        remainingLookahead = remainingLookahead2;
                        hitFailure = hitFailure2;
                        return false;
                    }
                }
            } finally {
                passedPredicate = passedPredicate2;
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$220$11$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
            // NonTerminal vespa_grouping_arg at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:11
            pushOntoLookaheadStack("vespa_grouping_arg", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 220, 11);
            currentLookaheadProduction = "vespa_grouping_arg";
            try {
                if (!check$vespa_grouping_arg(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:32
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$220$32(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for OneOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:32
            if (!scanToken(first_set$YQLPlus_ccc$220$33$)) return false;
            boolean passedPredicate4 = passedPredicate;
            try {
                while (remainingLookahead > 0 && !hitFailure) {
                    Token token5 = currentLookaheadToken;
                    passedPredicate = false;
                    if (!scanToken(first_set$YQLPlus_ccc$220$33$)) {
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        currentLookaheadToken = token5;
                        break;
                    }
                }
            } finally {
                passedPredicate = passedPredicate4;
            }
            hitFailure = false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:26
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$273$26(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:26
            if (!scanToken(PIPE)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:33
            // NonTerminal pipeline_step at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:33
            pushOntoLookaheadStack("source_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 273, 33);
            currentLookaheadProduction = "pipeline_step";
            try {
                if (!check$pipeline_step(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$279$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:9
            // NonTerminal namespaced_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:9
            pushOntoLookaheadStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 9);
            currentLookaheadProduction = "namespaced_name";
            try {
                if (!check$namespaced_name(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:25
            Token token4 = currentLookaheadToken;
            boolean passedPredicate4 = passedPredicate;
            passedPredicate = false;
            try {
                if (!check$YQLPlus_ccc$279$26(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token4;
                    hitFailure = false;
                }
            } finally {
                passedPredicate = passedPredicate4;
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:26
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$279$26(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:26
            // NonTerminal arguments at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:26
            pushOntoLookaheadStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 26);
            currentLookaheadProduction = "arguments";
            try {
                if (!check$arguments(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:47
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$279$47(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:47
            // NonTerminal vespa_grouping_fun at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:47
            pushOntoLookaheadStack("pipeline_step", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 279, 47);
            currentLookaheadProduction = "vespa_grouping_fun";
            try {
                if (!check$vespa_grouping_fun(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$285$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:9
            // NonTerminal vespa_grouping at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:9
            pushOntoLookaheadStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 9);
            currentLookaheadProduction = "vespa_grouping";
            try {
                if (!check$vespa_grouping(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:26
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$285$26(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:26
            // NonTerminal annotation at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:26
            pushOntoLookaheadStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 26);
            currentLookaheadProduction = "annotation";
            try {
                if (!check$annotation(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:37
            // NonTerminal vespa_grouping at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:37
            pushOntoLookaheadStack("vespa_grouping_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 285, 37);
            currentLookaheadProduction = "vespa_grouping";
            try {
                if (!check$vespa_grouping(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:37
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$303$37(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:37
            // NonTerminal select_source at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:37
            pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 37);
            currentLookaheadProduction = "select_source";
            try {
                if (!check$select_source(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:54
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$303$54(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:54
            // NonTerminal where_fun at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:54
            pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 54);
            currentLookaheadProduction = "where_fun";
            try {
                if (!check$where_fun(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:67
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$303$67(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:67
            // NonTerminal orderby_fun at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:67
            pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 67);
            currentLookaheadProduction = "orderby_fun";
            try {
                if (!check$orderby_fun(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:82
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$303$82(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:82
            // NonTerminal limit_fun at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:82
            pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 82);
            currentLookaheadProduction = "limit_fun";
            try {
                if (!check$limit_fun(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:95
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$303$95(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:95
            // NonTerminal offset_fun at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:95
            pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 95);
            currentLookaheadProduction = "offset_fun";
            try {
                if (!check$offset_fun(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:109
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$303$109(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:109
            // NonTerminal timeout_fun at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:109
            pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 109);
            currentLookaheadProduction = "timeout_fun";
            try {
                if (!check$timeout_fun(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:310:18
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$310$18(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:310:18
            // NonTerminal project_spec at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:310:18
            pushOntoLookaheadStack("select_field_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 310, 18);
            currentLookaheadProduction = "project_spec";
            try {
                if (!check$project_spec(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:20
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$316$20(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:20
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:28
            // NonTerminal field_def at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:28
            pushOntoLookaheadStack("project_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 316, 28);
            currentLookaheadProduction = "field_def";
            try {
                if (!check$field_def(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:329:13
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$329$13(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:329:13
            // NonTerminal select_source_sources at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:329:13
            pushOntoLookaheadStack("select_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 329, 13);
            currentLookaheadProduction = "select_source_sources";
            try {
                if (!check$select_source_sources(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:330:15
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$330$15(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:330:15
            // NonTerminal select_source_from at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:330:15
            pushOntoLookaheadStack("select_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 330, 15);
            currentLookaheadProduction = "select_source_from";
            try {
                if (!check$select_source_from(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:40
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$337$40(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:40
            // NonTerminal select_source_multi at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:40
            pushOntoLookaheadStack("select_source_sources", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 337, 40);
            currentLookaheadProduction = "select_source_multi";
            try {
                if (!check$select_source_multi(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:26
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$361$26(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:26
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:34
            // NonTerminal namespaced_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:34
            pushOntoLookaheadStack("source_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 361, 34);
            currentLookaheadProduction = "namespaced_name";
            try {
                if (!check$namespaced_name(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:22
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$367$22(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:22
            // NonTerminal alias_def at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:22
            pushOntoLookaheadStack("source_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 367, 22);
            currentLookaheadProduction = "alias_def";
            try {
                if (!check$alias_def(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:379:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$379$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:379:9
            // NonTerminal sequence_source at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:379:9
            pushOntoLookaheadStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 379, 9);
            currentLookaheadProduction = "sequence_source";
            try {
                if (!check$sequence_source(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$380$9(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:10
            if (!scanToken(LPAREN)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:19
            // NonTerminal source_statement at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:19
            pushOntoLookaheadStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 380, 19);
            currentLookaheadProduction = "source_statement";
            try {
                if (!check$source_statement(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:380:36
            if (!scanToken(RPAREN)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:381:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$381$9(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:381:9
            // NonTerminal call_source at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:381:9
            pushOntoLookaheadStack("data_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 381, 9);
            currentLookaheadProduction = "call_source";
            try {
                if (!check$call_source(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:26
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$387$26(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:26
            // NonTerminal arguments at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:26
            pushOntoLookaheadStack("call_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 387, 26);
            currentLookaheadProduction = "arguments";
            try {
                if (!check$arguments(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:24
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$399$24(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:24
            if (!scanToken(DOT)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:30
            if (!scanToken(STAR)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:24
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$411$24(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:24
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:32
            // NonTerminal orderby_field at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:32
            pushOntoLookaheadStack("orderby_fields", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 411, 32);
            currentLookaheadProduction = "orderby_field";
            try {
                if (!check$orderby_field(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$417$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:10
            // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:10
            pushOntoLookaheadStack("orderby_field", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 417, 10);
            currentLookaheadProduction = "expression";
            try {
                if (!check$expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:27
            if (!scanToken(DESC)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$418$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:12
            // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:12
            pushOntoLookaheadStack("orderby_field", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 418, 12);
            currentLookaheadProduction = "expression";
            try {
                if (!check$expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:418:29
            Token token6 = currentLookaheadToken;
            boolean passedPredicate6 = passedPredicate;
            passedPredicate = false;
            try {
                if (!scanToken(ASC)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token6;
                    hitFailure = false;
                }
            } finally {
                passedPredicate = passedPredicate6;
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:27
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$442$27(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:27
            // NonTerminal alias_def at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:27
            pushOntoLookaheadStack("field_def", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 442, 27);
            currentLookaheadProduction = "alias_def";
            try {
                if (!check$alias_def(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:19
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$448$19(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:19
            // NonTerminal property_name_and_value at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:19
            pushOntoLookaheadStack("map_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 448, 19);
            currentLookaheadProduction = "property_name_and_value";
            try {
                if (!check$property_name_and_value(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:46
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$448$46(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:46
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:54
            // NonTerminal property_name_and_value at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:54
            pushOntoLookaheadStack("map_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 448, 54);
            currentLookaheadProduction = "property_name_and_value";
            try {
                if (!check$property_name_and_value(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:19
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$454$19(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:19
            // NonTerminal argument at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:19
            pushOntoLookaheadStack("arguments", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 454, 19);
            currentLookaheadProduction = "argument";
            try {
                if (!check$argument(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:39
            boolean passedPredicate4 = passedPredicate;
            try {
                while (remainingLookahead > 0 && !hitFailure) {
                    Token token5 = currentLookaheadToken;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$454$40(false)) {
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        currentLookaheadToken = token5;
                        break;
                    }
                }
            } finally {
                passedPredicate = passedPredicate4;
            }
            hitFailure = false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:40
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$454$40(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:40
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:48
            // NonTerminal argument at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:48
            pushOntoLookaheadStack("arguments", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 454, 48);
            currentLookaheadProduction = "argument";
            try {
                if (!check$argument(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:469:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$469$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:469:11
            // NonTerminal annotate_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:469:11
            pushOntoLookaheadStack("expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 469, 11);
            currentLookaheadProduction = "annotate_expression";
            try {
                if (!check$annotate_expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:470:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$470$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:470:11
            // NonTerminal logical_OR_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:470:11
            pushOntoLookaheadStack("expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 470, 11);
            currentLookaheadProduction = "logical_OR_expression";
            try {
                if (!check$logical_OR_expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$489$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:10
            if (!scanToken(LBRACKET)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:21
            // NonTerminal map_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:21
            pushOntoLookaheadStack("annotation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 489, 21);
            currentLookaheadProduction = "map_expression";
            try {
                if (!check$map_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:36
            if (!scanToken(RBRACKET)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:490:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$490$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:490:11
            // NonTerminal map_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:490:11
            pushOntoLookaheadStack("annotation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 490, 11);
            currentLookaheadProduction = "map_expression";
            try {
                if (!check$map_expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:34
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$496$34(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:34
            if (!scanToken(OR)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:39
            // NonTerminal logical_AND_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:39
            pushOntoLookaheadStack("logical_OR_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 496, 39);
            currentLookaheadProduction = "logical_AND_expression";
            try {
                if (!check$logical_AND_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:31
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$502$31(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:31
            if (!scanToken(AND)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:37
            // NonTerminal equality_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:37
            pushOntoLookaheadStack("logical_AND_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 502, 37);
            currentLookaheadProduction = "equality_expression";
            try {
                if (!check$equality_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:13
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$509$13(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:13
            Token token2 = currentLookaheadToken;
            int remainingLookahead2 = remainingLookahead;
            boolean hitFailure2 = hitFailure;
            boolean passedPredicate2 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$YQLPlus_ccc$509$13$(false)) {
                    currentLookaheadToken = token2;
                    remainingLookahead = remainingLookahead2;
                    hitFailure = hitFailure2;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!scanToken(IS_NULL, IS_NOT_NULL)) {
                        currentLookaheadToken = token2;
                        remainingLookahead = remainingLookahead2;
                        hitFailure = hitFailure2;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$YQLPlus_ccc$511$15(false)) {
                            currentLookaheadToken = token2;
                            remainingLookahead = remainingLookahead2;
                            hitFailure = hitFailure2;
                            return false;
                        }
                    }
                }
            } finally {
                passedPredicate = passedPredicate2;
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:13
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$509$13$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:16
            if (!scanToken(NOT_IN, IN)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:33
            // NonTerminal in_not_in_target at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:509:33
            pushOntoLookaheadStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 509, 33);
            currentLookaheadProduction = "in_not_in_target";
            try {
                if (!check$in_not_in_target(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:511:15
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$511$15(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:511:17
            if (!scanToken(first_set$YQLPlus_ccc$511$17)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:511:29
            // NonTerminal relational_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:511:29
            pushOntoLookaheadStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 511, 29);
            currentLookaheadProduction = "relational_expression";
            try {
                if (!check$relational_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$518$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:11
            if (!scanToken(LPAREN)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:20
            // NonTerminal select_statement at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:20
            pushOntoLookaheadStack("in_not_in_target", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 518, 20);
            currentLookaheadProduction = "select_statement";
            try {
                if (!check$select_statement(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:37
            if (!scanToken(RPAREN)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:519:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$519$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:519:11
            // NonTerminal literal_list at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:519:11
            pushOntoLookaheadStack("in_not_in_target", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 519, 11);
            currentLookaheadProduction = "literal_list";
            try {
                if (!check$literal_list(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:30
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$531$30(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:30
            if (!scanToken(LT, GT, LTEQ, GTEQ)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:44
            // NonTerminal additive_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:44
            pushOntoLookaheadStack("relational_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 531, 44);
            currentLookaheadProduction = "additive_expression";
            try {
                if (!check$additive_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:37
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$543$37(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:37
            if (!scanToken(PLUS, MINUS)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:49
            // NonTerminal additive_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:49
            pushOntoLookaheadStack("additive_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 543, 49);
            currentLookaheadProduction = "additive_expression";
            try {
                if (!check$additive_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:27
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$555$27(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:27
            if (!scanToken(STAR, DIV, MODULO)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:35
            // NonTerminal multiplicative_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:35
            pushOntoLookaheadStack("multiplicative_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 555, 35);
            currentLookaheadProduction = "multiplicative_expression";
            try {
                if (!check$multiplicative_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$583$13(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
            Token token2 = currentLookaheadToken;
            int remainingLookahead2 = remainingLookahead;
            boolean hitFailure2 = hitFailure;
            boolean passedPredicate2 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$YQLPlus_ccc$583$13$(false)) {
                    currentLookaheadToken = token2;
                    remainingLookahead = remainingLookahead2;
                    hitFailure = hitFailure2;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$584$15(false)) {
                        currentLookaheadToken = token2;
                        remainingLookahead = remainingLookahead2;
                        hitFailure = hitFailure2;
                        return false;
                    }
                }
            } finally {
                passedPredicate = passedPredicate2;
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$583$13$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
            // NonTerminal indexref at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:583:13
            pushOntoLookaheadStack("dereferenced_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 583, 13);
            currentLookaheadProduction = "indexref";
            try {
                if (!check$indexref(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:584:15
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$584$15(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:584:15
            // NonTerminal propertyref at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:584:15
            pushOntoLookaheadStack("dereferenced_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 584, 15);
            currentLookaheadProduction = "propertyref";
            try {
                if (!check$propertyref(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$609$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:10
            if (!scanToken(LPAREN)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:19
            // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:19
            pushOntoLookaheadStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 609, 19);
            currentLookaheadProduction = "expression";
            try {
                if (!check$expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:41
            if (!scanToken(RPAREN)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:610:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$610$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:610:11
            // NonTerminal constant_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:610:11
            pushOntoLookaheadStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 610, 11);
            currentLookaheadProduction = "constant_expression";
            try {
                if (!check$constant_expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:611:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$611$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:13
            Token token4 = currentLookaheadToken;
            int remainingLookahead4 = remainingLookahead;
            boolean hitFailure4 = hitFailure;
            boolean passedPredicate4 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$YQLPlus_ccc$612$13(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$613$15(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        return false;
                    }
                }
            } finally {
                passedPredicate = passedPredicate4;
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:13
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$612$13(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 2;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:24
            // NonTerminal call_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:24
            pushOntoLookaheadStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 612, 24);
            currentLookaheadProduction = "call_expression";
            try {
                if (!check$call_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:613:15
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$613$15(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:613:15
            // NonTerminal fieldref at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:613:15
            pushOntoLookaheadStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 613, 15);
            currentLookaheadProduction = "fieldref";
            try {
                if (!check$fieldref(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:644:9
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$644$9$(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:644:9
            // NonTerminal dotted_idents at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:644:9
            pushOntoLookaheadStack("property_name", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 644, 9);
            currentLookaheadProduction = "dotted_idents";
            try {
                if (!check$dotted_idents(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:16
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$650$16(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:16
            if (!scanToken(DOT)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:22
            if (!scanToken(first_set$YQLPlus_ccc$650$22)) return false;
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:657:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$657$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:657:11
            // NonTerminal array_literal at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:657:11
            pushOntoLookaheadStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 657, 11);
            currentLookaheadProduction = "array_literal";
            try {
                if (!check$array_literal(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:658:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$658$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:658:11
            // NonTerminal parameter at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:658:11
            pushOntoLookaheadStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 658, 11);
            currentLookaheadProduction = "parameter";
            try {
                if (!check$parameter(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:659:11
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$659$11(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:659:11
            // NonTerminal map_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:659:11
            pushOntoLookaheadStack("constant_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 659, 11);
            currentLookaheadProduction = "map_expression";
            try {
                if (!check$map_expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:21
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$665$21(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:21
            // NonTerminal constant_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:21
            pushOntoLookaheadStack("array_literal", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 665, 21);
            currentLookaheadProduction = "constant_expression";
            try {
                if (!check$constant_expression(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:44
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$665$44(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:44
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:52
            // NonTerminal constant_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:52
            pushOntoLookaheadStack("array_literal", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 665, 52);
            currentLookaheadProduction = "constant_expression";
            try {
                if (!check$constant_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:35
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$688$35(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:35
            if (!scanToken(COMMA)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:43
            // NonTerminal literal_element at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:43
            pushOntoLookaheadStack("literal_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 688, 43);
            currentLookaheadProduction = "literal_element";
            try {
                if (!check$literal_element(true)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:694:26
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$694$26(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:694:26
            // NonTerminal parameter at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:694:26
            pushOntoLookaheadStack("literal_element", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 694, 26);
            currentLookaheadProduction = "parameter";
            try {
                if (!check$parameter(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // scanahead routine for expansion at:
    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:700:17
    // BuildScanRoutine macro
    private boolean check$YQLPlus_ccc$700$17(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 1;
        try {
            lookaheadRoutineNesting++;
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            reachedScanCode = true;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:700:17
            // NonTerminal parameter at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:700:17
            pushOntoLookaheadStack("fixed_or_parameter", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 700, 17);
            currentLookaheadProduction = "parameter";
            try {
                if (!check$parameter(false)) return false;
            } finally {
                popLookaheadStack();
            }
        } finally {
            lookaheadRoutineNesting--;
            if (reachedScanCode && remainingLookahead <= passedPredicateThreshold) {
                passedPredicate = true;
            }
        }
        passedPredicate = false;
        return true;
    }

    // BuildPredicateRoutine: expansion at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:13
    private boolean scan$YQLPlus_ccc$612$13() {
        remainingLookahead = 2;
        currentLookaheadToken = lastConsumedToken;
        final boolean scanToEnd = false;
        try {
            // BuildPredicateCode macro
            // End BuildPredicateCode macro
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:24
            // NonTerminal call_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:612:24
            pushOntoLookaheadStack("primary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 612, 24);
            currentLookaheadProduction = "call_expression";
            try {
                if (!check$call_expression(true)) return false;
            } finally {
                popLookaheadStack();
            }
            return true;
        } finally {
            lookaheadRoutineNesting = 0;
            currentLookaheadToken = null;
            hitFailure = false;
        }
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$vespa_grouping(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:211:10
        if (!scanToken(ALL, EACH)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:211:26
        // NonTerminal vespa_grouping_arg at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:211:26
        pushOntoLookaheadStack("vespa_grouping", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 211, 26);
        currentLookaheadProduction = "vespa_grouping_arg";
        try {
            if (!check$vespa_grouping_arg(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:212:9
        Token token8 = currentLookaheadToken;
        boolean passedPredicate8 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$212$10(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token8;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate8;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:213:9
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$213$10(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$vespa_grouping_arg(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:219:10
        if (!scanToken(LPAREN, LBRACKET, LT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:220:9
        boolean passedPredicate7 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token8 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$220$11(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token8;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate7;
        }
        hitFailure = false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:221:10
        if (!scanToken(RPAREN, RBRACKET, GT)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$source_statement(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:9
        // NonTerminal query_statement at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:9
        pushOntoLookaheadStack("source_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 273, 9);
        currentLookaheadProduction = "query_statement";
        try {
            if (!check$query_statement(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:273:25
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$273$26(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$pipeline_step(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:279:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$279$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$279$47(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$vespa_grouping_fun(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:285:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$285$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$285$26(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$query_statement(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:297:9
        // NonTerminal select_statement at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:297:9
        pushOntoLookaheadStack("query_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 297, 9);
        currentLookaheadProduction = "select_statement";
        try {
            if (!check$select_statement(false)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$select_statement(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:9
        if (!scanToken(SELECT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:18
        // NonTerminal select_field_spec at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:18
        pushOntoLookaheadStack("select_statement", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 303, 18);
        currentLookaheadProduction = "select_field_spec";
        try {
            if (!check$select_field_spec(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:36
        Token token7 = currentLookaheadToken;
        boolean passedPredicate7 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$303$37(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token7;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate7;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:53
        Token token9 = currentLookaheadToken;
        boolean passedPredicate9 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$303$54(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token9;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate9;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:66
        Token token11 = currentLookaheadToken;
        boolean passedPredicate11 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$303$67(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token11;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate11;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:81
        Token token13 = currentLookaheadToken;
        boolean passedPredicate13 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$303$82(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token13;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate13;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:94
        Token token15 = currentLookaheadToken;
        boolean passedPredicate15 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$303$95(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token15;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate15;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:303:108
        Token token17 = currentLookaheadToken;
        boolean passedPredicate17 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$303$109(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token17;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate17;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$select_field_spec(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:310:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!scanToken(STAR)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$310$18(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$project_spec(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:9
        // NonTerminal field_def at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:9
        pushOntoLookaheadStack("project_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 316, 9);
        currentLookaheadProduction = "field_def";
        try {
            if (!check$field_def(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:316:19
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$316$20(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$timeout_fun(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:322:9
        if (!scanToken(TIMEOUT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:322:19
        // NonTerminal fixed_or_parameter at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:322:19
        pushOntoLookaheadStack("timeout_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 322, 19);
        currentLookaheadProduction = "fixed_or_parameter";
        try {
            if (!check$fixed_or_parameter(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$select_source(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:328:9
        if (!scanToken(FROM)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:329:13
        Token token7 = currentLookaheadToken;
        int remainingLookahead7 = remainingLookahead;
        boolean hitFailure7 = hitFailure;
        boolean passedPredicate7 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$329$13(false)) {
                currentLookaheadToken = token7;
                remainingLookahead = remainingLookahead7;
                hitFailure = hitFailure7;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$330$15(false)) {
                    currentLookaheadToken = token7;
                    remainingLookahead = remainingLookahead7;
                    hitFailure = hitFailure7;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate7;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$select_source_sources(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:9
        if (!scanToken(SOURCES)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:337:20
        Token token7 = currentLookaheadToken;
        int remainingLookahead7 = remainingLookahead;
        boolean hitFailure7 = hitFailure;
        boolean passedPredicate7 = passedPredicate;
        try {
            passedPredicate = false;
            if (!scanToken(STAR)) {
                currentLookaheadToken = token7;
                remainingLookahead = remainingLookahead7;
                hitFailure = hitFailure7;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$337$40(false)) {
                    currentLookaheadToken = token7;
                    remainingLookahead = remainingLookahead7;
                    hitFailure = hitFailure7;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate7;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$select_source_multi(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:349:9
        // NonTerminal source_list at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:349:9
        pushOntoLookaheadStack("select_source_multi", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 349, 9);
        currentLookaheadProduction = "source_list";
        try {
            if (!check$source_list(false)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$select_source_from(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:355:9
        // NonTerminal source_spec at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:355:9
        pushOntoLookaheadStack("select_source_from", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 355, 9);
        currentLookaheadProduction = "source_spec";
        try {
            if (!check$source_spec(false)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$source_list(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:9
        // NonTerminal namespaced_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:9
        pushOntoLookaheadStack("source_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 361, 9);
        currentLookaheadProduction = "namespaced_name";
        try {
            if (!check$namespaced_name(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:361:25
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$361$26(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$source_spec(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:9
        // NonTerminal data_source at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:9
        pushOntoLookaheadStack("source_spec", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 367, 9);
        currentLookaheadProduction = "data_source";
        try {
            if (!check$data_source(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:367:21
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$367$22(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$alias_def(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:373:9
        Token token5 = currentLookaheadToken;
        boolean passedPredicate5 = passedPredicate;
        passedPredicate = false;
        try {
            if (!scanToken(AS)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token5;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate5;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:373:17
        if (!scanToken(first_set$YQLPlus_ccc$373$17)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$data_source(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:379:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$379$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$380$9(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$381$9(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        return false;
                    }
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$call_source(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:9
        // NonTerminal namespaced_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:9
        pushOntoLookaheadStack("call_source", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 387, 9);
        currentLookaheadProduction = "namespaced_name";
        try {
            if (!check$namespaced_name(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:387:25
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$387$26(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$sequence_source(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:393:9
        if (!scanToken(AT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:393:14
        if (!scanToken(first_set$YQLPlus_ccc$393$14)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$namespaced_name(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:9
        // NonTerminal dotted_idents at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:9
        pushOntoLookaheadStack("namespaced_name", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 399, 9);
        currentLookaheadProduction = "dotted_idents";
        try {
            if (!check$dotted_idents(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:399:23
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$399$24(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$orderby_fun(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:405:9
        if (!scanToken(ORDERBY)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:405:19
        // NonTerminal orderby_fields at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:405:19
        pushOntoLookaheadStack("orderby_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 405, 19);
        currentLookaheadProduction = "orderby_fields";
        try {
            if (!check$orderby_fields(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$orderby_fields(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:9
        // NonTerminal orderby_field at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:9
        pushOntoLookaheadStack("orderby_fields", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 411, 9);
        currentLookaheadProduction = "orderby_field";
        try {
            if (!check$orderby_field(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:411:23
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$411$24(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$orderby_field(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:417:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$417$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$418$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$limit_fun(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:424:9
        if (!scanToken(LIMIT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:424:17
        // NonTerminal fixed_or_parameter at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:424:17
        pushOntoLookaheadStack("limit_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 424, 17);
        currentLookaheadProduction = "fixed_or_parameter";
        try {
            if (!check$fixed_or_parameter(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$offset_fun(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:430:9
        if (!scanToken(OFFSET)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:430:18
        // NonTerminal fixed_or_parameter at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:430:18
        pushOntoLookaheadStack("offset_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 430, 18);
        currentLookaheadProduction = "fixed_or_parameter";
        try {
            if (!check$fixed_or_parameter(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$where_fun(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:436:9
        if (!scanToken(WHERE)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:436:17
        // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:436:17
        pushOntoLookaheadStack("where_fun", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 436, 17);
        currentLookaheadProduction = "expression";
        try {
            if (!check$expression(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$field_def(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:9
        // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:9
        pushOntoLookaheadStack("field_def", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 442, 9);
        currentLookaheadProduction = "expression";
        try {
            if (!check$expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:442:26
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$442$27(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$map_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:9
        if (!scanToken(LBRACE)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:18
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$448$19(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:45
        boolean passedPredicate8 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token9 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$448$46(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token9;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate8;
        }
        hitFailure = false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:448:80
        if (!scanToken(RBRACE)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$arguments(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:9
        if (!scanToken(LPAREN)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:18
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$454$19(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:454:72
        if (!scanToken(RPAREN)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$argument(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:460:9
        // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:460:9
        pushOntoLookaheadStack("argument", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 460, 9);
        currentLookaheadProduction = "expression";
        try {
            if (!check$expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:468:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!scanToken(NULL)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$469$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$470$11(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        return false;
                    }
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$annotate_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:483:9
        // NonTerminal annotation at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:483:9
        pushOntoLookaheadStack("annotate_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 483, 9);
        currentLookaheadProduction = "annotation";
        try {
            if (!check$annotation(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:483:20
        // NonTerminal logical_OR_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:483:20
        pushOntoLookaheadStack("annotate_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 483, 20);
        currentLookaheadProduction = "logical_OR_expression";
        try {
            if (!check$logical_OR_expression(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$annotation(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:489:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$489$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$490$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$logical_OR_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:9
        // NonTerminal logical_AND_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:9
        pushOntoLookaheadStack("logical_OR_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 496, 9);
        currentLookaheadProduction = "logical_AND_expression";
        try {
            if (!check$logical_AND_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:496:32
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$496$34(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$logical_AND_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:9
        // NonTerminal equality_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:9
        pushOntoLookaheadStack("logical_AND_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 502, 9);
        currentLookaheadProduction = "equality_expression";
        try {
            if (!check$equality_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:502:29
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$502$31(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$equality_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:508:9
        // NonTerminal relational_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:508:9
        pushOntoLookaheadStack("equality_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 508, 9);
        currentLookaheadProduction = "relational_expression";
        try {
            if (!check$relational_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:508:31
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$509$13(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$in_not_in_target(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:518:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$518$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$519$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$relational_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:9
        // NonTerminal additive_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:9
        pushOntoLookaheadStack("relational_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 531, 9);
        currentLookaheadProduction = "additive_expression";
        try {
            if (!check$additive_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:531:29
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$531$30(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$additive_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:9
        // NonTerminal multiplicative_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:9
        pushOntoLookaheadStack("additive_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 543, 9);
        currentLookaheadProduction = "multiplicative_expression";
        try {
            if (!check$multiplicative_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:543:35
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$543$37(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$multiplicative_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:9
        // NonTerminal unary_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:9
        pushOntoLookaheadStack("multiplicative_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 555, 9);
        currentLookaheadProduction = "unary_expression";
        try {
            if (!check$unary_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:555:26
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$555$27(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$unary_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:567:9
        Token token5 = currentLookaheadToken;
        boolean passedPredicate5 = passedPredicate;
        passedPredicate = false;
        try {
            if (!scanToken(MINUS, EXCLAMATION)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token5;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate5;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:567:21
        // NonTerminal dereferenced_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:567:21
        pushOntoLookaheadStack("unary_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 567, 21);
        currentLookaheadProduction = "dereferenced_expression";
        try {
            if (!check$dereferenced_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$dereferenced_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:582:9
        // NonTerminal primary_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:582:9
        pushOntoLookaheadStack("dereferenced_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 582, 9);
        currentLookaheadProduction = "primary_expression";
        try {
            if (!check$primary_expression(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:582:28
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$583$13(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$indexref(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:9
        if (!scanToken(LBRACKET)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:20
        // NonTerminal expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:20
        pushOntoLookaheadStack("indexref", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 591, 20);
        currentLookaheadProduction = "expression";
        try {
            if (!check$expression(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:591:42
        if (!scanToken(RBRACKET)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$propertyref(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:600:9
        if (!scanToken(DOT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:600:15
        if (!scanToken(first_set$YQLPlus_ccc$600$15)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$primary_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:609:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$609$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$610$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$611$11(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        return false;
                    }
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$call_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:620:9
        // NonTerminal namespaced_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:620:9
        pushOntoLookaheadStack("call_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 620, 9);
        currentLookaheadProduction = "namespaced_name";
        try {
            if (!check$namespaced_name(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:620:25
        // NonTerminal arguments at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:620:25
        pushOntoLookaheadStack("call_expression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 620, 25);
        currentLookaheadProduction = "arguments";
        try {
            if (!check$arguments(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$fieldref(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:626:9
        // NonTerminal namespaced_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:626:9
        pushOntoLookaheadStack("fieldref", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 626, 9);
        currentLookaheadProduction = "namespaced_name";
        try {
            if (!check$namespaced_name(false)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$parameter(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:632:9
        if (!scanToken(AT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:632:14
        if (!scanToken(first_set$YQLPlus_ccc$632$14)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$property_name_and_value(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:9
        // NonTerminal property_name at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:9
        pushOntoLookaheadStack("property_name_and_value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 638, 9);
        currentLookaheadProduction = "property_name";
        try {
            if (!check$property_name(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:23
        if (!scanToken(COLON)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:31
        // NonTerminal constant_expression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:638:31
        pushOntoLookaheadStack("property_name_and_value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 638, 31);
        currentLookaheadProduction = "constant_expression";
        try {
            if (!check$constant_expression(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$property_name(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:644:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$YQLPlus_ccc$644$9$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!scanToken(STRING)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$dotted_idents(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:9
        if (!scanToken(first_set$YQLPlus_ccc$650$9)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:650:15
        boolean passedPredicate6 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token7 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$650$16(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token7;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        hitFailure = false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$constant_expression(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:656:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!scanToken(first_set$YQLPlus_ccc$656$9)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$657$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$YQLPlus_ccc$658$11(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$YQLPlus_ccc$659$11(false)) {
                            currentLookaheadToken = token4;
                            remainingLookahead = remainingLookahead4;
                            hitFailure = hitFailure4;
                            return false;
                        }
                    }
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$array_literal(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:9
        if (!scanToken(LBRACKET)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:20
        Token token6 = currentLookaheadToken;
        boolean passedPredicate6 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$YQLPlus_ccc$665$21(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token6;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate6;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:43
        boolean passedPredicate8 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token9 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$665$44(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token9;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate8;
        }
        hitFailure = false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:665:74
        if (!scanToken(RBRACKET)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$literal_list(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:9
        if (!scanToken(LPAREN)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:18
        // NonTerminal literal_element at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:18
        pushOntoLookaheadStack("literal_list", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc", 688, 18);
        currentLookaheadProduction = "literal_element";
        try {
            if (!check$literal_element(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:34
        boolean passedPredicate7 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token8 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$688$35(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token8;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate7;
        }
        hitFailure = false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:688:61
        if (!scanToken(RPAREN)) return false;
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$literal_element(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:694:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!scanToken(first_set$YQLPlus_ccc$694$9)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$694$26(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$fixed_or_parameter(boolean scanToEnd) {
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/yqlplus/YQLPlus.ccc:700:9
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!scanToken(INT)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$YQLPlus_ccc$700$17(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        return true;
    }

    private ArrayList parsingStack = new ArrayList<>();
    private final ArrayList lookaheadStack = new ArrayList<>();
    private EnumSet currentFollowSet;

    private void pushOntoCallStack(String methodName, String fileName, int line, int column) {
        parsingStack.add(new NonTerminalCall("YQLPlusParser", token_source, fileName, methodName, line, column, currentFollowSet));
    }

    private void popCallStack() {
        NonTerminalCall ntc = parsingStack.remove(parsingStack.size() - 1);
        this.currentlyParsedProduction = ntc.productionName;
        this.outerFollowSet = (EnumSet) ntc.followSet;
    }

    private void restoreCallStack(int prevSize) {
        while (parsingStack.size() > prevSize) {
            popCallStack();
        }
    }

    private void pushOntoLookaheadStack(String methodName, String fileName, int line, int column) {
        lookaheadStack.add(new NonTerminalCall("YQLPlusParser", token_source, fileName, methodName, line, column, null));
    }

    private void popLookaheadStack() {
        NonTerminalCall ntc = lookaheadStack.remove(lookaheadStack.size() - 1);
        this.currentLookaheadProduction = ntc.productionName;
    }

    void dumpLookaheadStack(PrintStream ps) {
        ListIterator it = lookaheadStack.listIterator(lookaheadStack.size());
        while (it.hasPrevious()) {
            it.previous().dump(ps);
        }
    }

    void dumpCallStack(PrintStream ps) {
        ListIterator it = parsingStack.listIterator(parsingStack.size());
        while (it.hasPrevious()) {
            it.previous().dump(ps);
        }
    }

    void dumpLookaheadCallStack(PrintStream ps) {
        ps.println("Current Parser Production is: " + currentlyParsedProduction);
        ps.println("Current Lookahead Production is: " + currentLookaheadProduction);
        ps.println("---Lookahead Stack---");
        dumpLookaheadStack(ps);
        ps.println("---Call Stack---");
        dumpCallStack(ps);
    }

    private boolean tolerantParsing = true;
    // Are we pending a recovery routine to
    // get back on the rails?
    private boolean pendingRecovery;
    private java.util.List parsingProblems = new java.util.ArrayList<>();

    public java.util.List getParsingProblems() {
        return parsingProblems;
    }

    public boolean hasProblems() {
        return !parsingProblems.isEmpty();
    }

    void addParsingProblem(ParsingProblem problem) {
        parsingProblems.add(problem);
    }

    public boolean isParserTolerant() {
        return tolerantParsing;
    }

    public void setParserTolerant(boolean tolerantParsing) {
        this.tolerantParsing = tolerantParsing;
    }

    private Token consumeToken(TokenType expectedType, boolean tolerant, EnumSet followSet) {
        Token nextToken = nextToken(lastConsumedToken);
        if (nextToken.getType() != expectedType) {
            nextToken = handleUnexpectedTokenType(expectedType, nextToken, tolerant, followSet);
        }
        this.lastConsumedToken = nextToken;
        this.nextTokenType = null;
        if (buildTree && tokensAreNodes) {
            lastConsumedToken.open();
            pushNode(lastConsumedToken);
            lastConsumedToken.close();
        }
        // Check whether the very next token is in the follow set of the last consumed token
        // and if it is not, we check one token ahead to see if skipping the next token remedies
        // the problem.
        if (followSet != null && isParserTolerant()) {
            nextToken = nextToken(lastConsumedToken);
            if (!followSet.contains(nextToken.getType())) {
                Token nextNext = nextToken(nextToken);
                if (followSet.contains(nextNext.getType())) {
                    nextToken.setSkipped(true);
                }
            }
        }
        return lastConsumedToken;
    }

    private Token handleUnexpectedTokenType(TokenType expectedType, Token nextToken, boolean tolerant, EnumSet followSet) {
        if (!this.tolerantParsing) {
            throw new ParseException(nextToken, EnumSet.of(expectedType), parsingStack);
        }
        Token nextNext = nextToken(nextToken);
        if (nextNext.getType() == expectedType) {
            nextToken.setSkipped(true);
            pushNode(nextToken);
            return nextNext;
        }
        if (tolerant || followSet == null || followSet.contains(nextToken.getType())) {
            Token virtualToken = Token.newToken(expectedType, token_source, 0, 0);
            virtualToken.setVirtual(true);
            virtualToken.copyLocationInfo(nextToken);
            return virtualToken;
        }
        throw new ParseException(nextToken, EnumSet.of(expectedType), parsingStack);
    }

    private boolean buildTree = true;
    private boolean tokensAreNodes = true;
    private boolean unparsedTokensAreNodes = false;

    public boolean isTreeBuildingEnabled() {
        return buildTree;
    }

    public void setUnparsedTokensAreNodes(boolean unparsedTokensAreNodes) {
        this.unparsedTokensAreNodes = unparsedTokensAreNodes;
    }

    public void setTokensAreNodes(boolean tokensAreNodes) {
        this.tokensAreNodes = tokensAreNodes;
    }

    NodeScope currentNodeScope = new NodeScope();

    /**
    * @return the root node of the AST. It only makes sense to call
    * this after a successful parse.
    */
    public Node rootNode() {
        return currentNodeScope.rootNode();
    }

    /**
    * push a node onto the top of the node stack
    * @param n the node to push
    */
    public void pushNode(Node n) {
        currentNodeScope.add(n);
    }

    /**
    * @return the node on the top of the stack, and remove it from the
    * stack.
    */
    public Node popNode() {
        return currentNodeScope.pop();
    }

    /**
    * @return the node currently on the top of the tree-building stack.
    */
    public Node peekNode() {
        return currentNodeScope.peek();
    }

    /**
    * Puts the node on the top of the stack. However, unlike pushNode()
    * it replaces the node that is currently on the top of the stack.
    * This is effectively equivalent to popNode() followed by pushNode(n)
    * @param n the node to poke
    */
    public void pokeNode(Node n) {
        currentNodeScope.poke(n);
    }

    /**
    * @return the number of Nodes on the tree-building stack in the current node
    * scope.
    */
    public int nodeArity() {
        return currentNodeScope.size();
    }

    private void openNodeScope(Node n) {
        new NodeScope();
        if (n != null) {
            n.setTokenSource(lastConsumedToken.getTokenSource());
            // We set the begin/end offsets based on the ending location
            // of the last consumed token. So, we start with a Node
            // of length zero. Typically this is overridden in the
            // closeNodeScope() method, unless this node has no children
            n.setBeginOffset(lastConsumedToken.getEndOffset());
            n.setEndOffset(n.getBeginOffset());
            n.setTokenSource(this.token_source);
            n.open();
        }
    }

    /* A definite node is constructed from a specified number of
    * children.  That number of nodes are popped from the stack and
    * made the children of the definite node.  Then the definite node
    * is pushed on to the stack.
    * @param n is the node whose scope is being closed
    * @param num is the number of child nodes to pop as children
    * @return @{code true}
    */
    private boolean closeNodeScope(Node n, int num) {
        n.setBeginOffset(lastConsumedToken.getEndOffset());
        n.setEndOffset(lastConsumedToken.getEndOffset());
        currentNodeScope.close();
        ArrayList nodes = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            nodes.add(popNode());
        }
        Collections.reverse(nodes);
        for (Node child : nodes) {
            if (child.getInputSource() == n.getInputSource()) {
                n.setBeginOffset(child.getBeginOffset());
                break;
            }
        }
        for (Node child : nodes) {
            if (unparsedTokensAreNodes && child instanceof Token) {
                Token tok = (Token) child;
                while (tok.previousCachedToken() != null && tok.previousCachedToken().isUnparsed()) {
                    tok = tok.previousCachedToken();
                }
                boolean locationSet = false;
                while (tok.isUnparsed()) {
                    n.add(tok);
                    if (!locationSet && tok.getInputSource() == n.getInputSource() && tok.getBeginOffset() < n.getBeginOffset()) {
                        n.setBeginOffset(tok.getBeginOffset());
                        locationSet = true;
                    }
                    tok = tok.nextCachedToken();
                }
            }
            if (child.getInputSource() == n.getInputSource()) {
                n.setEndOffset(child.getEndOffset());
            }
            n.add(child);
        }
        n.close();
        pushNode(n);
        return true;
    }

    /**
    * A conditional node is constructed if the condition is true.  All
    * the nodes that have been pushed since the node was opened are
    * made children of the conditional node, which is then pushed
    * on to the stack.  If the condition is false the node is not
    * constructed and they are left on the stack.
    */
    private boolean closeNodeScope(Node n, boolean condition) {
        if (n == null || !condition) {
            currentNodeScope.close();
            return false;
        }
        return closeNodeScope(n, nodeArity());
    }

    public boolean getBuildTree() {
        return buildTree;
    }

    public void setBuildTree(boolean buildTree) {
        this.buildTree = buildTree;
    }


    @SuppressWarnings("serial")
    class NodeScope extends ArrayList {
        NodeScope parentScope;

        NodeScope() {
            this.parentScope = YQLPlusParser.this.currentNodeScope;
            YQLPlusParser.this.currentNodeScope = this;
        }

        boolean isRootScope() {
            return parentScope == null;
        }

        Node rootNode() {
            NodeScope ns = this;
            while (ns.parentScope != null) {
                ns = ns.parentScope;
            }
            return ns.isEmpty() ? null : ns.get(0);
        }

        Node peek() {
            if (isEmpty()) {
                return parentScope == null ? null : parentScope.peek();
            }
            return get(size() - 1);
        }

        Node pop() {
            return isEmpty() ? parentScope.pop() : remove(size() - 1);
        }

        void poke(Node n) {
            if (isEmpty()) {
                parentScope.poke(n);
            } else {
                set(size() - 1, n);
            }
        }

        void close() {
            parentScope.addAll(this);
            YQLPlusParser.this.currentNodeScope = parentScope;
        }

        int nestingLevel() {
            int result = 0;
            NodeScope parent = this;
            while (parent.parentScope != null) {
                result++;
                parent = parent.parentScope;
            }
            return result;
        }

        public NodeScope clone() {
            NodeScope clone = (NodeScope) super.clone();
            if (parentScope != null) {
                clone.parentScope = parentScope.clone();
            }
            return clone;
        }

    }

}






© 2015 - 2024 Weber Informatics LLC | Privacy Policy