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

ai.vespa.schemals.parser.grouping.GroupingParser Maven / Gradle / Ivy

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

import com.yahoo.search.grouping.request.*;
import com.yahoo.javacc.UnicodeUtilities;
import java.util.LinkedList;
import java.util.List;
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.grouping.Token.TokenType;
import static ai.vespa.schemals.parser.grouping.Token.TokenType.*;
import ai.vespa.schemals.parser.grouping.ast.InvalidNode;
import ai.vespa.schemals.parser.grouping.ast.requestList;
import ai.vespa.schemals.parser.grouping.ast.request;
import ai.vespa.schemals.parser.grouping.ast.root;
import ai.vespa.schemals.parser.grouping.ast.operation;
import ai.vespa.schemals.parser.grouping.ast.allOperation;
import ai.vespa.schemals.parser.grouping.ast.eachOperation;
import ai.vespa.schemals.parser.grouping.ast.operationBody;
import ai.vespa.schemals.parser.grouping.ast.whereElm;
import ai.vespa.schemals.parser.grouping.ast.expList;
import ai.vespa.schemals.parser.grouping.ast.expElm;
import ai.vespa.schemals.parser.grouping.ast.expAlias;
import ai.vespa.schemals.parser.grouping.ast.expMath;
import ai.vespa.schemals.parser.grouping.ast.value;
import ai.vespa.schemals.parser.grouping.ast.addFunction;
import ai.vespa.schemals.parser.grouping.ast.andFunction;
import ai.vespa.schemals.parser.grouping.ast.attributeValue;
import ai.vespa.schemals.parser.grouping.ast.attributeFunction;
import ai.vespa.schemals.parser.grouping.ast.arrayAtLookup;
import ai.vespa.schemals.parser.grouping.ast.interpolatedLookupElm;
import ai.vespa.schemals.parser.grouping.ast.avgExpression;
import ai.vespa.schemals.parser.grouping.ast.catFunction;
import ai.vespa.schemals.parser.grouping.ast.constantValue;
import ai.vespa.schemals.parser.grouping.ast.constantValueSigned;
import ai.vespa.schemals.parser.grouping.ast.infiniteNegativeValue;
import ai.vespa.schemals.parser.grouping.ast.infinitePositiveValue;
import ai.vespa.schemals.parser.grouping.ast.countAggregator;
import ai.vespa.schemals.parser.grouping.ast.debugWaitFunction;
import ai.vespa.schemals.parser.grouping.ast.divFunction;
import ai.vespa.schemals.parser.grouping.ast.docIdNsSpecificValue;
import ai.vespa.schemals.parser.grouping.ast.fixedWidthFunction;
import ai.vespa.schemals.parser.grouping.ast.maxExpression;
import ai.vespa.schemals.parser.grouping.ast.md5Function;
import ai.vespa.schemals.parser.grouping.ast.minExpression;
import ai.vespa.schemals.parser.grouping.ast.modFunction;
import ai.vespa.schemals.parser.grouping.ast.mulFunction;
import ai.vespa.schemals.parser.grouping.ast.negFunction;
import ai.vespa.schemals.parser.grouping.ast.normalizeSubjectFunction;
import ai.vespa.schemals.parser.grouping.ast.nowFunction;
import ai.vespa.schemals.parser.grouping.ast.orFunction;
import ai.vespa.schemals.parser.grouping.ast.predefinedFunction;
import ai.vespa.schemals.parser.grouping.ast.relevanceValue;
import ai.vespa.schemals.parser.grouping.ast.reverseFunction;
import ai.vespa.schemals.parser.grouping.ast.sizeFunction;
import ai.vespa.schemals.parser.grouping.ast.sortFunction;
import ai.vespa.schemals.parser.grouping.ast.stringValue;
import ai.vespa.schemals.parser.grouping.ast.rawValue;
import ai.vespa.schemals.parser.grouping.ast.stddevAggregator;
import ai.vespa.schemals.parser.grouping.ast.stringValueUnquoted;
import ai.vespa.schemals.parser.grouping.ast.strCatFunction;
import ai.vespa.schemals.parser.grouping.ast.strLenFunction;
import ai.vespa.schemals.parser.grouping.ast.subFunction;
import ai.vespa.schemals.parser.grouping.ast.sumAggregator;
import ai.vespa.schemals.parser.grouping.ast.summaryValue;
import ai.vespa.schemals.parser.grouping.ast.timeFunction;
import ai.vespa.schemals.parser.grouping.ast.mathFunction;
import ai.vespa.schemals.parser.grouping.ast.ucaFunction;
import ai.vespa.schemals.parser.grouping.ast.zcurveFunction;
import ai.vespa.schemals.parser.grouping.ast.toDoubleFunction;
import ai.vespa.schemals.parser.grouping.ast.toLongFunction;
import ai.vespa.schemals.parser.grouping.ast.toRawFunction;
import ai.vespa.schemals.parser.grouping.ast.toStringFunction;
import ai.vespa.schemals.parser.grouping.ast.xorExpression;
import ai.vespa.schemals.parser.grouping.ast.xorBitFunction;
import ai.vespa.schemals.parser.grouping.ast.bucketElm;
import ai.vespa.schemals.parser.grouping.ast.signedNumber;
import ai.vespa.schemals.parser.grouping.ast.number;
import ai.vespa.schemals.parser.grouping.ast.booleanValue;
import ai.vespa.schemals.parser.grouping.ast.byteValue;
import ai.vespa.schemals.parser.grouping.ast.stringElm;
import ai.vespa.schemals.parser.grouping.ast.identifierStr;
import ai.vespa.schemals.parser.grouping.ast.addElm;
import ai.vespa.schemals.parser.grouping.ast.commaElm;
import ai.vespa.schemals.parser.grouping.ast.divElm;
import ai.vespa.schemals.parser.grouping.ast.eqElm;
import ai.vespa.schemals.parser.grouping.ast.ltElm;
import ai.vespa.schemals.parser.grouping.ast.gtElm;
import ai.vespa.schemals.parser.grouping.ast.infElm;
import ai.vespa.schemals.parser.grouping.ast.neginfElm;
import ai.vespa.schemals.parser.grouping.ast.lbracketElm;
import ai.vespa.schemals.parser.grouping.ast.rbracketElm;
import ai.vespa.schemals.parser.grouping.ast.lbraceElm;
import ai.vespa.schemals.parser.grouping.ast.lcurlyElm;
import ai.vespa.schemals.parser.grouping.ast.modElm;
import ai.vespa.schemals.parser.grouping.ast.mulElm;
import ai.vespa.schemals.parser.grouping.ast.rbraceElm;
import ai.vespa.schemals.parser.grouping.ast.rcurlyElm;
import ai.vespa.schemals.parser.grouping.ast.subElm;
import ai.vespa.schemals.parser.grouping.ast.scolonElm;
import ai.vespa.schemals.parser.grouping.ast.spaceElm;

@SuppressWarnings( {
    "ConstantIfStatement", "UnnecessarySemicolon", "Convert2Diamond", "FinalPrivateMethod"
}
)

public class GroupingParser {

    private static Number resolveNumber(String str) {
        if (str.indexOf('.') >= 0) {
            return Double.valueOf(str);
        }
        if (str.equals(Long.toString(Long.MIN_VALUE).substring(1))) return Double.NaN;
        return Long.valueOf(str);
    }

    private static GroupingExpression resolveNegation(GroupingExpression exp) {
        if (exp instanceof DoubleValue && ((DoubleValue) exp).getValue().isNaN()) return new LongValue(Long.MIN_VALUE);
        return new NegFunction(exp);
    }

    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 GroupingParserLexer token_source;

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

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

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

    public GroupingParser(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 GroupingParser(String inputSource, Path path) throws IOException {
        this(inputSource, TokenSource.stringFromBytes(Files.readAllBytes(path)));
    }

    public GroupingParser(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 GroupingParser(Path path) throws IOException {
        this(path.toString(), path);
    }

    /** Constructor with user supplied Lexer. */
    public GroupingParser(GroupingParserLexer 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;
    }

    // /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:183:1
    final public List requestList() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "requestList";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:183:1
        requestList thisProduction = null;
        if (buildTree) {
            thisProduction = new requestList();
            openNodeScope(thisProduction);
        }
        List lst = new LinkedList();
        GroupingOperation val;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$requestList();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:7
            pushOntoCallStack("requestList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 188, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$188$7;
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:16
            pushOntoCallStack("requestList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 188, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$188$16;
            try {
                val = root();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:27
            lst.add(val);
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:45
            while (true) {
                if (!(nextTokenType() == SCOLON)) break;
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:47
                pushOntoCallStack("requestList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 188, 47);
                outerFollowSet = follow_set$GroupingParser_ccc$188$47;
                try {
                    scolonElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:57
                pushOntoCallStack("requestList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 188, 57);
                outerFollowSet = follow_set$GroupingParser_ccc$188$57;
                try {
                    val = root();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:68
                lst.add(val);
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:188:89
            EnumSet followSet48 = null;
            if (outerFollowSet != null) {
                followSet48 = follow_set$GroupingParser_ccc$188$89.clone();
                followSet48.addAll(outerFollowSet);
            }
            consumeToken(EOF, false, followSet48);
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:189:5
            return lst;
        } 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/grouping/GroupingParser.ccc:193:1
    final public GroupingOperation request() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "request";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:193:1
        request thisProduction = null;
        if (buildTree) {
            thisProduction = new request();
            openNodeScope(thisProduction);
        }
        GroupingOperation val;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$request();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:197:7
            pushOntoCallStack("request", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 197, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$197$7;
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:197:16
            pushOntoCallStack("request", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 197, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$197$16;
            try {
                val = root();
            } finally {
                popCallStack();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:197:27
            EnumSet followSet28 = null;
            if (outerFollowSet != null) {
                followSet28 = follow_set$GroupingParser_ccc$197$27.clone();
                followSet28.addAll(outerFollowSet);
            }
            consumeToken(EOF, false, followSet28);
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:198:5
            return val;
        } 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/grouping/GroupingParser.ccc:202:1
    final public GroupingOperation root() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "root";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:202:1
        root thisProduction = null;
        if (buildTree) {
            thisProduction = new root();
            openNodeScope(thisProduction);
        }
        String str;
        GroupingOperation ret;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$root();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:207:7
            pushOntoCallStack("root", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 207, 7);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$GroupingParser_ccc$207$7.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                ret = operation(null);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:208:7
            if (nextTokenType() == WHERE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:208:9
                consumeToken(WHERE, false, follow_set$GroupingParser_ccc$208$9);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:208:17
                pushOntoCallStack("root", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 208, 17);
                outerFollowSet = follow_set$GroupingParser_ccc$208$17;
                try {
                    lbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:208:27
                pushOntoCallStack("root", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 208, 27);
                outerFollowSet = follow_set$GroupingParser_ccc$208$27;
                try {
                    str = whereElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:208:42
                pushOntoCallStack("root", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 208, 42);
                try {
                    rbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:208:52
                GroupingOperation grp = new AllOperation();
                grp.setWhere(str);
                grp.addChild(ret);
                ret = grp;
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:212:5
            return ret;
        } 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/grouping/GroupingParser.ccc:216:1
    final public GroupingOperation operation(GroupingOperation parent) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "operation";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:216:1
        operation thisProduction = null;
        if (buildTree) {
            thisProduction = new operation();
            openNodeScope(thisProduction);
        }
        GroupingOperation ret;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$operation();
            }
            if (nextTokenType() == ALL) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:220:7
                pushOntoCallStack("operation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 220, 7);
                try {
                    ret = allOperation(parent);
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == EACH) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:220:36
                pushOntoCallStack("operation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 220, 36);
                try {
                    ret = eachOperation(parent);
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("operation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 220, 7);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$220$7, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:221:5
            return ret;
        } 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/grouping/GroupingParser.ccc:225:1
    final public GroupingOperation allOperation(GroupingOperation parent) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "allOperation";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:225:1
        allOperation thisProduction = null;
        if (buildTree) {
            thisProduction = new allOperation();
            openNodeScope(thisProduction);
        }
        GroupingOperation ret;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$allOperation();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:229:7
            consumeToken(ALL, false, follow_set$GroupingParser_ccc$229$7);
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:229:13
            ret = new AllOperation();
            if (parent != null) {
                parent.addChild(ret);
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:230:7
            pushOntoCallStack("allOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 230, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$230$7;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:230:17
            pushOntoCallStack("allOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 230, 17);
            outerFollowSet = follow_set$GroupingParser_ccc$230$17;
            try {
                operationBody(ret);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:230:36
            pushOntoCallStack("allOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 230, 36);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:231:5
            return ret;
        } 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/grouping/GroupingParser.ccc:235:1
    final public GroupingOperation eachOperation(GroupingOperation parent) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "eachOperation";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:235:1
        eachOperation thisProduction = null;
        if (buildTree) {
            thisProduction = new eachOperation();
            openNodeScope(thisProduction);
        }
        String str;
        GroupingOperation ret;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$eachOperation();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:240:7
            consumeToken(EACH, false, follow_set$GroupingParser_ccc$240$7);
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:240:14
            ret = new EachOperation();
            if (parent != null) {
                parent.addChild(ret);
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:241:7
            pushOntoCallStack("eachOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 241, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$241$7;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:241:17
            pushOntoCallStack("eachOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 241, 17);
            outerFollowSet = follow_set$GroupingParser_ccc$241$17;
            try {
                operationBody(ret);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:241:36
            pushOntoCallStack("eachOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 241, 36);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$GroupingParser_ccc$241$36.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:242:7
            if (nextTokenType() == AS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:242:9
                consumeToken(AS, false, follow_set$GroupingParser_ccc$242$9);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:242:14
                pushOntoCallStack("eachOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 242, 14);
                outerFollowSet = follow_set$GroupingParser_ccc$242$14;
                try {
                    lbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:242:24
                pushOntoCallStack("eachOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 242, 24);
                outerFollowSet = follow_set$GroupingParser_ccc$242$24;
                try {
                    str = stringElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:242:40
                pushOntoCallStack("eachOperation", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 242, 40);
                try {
                    rbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:242:50
                ret.setLabel(str);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:243:5
            return ret;
        } 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/grouping/GroupingParser.ccc:245:1
    final public void operationBody(GroupingOperation parent) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "operationBody";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:245:1
        operationBody thisProduction = null;
        if (buildTree) {
            thisProduction = new operationBody();
            openNodeScope(thisProduction);
        }
        ConstantValue maxOperand = null;
        String str;
        Number num;
        GroupingExpression exp;
        List lst;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:253:5
            if (nextTokenType() == GROUP) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:253:9
                consumeToken(GROUP, false, follow_set$GroupingParser_ccc$253$9);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:253:21
                pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 253, 21);
                outerFollowSet = follow_set$GroupingParser_ccc$253$21;
                try {
                    lbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:253:31
                pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 253, 31);
                outerFollowSet = follow_set$GroupingParser_ccc$253$31;
                try {
                    exp = expElm(parent);
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:253:79
                pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 253, 79);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$253$79.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    rbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:253:89
                parent.setGroupBy(exp);
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:5
            while (true) {
                // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:7
                if (nextTokenType() == ACCURACY) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:9
                    consumeToken(ACCURACY, false, follow_set$GroupingParser_ccc$254$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 254, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$254$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 254, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$254$31;
                    try {
                        num = number();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:74
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 254, 74);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$254$74.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:254:84
                    parent.setAccuracy(num.doubleValue());
                } else if (nextTokenType() == ALIAS) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:9
                    consumeToken(ALIAS, false, follow_set$GroupingParser_ccc$255$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 255, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$255$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 255, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$255$31;
                    try {
                        str = identifierStr();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:51
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 255, 51);
                    outerFollowSet = follow_set$GroupingParser_ccc$255$51;
                    try {
                        commaElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:60
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 255, 60);
                    outerFollowSet = follow_set$GroupingParser_ccc$255$60;
                    try {
                        exp = expElm(parent);
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:81
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 255, 81);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$255$81.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:255:91
                    parent.putAlias(str, exp);
                } else if (nextTokenType() == HINT) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:256:9
                    consumeToken(HINT, false, follow_set$GroupingParser_ccc$256$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:256:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 256, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$256$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:256:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 256, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$256$31;
                    try {
                        str = identifierStr();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:256:77
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 256, 77);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$256$77.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:256:87
                    parent.addHint(str);
                } else if (nextTokenType() == MAX) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:257:9
                    consumeToken(MAX, false, follow_set$GroupingParser_ccc$257$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:257:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 257, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$257$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    if (nextTokenType() == INF) {
                        // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:257:33
                        pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 257, 33);
                        outerFollowSet = follow_set$GroupingParser_ccc$257$33;
                        try {
                            maxOperand = infinitePositiveValue();
                        } finally {
                            popCallStack();
                        }
                    } else if (nextTokenType() == INTEGER || nextTokenType == FLOAT) {
                        // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:257:70
                        pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 257, 70);
                        outerFollowSet = follow_set$GroupingParser_ccc$257$70;
                        try {
                            maxOperand = constantValue();
                        } finally {
                            popCallStack();
                        }
                    } else {
                        pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 257, 33);
                        throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$257$33$, parsingStack);
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:257:99
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 257, 99);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$257$99.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:258:7
                    if (maxOperand instanceof InfiniteValue) {
                        parent.setMax(GroupingOperation.UNLIMITED_MAX);
                    } else {
                        parent.setMax(((Number) maxOperand.getValue()).intValue());
                    }
                } 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/grouping/GroupingParser.ccc:265:9
                    consumeToken(ORDER, false, follow_set$GroupingParser_ccc$265$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:265:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 265, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$265$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:265:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 265, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$265$31;
                    try {
                        lst = expList(parent);
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:265:76
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 265, 76);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$265$76.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:265:86
                    parent.addOrderBy(lst);
                } 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/grouping/GroupingParser.ccc:266:9
                    consumeToken(OUTPUT, false, follow_set$GroupingParser_ccc$266$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:266:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 266, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$266$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:266:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 266, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$266$31;
                    try {
                        lst = expList(parent);
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:266:76
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 266, 76);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$266$76.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:266:86
                    parent.addOutputs(lst);
                } else if (nextTokenType() == PRECISION) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:267:9
                    consumeToken(PRECISION, false, follow_set$GroupingParser_ccc$267$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:267:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 267, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$267$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:267:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 267, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$267$31;
                    try {
                        num = number();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:267:74
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 267, 74);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$267$74.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:267:84
                    parent.setPrecision(num.intValue());
                } 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/grouping/GroupingParser.ccc:268:9
                    consumeToken(WHERE, false, follow_set$GroupingParser_ccc$268$9);
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:268:21
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 268, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$268$21;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:268:31
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 268, 31);
                    outerFollowSet = follow_set$GroupingParser_ccc$268$31;
                    try {
                        str = whereElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:268:77
                    pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 268, 77);
                    if (outerFollowSet != null) {
                        EnumSet newFollowSet = follow_set$GroupingParser_ccc$268$77.clone();
                        newFollowSet.addAll(outerFollowSet);
                        outerFollowSet = newFollowSet;
                    }
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:268:87
                    parent.setWhere(str);
                } else {
                    break;
                }
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:269:5
            while (true) {
                if (!(nextTokenType() == ALL || nextTokenType == EACH)) break;
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:269:36
                pushOntoCallStack("operationBody", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 269, 36);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$269$36.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    operation(parent);
                } 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/grouping/GroupingParser.ccc:273:1
    final public String whereElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "whereElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:273:1
        whereElm thisProduction = null;
        if (buildTree) {
            thisProduction = new whereElm();
            openNodeScope(thisProduction);
        }
        StringBuilder ret = new StringBuilder();
        String str;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$whereElm();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:278:7
            if (nextTokenType() == DOLLAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:278:9
                consumeToken(DOLLAR, false, follow_set$GroupingParser_ccc$278$9);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:278:18
                ret.append(lastConsumedToken.toString());
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:278:66
            pushOntoCallStack("whereElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 278, 66);
            try {
                str = identifierStr();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:278:86
            ret.append(str);
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:279:5
            return ret.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/grouping/GroupingParser.ccc:283:1
    final public List expList(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "expList";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:283:1
        expList thisProduction = null;
        if (buildTree) {
            thisProduction = new expList();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        List ret = new LinkedList();
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$expList();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:7
            pushOntoCallStack("expList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 288, 7);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$GroupingParser_ccc$288$7.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:25
            ret.add(exp);
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:43
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:45
                pushOntoCallStack("expList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 288, 45);
                outerFollowSet = follow_set$GroupingParser_ccc$288$45;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:54
                pushOntoCallStack("expList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 288, 54);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$288$54.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    exp = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:72
                ret.add(exp);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:289:5
            return ret;
        } 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/grouping/GroupingParser.ccc:293:1
    final public GroupingExpression expElm(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "expElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:293:1
        expElm thisProduction = null;
        if (buildTree) {
            thisProduction = new expElm();
            openNodeScope(thisProduction);
        }
        String str;
        boolean neg = false;
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$expElm();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:7
            // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:9
            if (nextTokenType() == INFIX_ADD) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:9
                pushOntoCallStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 299, 9);
                outerFollowSet = follow_set$GroupingParser_ccc$299$9;
                try {
                    addElm();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == INFIX_SUB) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:18
                pushOntoCallStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 299, 18);
                outerFollowSet = follow_set$GroupingParser_ccc$299$18;
                try {
                    subElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:49
                neg = true;
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:300:7
            pushOntoCallStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 300, 7);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$GroupingParser_ccc$300$7.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                exp = expAlias(grp);
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:300:47
            if (neg) {
                exp = resolveNegation(exp);
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:7
            if (nextTokenType() == AS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:9
                consumeToken(AS, false, follow_set$GroupingParser_ccc$301$9);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:14
                pushOntoCallStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 301, 14);
                outerFollowSet = follow_set$GroupingParser_ccc$301$14;
                try {
                    lbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:24
                pushOntoCallStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 301, 24);
                outerFollowSet = follow_set$GroupingParser_ccc$301$24;
                try {
                    str = stringElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:40
                pushOntoCallStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 301, 40);
                try {
                    rbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:50
                exp.setLabel(str);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:302:5
            return exp;
        } 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/grouping/GroupingParser.ccc:306:1
    final public GroupingExpression expAlias(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "expAlias";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:306:1
        expAlias thisProduction = null;
        if (buildTree) {
            thisProduction = new expAlias();
            openNodeScope(thisProduction);
        }
        String str;
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$expAlias();
            }
            if (nextTokenType() == DOLLAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:9
                consumeToken(DOLLAR, false, follow_set$GroupingParser_ccc$311$9);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:18
                pushOntoCallStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 18);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$311$18.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    str = identifierStr();
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:38
                if (nextTokenType() == EQ) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:40
                    pushOntoCallStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 40);
                    outerFollowSet = follow_set$GroupingParser_ccc$311$40;
                    try {
                        eqElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:46
                    pushOntoCallStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 46);
                    try {
                        exp = expMath(grp);
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:65
                    grp.putAlias(str, exp);
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:95
                exp = grp.getAlias(str);
            } else if (first_set$GroupingParser_ccc$312$7.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:312:9
                pushOntoCallStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 312, 9);
                try {
                    exp = expMath(grp);
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 7);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$311$7, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:313:5
            return exp;
        } 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/grouping/GroupingParser.ccc:317:1
    final public GroupingExpression expMath(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "expMath";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:317:1
        expMath thisProduction = null;
        if (buildTree) {
            thisProduction = new expMath();
            openNodeScope(thisProduction);
        }
        MathResolver.Type type = MathResolver.Type.ADD;
        MathResolver math = new MathResolver();
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$expMath();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:323:7
            pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 323, 7);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$GroupingParser_ccc$323$7.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                exp = value(grp);
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:323:24
            math.push(type, exp);
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:324:7
            while (true) {
                if (!(first_set$GroupingParser_ccc$324$9.contains(nextTokenType()))) break;
                if (nextTokenType() == INFIX_ADD) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:324:11
                    pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 324, 11);
                    outerFollowSet = follow_set$GroupingParser_ccc$324$11;
                    try {
                        addElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:324:18
                    type = MathResolver.Type.ADD;
                } else if (nextTokenType() == INFIX_DIV) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:325:11
                    pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 325, 11);
                    outerFollowSet = follow_set$GroupingParser_ccc$325$11;
                    try {
                        divElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:325:18
                    type = MathResolver.Type.DIV;
                } else if (nextTokenType() == INFIX_MOD) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:326:11
                    pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 326, 11);
                    outerFollowSet = follow_set$GroupingParser_ccc$326$11;
                    try {
                        modElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:326:18
                    type = MathResolver.Type.MOD;
                } else if (nextTokenType() == INFIX_MUL) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:327:11
                    pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 327, 11);
                    outerFollowSet = follow_set$GroupingParser_ccc$327$11;
                    try {
                        mulElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:327:18
                    type = MathResolver.Type.MUL;
                } else if (nextTokenType() == INFIX_SUB) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:11
                    pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 328, 11);
                    outerFollowSet = follow_set$GroupingParser_ccc$328$11;
                    try {
                        subElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:18
                    type = MathResolver.Type.SUB;
                } else {
                    pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 324, 11);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$324$11$, parsingStack);
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:54
                pushOntoCallStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 328, 54);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$328$54.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    exp = value(grp);
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:71
                math.push(type, exp);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:329:5
            return math.resolve();
        } 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/grouping/GroupingParser.ccc:333:1
    final public GroupingExpression value(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "value";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:333:1
        value thisProduction = null;
        if (buildTree) {
            thisProduction = new value();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$value();
            }
            if (scan$GroupingParser_ccc$337$7()) {
                if (nextTokenType() == LBRACE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:11
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 11);
                    outerFollowSet = follow_set$GroupingParser_ccc$338$11;
                    try {
                        lbraceElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:21
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 21);
                    outerFollowSet = follow_set$GroupingParser_ccc$338$21;
                    try {
                        exp = expElm(grp);
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:39
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 39);
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == ADD) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:339:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 339, 20);
                    try {
                        exp = addFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == AND) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:340:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 340, 20);
                    try {
                        exp = andFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == ATTRIBUTE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:341:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 341, 20);
                    try {
                        exp = attributeFunction();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == AVG) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:342:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 342, 20);
                    try {
                        exp = avgExpression(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == CAT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:343:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 343, 20);
                    try {
                        exp = catFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == INTEGER || nextTokenType == FLOAT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:344:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 344, 20);
                    try {
                        exp = constantValue();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == COUNT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:345:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 345, 20);
                    try {
                        exp = countAggregator();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == DEBUGWAIT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:346:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 346, 20);
                    try {
                        exp = debugWaitFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == DIV) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:347:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 347, 20);
                    try {
                        exp = divFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == DOCIDNSSPECIFIC) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:348:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 348, 20);
                    try {
                        exp = docIdNsSpecificValue();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == FIXEDWIDTH) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:349:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 349, 20);
                    try {
                        exp = fixedWidthFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == MATH) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:350:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 350, 20);
                    try {
                        exp = mathFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == MAX) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:351:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 351, 20);
                    try {
                        exp = maxExpression(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == MD5) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:352:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 352, 20);
                    try {
                        exp = md5Function(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == MIN) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:353:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 353, 20);
                    try {
                        exp = minExpression(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == MOD) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:354:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 354, 20);
                    try {
                        exp = modFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == MUL) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:355:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 355, 20);
                    try {
                        exp = mulFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == NEG) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:356:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 356, 20);
                    try {
                        exp = negFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == NORMALIZESUBJECT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:357:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 357, 20);
                    try {
                        exp = normalizeSubjectFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == NOW) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:358:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 358, 20);
                    try {
                        exp = nowFunction();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == OR) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:359:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 359, 20);
                    try {
                        exp = orFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == PREDEFINED) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:360:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 360, 20);
                    try {
                        exp = predefinedFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == RELEVANCE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:361:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 361, 20);
                    try {
                        exp = relevanceValue();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == REVERSE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:362:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 362, 20);
                    try {
                        exp = reverseFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == SIZE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:363:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 363, 20);
                    try {
                        exp = sizeFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == SORT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:364:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 364, 20);
                    try {
                        exp = sortFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == ARRAY) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:365:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 365, 20);
                    try {
                        exp = arrayAtLookup(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == INTERPOLATEDLOOKUP) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:366:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 366, 20);
                    try {
                        exp = interpolatedLookupElm(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == STDDEV) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:367:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 367, 20);
                    try {
                        exp = stddevAggregator(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == STRING) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:368:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 368, 20);
                    try {
                        exp = stringValue();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == STRCAT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:369:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 369, 20);
                    try {
                        exp = strCatFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == STRLEN) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:370:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 370, 20);
                    try {
                        exp = strLenFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == SUB) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:371:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 371, 20);
                    try {
                        exp = subFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == SUM) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:372:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 372, 20);
                    try {
                        exp = sumAggregator(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == SUMMARY) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:373:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 373, 20);
                    try {
                        exp = summaryValue();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == TIME) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:374:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 374, 20);
                    try {
                        exp = timeFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == TODOUBLE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:375:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 375, 20);
                    try {
                        exp = toDoubleFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == TOLONG) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:376:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 376, 20);
                    try {
                        exp = toLongFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == TORAW) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:377:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 377, 20);
                    try {
                        exp = toRawFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == TOSTRING) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:378:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 378, 20);
                    try {
                        exp = toStringFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == UCA) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:379:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 379, 20);
                    try {
                        exp = ucaFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == XOR) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:380:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 380, 20);
                    try {
                        exp = xorExpression(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == XORBIT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:381:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 381, 20);
                    try {
                        exp = xorBitFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == ZCURVE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:382:20
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 382, 20);
                    try {
                        exp = zcurveFunction(grp);
                    } finally {
                        popCallStack();
                    }
                } else {
                    pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 9);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$338$9, parsingStack);
                }
            } else if (first_set$GroupingParser_ccc$383$7.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:383:20
                pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 383, 20);
                try {
                    exp = attributeValue();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 337, 7);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$337$7, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:384:5
            return exp;
        } 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/grouping/GroupingParser.ccc:388:1
    final public AddFunction addFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "addFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:388:1
        addFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new addFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$addFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:7
            consumeToken(ADD, false, follow_set$GroupingParser_ccc$393$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:13
            pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$393$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:23
            pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$393$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:42
            pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$393$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:51
            pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$393$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:72
                pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$393$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:81
                pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$393$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:103
            pushOntoCallStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:394:5
            if (argN == null) return new AddFunction(arg1, arg2);
            return new AddFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:399:1
    final public AndFunction andFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "andFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:399:1
        andFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new andFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$andFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:7
            consumeToken(AND, false, follow_set$GroupingParser_ccc$404$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:13
            pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$404$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:23
            pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$404$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:42
            pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$404$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:51
            pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$404$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:72
                pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$404$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:81
                pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$404$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:103
            pushOntoCallStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:405:5
            if (argN == null) return new AndFunction(arg1, arg2);
            return new AndFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:410:1
    final public AttributeValue attributeValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "attributeValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:410:1
        attributeValue thisProduction = null;
        if (buildTree) {
            thisProduction = new attributeValue();
            openNodeScope(thisProduction);
        }
        StringBuilder prefix = new StringBuilder();
        StringBuilder suffix = new StringBuilder();
        String str;
        String key = null;
        AttributeFunction keySourceAttr = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$attributeValue();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:418:7
            pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 418, 7);
            if (outerFollowSet != null) {
                EnumSet newFollowSet = follow_set$GroupingParser_ccc$418$7.clone();
                newFollowSet.addAll(outerFollowSet);
                outerFollowSet = newFollowSet;
            }
            try {
                str = identifierStr();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:418:27
            prefix.append(str);
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:7
            while (true) {
                if (!(scan$GroupingParser_ccc$419$9())) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:19
                consumeToken(DOT, false, follow_set$GroupingParser_ccc$419$19);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:25
                prefix.append(lastConsumedToken.toString());
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:76
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 419, 76);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$419$76.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    str = identifierStr();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:96
                prefix.append(str);
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:420:7
            // Code for ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:420:9
            if (scan$GroupingParser_ccc$420$9()) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:13
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 13);
                outerFollowSet = follow_set$GroupingParser_ccc$421$13;
                try {
                    lcurlyElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:23
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 23);
                outerFollowSet = follow_set$GroupingParser_ccc$421$23;
                try {
                    key = stringElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:39
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 39);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$421$39.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    rcurlyElm();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LCURLY) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:422:13
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 422, 13);
                outerFollowSet = follow_set$GroupingParser_ccc$422$13;
                try {
                    lcurlyElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:422:23
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 422, 23);
                outerFollowSet = follow_set$GroupingParser_ccc$422$23;
                try {
                    keySourceAttr = attributeFunction();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:422:57
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 422, 57);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$422$57.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    rcurlyElm();
                } finally {
                    popCallStack();
                }
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:7
            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/grouping/GroupingParser.ccc:424:9
                consumeToken(DOT, false, follow_set$GroupingParser_ccc$424$9);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:15
                suffix.append(lastConsumedToken.toString());
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:66
                pushOntoCallStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 424, 66);
                if (outerFollowSet != null) {
                    EnumSet newFollowSet = follow_set$GroupingParser_ccc$424$66.clone();
                    newFollowSet.addAll(outerFollowSet);
                    outerFollowSet = newFollowSet;
                }
                try {
                    str = identifierStr();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:86
                suffix.append(str);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:426:5
            if (key != null) {
                return AttributeMapLookupValue.fromKey(prefix.toString(), key, suffix.toString());
            } else if (keySourceAttr != null) {
                return AttributeMapLookupValue.fromKeySourceAttribute(prefix.toString(), keySourceAttr.getAttributeName(), suffix.toString());
            } else {
                prefix.append(suffix.toString());
                return new AttributeValue(prefix.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/grouping/GroupingParser.ccc:439:1
    final public AttributeFunction attributeFunction() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "attributeFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:439:1
        attributeFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new attributeFunction();
            openNodeScope(thisProduction);
        }
        AttributeValue val;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$attributeFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:7
            consumeToken(ATTRIBUTE, false, follow_set$GroupingParser_ccc$443$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:19
            pushOntoCallStack("attributeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 443, 19);
            outerFollowSet = follow_set$GroupingParser_ccc$443$19;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:29
            pushOntoCallStack("attributeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 443, 29);
            outerFollowSet = follow_set$GroupingParser_ccc$443$29;
            try {
                val = attributeValue();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:50
            pushOntoCallStack("attributeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 443, 50);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:444:5
            return new AttributeFunction(val.getAttributeName());
        } 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/grouping/GroupingParser.ccc:448:1
    final public ArrayAtLookup arrayAtLookup(GroupingOperation parent) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "arrayAtLookup";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:448:1
        arrayAtLookup thisProduction = null;
        if (buildTree) {
            thisProduction = new arrayAtLookup();
            openNodeScope(thisProduction);
        }
        AttributeValue val = null;
        GroupingExpression arg2 = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$arrayAtLookup();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:7
            consumeToken(ARRAY, false, follow_set$GroupingParser_ccc$453$7);
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:15
            consumeToken(DOT, false, follow_set$GroupingParser_ccc$453$15);
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:21
            consumeToken(AT, false, follow_set$GroupingParser_ccc$453$21);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:26
            pushOntoCallStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$453$26;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:36
            pushOntoCallStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 36);
            outerFollowSet = follow_set$GroupingParser_ccc$453$36;
            try {
                val = attributeValue();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:57
            pushOntoCallStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 57);
            outerFollowSet = follow_set$GroupingParser_ccc$453$57;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:66
            pushOntoCallStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 66);
            outerFollowSet = follow_set$GroupingParser_ccc$453$66;
            try {
                arg2 = expElm(parent);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:88
            pushOntoCallStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 88);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:454:5
            return new ArrayAtLookup(val.getAttributeName(), arg2);
        } 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/grouping/GroupingParser.ccc:460:1
    final public InterpolatedLookup interpolatedLookupElm(GroupingOperation parent) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "interpolatedLookupElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:460:1
        interpolatedLookupElm thisProduction = null;
        if (buildTree) {
            thisProduction = new interpolatedLookupElm();
            openNodeScope(thisProduction);
        }
        AttributeValue val = null;
        GroupingExpression arg2 = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$interpolatedLookupElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:7
            consumeToken(INTERPOLATEDLOOKUP, false, follow_set$GroupingParser_ccc$465$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:28
            pushOntoCallStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 28);
            outerFollowSet = follow_set$GroupingParser_ccc$465$28;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:38
            pushOntoCallStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 38);
            outerFollowSet = follow_set$GroupingParser_ccc$465$38;
            try {
                val = attributeValue();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:59
            pushOntoCallStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 59);
            outerFollowSet = follow_set$GroupingParser_ccc$465$59;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:68
            pushOntoCallStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 68);
            outerFollowSet = follow_set$GroupingParser_ccc$465$68;
            try {
                arg2 = expElm(parent);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:90
            pushOntoCallStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 90);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:466:5
            return new InterpolatedLookup(val.getAttributeName(), arg2);
        } 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/grouping/GroupingParser.ccc:472:1
    final public GroupingExpression avgExpression(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "avgExpression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:472:1
        avgExpression thisProduction = null;
        if (buildTree) {
            thisProduction = new avgExpression();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2 = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$avgExpression();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:7
            consumeToken(AVG, false, follow_set$GroupingParser_ccc$477$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:13
            pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$477$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:23
            pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$477$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:42
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:44
                pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 44);
                outerFollowSet = follow_set$GroupingParser_ccc$477$44;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:53
                pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 53);
                outerFollowSet = follow_set$GroupingParser_ccc$477$53;
                try {
                    arg2 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:72
                if (nextTokenType() == COMMA) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:74
                    pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 74);
                    outerFollowSet = follow_set$GroupingParser_ccc$477$74;
                    try {
                        commaElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:83
                    pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 83);
                    outerFollowSet = follow_set$GroupingParser_ccc$477$83;
                    try {
                        argN = expList(grp);
                    } finally {
                        popCallStack();
                    }
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:107
            pushOntoCallStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 107);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:478:5
            if (arg2 == null) return new AvgAggregator(arg1);
            if (argN == null) return new AvgFunction(arg1, arg2);
            return new AvgFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:484:1
    final public CatFunction catFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "catFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:484:1
        catFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new catFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$catFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:7
            consumeToken(CAT, false, follow_set$GroupingParser_ccc$489$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:13
            pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$489$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:23
            pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$489$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:42
            pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$489$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:51
            pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$489$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:72
                pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$489$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:81
                pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$489$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:103
            pushOntoCallStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:490:5
            if (argN == null) return new CatFunction(arg1, arg2);
            return new CatFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:495:1
    final public ConstantValue constantValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "constantValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:495:1
        constantValue thisProduction = null;
        if (buildTree) {
            thisProduction = new constantValue();
            openNodeScope(thisProduction);
        }
        Number num;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$constantValue();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:499:7
            pushOntoCallStack("constantValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 499, 7);
            try {
                num = number();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:500:5
            return num instanceof Double ? new DoubleValue((Double) num) : new LongValue((Long) num);
        } 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/grouping/GroupingParser.ccc:504:1
    final public ConstantValue constantValueSigned() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "constantValueSigned";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:504:1
        constantValueSigned thisProduction = null;
        if (buildTree) {
            thisProduction = new constantValueSigned();
            openNodeScope(thisProduction);
        }
        Number num;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$constantValueSigned();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:508:7
            pushOntoCallStack("constantValueSigned", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 508, 7);
            try {
                num = signedNumber();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:509:5
            return num instanceof Double ? new DoubleValue((Double) num) : new LongValue((Long) num);
        } 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/grouping/GroupingParser.ccc:513:1
    final public InfiniteValue infiniteNegativeValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "infiniteNegativeValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:513:1
        infiniteNegativeValue thisProduction = null;
        if (buildTree) {
            thisProduction = new infiniteNegativeValue();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$infiniteNegativeValue();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:514:7
            pushOntoCallStack("infiniteNegativeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 514, 7);
            try {
                neginfElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:514:17
            return new InfiniteValue(new Infinite(true));
        } 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/grouping/GroupingParser.ccc:518:1
    final public InfiniteValue infinitePositiveValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "infinitePositiveValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:518:1
        infinitePositiveValue thisProduction = null;
        if (buildTree) {
            thisProduction = new infinitePositiveValue();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$infinitePositiveValue();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:519:7
            pushOntoCallStack("infinitePositiveValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 519, 7);
            try {
                infElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:519:14
            return new InfiniteValue(new Infinite(false));
        } 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/grouping/GroupingParser.ccc:523:1
    final public CountAggregator countAggregator() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "countAggregator";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:523:1
        countAggregator thisProduction = null;
        if (buildTree) {
            thisProduction = new countAggregator();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$countAggregator();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:524:7
            consumeToken(COUNT, false, follow_set$GroupingParser_ccc$524$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:524:15
            pushOntoCallStack("countAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 524, 15);
            outerFollowSet = follow_set$GroupingParser_ccc$524$15;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:524:25
            pushOntoCallStack("countAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 524, 25);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:525:5
            return new CountAggregator();
        } 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/grouping/GroupingParser.ccc:529:1
    final public DebugWaitFunction debugWaitFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "debugWaitFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:529:1
        debugWaitFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new debugWaitFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression arg;
        Number waitTime;
        BooleanValue busy;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$debugWaitFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:7
            consumeToken(DEBUGWAIT, false, follow_set$GroupingParser_ccc$534$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:19
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 534, 19);
            outerFollowSet = follow_set$GroupingParser_ccc$534$19;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:29
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 534, 29);
            outerFollowSet = follow_set$GroupingParser_ccc$534$29;
            try {
                arg = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:47
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 534, 47);
            outerFollowSet = follow_set$GroupingParser_ccc$534$47;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:535:28
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 535, 28);
            outerFollowSet = follow_set$GroupingParser_ccc$535$28;
            try {
                waitTime = number();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:535:46
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 535, 46);
            outerFollowSet = follow_set$GroupingParser_ccc$535$46;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:536:28
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 536, 28);
            outerFollowSet = follow_set$GroupingParser_ccc$536$28;
            try {
                busy = booleanValue();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:537:19
            pushOntoCallStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 537, 19);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:538:4
            return new DebugWaitFunction(arg, new DoubleValue(waitTime.doubleValue()), busy);
        } 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/grouping/GroupingParser.ccc:542:1
    final public DivFunction divFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "divFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:542:1
        divFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new divFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$divFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:7
            consumeToken(DIV, false, follow_set$GroupingParser_ccc$547$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:13
            pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$547$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:23
            pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$547$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:42
            pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$547$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:51
            pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$547$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:72
                pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$547$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:81
                pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$547$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:103
            pushOntoCallStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:548:5
            if (argN == null) return new DivFunction(arg1, arg2);
            return new DivFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:553:1
    final public DocIdNsSpecificValue docIdNsSpecificValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "docIdNsSpecificValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:553:1
        docIdNsSpecificValue thisProduction = null;
        if (buildTree) {
            thisProduction = new docIdNsSpecificValue();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$docIdNsSpecificValue();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:554:7
            consumeToken(DOCIDNSSPECIFIC, false, follow_set$GroupingParser_ccc$554$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:554:25
            pushOntoCallStack("docIdNsSpecificValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 554, 25);
            outerFollowSet = follow_set$GroupingParser_ccc$554$25;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:554:35
            pushOntoCallStack("docIdNsSpecificValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 554, 35);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:555:5
            return new DocIdNsSpecificValue();
        } 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/grouping/GroupingParser.ccc:559:1
    final public FixedWidthFunction fixedWidthFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "fixedWidthFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:559:1
        fixedWidthFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new fixedWidthFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        Number num;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$fixedWidthFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:7
            consumeToken(FIXEDWIDTH, false, follow_set$GroupingParser_ccc$564$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:20
            pushOntoCallStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 20);
            outerFollowSet = follow_set$GroupingParser_ccc$564$20;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:30
            pushOntoCallStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 30);
            outerFollowSet = follow_set$GroupingParser_ccc$564$30;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:48
            pushOntoCallStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 48);
            outerFollowSet = follow_set$GroupingParser_ccc$564$48;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:57
            pushOntoCallStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 57);
            outerFollowSet = follow_set$GroupingParser_ccc$564$57;
            try {
                num = number();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:70
            pushOntoCallStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 70);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:565:5
            return new FixedWidthFunction(exp, num);
        } 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/grouping/GroupingParser.ccc:569:1
    final public GroupingExpression maxExpression(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "maxExpression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:569:1
        maxExpression thisProduction = null;
        if (buildTree) {
            thisProduction = new maxExpression();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2 = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$maxExpression();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:7
            consumeToken(MAX, false, follow_set$GroupingParser_ccc$574$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:13
            pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$574$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:23
            pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$574$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:42
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:44
                pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 44);
                outerFollowSet = follow_set$GroupingParser_ccc$574$44;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:53
                pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 53);
                outerFollowSet = follow_set$GroupingParser_ccc$574$53;
                try {
                    arg2 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:72
                if (nextTokenType() == COMMA) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:74
                    pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 74);
                    outerFollowSet = follow_set$GroupingParser_ccc$574$74;
                    try {
                        commaElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:83
                    pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 83);
                    outerFollowSet = follow_set$GroupingParser_ccc$574$83;
                    try {
                        argN = expList(grp);
                    } finally {
                        popCallStack();
                    }
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:107
            pushOntoCallStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 107);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:575:5
            if (arg2 == null) return new MaxAggregator(arg1);
            if (argN == null) return new MaxFunction(arg1, arg2);
            return new MaxFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:581:1
    final public GroupingExpression md5Function(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "md5Function";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:581:1
        md5Function thisProduction = null;
        if (buildTree) {
            thisProduction = new md5Function();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        Number num;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$md5Function();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:7
            consumeToken(MD5, false, follow_set$GroupingParser_ccc$586$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:13
            pushOntoCallStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$586$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:23
            pushOntoCallStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$586$23;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:41
            pushOntoCallStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 41);
            outerFollowSet = follow_set$GroupingParser_ccc$586$41;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:50
            pushOntoCallStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 50);
            outerFollowSet = follow_set$GroupingParser_ccc$586$50;
            try {
                num = number();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:63
            pushOntoCallStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 63);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:587:5
            return new Md5Function(exp, num.intValue());
        } 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/grouping/GroupingParser.ccc:591:1
    final public GroupingExpression minExpression(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "minExpression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:591:1
        minExpression thisProduction = null;
        if (buildTree) {
            thisProduction = new minExpression();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2 = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$minExpression();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:7
            consumeToken(MIN, false, follow_set$GroupingParser_ccc$596$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:13
            pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$596$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:23
            pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$596$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:42
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:44
                pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 44);
                outerFollowSet = follow_set$GroupingParser_ccc$596$44;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:53
                pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 53);
                outerFollowSet = follow_set$GroupingParser_ccc$596$53;
                try {
                    arg2 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:72
                if (nextTokenType() == COMMA) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:74
                    pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 74);
                    outerFollowSet = follow_set$GroupingParser_ccc$596$74;
                    try {
                        commaElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:83
                    pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 83);
                    outerFollowSet = follow_set$GroupingParser_ccc$596$83;
                    try {
                        argN = expList(grp);
                    } finally {
                        popCallStack();
                    }
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:107
            pushOntoCallStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 107);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:597:5
            if (arg2 == null) return new MinAggregator(arg1);
            if (argN == null) return new MinFunction(arg1, arg2);
            return new MinFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:603:1
    final public ModFunction modFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "modFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:603:1
        modFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new modFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$modFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:7
            consumeToken(MOD, false, follow_set$GroupingParser_ccc$608$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:13
            pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$608$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:23
            pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$608$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:42
            pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$608$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:51
            pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$608$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:72
                pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$608$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:81
                pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$608$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:103
            pushOntoCallStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:609:5
            if (argN == null) return new ModFunction(arg1, arg2);
            return new ModFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:614:1
    final public MulFunction mulFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "mulFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:614:1
        mulFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new mulFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$mulFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:7
            consumeToken(MUL, false, follow_set$GroupingParser_ccc$619$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:13
            pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$619$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:23
            pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$619$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:42
            pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$619$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:51
            pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$619$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:72
                pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$619$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:81
                pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$619$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:103
            pushOntoCallStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:620:5
            if (argN == null) return new MulFunction(arg1, arg2);
            return new MulFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:625:1
    final public GroupingExpression negFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "negFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:625:1
        negFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new negFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$negFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:7
            consumeToken(NEG, false, follow_set$GroupingParser_ccc$629$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:13
            pushOntoCallStack("negFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 629, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$629$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:23
            pushOntoCallStack("negFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 629, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$629$23;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:41
            pushOntoCallStack("negFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 629, 41);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:630:5
            return resolveNegation(exp);
        } 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/grouping/GroupingParser.ccc:634:1
    final public NormalizeSubjectFunction normalizeSubjectFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "normalizeSubjectFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:634:1
        normalizeSubjectFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new normalizeSubjectFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$normalizeSubjectFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:7
            consumeToken(NORMALIZESUBJECT, false, follow_set$GroupingParser_ccc$638$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:26
            pushOntoCallStack("normalizeSubjectFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 638, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$638$26;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:36
            pushOntoCallStack("normalizeSubjectFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 638, 36);
            outerFollowSet = follow_set$GroupingParser_ccc$638$36;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:54
            pushOntoCallStack("normalizeSubjectFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 638, 54);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:639:5
            return new NormalizeSubjectFunction(exp);
        } 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/grouping/GroupingParser.ccc:643:1
    final public NowFunction nowFunction() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "nowFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:643:1
        nowFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new nowFunction();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$nowFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:644:7
            consumeToken(NOW, false, follow_set$GroupingParser_ccc$644$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:644:13
            pushOntoCallStack("nowFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 644, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$644$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:644:23
            pushOntoCallStack("nowFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 644, 23);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:645:5
            return new NowFunction();
        } 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/grouping/GroupingParser.ccc:649:1
    final public OrFunction orFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "orFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:649:1
        orFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new orFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$orFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:7
            consumeToken(OR, false, follow_set$GroupingParser_ccc$654$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:12
            pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 12);
            outerFollowSet = follow_set$GroupingParser_ccc$654$12;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:22
            pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 22);
            outerFollowSet = follow_set$GroupingParser_ccc$654$22;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:41
            pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 41);
            outerFollowSet = follow_set$GroupingParser_ccc$654$41;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:50
            pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 50);
            outerFollowSet = follow_set$GroupingParser_ccc$654$50;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:69
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:71
                pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 71);
                outerFollowSet = follow_set$GroupingParser_ccc$654$71;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:80
                pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 80);
                outerFollowSet = follow_set$GroupingParser_ccc$654$80;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:102
            pushOntoCallStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 102);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:655:5
            if (argN == null) return new OrFunction(arg1, arg2);
            return new OrFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:660:1
    final public PredefinedFunction predefinedFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "predefinedFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:660:1
        predefinedFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new predefinedFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        BucketResolver resolver = new BucketResolver();
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$predefinedFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:7
            consumeToken(PREDEFINED, false, follow_set$GroupingParser_ccc$665$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:20
            pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 665, 20);
            outerFollowSet = follow_set$GroupingParser_ccc$665$20;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:30
            pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 665, 30);
            outerFollowSet = follow_set$GroupingParser_ccc$665$30;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:48
            pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 665, 48);
            outerFollowSet = follow_set$GroupingParser_ccc$665$48;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:7
            pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$666$7;
            try {
                bucketElm(grp, resolver);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:32
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:34
                pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 34);
                outerFollowSet = follow_set$GroupingParser_ccc$666$34;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:43
                pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 43);
                outerFollowSet = follow_set$GroupingParser_ccc$666$43;
                try {
                    bucketElm(grp, resolver);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:71
            pushOntoCallStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 71);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:667:5
            return resolver.resolve(exp);
        } 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/grouping/GroupingParser.ccc:671:1
    final public RelevanceValue relevanceValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "relevanceValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:671:1
        relevanceValue thisProduction = null;
        if (buildTree) {
            thisProduction = new relevanceValue();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$relevanceValue();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:672:7
            consumeToken(RELEVANCE, false, follow_set$GroupingParser_ccc$672$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:672:19
            pushOntoCallStack("relevanceValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 672, 19);
            outerFollowSet = follow_set$GroupingParser_ccc$672$19;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:672:29
            pushOntoCallStack("relevanceValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 672, 29);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:673:5
            return new RelevanceValue();
        } 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/grouping/GroupingParser.ccc:677:1
    final public ReverseFunction reverseFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "reverseFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:677:1
        reverseFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new reverseFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$reverseFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:7
            consumeToken(REVERSE, false, follow_set$GroupingParser_ccc$681$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:17
            pushOntoCallStack("reverseFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 681, 17);
            outerFollowSet = follow_set$GroupingParser_ccc$681$17;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:27
            pushOntoCallStack("reverseFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 681, 27);
            outerFollowSet = follow_set$GroupingParser_ccc$681$27;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:45
            pushOntoCallStack("reverseFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 681, 45);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:682:5
            return new ReverseFunction(exp);
        } 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/grouping/GroupingParser.ccc:686:1
    final public SizeFunction sizeFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "sizeFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:686:1
        sizeFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new sizeFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$sizeFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:7
            consumeToken(SIZE, false, follow_set$GroupingParser_ccc$690$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:14
            pushOntoCallStack("sizeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 690, 14);
            outerFollowSet = follow_set$GroupingParser_ccc$690$14;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:24
            pushOntoCallStack("sizeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 690, 24);
            outerFollowSet = follow_set$GroupingParser_ccc$690$24;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:42
            pushOntoCallStack("sizeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 690, 42);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:691:5
            return new SizeFunction(exp);
        } 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/grouping/GroupingParser.ccc:695:1
    final public SortFunction sortFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "sortFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:695:1
        sortFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new sortFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$sortFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:7
            consumeToken(SORT, false, follow_set$GroupingParser_ccc$699$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:14
            pushOntoCallStack("sortFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 699, 14);
            outerFollowSet = follow_set$GroupingParser_ccc$699$14;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:24
            pushOntoCallStack("sortFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 699, 24);
            outerFollowSet = follow_set$GroupingParser_ccc$699$24;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:42
            pushOntoCallStack("sortFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 699, 42);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:700:5
            return new SortFunction(exp);
        } 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/grouping/GroupingParser.ccc:704:1
    final public StringValue stringValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "stringValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:704:1
        stringValue thisProduction = null;
        if (buildTree) {
            thisProduction = new stringValue();
            openNodeScope(thisProduction);
        }
        String str;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$stringValue();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:708:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$708$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(STRING, false, followSet20);
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:708:16
            str = UnicodeUtilities.unquote(lastConsumedToken.toString());
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:708:82
            pushOntoCallStack("stringValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 708, 82);
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:709:5
            return new StringValue(str);
        } 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/grouping/GroupingParser.ccc:713:1
    final public RawValue rawValue(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "rawValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:713:1
        rawValue thisProduction = null;
        if (buildTree) {
            thisProduction = new rawValue();
            openNodeScope(thisProduction);
        }
        RawBuffer buffer = new RawBuffer();
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$rawValue();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:7
            pushOntoCallStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$717$7;
            try {
                lcurlyElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:17
            pushOntoCallStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 17);
            outerFollowSet = follow_set$GroupingParser_ccc$717$17;
            try {
                byteValue(buffer);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:35
            while (true) {
                if (!(nextTokenType() == COMMA)) break;
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:37
                pushOntoCallStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 37);
                outerFollowSet = follow_set$GroupingParser_ccc$717$37;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:46
                pushOntoCallStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 46);
                outerFollowSet = follow_set$GroupingParser_ccc$717$46;
                try {
                    byteValue(buffer);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:67
            pushOntoCallStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 67);
            try {
                rcurlyElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:718:5
            return new RawValue(buffer);
        } 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/grouping/GroupingParser.ccc:722:1
    final public StandardDeviationAggregator stddevAggregator(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "stddevAggregator";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:722:1
        stddevAggregator thisProduction = null;
        if (buildTree) {
            thisProduction = new stddevAggregator();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$stddevAggregator();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:7
            consumeToken(STDDEV, false, follow_set$GroupingParser_ccc$726$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:16
            pushOntoCallStack("stddevAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 726, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$726$16;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:26
            pushOntoCallStack("stddevAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 726, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$726$26;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:44
            pushOntoCallStack("stddevAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 726, 44);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:727:5
            return new StandardDeviationAggregator(exp);
        } 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/grouping/GroupingParser.ccc:731:1
    final public StringValue stringValueUnquoted() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "stringValueUnquoted";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:731:1
        stringValueUnquoted thisProduction = null;
        if (buildTree) {
            thisProduction = new stringValueUnquoted();
            openNodeScope(thisProduction);
        }
        String str;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$stringValueUnquoted();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:735:7
            pushOntoCallStack("stringValueUnquoted", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 735, 7);
            try {
                str = stringElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:736:5
            return new StringValue(str);
        } 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/grouping/GroupingParser.ccc:740:1
    final public StrCatFunction strCatFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "strCatFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:740:1
        strCatFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new strCatFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$strCatFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:7
            consumeToken(STRCAT, false, follow_set$GroupingParser_ccc$745$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:16
            pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$745$16;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:26
            pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$745$26;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:45
            pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 45);
            outerFollowSet = follow_set$GroupingParser_ccc$745$45;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:54
            pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 54);
            outerFollowSet = follow_set$GroupingParser_ccc$745$54;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:73
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:75
                pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 75);
                outerFollowSet = follow_set$GroupingParser_ccc$745$75;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:84
                pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 84);
                outerFollowSet = follow_set$GroupingParser_ccc$745$84;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:106
            pushOntoCallStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 106);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:746:5
            if (argN == null) return new StrCatFunction(arg1, arg2);
            return new StrCatFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:751:1
    final public StrLenFunction strLenFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "strLenFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:751:1
        strLenFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new strLenFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$strLenFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:7
            consumeToken(STRLEN, false, follow_set$GroupingParser_ccc$755$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:16
            pushOntoCallStack("strLenFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 755, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$755$16;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:26
            pushOntoCallStack("strLenFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 755, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$755$26;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:44
            pushOntoCallStack("strLenFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 755, 44);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:756:5
            return new StrLenFunction(exp);
        } 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/grouping/GroupingParser.ccc:760:1
    final public SubFunction subFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "subFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:760:1
        subFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new subFunction();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$subFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:7
            consumeToken(SUB, false, follow_set$GroupingParser_ccc$765$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:13
            pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$765$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:23
            pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$765$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:42
            pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 42);
            outerFollowSet = follow_set$GroupingParser_ccc$765$42;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:51
            pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 51);
            outerFollowSet = follow_set$GroupingParser_ccc$765$51;
            try {
                arg2 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:70
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:72
                pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 72);
                outerFollowSet = follow_set$GroupingParser_ccc$765$72;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:81
                pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 81);
                outerFollowSet = follow_set$GroupingParser_ccc$765$81;
                try {
                    argN = expList(grp);
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:103
            pushOntoCallStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:766:5
            if (argN == null) return new SubFunction(arg1, arg2);
            return new SubFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:771:1
    final public SumAggregator sumAggregator(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "sumAggregator";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:771:1
        sumAggregator thisProduction = null;
        if (buildTree) {
            thisProduction = new sumAggregator();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$sumAggregator();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:7
            consumeToken(SUM, false, follow_set$GroupingParser_ccc$775$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:13
            pushOntoCallStack("sumAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 775, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$775$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:23
            pushOntoCallStack("sumAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 775, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$775$23;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:41
            pushOntoCallStack("sumAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 775, 41);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:776:5
            return new SumAggregator(exp);
        } 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/grouping/GroupingParser.ccc:780:1
    final public SummaryValue summaryValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "summaryValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:780:1
        summaryValue thisProduction = null;
        if (buildTree) {
            thisProduction = new summaryValue();
            openNodeScope(thisProduction);
        }
        String str = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$summaryValue();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:7
            consumeToken(SUMMARY, false, follow_set$GroupingParser_ccc$784$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:17
            pushOntoCallStack("summaryValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 784, 17);
            outerFollowSet = follow_set$GroupingParser_ccc$784$17;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:27
            if (first_set$GroupingParser_ccc$784$29.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:29
                pushOntoCallStack("summaryValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 784, 29);
                outerFollowSet = follow_set$GroupingParser_ccc$784$29$;
                try {
                    str = stringElm();
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:47
            pushOntoCallStack("summaryValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 784, 47);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:785:5
            return str == null ? new SummaryValue() : new SummaryValue(str);
        } 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/grouping/GroupingParser.ccc:789:1
    final public FunctionNode timeFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "timeFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:789:1
        timeFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new timeFunction();
            openNodeScope(thisProduction);
        }
        TimeFunctions.Type type;
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$timeFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:794:7
            consumeToken(TIME, false, follow_set$GroupingParser_ccc$794$7);
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:794:14
            consumeToken(DOT, false, follow_set$GroupingParser_ccc$794$14);
            if (nextTokenType() == TIME_DATE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:794:22
                consumeToken(TIME_DATE, false, follow_set$GroupingParser_ccc$794$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:794:44
                type = TimeFunctions.Type.DATE;
            } else if (nextTokenType() == TIME_DAYOFMONTH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:795:22
                consumeToken(TIME_DAYOFMONTH, false, follow_set$GroupingParser_ccc$795$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:795:44
                type = TimeFunctions.Type.DAY_OF_MONTH;
            } else if (nextTokenType() == TIME_DAYOFWEEK) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:796:22
                consumeToken(TIME_DAYOFWEEK, false, follow_set$GroupingParser_ccc$796$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:796:44
                type = TimeFunctions.Type.DAY_OF_WEEK;
            } else if (nextTokenType() == TIME_DAYOFYEAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:797:22
                consumeToken(TIME_DAYOFYEAR, false, follow_set$GroupingParser_ccc$797$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:797:44
                type = TimeFunctions.Type.DAY_OF_YEAR;
            } else if (nextTokenType() == TIME_HOUROFDAY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:798:22
                consumeToken(TIME_HOUROFDAY, false, follow_set$GroupingParser_ccc$798$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:798:44
                type = TimeFunctions.Type.HOUR_OF_DAY;
            } else if (nextTokenType() == TIME_MINUTEOFHOUR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:799:22
                consumeToken(TIME_MINUTEOFHOUR, false, follow_set$GroupingParser_ccc$799$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:799:44
                type = TimeFunctions.Type.MINUTE_OF_HOUR;
            } else if (nextTokenType() == TIME_MONTHOFYEAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:800:22
                consumeToken(TIME_MONTHOFYEAR, false, follow_set$GroupingParser_ccc$800$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:800:44
                type = TimeFunctions.Type.MONTH_OF_YEAR;
            } else if (nextTokenType() == TIME_SECONDOFMINUTE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:801:22
                consumeToken(TIME_SECONDOFMINUTE, false, follow_set$GroupingParser_ccc$801$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:801:44
                type = TimeFunctions.Type.SECOND_OF_MINUTE;
            } else if (nextTokenType() == TIME_YEAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:802:22
                consumeToken(TIME_YEAR, false, follow_set$GroupingParser_ccc$802$22);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:802:44
                type = TimeFunctions.Type.YEAR;
            } else {
                pushOntoCallStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 794, 22);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$794$22$, parsingStack);
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:803:7
            pushOntoCallStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 803, 7);
            outerFollowSet = follow_set$GroupingParser_ccc$803$7;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:803:17
            pushOntoCallStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 803, 17);
            outerFollowSet = follow_set$GroupingParser_ccc$803$17;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:803:35
            pushOntoCallStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 803, 35);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:804:5
            return TimeFunctions.newInstance(type, exp);
        } 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/grouping/GroupingParser.ccc:808:1
    final public FunctionNode mathFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "mathFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:808:1
        mathFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new mathFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression arg1, arg2 = null;
        MathFunctions.Function func;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$mathFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:813:7
            consumeToken(MATH, false, follow_set$GroupingParser_ccc$813$7);
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:813:14
            consumeToken(DOT, false, follow_set$GroupingParser_ccc$813$14);
            if (nextTokenType() == HYPOT || nextTokenType == POW) {
                if (nextTokenType() == POW) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:813:26
                    consumeToken(POW, false, follow_set$GroupingParser_ccc$813$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:813:34
                    func = MathFunctions.Function.POW;
                } else if (nextTokenType() == HYPOT) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:26
                    consumeToken(HYPOT, false, follow_set$GroupingParser_ccc$814$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:34
                    func = MathFunctions.Function.HYPOT;
                } else {
                    pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 813, 26);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$813$26$, parsingStack);
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:77
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 814, 77);
                outerFollowSet = follow_set$GroupingParser_ccc$814$77;
                try {
                    lbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:87
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 814, 87);
                outerFollowSet = follow_set$GroupingParser_ccc$814$87;
                try {
                    arg1 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:106
                consumeToken(COMMA, false, follow_set$GroupingParser_ccc$814$106);
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:815:86
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 815, 86);
                outerFollowSet = follow_set$GroupingParser_ccc$815$86;
                try {
                    arg2 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:815:105
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 815, 105);
                try {
                    rbraceElm();
                } finally {
                    popCallStack();
                }
            } else if (first_set$GroupingParser_ccc$816$22.contains(nextTokenType())) {
                if (nextTokenType() == EXP) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:816:26
                    consumeToken(EXP, false, follow_set$GroupingParser_ccc$816$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:816:34
                    func = MathFunctions.Function.EXP;
                } else if (nextTokenType() == LOG) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:817:26
                    consumeToken(LOG, false, follow_set$GroupingParser_ccc$817$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:817:34
                    func = MathFunctions.Function.LOG;
                } else if (nextTokenType() == LOG1P) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:818:26
                    consumeToken(LOG1P, false, follow_set$GroupingParser_ccc$818$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:818:34
                    func = MathFunctions.Function.LOG1P;
                } else if (nextTokenType() == LOG10) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:819:26
                    consumeToken(LOG10, false, follow_set$GroupingParser_ccc$819$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:819:34
                    func = MathFunctions.Function.LOG10;
                } else if (nextTokenType() == SIN) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:820:26
                    consumeToken(SIN, false, follow_set$GroupingParser_ccc$820$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:820:34
                    func = MathFunctions.Function.SIN;
                } else if (nextTokenType() == ASIN) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:821:26
                    consumeToken(ASIN, false, follow_set$GroupingParser_ccc$821$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:821:34
                    func = MathFunctions.Function.ASIN;
                } else if (nextTokenType() == COS) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:822:26
                    consumeToken(COS, false, follow_set$GroupingParser_ccc$822$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:822:34
                    func = MathFunctions.Function.COS;
                } else if (nextTokenType() == ACOS) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:823:26
                    consumeToken(ACOS, false, follow_set$GroupingParser_ccc$823$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:823:34
                    func = MathFunctions.Function.ACOS;
                } else if (nextTokenType() == TAN) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:824:26
                    consumeToken(TAN, false, follow_set$GroupingParser_ccc$824$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:824:34
                    func = MathFunctions.Function.TAN;
                } else if (nextTokenType() == ATAN) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:825:26
                    consumeToken(ATAN, false, follow_set$GroupingParser_ccc$825$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:825:34
                    func = MathFunctions.Function.ATAN;
                } else if (nextTokenType() == SQRT) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:826:26
                    consumeToken(SQRT, false, follow_set$GroupingParser_ccc$826$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:826:34
                    func = MathFunctions.Function.SQRT;
                } else if (nextTokenType() == SINH) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:827:26
                    consumeToken(SINH, false, follow_set$GroupingParser_ccc$827$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:827:34
                    func = MathFunctions.Function.SINH;
                } else if (nextTokenType() == ASINH) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:828:26
                    consumeToken(ASINH, false, follow_set$GroupingParser_ccc$828$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:828:34
                    func = MathFunctions.Function.ASINH;
                } else if (nextTokenType() == COSH) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:829:26
                    consumeToken(COSH, false, follow_set$GroupingParser_ccc$829$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:829:34
                    func = MathFunctions.Function.COSH;
                } else if (nextTokenType() == ACOSH) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:830:26
                    consumeToken(ACOSH, false, follow_set$GroupingParser_ccc$830$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:830:34
                    func = MathFunctions.Function.ACOSH;
                } else if (nextTokenType() == TANH) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:831:26
                    consumeToken(TANH, false, follow_set$GroupingParser_ccc$831$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:831:34
                    func = MathFunctions.Function.TANH;
                } else if (nextTokenType() == ATANH) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:832:26
                    consumeToken(ATANH, false, follow_set$GroupingParser_ccc$832$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:832:34
                    func = MathFunctions.Function.ATANH;
                } else if (nextTokenType() == FLOOR) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:833:26
                    consumeToken(FLOOR, false, follow_set$GroupingParser_ccc$833$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:833:34
                    func = MathFunctions.Function.FLOOR;
                } else if (nextTokenType() == CBRT) {
                    // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:26
                    consumeToken(CBRT, false, follow_set$GroupingParser_ccc$834$26);
                    // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:34
                    func = MathFunctions.Function.CBRT;
                } else {
                    pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 816, 26);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$816$26$, parsingStack);
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:77
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 834, 77);
                outerFollowSet = follow_set$GroupingParser_ccc$834$77;
                try {
                    lbraceElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:87
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 834, 87);
                outerFollowSet = follow_set$GroupingParser_ccc$834$87;
                try {
                    arg1 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:106
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 834, 106);
                try {
                    rbraceElm();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 813, 22);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$813$22, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:835:5
            return MathFunctions.newInstance(func, arg1, arg2);
        } 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/grouping/GroupingParser.ccc:839:1
    final public FunctionNode ucaFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "ucaFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:839:1
        ucaFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new ucaFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression arg;
        String locale;
        String strength = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$ucaFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:7
            consumeToken(UCA, false, follow_set$GroupingParser_ccc$845$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:13
            pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$845$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:23
            pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$845$23;
            try {
                arg = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:41
            pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 41);
            outerFollowSet = follow_set$GroupingParser_ccc$845$41;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:50
            pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 50);
            outerFollowSet = follow_set$GroupingParser_ccc$845$50;
            try {
                locale = stringElm();
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:69
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:71
                pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 71);
                outerFollowSet = follow_set$GroupingParser_ccc$845$71;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:80
                pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 80);
                outerFollowSet = follow_set$GroupingParser_ccc$845$80;
                try {
                    strength = stringElm();
                } finally {
                    popCallStack();
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:103
            pushOntoCallStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 103);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:846:5
            return (strength == null ? new UcaFunction(arg, locale) : new UcaFunction(arg, locale, strength));
        } 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/grouping/GroupingParser.ccc:851:1
    final public FunctionNode zcurveFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "zcurveFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:851:1
        zcurveFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new zcurveFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        int dim;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$zcurveFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:7
            consumeToken(ZCURVE, false, follow_set$GroupingParser_ccc$856$7);
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:16
            consumeToken(DOT, false, follow_set$GroupingParser_ccc$856$16);
            if (nextTokenType() == X) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:24
                consumeToken(X, false, follow_set$GroupingParser_ccc$856$24);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:28
                dim = 0;
            } else if (nextTokenType() == Y) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:43
                consumeToken(Y, false, follow_set$GroupingParser_ccc$856$43);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:47
                dim = 1;
            } else {
                pushOntoCallStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 24);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$856$24$, parsingStack);
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:62
            pushOntoCallStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 62);
            outerFollowSet = follow_set$GroupingParser_ccc$856$62;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:72
            pushOntoCallStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 72);
            outerFollowSet = follow_set$GroupingParser_ccc$856$72;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:90
            pushOntoCallStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 90);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:857:5
            return dim == 0 ? new ZCurveXFunction(exp) : new ZCurveYFunction(exp);
        } 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/grouping/GroupingParser.ccc:861:1
    final public ToDoubleFunction toDoubleFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "toDoubleFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:861:1
        toDoubleFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new toDoubleFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$toDoubleFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:7
            consumeToken(TODOUBLE, false, follow_set$GroupingParser_ccc$865$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:18
            pushOntoCallStack("toDoubleFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 865, 18);
            outerFollowSet = follow_set$GroupingParser_ccc$865$18;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:28
            pushOntoCallStack("toDoubleFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 865, 28);
            outerFollowSet = follow_set$GroupingParser_ccc$865$28;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:46
            pushOntoCallStack("toDoubleFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 865, 46);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:866:5
            return new ToDoubleFunction(exp);
        } 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/grouping/GroupingParser.ccc:870:1
    final public ToLongFunction toLongFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "toLongFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:870:1
        toLongFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new toLongFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$toLongFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:7
            consumeToken(TOLONG, false, follow_set$GroupingParser_ccc$874$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:16
            pushOntoCallStack("toLongFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 874, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$874$16;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:26
            pushOntoCallStack("toLongFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 874, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$874$26;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:44
            pushOntoCallStack("toLongFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 874, 44);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:875:5
            return new ToLongFunction(exp);
        } 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/grouping/GroupingParser.ccc:879:1
    final public ToRawFunction toRawFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "toRawFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:879:1
        toRawFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new toRawFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$toRawFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:7
            consumeToken(TORAW, false, follow_set$GroupingParser_ccc$883$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:15
            pushOntoCallStack("toRawFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 883, 15);
            outerFollowSet = follow_set$GroupingParser_ccc$883$15;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:25
            pushOntoCallStack("toRawFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 883, 25);
            outerFollowSet = follow_set$GroupingParser_ccc$883$25;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:43
            pushOntoCallStack("toRawFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 883, 43);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:884:5
            return new ToRawFunction(exp);
        } 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/grouping/GroupingParser.ccc:889:1
    final public ToStringFunction toStringFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "toStringFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:889:1
        toStringFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new toStringFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$toStringFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:7
            consumeToken(TOSTRING, false, follow_set$GroupingParser_ccc$893$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:18
            pushOntoCallStack("toStringFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 893, 18);
            outerFollowSet = follow_set$GroupingParser_ccc$893$18;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:28
            pushOntoCallStack("toStringFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 893, 28);
            outerFollowSet = follow_set$GroupingParser_ccc$893$28;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:46
            pushOntoCallStack("toStringFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 893, 46);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:894:5
            return new ToStringFunction(exp);
        } 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/grouping/GroupingParser.ccc:898:1
    final public GroupingExpression xorExpression(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "xorExpression";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:898:1
        xorExpression thisProduction = null;
        if (buildTree) {
            thisProduction = new xorExpression();
            openNodeScope(thisProduction);
        }
        List argN = null;
        GroupingExpression arg1, arg2 = null;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$xorExpression();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:7
            consumeToken(XOR, false, follow_set$GroupingParser_ccc$903$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:13
            pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 13);
            outerFollowSet = follow_set$GroupingParser_ccc$903$13;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:23
            pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 23);
            outerFollowSet = follow_set$GroupingParser_ccc$903$23;
            try {
                arg1 = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:42
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:44
                pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 44);
                outerFollowSet = follow_set$GroupingParser_ccc$903$44;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:53
                pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 53);
                outerFollowSet = follow_set$GroupingParser_ccc$903$53;
                try {
                    arg2 = expElm(grp);
                } finally {
                    popCallStack();
                }
                // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:72
                if (nextTokenType() == COMMA) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:74
                    pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 74);
                    outerFollowSet = follow_set$GroupingParser_ccc$903$74;
                    try {
                        commaElm();
                    } finally {
                        popCallStack();
                    }
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:83
                    pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 83);
                    outerFollowSet = follow_set$GroupingParser_ccc$903$83;
                    try {
                        argN = expList(grp);
                    } finally {
                        popCallStack();
                    }
                }
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:107
            pushOntoCallStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 107);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:904:5
            if (arg2 == null) return new XorAggregator(arg1);
            if (argN == null) return new XorFunction(arg1, arg2);
            return new XorFunction(arg1, arg2, argN.toArray(new GroupingExpression[argN.size()]));
        } 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/grouping/GroupingParser.ccc:910:1
    final public XorBitFunction xorBitFunction(GroupingOperation grp) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "xorBitFunction";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:910:1
        xorBitFunction thisProduction = null;
        if (buildTree) {
            thisProduction = new xorBitFunction();
            openNodeScope(thisProduction);
        }
        GroupingExpression exp;
        Number num;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$xorBitFunction();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:7
            consumeToken(XORBIT, false, follow_set$GroupingParser_ccc$915$7);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:16
            pushOntoCallStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 16);
            outerFollowSet = follow_set$GroupingParser_ccc$915$16;
            try {
                lbraceElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:26
            pushOntoCallStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 26);
            outerFollowSet = follow_set$GroupingParser_ccc$915$26;
            try {
                exp = expElm(grp);
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:44
            pushOntoCallStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 44);
            outerFollowSet = follow_set$GroupingParser_ccc$915$44;
            try {
                commaElm();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:53
            pushOntoCallStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 53);
            outerFollowSet = follow_set$GroupingParser_ccc$915$53;
            try {
                num = number();
            } finally {
                popCallStack();
            }
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:66
            pushOntoCallStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 66);
            try {
                rbraceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:916:5
            return new XorBitFunction(exp, num.intValue());
        } 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/grouping/GroupingParser.ccc:918:1
    final public void bucketElm(GroupingOperation grp, BucketResolver resolver) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "bucketElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:918:1
        bucketElm thisProduction = null;
        if (buildTree) {
            thisProduction = new bucketElm();
            openNodeScope(thisProduction);
        }
        ConstantValue from, to = null;
        boolean inclusiveFrom, inclusiveTo;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$bucketElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:7
            consumeToken(BUCKET, false, follow_set$GroupingParser_ccc$923$7);
            if (nextTokenType() == LBRACE || nextTokenType == LBRACKET) {
                if (nextTokenType() == LBRACE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:22
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 923, 22);
                    outerFollowSet = follow_set$GroupingParser_ccc$923$22;
                    try {
                        lbraceElm();
                    } 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/grouping/GroupingParser.ccc:923:34
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 923, 34);
                    outerFollowSet = follow_set$GroupingParser_ccc$923$34;
                    try {
                        lbracketElm();
                    } finally {
                        popCallStack();
                    }
                } else {
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 923, 22);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$923$22$, parsingStack);
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:48
                inclusiveFrom = true;
            } else if (nextTokenType() == LT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:924:20
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 924, 20);
                outerFollowSet = follow_set$GroupingParser_ccc$924$20;
                try {
                    ltElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:924:26
                inclusiveFrom = false;
            } else {
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 923, 18);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$923$18, parsingStack);
            }
            if (nextTokenType() == NEGINF) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:20
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 20);
                outerFollowSet = follow_set$GroupingParser_ccc$926$20;
                try {
                    from = infiniteNegativeValue();
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == LCURLY) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:51
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 51);
                outerFollowSet = follow_set$GroupingParser_ccc$926$51;
                try {
                    from = rawValue(grp);
                } finally {
                    popCallStack();
                }
            } else if (nextTokenType() == INFIX_SUB || nextTokenType == INTEGER || nextTokenType == FLOAT) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:74
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 74);
                outerFollowSet = follow_set$GroupingParser_ccc$926$74;
                try {
                    from = constantValueSigned();
                } finally {
                    popCallStack();
                }
            } else if (first_set$GroupingParser_ccc$926$103.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:103
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 103);
                outerFollowSet = follow_set$GroupingParser_ccc$926$103$;
                try {
                    from = stringValueUnquoted();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 20);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$926$20$, parsingStack);
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:20
            if (nextTokenType() == COMMA) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:22
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 22);
                outerFollowSet = follow_set$GroupingParser_ccc$927$22;
                try {
                    commaElm();
                } finally {
                    popCallStack();
                }
                if (nextTokenType() == INF) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:33
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 33);
                    outerFollowSet = follow_set$GroupingParser_ccc$927$33;
                    try {
                        to = infinitePositiveValue();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == LCURLY) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:62
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 62);
                    outerFollowSet = follow_set$GroupingParser_ccc$927$62;
                    try {
                        to = rawValue(grp);
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == INFIX_SUB || nextTokenType == INTEGER || nextTokenType == FLOAT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:83
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 83);
                    outerFollowSet = follow_set$GroupingParser_ccc$927$83;
                    try {
                        to = constantValueSigned();
                    } finally {
                        popCallStack();
                    }
                } else if (first_set$GroupingParser_ccc$927$110.contains(nextTokenType())) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:110
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 110);
                    outerFollowSet = follow_set$GroupingParser_ccc$927$110$;
                    try {
                        to = stringValueUnquoted();
                    } finally {
                        popCallStack();
                    }
                } else {
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 33);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$927$33$, parsingStack);
                }
            }
            if (nextTokenType() == RBRACE || nextTokenType == GT) {
                if (nextTokenType() == GT) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:22
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 929, 22);
                    try {
                        gtElm();
                    } finally {
                        popCallStack();
                    }
                } else if (nextTokenType() == RBRACE) {
                    // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:30
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 929, 30);
                    try {
                        rbraceElm();
                    } finally {
                        popCallStack();
                    }
                } else {
                    pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 929, 22);
                    throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$929$22, parsingStack);
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:42
                inclusiveTo = false;
            } else if (nextTokenType() == RBRACKET) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:930:20
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 930, 20);
                try {
                    rbracketElm();
                } finally {
                    popCallStack();
                }
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:930:32
                inclusiveTo = true;
            } else {
                pushOntoCallStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 929, 18);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$929$18, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:933:5
            resolver.push(from, inclusiveFrom);
            resolver.push((to == null) ? from : to, inclusiveTo || to == null);
        } 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/grouping/GroupingParser.ccc:937:1
    final public Number signedNumber() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "signedNumber";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:937:1
        signedNumber thisProduction = null;
        if (buildTree) {
            thisProduction = new signedNumber();
            openNodeScope(thisProduction);
        }
        String str;
        boolean neg = false;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$signedNumber();
            }
            // Code for ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:6
            if (nextTokenType() == INFIX_SUB) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:8
                consumeToken(INFIX_SUB, false, follow_set$GroupingParser_ccc$942$8);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:20
                neg = true;
            }
            if (nextTokenType() == INTEGER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:38
                EnumSet followSet45 = null;
                if (outerFollowSet != null) {
                    followSet45 = follow_set$GroupingParser_ccc$942$38.clone();
                    followSet45.addAll(outerFollowSet);
                }
                consumeToken(INTEGER, false, followSet45);
            } 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/grouping/GroupingParser.ccc:942:50
                EnumSet followSet54 = null;
                if (outerFollowSet != null) {
                    followSet54 = follow_set$GroupingParser_ccc$942$50.clone();
                    followSet54.addAll(outerFollowSet);
                }
                consumeToken(FLOAT, false, followSet54);
            } else {
                pushOntoCallStack("signedNumber", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 942, 38);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$942$38$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:60
            str = neg ? "-" + lastConsumedToken.toString() : lastConsumedToken.toString();
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:143
            pushOntoCallStack("signedNumber", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 942, 143);
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:943:5
            return resolveNumber(str);
        } 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/grouping/GroupingParser.ccc:948:1
    final public Number number() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "number";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:948:1
        number thisProduction = null;
        if (buildTree) {
            thisProduction = new number();
            openNodeScope(thisProduction);
        }
        String str;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$number();
            }
            if (nextTokenType() == INTEGER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:952:9
                EnumSet followSet31 = null;
                if (outerFollowSet != null) {
                    followSet31 = follow_set$GroupingParser_ccc$952$9.clone();
                    followSet31.addAll(outerFollowSet);
                }
                consumeToken(INTEGER, false, followSet31);
            } 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/grouping/GroupingParser.ccc:952:21
                EnumSet followSet40 = null;
                if (outerFollowSet != null) {
                    followSet40 = follow_set$GroupingParser_ccc$952$21.clone();
                    followSet40.addAll(outerFollowSet);
                }
                consumeToken(FLOAT, false, followSet40);
            } else {
                pushOntoCallStack("number", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 952, 9);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$952$9$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:952:31
            str = lastConsumedToken.toString();
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:952:71
            pushOntoCallStack("number", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 952, 71);
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:953:5
            return resolveNumber(str);
        } 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/grouping/GroupingParser.ccc:957:1
    final public BooleanValue booleanValue() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "booleanValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:957:1
        booleanValue thisProduction = null;
        if (buildTree) {
            thisProduction = new booleanValue();
            openNodeScope(thisProduction);
        }
        String str;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$booleanValue();
            }
            if (nextTokenType() == TRUE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:961:9
                EnumSet followSet31 = null;
                if (outerFollowSet != null) {
                    followSet31 = follow_set$GroupingParser_ccc$961$9.clone();
                    followSet31.addAll(outerFollowSet);
                }
                consumeToken(TRUE, false, followSet31);
            } 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/grouping/GroupingParser.ccc:961:18
                EnumSet followSet40 = null;
                if (outerFollowSet != null) {
                    followSet40 = follow_set$GroupingParser_ccc$961$18.clone();
                    followSet40.addAll(outerFollowSet);
                }
                consumeToken(FALSE, false, followSet40);
            } else {
                pushOntoCallStack("booleanValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 961, 9);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$961$9$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:961:28
            str = lastConsumedToken.toString();
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:961:68
            pushOntoCallStack("booleanValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 961, 68);
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:962:5
            return new BooleanValue(Boolean.parseBoolean(str));
        } 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/grouping/GroupingParser.ccc:964:1
    final public void byteValue(RawBuffer buffer) {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "byteValue";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:964:1
        byteValue thisProduction = null;
        if (buildTree) {
            thisProduction = new byteValue();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$byteValue();
            }
            if (nextTokenType() == INTEGER) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:965:9
                EnumSet followSet31 = null;
                if (outerFollowSet != null) {
                    followSet31 = follow_set$GroupingParser_ccc$965$9.clone();
                    followSet31.addAll(outerFollowSet);
                }
                consumeToken(INTEGER, false, followSet31);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:965:19
                buffer.put(Byte.parseByte(lastConsumedToken.toString()));
            } 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/grouping/GroupingParser.ccc:966:9
                EnumSet followSet49 = null;
                if (outerFollowSet != null) {
                    followSet49 = follow_set$GroupingParser_ccc$966$9.clone();
                    followSet49.addAll(outerFollowSet);
                }
                consumeToken(STRING, false, followSet49);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:966:18
                buffer.put(lastConsumedToken.toString().getBytes());
            } else {
                pushOntoCallStack("byteValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 965, 7);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$965$7, 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/grouping/GroupingParser.ccc:971:1
    final public String stringElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "stringElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:971:1
        stringElm thisProduction = null;
        if (buildTree) {
            thisProduction = new stringElm();
            openNodeScope(thisProduction);
        }
        String ret;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$stringElm();
            }
            if (first_set$GroupingParser_ccc$975$7.contains(nextTokenType())) {
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:975:7
                pushOntoCallStack("stringElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 975, 7);
                try {
                    ret = identifierStr();
                } 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/grouping/GroupingParser.ccc:975:31
                EnumSet followSet39 = null;
                if (outerFollowSet != null) {
                    followSet39 = follow_set$GroupingParser_ccc$975$31.clone();
                    followSet39.addAll(outerFollowSet);
                }
                consumeToken(STRING, false, followSet39);
                // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:975:40
                ret = UnicodeUtilities.unquote(lastConsumedToken.toString());
                // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:975:106
                pushOntoCallStack("stringElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 975, 106);
                try {
                    spaceElm();
                } finally {
                    popCallStack();
                }
            } else {
                pushOntoCallStack("stringElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 975, 7);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$975$7$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:976:5
            return ret;
        } 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/grouping/GroupingParser.ccc:980: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/grouping/GroupingParser.ccc:980:1
        identifierStr thisProduction = null;
        if (buildTree) {
            thisProduction = new identifierStr();
            openNodeScope(thisProduction);
        }
        String ret;
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$identifierStr();
            }
            if (nextTokenType() == ACOS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:984:9
                EnumSet followSet31 = null;
                if (outerFollowSet != null) {
                    followSet31 = follow_set$GroupingParser_ccc$984$9.clone();
                    followSet31.addAll(outerFollowSet);
                }
                consumeToken(ACOS, false, followSet31);
            } else if (nextTokenType() == ACOSH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:985:9
                EnumSet followSet40 = null;
                if (outerFollowSet != null) {
                    followSet40 = follow_set$GroupingParser_ccc$985$9.clone();
                    followSet40.addAll(outerFollowSet);
                }
                consumeToken(ACOSH, false, followSet40);
            } else if (nextTokenType() == ACCURACY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:986:9
                EnumSet followSet49 = null;
                if (outerFollowSet != null) {
                    followSet49 = follow_set$GroupingParser_ccc$986$9.clone();
                    followSet49.addAll(outerFollowSet);
                }
                consumeToken(ACCURACY, false, followSet49);
            } else if (nextTokenType() == ADD) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:987:9
                EnumSet followSet58 = null;
                if (outerFollowSet != null) {
                    followSet58 = follow_set$GroupingParser_ccc$987$9.clone();
                    followSet58.addAll(outerFollowSet);
                }
                consumeToken(ADD, false, followSet58);
            } else if (nextTokenType() == ALIAS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:988:9
                EnumSet followSet67 = null;
                if (outerFollowSet != null) {
                    followSet67 = follow_set$GroupingParser_ccc$988$9.clone();
                    followSet67.addAll(outerFollowSet);
                }
                consumeToken(ALIAS, false, followSet67);
            } 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/grouping/GroupingParser.ccc:989:9
                EnumSet followSet76 = null;
                if (outerFollowSet != null) {
                    followSet76 = follow_set$GroupingParser_ccc$989$9.clone();
                    followSet76.addAll(outerFollowSet);
                }
                consumeToken(ALL, false, followSet76);
            } 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/grouping/GroupingParser.ccc:990:9
                EnumSet followSet85 = null;
                if (outerFollowSet != null) {
                    followSet85 = follow_set$GroupingParser_ccc$990$9.clone();
                    followSet85.addAll(outerFollowSet);
                }
                consumeToken(AND, false, followSet85);
            } else if (nextTokenType() == ARRAY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:991:9
                EnumSet followSet94 = null;
                if (outerFollowSet != null) {
                    followSet94 = follow_set$GroupingParser_ccc$991$9.clone();
                    followSet94.addAll(outerFollowSet);
                }
                consumeToken(ARRAY, false, followSet94);
            } 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/grouping/GroupingParser.ccc:992:9
                EnumSet followSet103 = null;
                if (outerFollowSet != null) {
                    followSet103 = follow_set$GroupingParser_ccc$992$9.clone();
                    followSet103.addAll(outerFollowSet);
                }
                consumeToken(AS, false, followSet103);
            } 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/grouping/GroupingParser.ccc:993:9
                EnumSet followSet112 = null;
                if (outerFollowSet != null) {
                    followSet112 = follow_set$GroupingParser_ccc$993$9.clone();
                    followSet112.addAll(outerFollowSet);
                }
                consumeToken(AT, false, followSet112);
            } else if (nextTokenType() == ASIN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:994:9
                EnumSet followSet121 = null;
                if (outerFollowSet != null) {
                    followSet121 = follow_set$GroupingParser_ccc$994$9.clone();
                    followSet121.addAll(outerFollowSet);
                }
                consumeToken(ASIN, false, followSet121);
            } else if (nextTokenType() == ASINH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:995:9
                EnumSet followSet130 = null;
                if (outerFollowSet != null) {
                    followSet130 = follow_set$GroupingParser_ccc$995$9.clone();
                    followSet130.addAll(outerFollowSet);
                }
                consumeToken(ASINH, false, followSet130);
            } else if (nextTokenType() == ATAN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:996:9
                EnumSet followSet139 = null;
                if (outerFollowSet != null) {
                    followSet139 = follow_set$GroupingParser_ccc$996$9.clone();
                    followSet139.addAll(outerFollowSet);
                }
                consumeToken(ATAN, false, followSet139);
            } else if (nextTokenType() == ATANH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:997:9
                EnumSet followSet148 = null;
                if (outerFollowSet != null) {
                    followSet148 = follow_set$GroupingParser_ccc$997$9.clone();
                    followSet148.addAll(outerFollowSet);
                }
                consumeToken(ATANH, false, followSet148);
            } else if (nextTokenType() == ATTRIBUTE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:998:9
                EnumSet followSet157 = null;
                if (outerFollowSet != null) {
                    followSet157 = follow_set$GroupingParser_ccc$998$9.clone();
                    followSet157.addAll(outerFollowSet);
                }
                consumeToken(ATTRIBUTE, false, followSet157);
            } else if (nextTokenType() == AVG) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:999:9
                EnumSet followSet166 = null;
                if (outerFollowSet != null) {
                    followSet166 = follow_set$GroupingParser_ccc$999$9.clone();
                    followSet166.addAll(outerFollowSet);
                }
                consumeToken(AVG, false, followSet166);
            } else if (nextTokenType() == BUCKET) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1000:9
                EnumSet followSet175 = null;
                if (outerFollowSet != null) {
                    followSet175 = follow_set$GroupingParser_ccc$1000$9.clone();
                    followSet175.addAll(outerFollowSet);
                }
                consumeToken(BUCKET, false, followSet175);
            } else if (nextTokenType() == CAT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1001:9
                EnumSet followSet184 = null;
                if (outerFollowSet != null) {
                    followSet184 = follow_set$GroupingParser_ccc$1001$9.clone();
                    followSet184.addAll(outerFollowSet);
                }
                consumeToken(CAT, false, followSet184);
            } else if (nextTokenType() == CBRT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1002:9
                EnumSet followSet193 = null;
                if (outerFollowSet != null) {
                    followSet193 = follow_set$GroupingParser_ccc$1002$9.clone();
                    followSet193.addAll(outerFollowSet);
                }
                consumeToken(CBRT, false, followSet193);
            } else if (nextTokenType() == COS) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1003:9
                EnumSet followSet202 = null;
                if (outerFollowSet != null) {
                    followSet202 = follow_set$GroupingParser_ccc$1003$9.clone();
                    followSet202.addAll(outerFollowSet);
                }
                consumeToken(COS, false, followSet202);
            } else if (nextTokenType() == COSH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1004:9
                EnumSet followSet211 = null;
                if (outerFollowSet != null) {
                    followSet211 = follow_set$GroupingParser_ccc$1004$9.clone();
                    followSet211.addAll(outerFollowSet);
                }
                consumeToken(COSH, false, followSet211);
            } 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/grouping/GroupingParser.ccc:1005:9
                EnumSet followSet220 = null;
                if (outerFollowSet != null) {
                    followSet220 = follow_set$GroupingParser_ccc$1005$9.clone();
                    followSet220.addAll(outerFollowSet);
                }
                consumeToken(COUNT, false, followSet220);
            } else if (nextTokenType() == DEBUGWAIT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1006:9
                EnumSet followSet229 = null;
                if (outerFollowSet != null) {
                    followSet229 = follow_set$GroupingParser_ccc$1006$9.clone();
                    followSet229.addAll(outerFollowSet);
                }
                consumeToken(DEBUGWAIT, false, followSet229);
            } 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/grouping/GroupingParser.ccc:1007:9
                EnumSet followSet238 = null;
                if (outerFollowSet != null) {
                    followSet238 = follow_set$GroupingParser_ccc$1007$9.clone();
                    followSet238.addAll(outerFollowSet);
                }
                consumeToken(DIV, false, followSet238);
            } else if (nextTokenType() == DOCIDNSSPECIFIC) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1008:9
                EnumSet followSet247 = null;
                if (outerFollowSet != null) {
                    followSet247 = follow_set$GroupingParser_ccc$1008$9.clone();
                    followSet247.addAll(outerFollowSet);
                }
                consumeToken(DOCIDNSSPECIFIC, false, followSet247);
            } 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/grouping/GroupingParser.ccc:1009:9
                EnumSet followSet256 = null;
                if (outerFollowSet != null) {
                    followSet256 = follow_set$GroupingParser_ccc$1009$9.clone();
                    followSet256.addAll(outerFollowSet);
                }
                consumeToken(EACH, false, followSet256);
            } else if (nextTokenType() == EXP) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1010:9
                EnumSet followSet265 = null;
                if (outerFollowSet != null) {
                    followSet265 = follow_set$GroupingParser_ccc$1010$9.clone();
                    followSet265.addAll(outerFollowSet);
                }
                consumeToken(EXP, false, followSet265);
            } else if (nextTokenType() == FIXEDWIDTH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1011:9
                EnumSet followSet274 = null;
                if (outerFollowSet != null) {
                    followSet274 = follow_set$GroupingParser_ccc$1011$9.clone();
                    followSet274.addAll(outerFollowSet);
                }
                consumeToken(FIXEDWIDTH, false, followSet274);
            } else if (nextTokenType() == FLOOR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1012:9
                EnumSet followSet283 = null;
                if (outerFollowSet != null) {
                    followSet283 = follow_set$GroupingParser_ccc$1012$9.clone();
                    followSet283.addAll(outerFollowSet);
                }
                consumeToken(FLOOR, false, followSet283);
            } else if (nextTokenType() == GROUP) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1013:9
                EnumSet followSet292 = null;
                if (outerFollowSet != null) {
                    followSet292 = follow_set$GroupingParser_ccc$1013$9.clone();
                    followSet292.addAll(outerFollowSet);
                }
                consumeToken(GROUP, false, followSet292);
            } else if (nextTokenType() == HINT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1014:9
                EnumSet followSet301 = null;
                if (outerFollowSet != null) {
                    followSet301 = follow_set$GroupingParser_ccc$1014$9.clone();
                    followSet301.addAll(outerFollowSet);
                }
                consumeToken(HINT, false, followSet301);
            } else if (nextTokenType() == HYPOT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1015:9
                EnumSet followSet310 = null;
                if (outerFollowSet != null) {
                    followSet310 = follow_set$GroupingParser_ccc$1015$9.clone();
                    followSet310.addAll(outerFollowSet);
                }
                consumeToken(HYPOT, false, followSet310);
            } 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/grouping/GroupingParser.ccc:1016:9
                EnumSet followSet319 = null;
                if (outerFollowSet != null) {
                    followSet319 = follow_set$GroupingParser_ccc$1016$9.clone();
                    followSet319.addAll(outerFollowSet);
                }
                consumeToken(IDENTIFIER, false, followSet319);
            } else if (nextTokenType() == LOG) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1017:9
                EnumSet followSet328 = null;
                if (outerFollowSet != null) {
                    followSet328 = follow_set$GroupingParser_ccc$1017$9.clone();
                    followSet328.addAll(outerFollowSet);
                }
                consumeToken(LOG, false, followSet328);
            } else if (nextTokenType() == LOG1P) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1018:9
                EnumSet followSet337 = null;
                if (outerFollowSet != null) {
                    followSet337 = follow_set$GroupingParser_ccc$1018$9.clone();
                    followSet337.addAll(outerFollowSet);
                }
                consumeToken(LOG1P, false, followSet337);
            } else if (nextTokenType() == LOG10) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1019:9
                EnumSet followSet346 = null;
                if (outerFollowSet != null) {
                    followSet346 = follow_set$GroupingParser_ccc$1019$9.clone();
                    followSet346.addAll(outerFollowSet);
                }
                consumeToken(LOG10, false, followSet346);
            } else if (nextTokenType() == MATH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1020:9
                EnumSet followSet355 = null;
                if (outerFollowSet != null) {
                    followSet355 = follow_set$GroupingParser_ccc$1020$9.clone();
                    followSet355.addAll(outerFollowSet);
                }
                consumeToken(MATH, false, followSet355);
            } else if (nextTokenType() == MAX) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1021:9
                EnumSet followSet364 = null;
                if (outerFollowSet != null) {
                    followSet364 = follow_set$GroupingParser_ccc$1021$9.clone();
                    followSet364.addAll(outerFollowSet);
                }
                consumeToken(MAX, false, followSet364);
            } else if (nextTokenType() == MD5) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1022:9
                EnumSet followSet373 = null;
                if (outerFollowSet != null) {
                    followSet373 = follow_set$GroupingParser_ccc$1022$9.clone();
                    followSet373.addAll(outerFollowSet);
                }
                consumeToken(MD5, false, followSet373);
            } else if (nextTokenType() == MIN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1023:9
                EnumSet followSet382 = null;
                if (outerFollowSet != null) {
                    followSet382 = follow_set$GroupingParser_ccc$1023$9.clone();
                    followSet382.addAll(outerFollowSet);
                }
                consumeToken(MIN, false, followSet382);
            } else if (nextTokenType() == MOD) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1024:9
                EnumSet followSet391 = null;
                if (outerFollowSet != null) {
                    followSet391 = follow_set$GroupingParser_ccc$1024$9.clone();
                    followSet391.addAll(outerFollowSet);
                }
                consumeToken(MOD, false, followSet391);
            } else if (nextTokenType() == MUL) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1025:9
                EnumSet followSet400 = null;
                if (outerFollowSet != null) {
                    followSet400 = follow_set$GroupingParser_ccc$1025$9.clone();
                    followSet400.addAll(outerFollowSet);
                }
                consumeToken(MUL, false, followSet400);
            } else if (nextTokenType() == NEG) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1026:9
                EnumSet followSet409 = null;
                if (outerFollowSet != null) {
                    followSet409 = follow_set$GroupingParser_ccc$1026$9.clone();
                    followSet409.addAll(outerFollowSet);
                }
                consumeToken(NEG, false, followSet409);
            } else if (nextTokenType() == NORMALIZESUBJECT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1027:9
                EnumSet followSet418 = null;
                if (outerFollowSet != null) {
                    followSet418 = follow_set$GroupingParser_ccc$1027$9.clone();
                    followSet418.addAll(outerFollowSet);
                }
                consumeToken(NORMALIZESUBJECT, false, followSet418);
            } else if (nextTokenType() == NOW) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1028:9
                EnumSet followSet427 = null;
                if (outerFollowSet != null) {
                    followSet427 = follow_set$GroupingParser_ccc$1028$9.clone();
                    followSet427.addAll(outerFollowSet);
                }
                consumeToken(NOW, false, followSet427);
            } 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/grouping/GroupingParser.ccc:1029:9
                EnumSet followSet436 = null;
                if (outerFollowSet != null) {
                    followSet436 = follow_set$GroupingParser_ccc$1029$9.clone();
                    followSet436.addAll(outerFollowSet);
                }
                consumeToken(OR, false, followSet436);
            } 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/grouping/GroupingParser.ccc:1030:9
                EnumSet followSet445 = null;
                if (outerFollowSet != null) {
                    followSet445 = follow_set$GroupingParser_ccc$1030$9.clone();
                    followSet445.addAll(outerFollowSet);
                }
                consumeToken(ORDER, false, followSet445);
            } 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/grouping/GroupingParser.ccc:1031:9
                EnumSet followSet454 = null;
                if (outerFollowSet != null) {
                    followSet454 = follow_set$GroupingParser_ccc$1031$9.clone();
                    followSet454.addAll(outerFollowSet);
                }
                consumeToken(OUTPUT, false, followSet454);
            } else if (nextTokenType() == POW) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1032:9
                EnumSet followSet463 = null;
                if (outerFollowSet != null) {
                    followSet463 = follow_set$GroupingParser_ccc$1032$9.clone();
                    followSet463.addAll(outerFollowSet);
                }
                consumeToken(POW, false, followSet463);
            } else if (nextTokenType() == PRECISION) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1033:9
                EnumSet followSet472 = null;
                if (outerFollowSet != null) {
                    followSet472 = follow_set$GroupingParser_ccc$1033$9.clone();
                    followSet472.addAll(outerFollowSet);
                }
                consumeToken(PRECISION, false, followSet472);
            } else if (nextTokenType() == PREDEFINED) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1034:9
                EnumSet followSet481 = null;
                if (outerFollowSet != null) {
                    followSet481 = follow_set$GroupingParser_ccc$1034$9.clone();
                    followSet481.addAll(outerFollowSet);
                }
                consumeToken(PREDEFINED, false, followSet481);
            } else if (nextTokenType() == RELEVANCE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1035:9
                EnumSet followSet490 = null;
                if (outerFollowSet != null) {
                    followSet490 = follow_set$GroupingParser_ccc$1035$9.clone();
                    followSet490.addAll(outerFollowSet);
                }
                consumeToken(RELEVANCE, false, followSet490);
            } else if (nextTokenType() == REVERSE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1036:9
                EnumSet followSet499 = null;
                if (outerFollowSet != null) {
                    followSet499 = follow_set$GroupingParser_ccc$1036$9.clone();
                    followSet499.addAll(outerFollowSet);
                }
                consumeToken(REVERSE, false, followSet499);
            } else if (nextTokenType() == SIN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1037:9
                EnumSet followSet508 = null;
                if (outerFollowSet != null) {
                    followSet508 = follow_set$GroupingParser_ccc$1037$9.clone();
                    followSet508.addAll(outerFollowSet);
                }
                consumeToken(SIN, false, followSet508);
            } else if (nextTokenType() == SINH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1038:9
                EnumSet followSet517 = null;
                if (outerFollowSet != null) {
                    followSet517 = follow_set$GroupingParser_ccc$1038$9.clone();
                    followSet517.addAll(outerFollowSet);
                }
                consumeToken(SINH, false, followSet517);
            } else if (nextTokenType() == SIZE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1039:9
                EnumSet followSet526 = null;
                if (outerFollowSet != null) {
                    followSet526 = follow_set$GroupingParser_ccc$1039$9.clone();
                    followSet526.addAll(outerFollowSet);
                }
                consumeToken(SIZE, false, followSet526);
            } else if (nextTokenType() == SORT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1040:9
                EnumSet followSet535 = null;
                if (outerFollowSet != null) {
                    followSet535 = follow_set$GroupingParser_ccc$1040$9.clone();
                    followSet535.addAll(outerFollowSet);
                }
                consumeToken(SORT, false, followSet535);
            } else if (nextTokenType() == INTERPOLATEDLOOKUP) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1041:9
                EnumSet followSet544 = null;
                if (outerFollowSet != null) {
                    followSet544 = follow_set$GroupingParser_ccc$1041$9.clone();
                    followSet544.addAll(outerFollowSet);
                }
                consumeToken(INTERPOLATEDLOOKUP, false, followSet544);
            } else if (nextTokenType() == SQRT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1042:9
                EnumSet followSet553 = null;
                if (outerFollowSet != null) {
                    followSet553 = follow_set$GroupingParser_ccc$1042$9.clone();
                    followSet553.addAll(outerFollowSet);
                }
                consumeToken(SQRT, false, followSet553);
            } else if (nextTokenType() == STDDEV) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1043:9
                EnumSet followSet562 = null;
                if (outerFollowSet != null) {
                    followSet562 = follow_set$GroupingParser_ccc$1043$9.clone();
                    followSet562.addAll(outerFollowSet);
                }
                consumeToken(STDDEV, false, followSet562);
            } else if (nextTokenType() == STRCAT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1044:9
                EnumSet followSet571 = null;
                if (outerFollowSet != null) {
                    followSet571 = follow_set$GroupingParser_ccc$1044$9.clone();
                    followSet571.addAll(outerFollowSet);
                }
                consumeToken(STRCAT, false, followSet571);
            } else if (nextTokenType() == STRLEN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1045:9
                EnumSet followSet580 = null;
                if (outerFollowSet != null) {
                    followSet580 = follow_set$GroupingParser_ccc$1045$9.clone();
                    followSet580.addAll(outerFollowSet);
                }
                consumeToken(STRLEN, false, followSet580);
            } else if (nextTokenType() == SUB) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1046:9
                EnumSet followSet589 = null;
                if (outerFollowSet != null) {
                    followSet589 = follow_set$GroupingParser_ccc$1046$9.clone();
                    followSet589.addAll(outerFollowSet);
                }
                consumeToken(SUB, false, followSet589);
            } else if (nextTokenType() == SUM) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1047:9
                EnumSet followSet598 = null;
                if (outerFollowSet != null) {
                    followSet598 = follow_set$GroupingParser_ccc$1047$9.clone();
                    followSet598.addAll(outerFollowSet);
                }
                consumeToken(SUM, false, followSet598);
            } else if (nextTokenType() == SUMMARY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1048:9
                EnumSet followSet607 = null;
                if (outerFollowSet != null) {
                    followSet607 = follow_set$GroupingParser_ccc$1048$9.clone();
                    followSet607.addAll(outerFollowSet);
                }
                consumeToken(SUMMARY, false, followSet607);
            } else if (nextTokenType() == TAN) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1049:9
                EnumSet followSet616 = null;
                if (outerFollowSet != null) {
                    followSet616 = follow_set$GroupingParser_ccc$1049$9.clone();
                    followSet616.addAll(outerFollowSet);
                }
                consumeToken(TAN, false, followSet616);
            } else if (nextTokenType() == TANH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1050:9
                EnumSet followSet625 = null;
                if (outerFollowSet != null) {
                    followSet625 = follow_set$GroupingParser_ccc$1050$9.clone();
                    followSet625.addAll(outerFollowSet);
                }
                consumeToken(TANH, false, followSet625);
            } else if (nextTokenType() == TIME) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1051:9
                EnumSet followSet634 = null;
                if (outerFollowSet != null) {
                    followSet634 = follow_set$GroupingParser_ccc$1051$9.clone();
                    followSet634.addAll(outerFollowSet);
                }
                consumeToken(TIME, false, followSet634);
            } else if (nextTokenType() == TIME_DATE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1052:9
                EnumSet followSet643 = null;
                if (outerFollowSet != null) {
                    followSet643 = follow_set$GroupingParser_ccc$1052$9.clone();
                    followSet643.addAll(outerFollowSet);
                }
                consumeToken(TIME_DATE, false, followSet643);
            } else if (nextTokenType() == TIME_DAYOFMONTH) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1053:9
                EnumSet followSet652 = null;
                if (outerFollowSet != null) {
                    followSet652 = follow_set$GroupingParser_ccc$1053$9.clone();
                    followSet652.addAll(outerFollowSet);
                }
                consumeToken(TIME_DAYOFMONTH, false, followSet652);
            } else if (nextTokenType() == TIME_DAYOFWEEK) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1054:9
                EnumSet followSet661 = null;
                if (outerFollowSet != null) {
                    followSet661 = follow_set$GroupingParser_ccc$1054$9.clone();
                    followSet661.addAll(outerFollowSet);
                }
                consumeToken(TIME_DAYOFWEEK, false, followSet661);
            } else if (nextTokenType() == TIME_DAYOFYEAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1055:9
                EnumSet followSet670 = null;
                if (outerFollowSet != null) {
                    followSet670 = follow_set$GroupingParser_ccc$1055$9.clone();
                    followSet670.addAll(outerFollowSet);
                }
                consumeToken(TIME_DAYOFYEAR, false, followSet670);
            } else if (nextTokenType() == TIME_HOUROFDAY) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1056:9
                EnumSet followSet679 = null;
                if (outerFollowSet != null) {
                    followSet679 = follow_set$GroupingParser_ccc$1056$9.clone();
                    followSet679.addAll(outerFollowSet);
                }
                consumeToken(TIME_HOUROFDAY, false, followSet679);
            } else if (nextTokenType() == TIME_MINUTEOFHOUR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1057:9
                EnumSet followSet688 = null;
                if (outerFollowSet != null) {
                    followSet688 = follow_set$GroupingParser_ccc$1057$9.clone();
                    followSet688.addAll(outerFollowSet);
                }
                consumeToken(TIME_MINUTEOFHOUR, false, followSet688);
            } else if (nextTokenType() == TIME_MONTHOFYEAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1058:9
                EnumSet followSet697 = null;
                if (outerFollowSet != null) {
                    followSet697 = follow_set$GroupingParser_ccc$1058$9.clone();
                    followSet697.addAll(outerFollowSet);
                }
                consumeToken(TIME_MONTHOFYEAR, false, followSet697);
            } else if (nextTokenType() == TIME_SECONDOFMINUTE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1059:9
                EnumSet followSet706 = null;
                if (outerFollowSet != null) {
                    followSet706 = follow_set$GroupingParser_ccc$1059$9.clone();
                    followSet706.addAll(outerFollowSet);
                }
                consumeToken(TIME_SECONDOFMINUTE, false, followSet706);
            } else if (nextTokenType() == TIME_YEAR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1060:9
                EnumSet followSet715 = null;
                if (outerFollowSet != null) {
                    followSet715 = follow_set$GroupingParser_ccc$1060$9.clone();
                    followSet715.addAll(outerFollowSet);
                }
                consumeToken(TIME_YEAR, false, followSet715);
            } else if (nextTokenType() == TODOUBLE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1061:9
                EnumSet followSet724 = null;
                if (outerFollowSet != null) {
                    followSet724 = follow_set$GroupingParser_ccc$1061$9.clone();
                    followSet724.addAll(outerFollowSet);
                }
                consumeToken(TODOUBLE, false, followSet724);
            } else if (nextTokenType() == TOLONG) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1062:9
                EnumSet followSet733 = null;
                if (outerFollowSet != null) {
                    followSet733 = follow_set$GroupingParser_ccc$1062$9.clone();
                    followSet733.addAll(outerFollowSet);
                }
                consumeToken(TOLONG, false, followSet733);
            } else if (nextTokenType() == TORAW) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1063:9
                EnumSet followSet742 = null;
                if (outerFollowSet != null) {
                    followSet742 = follow_set$GroupingParser_ccc$1063$9.clone();
                    followSet742.addAll(outerFollowSet);
                }
                consumeToken(TORAW, false, followSet742);
            } else if (nextTokenType() == TOSTRING) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1064:9
                EnumSet followSet751 = null;
                if (outerFollowSet != null) {
                    followSet751 = follow_set$GroupingParser_ccc$1064$9.clone();
                    followSet751.addAll(outerFollowSet);
                }
                consumeToken(TOSTRING, false, followSet751);
            } else if (nextTokenType() == TRUE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1065:9
                EnumSet followSet760 = null;
                if (outerFollowSet != null) {
                    followSet760 = follow_set$GroupingParser_ccc$1065$9.clone();
                    followSet760.addAll(outerFollowSet);
                }
                consumeToken(TRUE, false, followSet760);
            } 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/grouping/GroupingParser.ccc:1066:9
                EnumSet followSet769 = null;
                if (outerFollowSet != null) {
                    followSet769 = follow_set$GroupingParser_ccc$1066$9.clone();
                    followSet769.addAll(outerFollowSet);
                }
                consumeToken(FALSE, false, followSet769);
            } else if (nextTokenType() == UCA) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1067:9
                EnumSet followSet778 = null;
                if (outerFollowSet != null) {
                    followSet778 = follow_set$GroupingParser_ccc$1067$9.clone();
                    followSet778.addAll(outerFollowSet);
                }
                consumeToken(UCA, false, followSet778);
            } 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/grouping/GroupingParser.ccc:1068:9
                EnumSet followSet787 = null;
                if (outerFollowSet != null) {
                    followSet787 = follow_set$GroupingParser_ccc$1068$9.clone();
                    followSet787.addAll(outerFollowSet);
                }
                consumeToken(WHERE, false, followSet787);
            } else if (nextTokenType() == X) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1069:9
                EnumSet followSet796 = null;
                if (outerFollowSet != null) {
                    followSet796 = follow_set$GroupingParser_ccc$1069$9.clone();
                    followSet796.addAll(outerFollowSet);
                }
                consumeToken(X, false, followSet796);
            } else if (nextTokenType() == XOR) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1070:9
                EnumSet followSet805 = null;
                if (outerFollowSet != null) {
                    followSet805 = follow_set$GroupingParser_ccc$1070$9.clone();
                    followSet805.addAll(outerFollowSet);
                }
                consumeToken(XOR, false, followSet805);
            } else if (nextTokenType() == XORBIT) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1071:9
                EnumSet followSet814 = null;
                if (outerFollowSet != null) {
                    followSet814 = follow_set$GroupingParser_ccc$1071$9.clone();
                    followSet814.addAll(outerFollowSet);
                }
                consumeToken(XORBIT, false, followSet814);
            } else if (nextTokenType() == Y) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1072:9
                EnumSet followSet823 = null;
                if (outerFollowSet != null) {
                    followSet823 = follow_set$GroupingParser_ccc$1072$9.clone();
                    followSet823.addAll(outerFollowSet);
                }
                consumeToken(Y, false, followSet823);
            } else if (nextTokenType() == ZCURVE) {
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1073:9
                EnumSet followSet832 = null;
                if (outerFollowSet != null) {
                    followSet832 = follow_set$GroupingParser_ccc$1073$9.clone();
                    followSet832.addAll(outerFollowSet);
                }
                consumeToken(ZCURVE, false, followSet832);
            } else {
                pushOntoCallStack("identifierStr", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 984, 9);
                throw new ParseException(lastConsumedToken, first_set$GroupingParser_ccc$984$9$, parsingStack);
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1073:20
            ret = lastConsumedToken.toString();
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1073:60
            pushOntoCallStack("identifierStr", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1073, 60);
            try {
                spaceElm();
            } finally {
                popCallStack();
            }
            // Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1074:5
            return ret;
        } 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/grouping/GroupingParser.ccc:1076:1
    final public void addElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "addElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1076:1
        addElm thisProduction = null;
        if (buildTree) {
            thisProduction = new addElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$addElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1077:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1077$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(INFIX_ADD, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1077:19
            pushOntoCallStack("addElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1077, 19);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1079:1
    final public void commaElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "commaElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1079:1
        commaElm thisProduction = null;
        if (buildTree) {
            thisProduction = new commaElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$commaElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1080:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1080$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(COMMA, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1080:15
            pushOntoCallStack("commaElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1080, 15);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1082:1
    final public void divElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "divElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1082:1
        divElm thisProduction = null;
        if (buildTree) {
            thisProduction = new divElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$divElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1083:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1083$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(INFIX_DIV, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1083:19
            pushOntoCallStack("divElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1083, 19);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1085:1
    final public void eqElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "eqElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1085:1
        eqElm thisProduction = null;
        if (buildTree) {
            thisProduction = new eqElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$eqElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1086:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1086$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(EQ, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1086:12
            pushOntoCallStack("eqElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1086, 12);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1088:1
    final public void ltElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "ltElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1088:1
        ltElm thisProduction = null;
        if (buildTree) {
            thisProduction = new ltElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$ltElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1089:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1089$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(LT, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1089:12
            pushOntoCallStack("ltElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1089, 12);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1091:1
    final public void gtElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "gtElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1091:1
        gtElm thisProduction = null;
        if (buildTree) {
            thisProduction = new gtElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$gtElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1092:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1092$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(GT, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1092:12
            pushOntoCallStack("gtElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1092, 12);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1094:1
    final public void infElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "infElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1094:1
        infElm thisProduction = null;
        if (buildTree) {
            thisProduction = new infElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$infElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1095:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1095$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(INF, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1095:13
            pushOntoCallStack("infElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1095, 13);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1097:1
    final public void neginfElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "neginfElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1097:1
        neginfElm thisProduction = null;
        if (buildTree) {
            thisProduction = new neginfElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$neginfElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1098:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1098$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(NEGINF, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1098:16
            pushOntoCallStack("neginfElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1098, 16);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1100:1
    final public void lbracketElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "lbracketElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1100:1
        lbracketElm thisProduction = null;
        if (buildTree) {
            thisProduction = new lbracketElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$lbracketElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1101:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1101$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(LBRACKET, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1101:18
            pushOntoCallStack("lbracketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1101, 18);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1103:1
    final public void rbracketElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "rbracketElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1103:1
        rbracketElm thisProduction = null;
        if (buildTree) {
            thisProduction = new rbracketElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$rbracketElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1104:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1104$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(RBRACKET, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1104:18
            pushOntoCallStack("rbracketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1104, 18);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1106:1
    final public void lbraceElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "lbraceElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1106:1
        lbraceElm thisProduction = null;
        if (buildTree) {
            thisProduction = new lbraceElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$lbraceElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1107:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1107$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(LBRACE, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1107:16
            pushOntoCallStack("lbraceElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1107, 16);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1109:1
    final public void lcurlyElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "lcurlyElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1109:1
        lcurlyElm thisProduction = null;
        if (buildTree) {
            thisProduction = new lcurlyElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$lcurlyElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1110:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1110$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(LCURLY, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1110:16
            pushOntoCallStack("lcurlyElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1110, 16);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1112:1
    final public void modElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "modElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1112:1
        modElm thisProduction = null;
        if (buildTree) {
            thisProduction = new modElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$modElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1113:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1113$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(INFIX_MOD, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1113:19
            pushOntoCallStack("modElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1113, 19);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1115:1
    final public void mulElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "mulElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1115:1
        mulElm thisProduction = null;
        if (buildTree) {
            thisProduction = new mulElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$mulElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1116:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1116$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(INFIX_MUL, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1116:19
            pushOntoCallStack("mulElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1116, 19);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1118:1
    final public void rbraceElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "rbraceElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1118:1
        rbraceElm thisProduction = null;
        if (buildTree) {
            thisProduction = new rbraceElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$rbraceElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1119:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1119$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(RBRACE, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1119:16
            pushOntoCallStack("rbraceElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1119, 16);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1121:1
    final public void rcurlyElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "rcurlyElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1121:1
        rcurlyElm thisProduction = null;
        if (buildTree) {
            thisProduction = new rcurlyElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$rcurlyElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1122:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1122$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(RCURLY, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1122:16
            pushOntoCallStack("rcurlyElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1122, 16);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1124:1
    final public void subElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "subElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1124:1
        subElm thisProduction = null;
        if (buildTree) {
            thisProduction = new subElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$subElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1125:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1125$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(INFIX_SUB, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1125:19
            pushOntoCallStack("subElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1125, 19);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1127:1
    final public void scolonElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "scolonElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1127:1
        scolonElm thisProduction = null;
        if (buildTree) {
            thisProduction = new scolonElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            if (pendingRecovery) {
                recover$scolonElm();
            }
            // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1128:7
            EnumSet followSet20 = null;
            if (outerFollowSet != null) {
                followSet20 = follow_set$GroupingParser_ccc$1128$7.clone();
                followSet20.addAll(outerFollowSet);
            }
            consumeToken(SCOLON, false, followSet20);
            // Code for NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1128:16
            pushOntoCallStack("scolonElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1128, 16);
            try {
                spaceElm();
            } 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/grouping/GroupingParser.ccc:1130:1
    final public void spaceElm() {
        if (cancelled) throw new CancellationException();
        this.currentlyParsedProduction = "spaceElm";
        // Code for BNFProduction specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1130:1
        spaceElm thisProduction = null;
        if (buildTree) {
            thisProduction = new spaceElm();
            openNodeScope(thisProduction);
        }
        ParseException parseException3 = null;
        int callStackSize4 = parsingStack.size();
        try {
            // Code for ZeroOrMore specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1131:5
            while (true) {
                if (!(nextTokenType() == SPACE)) break;
                // Code for Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1131:7
                EnumSet followSet21 = null;
                if (outerFollowSet != null) {
                    followSet21 = follow_set$GroupingParser_ccc$1131$7.clone();
                    followSet21.addAll(outerFollowSet);
                }
                consumeToken(SPACE, false, followSet21);
            }
        } 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$requestList() {
        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$request() {
        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$root() {
        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$operation() {
        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$allOperation() {
        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$eachOperation() {
        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$whereElm() {
        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$expList() {
        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$expElm() {
        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$expAlias() {
        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$expMath() {
        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$value() {
        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$addFunction() {
        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$andFunction() {
        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$attributeValue() {
        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$attributeFunction() {
        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$arrayAtLookup() {
        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$interpolatedLookupElm() {
        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$avgExpression() {
        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$catFunction() {
        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$constantValue() {
        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$constantValueSigned() {
        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$infiniteNegativeValue() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == NEGINF) {
                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$infinitePositiveValue() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INF) {
                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$countAggregator() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == COUNT) {
                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$debugWaitFunction() {
        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$divFunction() {
        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$docIdNsSpecificValue() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == DOCIDNSSPECIFIC) {
                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$fixedWidthFunction() {
        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$maxExpression() {
        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$md5Function() {
        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$minExpression() {
        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$modFunction() {
        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$mulFunction() {
        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$negFunction() {
        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$normalizeSubjectFunction() {
        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$nowFunction() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == NOW) {
                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$orFunction() {
        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$predefinedFunction() {
        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$relevanceValue() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == RELEVANCE) {
                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$reverseFunction() {
        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$sizeFunction() {
        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$sortFunction() {
        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$stringValue() {
        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$rawValue() {
        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$stddevAggregator() {
        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$stringValueUnquoted() {
        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$strCatFunction() {
        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$strLenFunction() {
        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$subFunction() {
        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$sumAggregator() {
        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$summaryValue() {
        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$timeFunction() {
        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$mathFunction() {
        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$ucaFunction() {
        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$zcurveFunction() {
        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$toDoubleFunction() {
        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$toLongFunction() {
        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$toRawFunction() {
        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$toStringFunction() {
        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$xorExpression() {
        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$xorBitFunction() {
        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$bucketElm() {
        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$signedNumber() {
        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$number() {
        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$booleanValue() {
        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$byteValue() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INTEGER || nextTokenType == STRING) {
                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$stringElm() {
        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$identifierStr() {
        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$addElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INFIX_ADD) {
                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$commaElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == COMMA) {
                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$divElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INFIX_DIV) {
                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$eqElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == EQ) {
                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$ltElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (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$gtElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == GT) {
                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$infElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INF) {
                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$neginfElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == NEGINF) {
                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$lbracketElm() {
        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$rbracketElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == RBRACKET) {
                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$lbraceElm() {
        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$lcurlyElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == LCURLY) {
                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$modElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INFIX_MOD) {
                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$mulElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INFIX_MUL) {
                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$rbraceElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == RBRACE) {
                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$rcurlyElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == RCURLY) {
                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$subElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == INFIX_SUB) {
                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$scolonElm() {
        Token initialToken = lastConsumedToken;
        java.util.List skippedTokens = new java.util.ArrayList<>();
        boolean success = false;
        while (lastConsumedToken.getType() != EOF) {
            if (nextTokenType() == SCOLON) {
                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$GroupingParser_ccc$220$7 = tokenTypeSet(ALL, EACH);
    private static final EnumSet first_set$GroupingParser_ccc$257$33$ = tokenTypeSet(INF, INTEGER, FLOAT);
    private static final EnumSet first_set$GroupingParser_ccc$311$7 = first_set$GroupingParser_ccc$311$7_init();

    private static EnumSet first_set$GroupingParser_ccc$311$7_init() {
        return tokenTypeSet(DOLLAR, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$312$7 = first_set$GroupingParser_ccc$312$7_init();

    private static EnumSet first_set$GroupingParser_ccc$312$7_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$324$9 = tokenTypeSet(INFIX_ADD, INFIX_DIV, INFIX_MOD, INFIX_MUL, INFIX_SUB);
    private static final EnumSet first_set$GroupingParser_ccc$324$11$ = tokenTypeSet(INFIX_ADD, INFIX_DIV, INFIX_MOD, INFIX_MUL, INFIX_SUB);
    private static final EnumSet first_set$GroupingParser_ccc$337$7 = first_set$GroupingParser_ccc$337$7_init();

    private static EnumSet first_set$GroupingParser_ccc$337$7_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$338$9 = first_set$GroupingParser_ccc$338$9_init();

    private static EnumSet first_set$GroupingParser_ccc$338$9_init() {
        return tokenTypeSet(LBRACE, ADD, AND, ARRAY, ATTRIBUTE, AVG, CAT, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, FIXEDWIDTH, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, PREDEFINED, RELEVANCE, REVERSE, SIZE, SORT, INTERPOLATEDLOOKUP, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TIME, TODOUBLE, TOLONG, TORAW, TOSTRING, UCA, XOR, XORBIT, ZCURVE, INTEGER, FLOAT, STRING);
    }

    private static final EnumSet first_set$GroupingParser_ccc$383$7 = first_set$GroupingParser_ccc$383$7_init();

    private static EnumSet first_set$GroupingParser_ccc$383$7_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$784$29 = first_set$GroupingParser_ccc$784$29_init();

    private static EnumSet first_set$GroupingParser_ccc$784$29_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$794$22$ = first_set$GroupingParser_ccc$794$22$_init();

    private static EnumSet first_set$GroupingParser_ccc$794$22$_init() {
        return tokenTypeSet(TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR);
    }

    private static final EnumSet first_set$GroupingParser_ccc$813$22 = first_set$GroupingParser_ccc$813$22_init();

    private static EnumSet first_set$GroupingParser_ccc$813$22_init() {
        return tokenTypeSet(ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH, CBRT, COS, COSH, EXP, FLOOR, HYPOT, LOG, LOG1P, LOG10, POW, SIN, SINH, SQRT, TAN, TANH);
    }

    private static final EnumSet first_set$GroupingParser_ccc$813$26$ = tokenTypeSet(HYPOT, POW);
    private static final EnumSet first_set$GroupingParser_ccc$816$22 = first_set$GroupingParser_ccc$816$22_init();

    private static EnumSet first_set$GroupingParser_ccc$816$22_init() {
        return tokenTypeSet(ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH, CBRT, COS, COSH, EXP, FLOOR, LOG, LOG1P, LOG10, SIN, SINH, SQRT, TAN, TANH);
    }

    private static final EnumSet first_set$GroupingParser_ccc$816$26$ = first_set$GroupingParser_ccc$816$26$_init();

    private static EnumSet first_set$GroupingParser_ccc$816$26$_init() {
        return tokenTypeSet(ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH, CBRT, COS, COSH, EXP, FLOOR, LOG, LOG1P, LOG10, SIN, SINH, SQRT, TAN, TANH);
    }

    private static final EnumSet first_set$GroupingParser_ccc$856$24$ = tokenTypeSet(X, Y);
    private static final EnumSet first_set$GroupingParser_ccc$923$18 = tokenTypeSet(LBRACE, LT, LBRACKET);
    private static final EnumSet first_set$GroupingParser_ccc$923$22$ = tokenTypeSet(LBRACE, LBRACKET);
    private static final EnumSet first_set$GroupingParser_ccc$926$20$ = first_set$GroupingParser_ccc$926$20$_init();

    private static EnumSet first_set$GroupingParser_ccc$926$20$_init() {
        return tokenTypeSet(INFIX_SUB, LCURLY, NEGINF, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$926$103 = first_set$GroupingParser_ccc$926$103_init();

    private static EnumSet first_set$GroupingParser_ccc$926$103_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$927$33$ = first_set$GroupingParser_ccc$927$33$_init();

    private static EnumSet first_set$GroupingParser_ccc$927$33$_init() {
        return tokenTypeSet(INFIX_SUB, LCURLY, INF, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$927$110 = first_set$GroupingParser_ccc$927$110_init();

    private static EnumSet first_set$GroupingParser_ccc$927$110_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$929$18 = tokenTypeSet(RBRACE, GT, RBRACKET);
    private static final EnumSet first_set$GroupingParser_ccc$929$22 = tokenTypeSet(RBRACE, GT);
    private static final EnumSet first_set$GroupingParser_ccc$942$38$ = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet first_set$GroupingParser_ccc$952$9$ = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet first_set$GroupingParser_ccc$961$9$ = tokenTypeSet(TRUE, FALSE);
    private static final EnumSet first_set$GroupingParser_ccc$965$7 = tokenTypeSet(INTEGER, STRING);
    private static final EnumSet first_set$GroupingParser_ccc$975$7$ = first_set$GroupingParser_ccc$975$7$_init();

    private static EnumSet first_set$GroupingParser_ccc$975$7$_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$975$7 = first_set$GroupingParser_ccc$975$7_init();

    private static EnumSet first_set$GroupingParser_ccc$975$7_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet first_set$GroupingParser_ccc$984$9$ = first_set$GroupingParser_ccc$984$9$_init();

    private static EnumSet first_set$GroupingParser_ccc$984$9$_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$188$7 = tokenTypeSet(ALL, EACH);
    private static final EnumSet follow_set$GroupingParser_ccc$188$16 = tokenTypeSet(EOF, SCOLON);
    private static final EnumSet follow_set$GroupingParser_ccc$188$47 = tokenTypeSet(ALL, EACH);
    private static final EnumSet follow_set$GroupingParser_ccc$188$57 = tokenTypeSet(EOF, SCOLON);
    private static final EnumSet follow_set$GroupingParser_ccc$188$89 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$GroupingParser_ccc$197$7 = tokenTypeSet(ALL, EACH);
    private static final EnumSet follow_set$GroupingParser_ccc$197$16 = tokenTypeSet(EOF);
    private static final EnumSet follow_set$GroupingParser_ccc$197$27 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$GroupingParser_ccc$207$7 = tokenTypeSet(WHERE);
    private static final EnumSet follow_set$GroupingParser_ccc$208$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$208$17 = follow_set$GroupingParser_ccc$208$17_init();

    private static EnumSet follow_set$GroupingParser_ccc$208$17_init() {
        return tokenTypeSet(DOLLAR, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$208$27 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$229$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$230$7 = follow_set$GroupingParser_ccc$230$7_init();

    private static EnumSet follow_set$GroupingParser_ccc$230$7_init() {
        return tokenTypeSet(RBRACE, ACCURACY, ALIAS, ALL, EACH, GROUP, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$230$17 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$240$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$241$7 = follow_set$GroupingParser_ccc$241$7_init();

    private static EnumSet follow_set$GroupingParser_ccc$241$7_init() {
        return tokenTypeSet(RBRACE, ACCURACY, ALIAS, ALL, EACH, GROUP, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$241$17 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$241$36 = tokenTypeSet(AS);
    private static final EnumSet follow_set$GroupingParser_ccc$242$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$242$14 = follow_set$GroupingParser_ccc$242$14_init();

    private static EnumSet follow_set$GroupingParser_ccc$242$14_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$242$24 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$253$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$253$21 = follow_set$GroupingParser_ccc$253$21_init();

    private static EnumSet follow_set$GroupingParser_ccc$253$21_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$253$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$253$79 = follow_set$GroupingParser_ccc$253$79_init();

    private static EnumSet follow_set$GroupingParser_ccc$253$79_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$254$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$254$21 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$254$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$254$74 = follow_set$GroupingParser_ccc$254$74_init();

    private static EnumSet follow_set$GroupingParser_ccc$254$74_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$255$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$255$21 = follow_set$GroupingParser_ccc$255$21_init();

    private static EnumSet follow_set$GroupingParser_ccc$255$21_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$255$31 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$255$51 = follow_set$GroupingParser_ccc$255$51_init();

    private static EnumSet follow_set$GroupingParser_ccc$255$51_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$255$60 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$255$81 = follow_set$GroupingParser_ccc$255$81_init();

    private static EnumSet follow_set$GroupingParser_ccc$255$81_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$256$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$256$21 = follow_set$GroupingParser_ccc$256$21_init();

    private static EnumSet follow_set$GroupingParser_ccc$256$21_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$256$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$256$77 = follow_set$GroupingParser_ccc$256$77_init();

    private static EnumSet follow_set$GroupingParser_ccc$256$77_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$257$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$257$21 = tokenTypeSet(INF, INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$257$33 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$257$70 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$257$99 = follow_set$GroupingParser_ccc$257$99_init();

    private static EnumSet follow_set$GroupingParser_ccc$257$99_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$265$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$265$21 = follow_set$GroupingParser_ccc$265$21_init();

    private static EnumSet follow_set$GroupingParser_ccc$265$21_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$265$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$265$76 = follow_set$GroupingParser_ccc$265$76_init();

    private static EnumSet follow_set$GroupingParser_ccc$265$76_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$266$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$266$21 = follow_set$GroupingParser_ccc$266$21_init();

    private static EnumSet follow_set$GroupingParser_ccc$266$21_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$266$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$266$76 = follow_set$GroupingParser_ccc$266$76_init();

    private static EnumSet follow_set$GroupingParser_ccc$266$76_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$267$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$267$21 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$267$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$267$74 = follow_set$GroupingParser_ccc$267$74_init();

    private static EnumSet follow_set$GroupingParser_ccc$267$74_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$268$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$268$21 = follow_set$GroupingParser_ccc$268$21_init();

    private static EnumSet follow_set$GroupingParser_ccc$268$21_init() {
        return tokenTypeSet(DOLLAR, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$268$31 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$268$77 = follow_set$GroupingParser_ccc$268$77_init();

    private static EnumSet follow_set$GroupingParser_ccc$268$77_init() {
        return tokenTypeSet(ACCURACY, ALIAS, ALL, EACH, HINT, MAX, ORDER, OUTPUT, PRECISION, WHERE);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$269$36 = tokenTypeSet(ALL, EACH);
    private static final EnumSet follow_set$GroupingParser_ccc$278$9 = follow_set$GroupingParser_ccc$278$9_init();

    private static EnumSet follow_set$GroupingParser_ccc$278$9_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$288$7 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$288$45 = follow_set$GroupingParser_ccc$288$45_init();

    private static EnumSet follow_set$GroupingParser_ccc$288$45_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$288$54 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$299$9 = follow_set$GroupingParser_ccc$299$9_init();

    private static EnumSet follow_set$GroupingParser_ccc$299$9_init() {
        return tokenTypeSet(DOLLAR, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$299$18 = follow_set$GroupingParser_ccc$299$18_init();

    private static EnumSet follow_set$GroupingParser_ccc$299$18_init() {
        return tokenTypeSet(DOLLAR, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$300$7 = tokenTypeSet(AS);
    private static final EnumSet follow_set$GroupingParser_ccc$301$9 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$301$14 = follow_set$GroupingParser_ccc$301$14_init();

    private static EnumSet follow_set$GroupingParser_ccc$301$14_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$301$24 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$311$9 = follow_set$GroupingParser_ccc$311$9_init();

    private static EnumSet follow_set$GroupingParser_ccc$311$9_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$311$18 = tokenTypeSet(EQ);
    private static final EnumSet follow_set$GroupingParser_ccc$311$40 = follow_set$GroupingParser_ccc$311$40_init();

    private static EnumSet follow_set$GroupingParser_ccc$311$40_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$323$7 = tokenTypeSet(INFIX_ADD, INFIX_DIV, INFIX_MOD, INFIX_MUL, INFIX_SUB);
    private static final EnumSet follow_set$GroupingParser_ccc$324$11 = follow_set$GroupingParser_ccc$324$11_init();

    private static EnumSet follow_set$GroupingParser_ccc$324$11_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$325$11 = follow_set$GroupingParser_ccc$325$11_init();

    private static EnumSet follow_set$GroupingParser_ccc$325$11_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$326$11 = follow_set$GroupingParser_ccc$326$11_init();

    private static EnumSet follow_set$GroupingParser_ccc$326$11_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$327$11 = follow_set$GroupingParser_ccc$327$11_init();

    private static EnumSet follow_set$GroupingParser_ccc$327$11_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$328$11 = follow_set$GroupingParser_ccc$328$11_init();

    private static EnumSet follow_set$GroupingParser_ccc$328$11_init() {
        return tokenTypeSet(LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$328$54 = tokenTypeSet(INFIX_ADD, INFIX_DIV, INFIX_MOD, INFIX_MUL, INFIX_SUB);
    private static final EnumSet follow_set$GroupingParser_ccc$338$11 = follow_set$GroupingParser_ccc$338$11_init();

    private static EnumSet follow_set$GroupingParser_ccc$338$11_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$338$21 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$393$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$393$13 = follow_set$GroupingParser_ccc$393$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$393$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$393$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$393$42 = follow_set$GroupingParser_ccc$393$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$393$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$393$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$393$72 = follow_set$GroupingParser_ccc$393$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$393$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$393$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$404$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$404$13 = follow_set$GroupingParser_ccc$404$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$404$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$404$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$404$42 = follow_set$GroupingParser_ccc$404$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$404$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$404$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$404$72 = follow_set$GroupingParser_ccc$404$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$404$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$404$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$418$7 = tokenTypeSet(DOT, LCURLY);
    private static final EnumSet follow_set$GroupingParser_ccc$419$19 = follow_set$GroupingParser_ccc$419$19_init();

    private static EnumSet follow_set$GroupingParser_ccc$419$19_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$419$76 = tokenTypeSet(DOT, LCURLY);
    private static final EnumSet follow_set$GroupingParser_ccc$421$13 = follow_set$GroupingParser_ccc$421$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$421$13_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$421$23 = tokenTypeSet(RCURLY);
    private static final EnumSet follow_set$GroupingParser_ccc$421$39 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$422$13 = tokenTypeSet(ATTRIBUTE);
    private static final EnumSet follow_set$GroupingParser_ccc$422$23 = tokenTypeSet(RCURLY);
    private static final EnumSet follow_set$GroupingParser_ccc$422$57 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$424$9 = follow_set$GroupingParser_ccc$424$9_init();

    private static EnumSet follow_set$GroupingParser_ccc$424$9_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$424$66 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$443$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$443$19 = follow_set$GroupingParser_ccc$443$19_init();

    private static EnumSet follow_set$GroupingParser_ccc$443$19_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$443$29 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$453$7 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$453$15 = tokenTypeSet(AT);
    private static final EnumSet follow_set$GroupingParser_ccc$453$21 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$453$26 = follow_set$GroupingParser_ccc$453$26_init();

    private static EnumSet follow_set$GroupingParser_ccc$453$26_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$453$36 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$453$57 = follow_set$GroupingParser_ccc$453$57_init();

    private static EnumSet follow_set$GroupingParser_ccc$453$57_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$453$66 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$465$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$465$28 = follow_set$GroupingParser_ccc$465$28_init();

    private static EnumSet follow_set$GroupingParser_ccc$465$28_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$465$38 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$465$59 = follow_set$GroupingParser_ccc$465$59_init();

    private static EnumSet follow_set$GroupingParser_ccc$465$59_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$465$68 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$477$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$477$13 = follow_set$GroupingParser_ccc$477$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$477$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$477$23 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$477$44 = follow_set$GroupingParser_ccc$477$44_init();

    private static EnumSet follow_set$GroupingParser_ccc$477$44_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$477$53 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$477$74 = follow_set$GroupingParser_ccc$477$74_init();

    private static EnumSet follow_set$GroupingParser_ccc$477$74_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$477$83 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$489$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$489$13 = follow_set$GroupingParser_ccc$489$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$489$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$489$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$489$42 = follow_set$GroupingParser_ccc$489$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$489$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$489$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$489$72 = follow_set$GroupingParser_ccc$489$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$489$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$489$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$524$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$524$15 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$534$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$534$19 = follow_set$GroupingParser_ccc$534$19_init();

    private static EnumSet follow_set$GroupingParser_ccc$534$19_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$534$29 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$534$47 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$535$28 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$535$46 = tokenTypeSet(TRUE, FALSE);
    private static final EnumSet follow_set$GroupingParser_ccc$536$28 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$547$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$547$13 = follow_set$GroupingParser_ccc$547$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$547$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$547$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$547$42 = follow_set$GroupingParser_ccc$547$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$547$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$547$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$547$72 = follow_set$GroupingParser_ccc$547$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$547$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$547$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$554$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$554$25 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$564$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$564$20 = follow_set$GroupingParser_ccc$564$20_init();

    private static EnumSet follow_set$GroupingParser_ccc$564$20_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$564$30 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$564$48 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$564$57 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$574$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$574$13 = follow_set$GroupingParser_ccc$574$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$574$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$574$23 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$574$44 = follow_set$GroupingParser_ccc$574$44_init();

    private static EnumSet follow_set$GroupingParser_ccc$574$44_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$574$53 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$574$74 = follow_set$GroupingParser_ccc$574$74_init();

    private static EnumSet follow_set$GroupingParser_ccc$574$74_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$574$83 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$586$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$586$13 = follow_set$GroupingParser_ccc$586$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$586$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$586$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$586$41 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$586$50 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$596$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$596$13 = follow_set$GroupingParser_ccc$596$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$596$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$596$23 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$596$44 = follow_set$GroupingParser_ccc$596$44_init();

    private static EnumSet follow_set$GroupingParser_ccc$596$44_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$596$53 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$596$74 = follow_set$GroupingParser_ccc$596$74_init();

    private static EnumSet follow_set$GroupingParser_ccc$596$74_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$596$83 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$608$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$608$13 = follow_set$GroupingParser_ccc$608$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$608$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$608$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$608$42 = follow_set$GroupingParser_ccc$608$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$608$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$608$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$608$72 = follow_set$GroupingParser_ccc$608$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$608$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$608$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$619$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$619$13 = follow_set$GroupingParser_ccc$619$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$619$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$619$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$619$42 = follow_set$GroupingParser_ccc$619$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$619$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$619$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$619$72 = follow_set$GroupingParser_ccc$619$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$619$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$619$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$629$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$629$13 = follow_set$GroupingParser_ccc$629$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$629$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$629$23 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$638$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$638$26 = follow_set$GroupingParser_ccc$638$26_init();

    private static EnumSet follow_set$GroupingParser_ccc$638$26_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$638$36 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$644$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$644$13 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$654$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$654$12 = follow_set$GroupingParser_ccc$654$12_init();

    private static EnumSet follow_set$GroupingParser_ccc$654$12_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$654$22 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$654$41 = follow_set$GroupingParser_ccc$654$41_init();

    private static EnumSet follow_set$GroupingParser_ccc$654$41_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$654$50 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$654$71 = follow_set$GroupingParser_ccc$654$71_init();

    private static EnumSet follow_set$GroupingParser_ccc$654$71_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$654$80 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$665$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$665$20 = follow_set$GroupingParser_ccc$665$20_init();

    private static EnumSet follow_set$GroupingParser_ccc$665$20_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$665$30 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$665$48 = tokenTypeSet(BUCKET);
    private static final EnumSet follow_set$GroupingParser_ccc$666$7 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$666$34 = tokenTypeSet(BUCKET);
    private static final EnumSet follow_set$GroupingParser_ccc$666$43 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$672$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$672$19 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$681$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$681$17 = follow_set$GroupingParser_ccc$681$17_init();

    private static EnumSet follow_set$GroupingParser_ccc$681$17_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$681$27 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$690$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$690$14 = follow_set$GroupingParser_ccc$690$14_init();

    private static EnumSet follow_set$GroupingParser_ccc$690$14_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$690$24 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$699$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$699$14 = follow_set$GroupingParser_ccc$699$14_init();

    private static EnumSet follow_set$GroupingParser_ccc$699$14_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$699$24 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$708$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$717$7 = tokenTypeSet(INTEGER, STRING);
    private static final EnumSet follow_set$GroupingParser_ccc$717$17 = tokenTypeSet(COMMA, RCURLY);
    private static final EnumSet follow_set$GroupingParser_ccc$717$37 = tokenTypeSet(INTEGER, STRING);
    private static final EnumSet follow_set$GroupingParser_ccc$717$46 = tokenTypeSet(COMMA, RCURLY);
    private static final EnumSet follow_set$GroupingParser_ccc$726$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$726$16 = follow_set$GroupingParser_ccc$726$16_init();

    private static EnumSet follow_set$GroupingParser_ccc$726$16_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$726$26 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$745$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$745$16 = follow_set$GroupingParser_ccc$745$16_init();

    private static EnumSet follow_set$GroupingParser_ccc$745$16_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$745$26 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$745$45 = follow_set$GroupingParser_ccc$745$45_init();

    private static EnumSet follow_set$GroupingParser_ccc$745$45_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$745$54 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$745$75 = follow_set$GroupingParser_ccc$745$75_init();

    private static EnumSet follow_set$GroupingParser_ccc$745$75_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$745$84 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$755$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$755$16 = follow_set$GroupingParser_ccc$755$16_init();

    private static EnumSet follow_set$GroupingParser_ccc$755$16_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$755$26 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$765$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$765$13 = follow_set$GroupingParser_ccc$765$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$765$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$765$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$765$42 = follow_set$GroupingParser_ccc$765$42_init();

    private static EnumSet follow_set$GroupingParser_ccc$765$42_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$765$51 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$765$72 = follow_set$GroupingParser_ccc$765$72_init();

    private static EnumSet follow_set$GroupingParser_ccc$765$72_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$765$81 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$775$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$775$13 = follow_set$GroupingParser_ccc$775$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$775$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$775$23 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$784$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$784$17 = follow_set$GroupingParser_ccc$784$17_init();

    private static EnumSet follow_set$GroupingParser_ccc$784$17_init() {
        return tokenTypeSet(RBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$784$29$ = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$794$7 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$794$14 = follow_set$GroupingParser_ccc$794$14_init();

    private static EnumSet follow_set$GroupingParser_ccc$794$14_init() {
        return tokenTypeSet(TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$794$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$795$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$796$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$797$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$798$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$799$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$800$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$801$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$802$22 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$803$7 = follow_set$GroupingParser_ccc$803$7_init();

    private static EnumSet follow_set$GroupingParser_ccc$803$7_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$803$17 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$813$7 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$813$14 = follow_set$GroupingParser_ccc$813$14_init();

    private static EnumSet follow_set$GroupingParser_ccc$813$14_init() {
        return tokenTypeSet(ACOS, ACOSH, ASIN, ASINH, ATAN, ATANH, CBRT, COS, COSH, EXP, FLOOR, HYPOT, LOG, LOG1P, LOG10, POW, SIN, SINH, SQRT, TAN, TANH);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$813$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$814$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$814$77 = follow_set$GroupingParser_ccc$814$77_init();

    private static EnumSet follow_set$GroupingParser_ccc$814$77_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$814$87 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$814$106 = follow_set$GroupingParser_ccc$814$106_init();

    private static EnumSet follow_set$GroupingParser_ccc$814$106_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$815$86 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$816$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$817$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$818$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$819$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$820$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$821$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$822$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$823$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$824$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$825$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$826$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$827$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$828$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$829$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$830$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$831$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$832$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$833$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$834$26 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$834$77 = follow_set$GroupingParser_ccc$834$77_init();

    private static EnumSet follow_set$GroupingParser_ccc$834$77_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$834$87 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$845$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$845$13 = follow_set$GroupingParser_ccc$845$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$845$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$845$23 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$845$41 = follow_set$GroupingParser_ccc$845$41_init();

    private static EnumSet follow_set$GroupingParser_ccc$845$41_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$845$50 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$845$71 = follow_set$GroupingParser_ccc$845$71_init();

    private static EnumSet follow_set$GroupingParser_ccc$845$71_init() {
        return tokenTypeSet(ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$845$80 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$856$7 = tokenTypeSet(DOT);
    private static final EnumSet follow_set$GroupingParser_ccc$856$16 = tokenTypeSet(X, Y);
    private static final EnumSet follow_set$GroupingParser_ccc$856$24 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$856$43 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$856$62 = follow_set$GroupingParser_ccc$856$62_init();

    private static EnumSet follow_set$GroupingParser_ccc$856$62_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$856$72 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$865$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$865$18 = follow_set$GroupingParser_ccc$865$18_init();

    private static EnumSet follow_set$GroupingParser_ccc$865$18_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$865$28 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$874$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$874$16 = follow_set$GroupingParser_ccc$874$16_init();

    private static EnumSet follow_set$GroupingParser_ccc$874$16_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$874$26 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$883$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$883$15 = follow_set$GroupingParser_ccc$883$15_init();

    private static EnumSet follow_set$GroupingParser_ccc$883$15_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$883$25 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$893$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$893$18 = follow_set$GroupingParser_ccc$893$18_init();

    private static EnumSet follow_set$GroupingParser_ccc$893$18_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$893$28 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$903$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$903$13 = follow_set$GroupingParser_ccc$903$13_init();

    private static EnumSet follow_set$GroupingParser_ccc$903$13_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$903$23 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$903$44 = follow_set$GroupingParser_ccc$903$44_init();

    private static EnumSet follow_set$GroupingParser_ccc$903$44_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$903$53 = tokenTypeSet(COMMA, RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$903$74 = follow_set$GroupingParser_ccc$903$74_init();

    private static EnumSet follow_set$GroupingParser_ccc$903$74_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$903$83 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$915$7 = tokenTypeSet(LBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$915$16 = follow_set$GroupingParser_ccc$915$16_init();

    private static EnumSet follow_set$GroupingParser_ccc$915$16_init() {
        return tokenTypeSet(DOLLAR, INFIX_ADD, INFIX_SUB, LBRACE, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$915$26 = tokenTypeSet(COMMA);
    private static final EnumSet follow_set$GroupingParser_ccc$915$44 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$915$53 = tokenTypeSet(RBRACE);
    private static final EnumSet follow_set$GroupingParser_ccc$923$7 = tokenTypeSet(LBRACE, LT, LBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$923$22 = follow_set$GroupingParser_ccc$923$22_init();

    private static EnumSet follow_set$GroupingParser_ccc$923$22_init() {
        return tokenTypeSet(INFIX_SUB, LCURLY, NEGINF, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$923$34 = follow_set$GroupingParser_ccc$923$34_init();

    private static EnumSet follow_set$GroupingParser_ccc$923$34_init() {
        return tokenTypeSet(INFIX_SUB, LCURLY, NEGINF, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$924$20 = follow_set$GroupingParser_ccc$924$20_init();

    private static EnumSet follow_set$GroupingParser_ccc$924$20_init() {
        return tokenTypeSet(INFIX_SUB, LCURLY, NEGINF, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$926$20 = tokenTypeSet(COMMA, RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$926$51 = tokenTypeSet(COMMA, RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$926$74 = tokenTypeSet(COMMA, RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$926$103$ = tokenTypeSet(COMMA, RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$927$22 = follow_set$GroupingParser_ccc$927$22_init();

    private static EnumSet follow_set$GroupingParser_ccc$927$22_init() {
        return tokenTypeSet(INFIX_SUB, LCURLY, INF, ACOS, ACOSH, ACCURACY, ADD, ALIAS, ALL, AND, ARRAY, AS, AT, ASIN, ASINH, ATAN, ATANH, ATTRIBUTE, AVG, BUCKET, CAT, CBRT, COS, COSH, COUNT, DEBUGWAIT, DIV, DOCIDNSSPECIFIC, EACH, EXP, FIXEDWIDTH, FLOOR, GROUP, HINT, HYPOT, LOG, LOG1P, LOG10, MATH, MAX, MD5, MIN, MOD, MUL, NEG, NORMALIZESUBJECT, NOW, OR, ORDER, OUTPUT, POW, PRECISION, PREDEFINED, RELEVANCE, REVERSE, SIN, SINH, SIZE, SORT, INTERPOLATEDLOOKUP, SQRT, STDDEV, STRCAT, STRLEN, SUB, SUM, SUMMARY, TAN, TANH, TIME, TIME_DATE, TIME_DAYOFMONTH, TIME_DAYOFWEEK, TIME_DAYOFYEAR, TIME_HOUROFDAY, TIME_MINUTEOFHOUR, TIME_MONTHOFYEAR, TIME_SECONDOFMINUTE, TIME_YEAR, TODOUBLE, TOLONG, TORAW, TOSTRING, TRUE, FALSE, UCA, WHERE, X, XOR, XORBIT, Y, ZCURVE, INTEGER, FLOAT, STRING, IDENTIFIER);
    }

    private static final EnumSet follow_set$GroupingParser_ccc$927$33 = tokenTypeSet(RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$927$62 = tokenTypeSet(RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$927$83 = tokenTypeSet(RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$927$110$ = tokenTypeSet(RBRACE, GT, RBRACKET);
    private static final EnumSet follow_set$GroupingParser_ccc$942$8 = tokenTypeSet(INTEGER, FLOAT);
    private static final EnumSet follow_set$GroupingParser_ccc$942$38 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$942$50 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$952$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$952$21 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$961$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$961$18 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$965$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$GroupingParser_ccc$966$9 = EnumSet.noneOf(TokenType.class);
    private static final EnumSet follow_set$GroupingParser_ccc$975$31 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$984$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$985$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$986$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$987$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$988$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$989$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$990$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$991$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$992$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$993$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$994$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$995$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$996$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$997$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$998$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$999$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1000$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1001$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1002$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1003$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1004$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1005$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1006$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1007$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1008$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1009$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1010$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1011$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1012$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1013$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1014$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1015$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1016$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1017$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1018$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1019$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1020$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1021$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1022$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1023$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1024$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1025$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1026$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1027$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1028$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1029$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1030$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1031$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1032$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1033$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1034$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1035$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1036$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1037$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1038$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1039$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1040$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1041$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1042$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1043$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1044$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1045$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1046$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1047$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1048$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1049$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1050$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1051$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1052$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1053$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1054$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1055$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1056$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1057$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1058$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1059$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1060$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1061$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1062$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1063$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1064$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1065$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1066$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1067$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1068$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1069$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1070$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1071$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1072$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1073$9 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1077$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1080$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1083$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1086$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1089$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1092$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1095$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1098$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1101$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1104$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1107$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1110$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1113$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1116$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1119$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1122$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1125$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1128$7 = tokenTypeSet(SPACE);
    private static final EnumSet follow_set$GroupingParser_ccc$1131$7 = tokenTypeSet(SPACE);

    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/grouping/GroupingParser.ccc:288:45
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$288$45(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/grouping/GroupingParser.ccc:288:45
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:45
            pushOntoLookaheadStack("expList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 288, 45);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:288:54
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:54
            pushOntoLookaheadStack("expList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 288, 54);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:72
        } 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/grouping/GroupingParser.ccc:299:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$299$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:9
            Token token2 = currentLookaheadToken;
            int remainingLookahead2 = remainingLookahead;
            boolean hitFailure2 = hitFailure;
            boolean passedPredicate2 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$299$9$(false)) {
                    currentLookaheadToken = token2;
                    remainingLookahead = remainingLookahead2;
                    hitFailure = hitFailure2;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$299$18(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/grouping/GroupingParser.ccc:299:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$299$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/grouping/GroupingParser.ccc:299:9
            // NonTerminal addElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:9
            pushOntoLookaheadStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 299, 9);
            currentLookaheadProduction = "addElm";
            try {
                if (!check$addElm(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/grouping/GroupingParser.ccc:299:18
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$299$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/grouping/GroupingParser.ccc:299:18
            // NonTerminal subElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:18
            pushOntoLookaheadStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 299, 18);
            currentLookaheadProduction = "subElm";
            try {
                if (!check$subElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:299:49
        } 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/grouping/GroupingParser.ccc:301:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$301$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/grouping/GroupingParser.ccc:301:9
            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/grouping/GroupingParser.ccc:301:14
            // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:14
            pushOntoLookaheadStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 301, 14);
            currentLookaheadProduction = "lbraceElm";
            try {
                if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:301:24
            // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:24
            pushOntoLookaheadStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 301, 24);
            currentLookaheadProduction = "stringElm";
            try {
                if (!check$stringElm(true)) 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/grouping/GroupingParser.ccc:301:40
            // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:40
            pushOntoLookaheadStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 301, 40);
            currentLookaheadProduction = "rbraceElm";
            try {
                if (!check$rbraceElm(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:301:50
        } 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/grouping/GroupingParser.ccc:311:7
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$311$7$(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/grouping/GroupingParser.ccc:311:9
            if (!scanToken(DOLLAR)) 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/grouping/GroupingParser.ccc:311:18
            // NonTerminal identifierStr at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:18
            pushOntoLookaheadStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 18);
            currentLookaheadProduction = "identifierStr";
            try {
                if (!check$identifierStr(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/grouping/GroupingParser.ccc:311:38
            Token token7 = currentLookaheadToken;
            boolean passedPredicate7 = passedPredicate;
            passedPredicate = false;
            try {
                if (!check$GroupingParser_ccc$311$40(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 CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:95
        } 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/grouping/GroupingParser.ccc:311:40
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$311$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/grouping/GroupingParser.ccc:311:40
            // NonTerminal eqElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:40
            pushOntoLookaheadStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 40);
            currentLookaheadProduction = "eqElm";
            try {
                if (!check$eqElm(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/grouping/GroupingParser.ccc:311:46
            // NonTerminal expMath at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:46
            pushOntoLookaheadStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 311, 46);
            currentLookaheadProduction = "expMath";
            try {
                if (!check$expMath(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:311:65
        } 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/grouping/GroupingParser.ccc:312:7
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$312$7(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/grouping/GroupingParser.ccc:312:9
            // NonTerminal expMath at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:312:9
            pushOntoLookaheadStack("expAlias", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 312, 9);
            currentLookaheadProduction = "expMath";
            try {
                if (!check$expMath(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/grouping/GroupingParser.ccc:324:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$324$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:324:11
            Token token4 = currentLookaheadToken;
            int remainingLookahead4 = remainingLookahead;
            boolean hitFailure4 = hitFailure;
            boolean passedPredicate4 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$324$11(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$325$11(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$GroupingParser_ccc$326$11(false)) {
                            currentLookaheadToken = token4;
                            remainingLookahead = remainingLookahead4;
                            hitFailure = hitFailure4;
                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                            passedPredicate = false;
                            if (!check$GroupingParser_ccc$327$11(false)) {
                                currentLookaheadToken = token4;
                                remainingLookahead = remainingLookahead4;
                                hitFailure = hitFailure4;
                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                passedPredicate = false;
                                if (!check$GroupingParser_ccc$328$11(false)) {
                                    currentLookaheadToken = token4;
                                    remainingLookahead = remainingLookahead4;
                                    hitFailure = hitFailure4;
                                    return false;
                                }
                            }
                        }
                    }
                }
            } finally {
                passedPredicate = passedPredicate4;
            }
            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/grouping/GroupingParser.ccc:328:54
            // NonTerminal value at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:54
            pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 328, 54);
            currentLookaheadProduction = "value";
            try {
                if (!check$value(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:71
        } 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/grouping/GroupingParser.ccc:324:11
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$324$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/grouping/GroupingParser.ccc:324:11
            // NonTerminal addElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:324:11
            pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 324, 11);
            currentLookaheadProduction = "addElm";
            try {
                if (!check$addElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:324:18
        } 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/grouping/GroupingParser.ccc:325:11
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$325$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/grouping/GroupingParser.ccc:325:11
            // NonTerminal divElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:325:11
            pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 325, 11);
            currentLookaheadProduction = "divElm";
            try {
                if (!check$divElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:325:18
        } 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/grouping/GroupingParser.ccc:326:11
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$326$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/grouping/GroupingParser.ccc:326:11
            // NonTerminal modElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:326:11
            pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 326, 11);
            currentLookaheadProduction = "modElm";
            try {
                if (!check$modElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:326:18
        } 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/grouping/GroupingParser.ccc:327:11
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$327$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/grouping/GroupingParser.ccc:327:11
            // NonTerminal mulElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:327:11
            pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 327, 11);
            currentLookaheadProduction = "mulElm";
            try {
                if (!check$mulElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:327:18
        } 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/grouping/GroupingParser.ccc:328:11
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$328$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/grouping/GroupingParser.ccc:328:11
            // NonTerminal subElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:11
            pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 328, 11);
            currentLookaheadProduction = "subElm";
            try {
                if (!check$subElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:328:18
        } 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/grouping/GroupingParser.ccc:337:7
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$337$7(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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:9
            Token token4 = currentLookaheadToken;
            int remainingLookahead4 = remainingLookahead;
            boolean hitFailure4 = hitFailure;
            boolean passedPredicate4 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$338$9(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$339$20(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$GroupingParser_ccc$340$20(false)) {
                            currentLookaheadToken = token4;
                            remainingLookahead = remainingLookahead4;
                            hitFailure = hitFailure4;
                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                            passedPredicate = false;
                            if (!check$GroupingParser_ccc$341$20(false)) {
                                currentLookaheadToken = token4;
                                remainingLookahead = remainingLookahead4;
                                hitFailure = hitFailure4;
                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                passedPredicate = false;
                                if (!check$GroupingParser_ccc$342$20(false)) {
                                    currentLookaheadToken = token4;
                                    remainingLookahead = remainingLookahead4;
                                    hitFailure = hitFailure4;
                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                    passedPredicate = false;
                                    if (!check$GroupingParser_ccc$343$20(false)) {
                                        currentLookaheadToken = token4;
                                        remainingLookahead = remainingLookahead4;
                                        hitFailure = hitFailure4;
                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                        passedPredicate = false;
                                        if (!check$GroupingParser_ccc$344$20(false)) {
                                            currentLookaheadToken = token4;
                                            remainingLookahead = remainingLookahead4;
                                            hitFailure = hitFailure4;
                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                            passedPredicate = false;
                                            if (!check$GroupingParser_ccc$345$20(false)) {
                                                currentLookaheadToken = token4;
                                                remainingLookahead = remainingLookahead4;
                                                hitFailure = hitFailure4;
                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                passedPredicate = false;
                                                if (!check$GroupingParser_ccc$346$20(false)) {
                                                    currentLookaheadToken = token4;
                                                    remainingLookahead = remainingLookahead4;
                                                    hitFailure = hitFailure4;
                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                    passedPredicate = false;
                                                    if (!check$GroupingParser_ccc$347$20(false)) {
                                                        currentLookaheadToken = token4;
                                                        remainingLookahead = remainingLookahead4;
                                                        hitFailure = hitFailure4;
                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                        passedPredicate = false;
                                                        if (!check$GroupingParser_ccc$348$20(false)) {
                                                            currentLookaheadToken = token4;
                                                            remainingLookahead = remainingLookahead4;
                                                            hitFailure = hitFailure4;
                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                            passedPredicate = false;
                                                            if (!check$GroupingParser_ccc$349$20(false)) {
                                                                currentLookaheadToken = token4;
                                                                remainingLookahead = remainingLookahead4;
                                                                hitFailure = hitFailure4;
                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                passedPredicate = false;
                                                                if (!check$GroupingParser_ccc$350$20(false)) {
                                                                    currentLookaheadToken = token4;
                                                                    remainingLookahead = remainingLookahead4;
                                                                    hitFailure = hitFailure4;
                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                    passedPredicate = false;
                                                                    if (!check$GroupingParser_ccc$351$20(false)) {
                                                                        currentLookaheadToken = token4;
                                                                        remainingLookahead = remainingLookahead4;
                                                                        hitFailure = hitFailure4;
                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                        passedPredicate = false;
                                                                        if (!check$GroupingParser_ccc$352$20(false)) {
                                                                            currentLookaheadToken = token4;
                                                                            remainingLookahead = remainingLookahead4;
                                                                            hitFailure = hitFailure4;
                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                            passedPredicate = false;
                                                                            if (!check$GroupingParser_ccc$353$20(false)) {
                                                                                currentLookaheadToken = token4;
                                                                                remainingLookahead = remainingLookahead4;
                                                                                hitFailure = hitFailure4;
                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                passedPredicate = false;
                                                                                if (!check$GroupingParser_ccc$354$20(false)) {
                                                                                    currentLookaheadToken = token4;
                                                                                    remainingLookahead = remainingLookahead4;
                                                                                    hitFailure = hitFailure4;
                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                    passedPredicate = false;
                                                                                    if (!check$GroupingParser_ccc$355$20(false)) {
                                                                                        currentLookaheadToken = token4;
                                                                                        remainingLookahead = remainingLookahead4;
                                                                                        hitFailure = hitFailure4;
                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                        passedPredicate = false;
                                                                                        if (!check$GroupingParser_ccc$356$20(false)) {
                                                                                            currentLookaheadToken = token4;
                                                                                            remainingLookahead = remainingLookahead4;
                                                                                            hitFailure = hitFailure4;
                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                            passedPredicate = false;
                                                                                            if (!check$GroupingParser_ccc$357$20(false)) {
                                                                                                currentLookaheadToken = token4;
                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                hitFailure = hitFailure4;
                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                passedPredicate = false;
                                                                                                if (!check$GroupingParser_ccc$358$20(false)) {
                                                                                                    currentLookaheadToken = token4;
                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                    hitFailure = hitFailure4;
                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                    passedPredicate = false;
                                                                                                    if (!check$GroupingParser_ccc$359$20(false)) {
                                                                                                        currentLookaheadToken = token4;
                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                        hitFailure = hitFailure4;
                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                        passedPredicate = false;
                                                                                                        if (!check$GroupingParser_ccc$360$20(false)) {
                                                                                                            currentLookaheadToken = token4;
                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                            hitFailure = hitFailure4;
                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                            passedPredicate = false;
                                                                                                            if (!check$GroupingParser_ccc$361$20(false)) {
                                                                                                                currentLookaheadToken = token4;
                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                hitFailure = hitFailure4;
                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                passedPredicate = false;
                                                                                                                if (!check$GroupingParser_ccc$362$20(false)) {
                                                                                                                    currentLookaheadToken = token4;
                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                    hitFailure = hitFailure4;
                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                    passedPredicate = false;
                                                                                                                    if (!check$GroupingParser_ccc$363$20(false)) {
                                                                                                                        currentLookaheadToken = token4;
                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                        hitFailure = hitFailure4;
                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                        passedPredicate = false;
                                                                                                                        if (!check$GroupingParser_ccc$364$20(false)) {
                                                                                                                            currentLookaheadToken = token4;
                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                            hitFailure = hitFailure4;
                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                            passedPredicate = false;
                                                                                                                            if (!check$GroupingParser_ccc$365$20(false)) {
                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                passedPredicate = false;
                                                                                                                                if (!check$GroupingParser_ccc$366$20(false)) {
                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                    passedPredicate = false;
                                                                                                                                    if (!check$GroupingParser_ccc$367$20(false)) {
                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                        passedPredicate = false;
                                                                                                                                        if (!check$GroupingParser_ccc$368$20(false)) {
                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                            passedPredicate = false;
                                                                                                                                            if (!check$GroupingParser_ccc$369$20(false)) {
                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                passedPredicate = false;
                                                                                                                                                if (!check$GroupingParser_ccc$370$20(false)) {
                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                    passedPredicate = false;
                                                                                                                                                    if (!check$GroupingParser_ccc$371$20(false)) {
                                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                        passedPredicate = false;
                                                                                                                                                        if (!check$GroupingParser_ccc$372$20(false)) {
                                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                            passedPredicate = false;
                                                                                                                                                            if (!check$GroupingParser_ccc$373$20(false)) {
                                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                passedPredicate = false;
                                                                                                                                                                if (!check$GroupingParser_ccc$374$20(false)) {
                                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                    passedPredicate = false;
                                                                                                                                                                    if (!check$GroupingParser_ccc$375$20(false)) {
                                                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                        passedPredicate = false;
                                                                                                                                                                        if (!check$GroupingParser_ccc$376$20(false)) {
                                                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                            passedPredicate = false;
                                                                                                                                                                            if (!check$GroupingParser_ccc$377$20(false)) {
                                                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                passedPredicate = false;
                                                                                                                                                                                if (!check$GroupingParser_ccc$378$20(false)) {
                                                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                    passedPredicate = false;
                                                                                                                                                                                    if (!check$GroupingParser_ccc$379$20(false)) {
                                                                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                        passedPredicate = false;
                                                                                                                                                                                        if (!check$GroupingParser_ccc$380$20(false)) {
                                                                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                            passedPredicate = false;
                                                                                                                                                                                            if (!check$GroupingParser_ccc$381$20(false)) {
                                                                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                                passedPredicate = false;
                                                                                                                                                                                                if (!check$GroupingParser_ccc$382$20(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/grouping/GroupingParser.ccc:338:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$338$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/grouping/GroupingParser.ccc:338:11
            // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:11
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 11);
            currentLookaheadProduction = "lbraceElm";
            try {
                if (!check$lbraceElm(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/grouping/GroupingParser.ccc:338:21
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:21
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 21);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:338:39
            // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:39
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 338, 39);
            currentLookaheadProduction = "rbraceElm";
            try {
                if (!check$rbraceElm(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/grouping/GroupingParser.ccc:339:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$339$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:339:20
            // NonTerminal addFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:339:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 339, 20);
            currentLookaheadProduction = "addFunction";
            try {
                if (!check$addFunction(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/grouping/GroupingParser.ccc:340:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$340$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:340:20
            // NonTerminal andFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:340:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 340, 20);
            currentLookaheadProduction = "andFunction";
            try {
                if (!check$andFunction(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/grouping/GroupingParser.ccc:341:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$341$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:341:20
            // NonTerminal attributeFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:341:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 341, 20);
            currentLookaheadProduction = "attributeFunction";
            try {
                if (!check$attributeFunction(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/grouping/GroupingParser.ccc:342:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$342$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:342:20
            // NonTerminal avgExpression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:342:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 342, 20);
            currentLookaheadProduction = "avgExpression";
            try {
                if (!check$avgExpression(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/grouping/GroupingParser.ccc:343:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$343$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:343:20
            // NonTerminal catFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:343:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 343, 20);
            currentLookaheadProduction = "catFunction";
            try {
                if (!check$catFunction(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/grouping/GroupingParser.ccc:344:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$344$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:344:20
            // NonTerminal constantValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:344:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 344, 20);
            currentLookaheadProduction = "constantValue";
            try {
                if (!check$constantValue(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/grouping/GroupingParser.ccc:345:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$345$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:345:20
            // NonTerminal countAggregator at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:345:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 345, 20);
            currentLookaheadProduction = "countAggregator";
            try {
                if (!check$countAggregator(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/grouping/GroupingParser.ccc:346:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$346$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:346:20
            // NonTerminal debugWaitFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:346:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 346, 20);
            currentLookaheadProduction = "debugWaitFunction";
            try {
                if (!check$debugWaitFunction(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/grouping/GroupingParser.ccc:347:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$347$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:347:20
            // NonTerminal divFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:347:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 347, 20);
            currentLookaheadProduction = "divFunction";
            try {
                if (!check$divFunction(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/grouping/GroupingParser.ccc:348:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$348$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:348:20
            // NonTerminal docIdNsSpecificValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:348:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 348, 20);
            currentLookaheadProduction = "docIdNsSpecificValue";
            try {
                if (!check$docIdNsSpecificValue(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/grouping/GroupingParser.ccc:349:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$349$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:349:20
            // NonTerminal fixedWidthFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:349:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 349, 20);
            currentLookaheadProduction = "fixedWidthFunction";
            try {
                if (!check$fixedWidthFunction(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/grouping/GroupingParser.ccc:350:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$350$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:350:20
            // NonTerminal mathFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:350:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 350, 20);
            currentLookaheadProduction = "mathFunction";
            try {
                if (!check$mathFunction(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/grouping/GroupingParser.ccc:351:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$351$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:351:20
            // NonTerminal maxExpression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:351:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 351, 20);
            currentLookaheadProduction = "maxExpression";
            try {
                if (!check$maxExpression(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/grouping/GroupingParser.ccc:352:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$352$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:352:20
            // NonTerminal md5Function at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:352:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 352, 20);
            currentLookaheadProduction = "md5Function";
            try {
                if (!check$md5Function(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/grouping/GroupingParser.ccc:353:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$353$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:353:20
            // NonTerminal minExpression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:353:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 353, 20);
            currentLookaheadProduction = "minExpression";
            try {
                if (!check$minExpression(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/grouping/GroupingParser.ccc:354:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$354$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:354:20
            // NonTerminal modFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:354:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 354, 20);
            currentLookaheadProduction = "modFunction";
            try {
                if (!check$modFunction(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/grouping/GroupingParser.ccc:355:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$355$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:355:20
            // NonTerminal mulFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:355:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 355, 20);
            currentLookaheadProduction = "mulFunction";
            try {
                if (!check$mulFunction(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/grouping/GroupingParser.ccc:356:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$356$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:356:20
            // NonTerminal negFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:356:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 356, 20);
            currentLookaheadProduction = "negFunction";
            try {
                if (!check$negFunction(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/grouping/GroupingParser.ccc:357:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$357$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:357:20
            // NonTerminal normalizeSubjectFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:357:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 357, 20);
            currentLookaheadProduction = "normalizeSubjectFunction";
            try {
                if (!check$normalizeSubjectFunction(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/grouping/GroupingParser.ccc:358:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$358$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:358:20
            // NonTerminal nowFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:358:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 358, 20);
            currentLookaheadProduction = "nowFunction";
            try {
                if (!check$nowFunction(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/grouping/GroupingParser.ccc:359:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$359$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:359:20
            // NonTerminal orFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:359:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 359, 20);
            currentLookaheadProduction = "orFunction";
            try {
                if (!check$orFunction(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/grouping/GroupingParser.ccc:360:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$360$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:360:20
            // NonTerminal predefinedFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:360:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 360, 20);
            currentLookaheadProduction = "predefinedFunction";
            try {
                if (!check$predefinedFunction(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/grouping/GroupingParser.ccc:361:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$361$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:361:20
            // NonTerminal relevanceValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:361:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 361, 20);
            currentLookaheadProduction = "relevanceValue";
            try {
                if (!check$relevanceValue(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/grouping/GroupingParser.ccc:362:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$362$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:362:20
            // NonTerminal reverseFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:362:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 362, 20);
            currentLookaheadProduction = "reverseFunction";
            try {
                if (!check$reverseFunction(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/grouping/GroupingParser.ccc:363:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$363$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:363:20
            // NonTerminal sizeFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:363:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 363, 20);
            currentLookaheadProduction = "sizeFunction";
            try {
                if (!check$sizeFunction(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/grouping/GroupingParser.ccc:364:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$364$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:364:20
            // NonTerminal sortFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:364:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 364, 20);
            currentLookaheadProduction = "sortFunction";
            try {
                if (!check$sortFunction(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/grouping/GroupingParser.ccc:365:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$365$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:365:20
            // NonTerminal arrayAtLookup at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:365:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 365, 20);
            currentLookaheadProduction = "arrayAtLookup";
            try {
                if (!check$arrayAtLookup(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/grouping/GroupingParser.ccc:366:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$366$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:366:20
            // NonTerminal interpolatedLookupElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:366:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 366, 20);
            currentLookaheadProduction = "interpolatedLookupElm";
            try {
                if (!check$interpolatedLookupElm(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/grouping/GroupingParser.ccc:367:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$367$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:367:20
            // NonTerminal stddevAggregator at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:367:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 367, 20);
            currentLookaheadProduction = "stddevAggregator";
            try {
                if (!check$stddevAggregator(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/grouping/GroupingParser.ccc:368:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$368$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:368:20
            // NonTerminal stringValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:368:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 368, 20);
            currentLookaheadProduction = "stringValue";
            try {
                if (!check$stringValue(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/grouping/GroupingParser.ccc:369:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$369$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:369:20
            // NonTerminal strCatFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:369:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 369, 20);
            currentLookaheadProduction = "strCatFunction";
            try {
                if (!check$strCatFunction(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/grouping/GroupingParser.ccc:370:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$370$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:370:20
            // NonTerminal strLenFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:370:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 370, 20);
            currentLookaheadProduction = "strLenFunction";
            try {
                if (!check$strLenFunction(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/grouping/GroupingParser.ccc:371:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$371$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:371:20
            // NonTerminal subFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:371:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 371, 20);
            currentLookaheadProduction = "subFunction";
            try {
                if (!check$subFunction(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/grouping/GroupingParser.ccc:372:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$372$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:372:20
            // NonTerminal sumAggregator at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:372:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 372, 20);
            currentLookaheadProduction = "sumAggregator";
            try {
                if (!check$sumAggregator(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/grouping/GroupingParser.ccc:373:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$373$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:373:20
            // NonTerminal summaryValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:373:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 373, 20);
            currentLookaheadProduction = "summaryValue";
            try {
                if (!check$summaryValue(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/grouping/GroupingParser.ccc:374:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$374$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:374:20
            // NonTerminal timeFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:374:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 374, 20);
            currentLookaheadProduction = "timeFunction";
            try {
                if (!check$timeFunction(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/grouping/GroupingParser.ccc:375:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$375$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:375:20
            // NonTerminal toDoubleFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:375:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 375, 20);
            currentLookaheadProduction = "toDoubleFunction";
            try {
                if (!check$toDoubleFunction(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/grouping/GroupingParser.ccc:376:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$376$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:376:20
            // NonTerminal toLongFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:376:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 376, 20);
            currentLookaheadProduction = "toLongFunction";
            try {
                if (!check$toLongFunction(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/grouping/GroupingParser.ccc:377:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$377$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:377:20
            // NonTerminal toRawFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:377:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 377, 20);
            currentLookaheadProduction = "toRawFunction";
            try {
                if (!check$toRawFunction(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/grouping/GroupingParser.ccc:378:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$378$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:378:20
            // NonTerminal toStringFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:378:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 378, 20);
            currentLookaheadProduction = "toStringFunction";
            try {
                if (!check$toStringFunction(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/grouping/GroupingParser.ccc:379:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$379$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:379:20
            // NonTerminal ucaFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:379:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 379, 20);
            currentLookaheadProduction = "ucaFunction";
            try {
                if (!check$ucaFunction(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/grouping/GroupingParser.ccc:380:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$380$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:380:20
            // NonTerminal xorExpression at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:380:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 380, 20);
            currentLookaheadProduction = "xorExpression";
            try {
                if (!check$xorExpression(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/grouping/GroupingParser.ccc:381:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$381$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:381:20
            // NonTerminal xorBitFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:381:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 381, 20);
            currentLookaheadProduction = "xorBitFunction";
            try {
                if (!check$xorBitFunction(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/grouping/GroupingParser.ccc:382:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$382$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:382:20
            // NonTerminal zcurveFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:382:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 382, 20);
            currentLookaheadProduction = "zcurveFunction";
            try {
                if (!check$zcurveFunction(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/grouping/GroupingParser.ccc:383:7
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$383$7(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/grouping/GroupingParser.ccc:383:20
            // NonTerminal attributeValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:383:20
            pushOntoLookaheadStack("value", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 383, 20);
            currentLookaheadProduction = "attributeValue";
            try {
                if (!check$attributeValue(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/grouping/GroupingParser.ccc:393:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$393$72(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/grouping/GroupingParser.ccc:393:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:72
            pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:393:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:81
            pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:404:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$404$72(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/grouping/GroupingParser.ccc:404:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:72
            pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:404:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:81
            pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:419:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$419$9(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 Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:19
            if (!scanToken(DOT)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:25
            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/grouping/GroupingParser.ccc:419:76
            // NonTerminal identifierStr at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:76
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 419, 76);
            currentLookaheadProduction = "identifierStr";
            try {
                if (!check$identifierStr(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:96
        } 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/grouping/GroupingParser.ccc:420:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$420$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:420:9
            Token token2 = currentLookaheadToken;
            int remainingLookahead2 = remainingLookahead;
            boolean hitFailure2 = hitFailure;
            boolean passedPredicate2 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$420$9(false)) {
                    currentLookaheadToken = token2;
                    remainingLookahead = remainingLookahead2;
                    hitFailure = hitFailure2;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$422$11(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/grouping/GroupingParser.ccc:420:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$420$9(boolean scanToEnd) {
        boolean reachedScanCode = false;
        int passedPredicateThreshold = remainingLookahead - 3;
        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/grouping/GroupingParser.ccc:421:13
            // NonTerminal lcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:13
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 13);
            currentLookaheadProduction = "lcurlyElm";
            try {
                if (!check$lcurlyElm(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/grouping/GroupingParser.ccc:421:23
            // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:23
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 23);
            currentLookaheadProduction = "stringElm";
            try {
                if (!check$stringElm(true)) 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/grouping/GroupingParser.ccc:421:39
            // NonTerminal rcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:39
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 39);
            currentLookaheadProduction = "rcurlyElm";
            try {
                if (!check$rcurlyElm(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/grouping/GroupingParser.ccc:422:11
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$422$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/grouping/GroupingParser.ccc:422:13
            // NonTerminal lcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:422:13
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 422, 13);
            currentLookaheadProduction = "lcurlyElm";
            try {
                if (!check$lcurlyElm(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/grouping/GroupingParser.ccc:422:23
            // NonTerminal attributeFunction at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:422:23
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 422, 23);
            currentLookaheadProduction = "attributeFunction";
            try {
                if (!check$attributeFunction(true)) 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/grouping/GroupingParser.ccc:422:57
            // NonTerminal rcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:422:57
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 422, 57);
            currentLookaheadProduction = "rcurlyElm";
            try {
                if (!check$rcurlyElm(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/grouping/GroupingParser.ccc:424:9
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$424$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/grouping/GroupingParser.ccc:424:9
            if (!scanToken(DOT)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:15
            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/grouping/GroupingParser.ccc:424:66
            // NonTerminal identifierStr at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:66
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 424, 66);
            currentLookaheadProduction = "identifierStr";
            try {
                if (!check$identifierStr(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:424:86
        } 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/grouping/GroupingParser.ccc:477:44
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$477$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:44
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:44
            pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 44);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:477:53
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:53
            pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 53);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(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/grouping/GroupingParser.ccc:477:72
            Token token5 = currentLookaheadToken;
            boolean passedPredicate5 = passedPredicate;
            passedPredicate = false;
            try {
                if (!check$GroupingParser_ccc$477$74(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token5;
                    hitFailure = false;
                }
            } finally {
                passedPredicate = passedPredicate5;
            }
        } 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/grouping/GroupingParser.ccc:477:74
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$477$74(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/grouping/GroupingParser.ccc:477:74
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:74
            pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 74);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:477:83
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:83
            pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 83);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:489:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$489$72(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/grouping/GroupingParser.ccc:489:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:72
            pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:489:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:81
            pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:547:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$547$72(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/grouping/GroupingParser.ccc:547:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:72
            pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:547:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:81
            pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:574:44
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$574$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:44
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:44
            pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 44);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:574:53
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:53
            pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 53);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(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/grouping/GroupingParser.ccc:574:72
            Token token5 = currentLookaheadToken;
            boolean passedPredicate5 = passedPredicate;
            passedPredicate = false;
            try {
                if (!check$GroupingParser_ccc$574$74(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token5;
                    hitFailure = false;
                }
            } finally {
                passedPredicate = passedPredicate5;
            }
        } 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/grouping/GroupingParser.ccc:574:74
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$574$74(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/grouping/GroupingParser.ccc:574:74
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:74
            pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 74);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:574:83
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:83
            pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 83);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:596:44
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$596$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:44
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:44
            pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 44);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:596:53
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:53
            pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 53);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(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/grouping/GroupingParser.ccc:596:72
            Token token5 = currentLookaheadToken;
            boolean passedPredicate5 = passedPredicate;
            passedPredicate = false;
            try {
                if (!check$GroupingParser_ccc$596$74(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token5;
                    hitFailure = false;
                }
            } finally {
                passedPredicate = passedPredicate5;
            }
        } 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/grouping/GroupingParser.ccc:596:74
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$596$74(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/grouping/GroupingParser.ccc:596:74
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:74
            pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 74);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:596:83
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:83
            pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 83);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:608:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$608$72(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/grouping/GroupingParser.ccc:608:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:72
            pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:608:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:81
            pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:619:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$619$72(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/grouping/GroupingParser.ccc:619:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:72
            pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:619:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:81
            pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:654:71
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$654$71(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/grouping/GroupingParser.ccc:654:71
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:71
            pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 71);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:654:80
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:80
            pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 80);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:666:34
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$666$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:34
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:34
            pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 34);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:666:43
            // NonTerminal bucketElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:43
            pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 43);
            currentLookaheadProduction = "bucketElm";
            try {
                if (!check$bucketElm(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/grouping/GroupingParser.ccc:717:37
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$717$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/grouping/GroupingParser.ccc:717:37
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:37
            pushOntoLookaheadStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 37);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:717:46
            if (!scanToken(INTEGER, STRING)) 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/grouping/GroupingParser.ccc:745:75
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$745$75(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/grouping/GroupingParser.ccc:745:75
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:75
            pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 75);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:745:84
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:84
            pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 84);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:765:72
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$765$72(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/grouping/GroupingParser.ccc:765:72
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:72
            pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 72);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:765:81
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:81
            pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 81);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:784:29
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$784$29(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/grouping/GroupingParser.ccc:784:29
            // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:29
            pushOntoLookaheadStack("summaryValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 784, 29);
            currentLookaheadProduction = "stringElm";
            try {
                if (!check$stringElm(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/grouping/GroupingParser.ccc:813:22
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$813$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:813:26
            if (!scanToken(HYPOT, POW)) 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/grouping/GroupingParser.ccc:814:77
            // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:77
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 814, 77);
            currentLookaheadProduction = "lbraceElm";
            try {
                if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:814:87
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:814:87
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 814, 87);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(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/grouping/GroupingParser.ccc:814:106
            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/grouping/GroupingParser.ccc:815:86
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:815:86
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 815, 86);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:815:105
            // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:815:105
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 815, 105);
            currentLookaheadProduction = "rbraceElm";
            try {
                if (!check$rbraceElm(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/grouping/GroupingParser.ccc:816:22
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$816$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:816:26
            if (!scanToken(first_set$GroupingParser_ccc$816$26$)) 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/grouping/GroupingParser.ccc:834:77
            // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:77
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 834, 77);
            currentLookaheadProduction = "lbraceElm";
            try {
                if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:834:87
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:87
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 834, 87);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:834:106
            // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:834:106
            pushOntoLookaheadStack("mathFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 834, 106);
            currentLookaheadProduction = "rbraceElm";
            try {
                if (!check$rbraceElm(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/grouping/GroupingParser.ccc:845:71
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$845$71(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/grouping/GroupingParser.ccc:845:71
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:71
            pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 71);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:845:80
            // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:80
            pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 80);
            currentLookaheadProduction = "stringElm";
            try {
                if (!check$stringElm(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/grouping/GroupingParser.ccc:903:44
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$903$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:44
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:44
            pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 44);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:903:53
            // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:53
            pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 53);
            currentLookaheadProduction = "expElm";
            try {
                if (!check$expElm(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/grouping/GroupingParser.ccc:903:72
            Token token5 = currentLookaheadToken;
            boolean passedPredicate5 = passedPredicate;
            passedPredicate = false;
            try {
                if (!check$GroupingParser_ccc$903$74(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token5;
                    hitFailure = false;
                }
            } finally {
                passedPredicate = passedPredicate5;
            }
        } 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/grouping/GroupingParser.ccc:903:74
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$903$74(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/grouping/GroupingParser.ccc:903:74
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:74
            pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 74);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(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/grouping/GroupingParser.ccc:903:83
            // NonTerminal expList at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:83
            pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 83);
            currentLookaheadProduction = "expList";
            try {
                if (!check$expList(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/grouping/GroupingParser.ccc:923:18
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$923$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:22
            Token token6 = currentLookaheadToken;
            int remainingLookahead6 = remainingLookahead;
            boolean hitFailure6 = hitFailure;
            boolean passedPredicate6 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$923$22(false)) {
                    currentLookaheadToken = token6;
                    remainingLookahead = remainingLookahead6;
                    hitFailure = hitFailure6;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$923$34(false)) {
                        currentLookaheadToken = token6;
                        remainingLookahead = remainingLookahead6;
                        hitFailure = hitFailure6;
                        return false;
                    }
                }
            } finally {
                passedPredicate = passedPredicate6;
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:48
        } 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/grouping/GroupingParser.ccc:923:22
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$923$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/grouping/GroupingParser.ccc:923:22
            // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:22
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 923, 22);
            currentLookaheadProduction = "lbraceElm";
            try {
                if (!check$lbraceElm(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/grouping/GroupingParser.ccc:923:34
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$923$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:34
            // NonTerminal lbracketElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:923:34
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 923, 34);
            currentLookaheadProduction = "lbracketElm";
            try {
                if (!check$lbracketElm(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/grouping/GroupingParser.ccc:924:18
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$924$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/grouping/GroupingParser.ccc:924:20
            // NonTerminal ltElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:924:20
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 924, 20);
            currentLookaheadProduction = "ltElm";
            try {
                if (!check$ltElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:924:26
        } 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/grouping/GroupingParser.ccc:926:20
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$926$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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:20
            // NonTerminal infiniteNegativeValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:20
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 20);
            currentLookaheadProduction = "infiniteNegativeValue";
            try {
                if (!check$infiniteNegativeValue(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/grouping/GroupingParser.ccc:926:51
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$926$51(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/grouping/GroupingParser.ccc:926:51
            // NonTerminal rawValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:51
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 51);
            currentLookaheadProduction = "rawValue";
            try {
                if (!check$rawValue(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/grouping/GroupingParser.ccc:926:74
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$926$74(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/grouping/GroupingParser.ccc:926:74
            // NonTerminal constantValueSigned at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:74
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 74);
            currentLookaheadProduction = "constantValueSigned";
            try {
                if (!check$constantValueSigned(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/grouping/GroupingParser.ccc:926:103
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$926$103(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/grouping/GroupingParser.ccc:926:103
            // NonTerminal stringValueUnquoted at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:926:103
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 926, 103);
            currentLookaheadProduction = "stringValueUnquoted";
            try {
                if (!check$stringValueUnquoted(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/grouping/GroupingParser.ccc:927:22
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$927$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/grouping/GroupingParser.ccc:927:22
            // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:22
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 22);
            currentLookaheadProduction = "commaElm";
            try {
                if (!check$commaElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            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/grouping/GroupingParser.ccc:927:33
            Token token5 = currentLookaheadToken;
            int remainingLookahead5 = remainingLookahead;
            boolean hitFailure5 = hitFailure;
            boolean passedPredicate5 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$927$33(false)) {
                    currentLookaheadToken = token5;
                    remainingLookahead = remainingLookahead5;
                    hitFailure = hitFailure5;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$927$62(false)) {
                        currentLookaheadToken = token5;
                        remainingLookahead = remainingLookahead5;
                        hitFailure = hitFailure5;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$GroupingParser_ccc$927$83(false)) {
                            currentLookaheadToken = token5;
                            remainingLookahead = remainingLookahead5;
                            hitFailure = hitFailure5;
                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                            passedPredicate = false;
                            if (!check$GroupingParser_ccc$927$110(false)) {
                                currentLookaheadToken = token5;
                                remainingLookahead = remainingLookahead5;
                                hitFailure = hitFailure5;
                                return false;
                            }
                        }
                    }
                }
            } finally {
                passedPredicate = passedPredicate5;
            }
        } 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/grouping/GroupingParser.ccc:927:33
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$927$33(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/grouping/GroupingParser.ccc:927:33
            // NonTerminal infinitePositiveValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:33
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 33);
            currentLookaheadProduction = "infinitePositiveValue";
            try {
                if (!check$infinitePositiveValue(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/grouping/GroupingParser.ccc:927:62
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$927$62(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/grouping/GroupingParser.ccc:927:62
            // NonTerminal rawValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:62
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 62);
            currentLookaheadProduction = "rawValue";
            try {
                if (!check$rawValue(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/grouping/GroupingParser.ccc:927:83
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$927$83(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/grouping/GroupingParser.ccc:927:83
            // NonTerminal constantValueSigned at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:83
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 83);
            currentLookaheadProduction = "constantValueSigned";
            try {
                if (!check$constantValueSigned(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/grouping/GroupingParser.ccc:927:110
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$927$110(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/grouping/GroupingParser.ccc:927:110
            // NonTerminal stringValueUnquoted at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:927:110
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 927, 110);
            currentLookaheadProduction = "stringValueUnquoted";
            try {
                if (!check$stringValueUnquoted(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/grouping/GroupingParser.ccc:929:18
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$929$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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:22
            Token token6 = currentLookaheadToken;
            int remainingLookahead6 = remainingLookahead;
            boolean hitFailure6 = hitFailure;
            boolean passedPredicate6 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$929$22(false)) {
                    currentLookaheadToken = token6;
                    remainingLookahead = remainingLookahead6;
                    hitFailure = hitFailure6;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$929$30(false)) {
                        currentLookaheadToken = token6;
                        remainingLookahead = remainingLookahead6;
                        hitFailure = hitFailure6;
                        return false;
                    }
                }
            } finally {
                passedPredicate = passedPredicate6;
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:42
        } 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/grouping/GroupingParser.ccc:929:22
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$929$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/grouping/GroupingParser.ccc:929:22
            // NonTerminal gtElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:22
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 929, 22);
            currentLookaheadProduction = "gtElm";
            try {
                if (!check$gtElm(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/grouping/GroupingParser.ccc:929:30
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$929$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/grouping/GroupingParser.ccc:929:30
            // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:929:30
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 929, 30);
            currentLookaheadProduction = "rbraceElm";
            try {
                if (!check$rbraceElm(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/grouping/GroupingParser.ccc:930:18
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$930$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/grouping/GroupingParser.ccc:930:20
            // NonTerminal rbracketElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:930:20
            pushOntoLookaheadStack("bucketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 930, 20);
            currentLookaheadProduction = "rbracketElm";
            try {
                if (!check$rbracketElm(false)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:930:32
        } 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/grouping/GroupingParser.ccc:975:7
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$975$7$(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/grouping/GroupingParser.ccc:975:7
            // NonTerminal identifierStr at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:975:7
            pushOntoLookaheadStack("stringElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 975, 7);
            currentLookaheadProduction = "identifierStr";
            try {
                if (!check$identifierStr(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/grouping/GroupingParser.ccc:975:29
    // BuildScanRoutine macro
    private boolean check$GroupingParser_ccc$975$29(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/grouping/GroupingParser.ccc:975:31
            if (!scanToken(STRING)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:975:40
            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/grouping/GroupingParser.ccc:975:106
            // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:975:106
            pushOntoLookaheadStack("stringElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 975, 106);
            currentLookaheadProduction = "spaceElm";
            try {
                if (!check$spaceElm(true)) 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/grouping/GroupingParser.ccc:337:7
    private boolean scan$GroupingParser_ccc$337$7() {
        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 ExpansionChoice specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:338:9
            Token token4 = currentLookaheadToken;
            int remainingLookahead4 = remainingLookahead;
            boolean hitFailure4 = hitFailure;
            boolean passedPredicate4 = passedPredicate;
            try {
                passedPredicate = false;
                if (!check$GroupingParser_ccc$338$9(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$339$20(false)) {
                        currentLookaheadToken = token4;
                        remainingLookahead = remainingLookahead4;
                        hitFailure = hitFailure4;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$GroupingParser_ccc$340$20(false)) {
                            currentLookaheadToken = token4;
                            remainingLookahead = remainingLookahead4;
                            hitFailure = hitFailure4;
                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                            passedPredicate = false;
                            if (!check$GroupingParser_ccc$341$20(false)) {
                                currentLookaheadToken = token4;
                                remainingLookahead = remainingLookahead4;
                                hitFailure = hitFailure4;
                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                passedPredicate = false;
                                if (!check$GroupingParser_ccc$342$20(false)) {
                                    currentLookaheadToken = token4;
                                    remainingLookahead = remainingLookahead4;
                                    hitFailure = hitFailure4;
                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                    passedPredicate = false;
                                    if (!check$GroupingParser_ccc$343$20(false)) {
                                        currentLookaheadToken = token4;
                                        remainingLookahead = remainingLookahead4;
                                        hitFailure = hitFailure4;
                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                        passedPredicate = false;
                                        if (!check$GroupingParser_ccc$344$20(false)) {
                                            currentLookaheadToken = token4;
                                            remainingLookahead = remainingLookahead4;
                                            hitFailure = hitFailure4;
                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                            passedPredicate = false;
                                            if (!check$GroupingParser_ccc$345$20(false)) {
                                                currentLookaheadToken = token4;
                                                remainingLookahead = remainingLookahead4;
                                                hitFailure = hitFailure4;
                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                passedPredicate = false;
                                                if (!check$GroupingParser_ccc$346$20(false)) {
                                                    currentLookaheadToken = token4;
                                                    remainingLookahead = remainingLookahead4;
                                                    hitFailure = hitFailure4;
                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                    passedPredicate = false;
                                                    if (!check$GroupingParser_ccc$347$20(false)) {
                                                        currentLookaheadToken = token4;
                                                        remainingLookahead = remainingLookahead4;
                                                        hitFailure = hitFailure4;
                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                        passedPredicate = false;
                                                        if (!check$GroupingParser_ccc$348$20(false)) {
                                                            currentLookaheadToken = token4;
                                                            remainingLookahead = remainingLookahead4;
                                                            hitFailure = hitFailure4;
                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                            passedPredicate = false;
                                                            if (!check$GroupingParser_ccc$349$20(false)) {
                                                                currentLookaheadToken = token4;
                                                                remainingLookahead = remainingLookahead4;
                                                                hitFailure = hitFailure4;
                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                passedPredicate = false;
                                                                if (!check$GroupingParser_ccc$350$20(false)) {
                                                                    currentLookaheadToken = token4;
                                                                    remainingLookahead = remainingLookahead4;
                                                                    hitFailure = hitFailure4;
                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                    passedPredicate = false;
                                                                    if (!check$GroupingParser_ccc$351$20(false)) {
                                                                        currentLookaheadToken = token4;
                                                                        remainingLookahead = remainingLookahead4;
                                                                        hitFailure = hitFailure4;
                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                        passedPredicate = false;
                                                                        if (!check$GroupingParser_ccc$352$20(false)) {
                                                                            currentLookaheadToken = token4;
                                                                            remainingLookahead = remainingLookahead4;
                                                                            hitFailure = hitFailure4;
                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                            passedPredicate = false;
                                                                            if (!check$GroupingParser_ccc$353$20(false)) {
                                                                                currentLookaheadToken = token4;
                                                                                remainingLookahead = remainingLookahead4;
                                                                                hitFailure = hitFailure4;
                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                passedPredicate = false;
                                                                                if (!check$GroupingParser_ccc$354$20(false)) {
                                                                                    currentLookaheadToken = token4;
                                                                                    remainingLookahead = remainingLookahead4;
                                                                                    hitFailure = hitFailure4;
                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                    passedPredicate = false;
                                                                                    if (!check$GroupingParser_ccc$355$20(false)) {
                                                                                        currentLookaheadToken = token4;
                                                                                        remainingLookahead = remainingLookahead4;
                                                                                        hitFailure = hitFailure4;
                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                        passedPredicate = false;
                                                                                        if (!check$GroupingParser_ccc$356$20(false)) {
                                                                                            currentLookaheadToken = token4;
                                                                                            remainingLookahead = remainingLookahead4;
                                                                                            hitFailure = hitFailure4;
                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                            passedPredicate = false;
                                                                                            if (!check$GroupingParser_ccc$357$20(false)) {
                                                                                                currentLookaheadToken = token4;
                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                hitFailure = hitFailure4;
                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                passedPredicate = false;
                                                                                                if (!check$GroupingParser_ccc$358$20(false)) {
                                                                                                    currentLookaheadToken = token4;
                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                    hitFailure = hitFailure4;
                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                    passedPredicate = false;
                                                                                                    if (!check$GroupingParser_ccc$359$20(false)) {
                                                                                                        currentLookaheadToken = token4;
                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                        hitFailure = hitFailure4;
                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                        passedPredicate = false;
                                                                                                        if (!check$GroupingParser_ccc$360$20(false)) {
                                                                                                            currentLookaheadToken = token4;
                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                            hitFailure = hitFailure4;
                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                            passedPredicate = false;
                                                                                                            if (!check$GroupingParser_ccc$361$20(false)) {
                                                                                                                currentLookaheadToken = token4;
                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                hitFailure = hitFailure4;
                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                passedPredicate = false;
                                                                                                                if (!check$GroupingParser_ccc$362$20(false)) {
                                                                                                                    currentLookaheadToken = token4;
                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                    hitFailure = hitFailure4;
                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                    passedPredicate = false;
                                                                                                                    if (!check$GroupingParser_ccc$363$20(false)) {
                                                                                                                        currentLookaheadToken = token4;
                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                        hitFailure = hitFailure4;
                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                        passedPredicate = false;
                                                                                                                        if (!check$GroupingParser_ccc$364$20(false)) {
                                                                                                                            currentLookaheadToken = token4;
                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                            hitFailure = hitFailure4;
                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                            passedPredicate = false;
                                                                                                                            if (!check$GroupingParser_ccc$365$20(false)) {
                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                passedPredicate = false;
                                                                                                                                if (!check$GroupingParser_ccc$366$20(false)) {
                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                    passedPredicate = false;
                                                                                                                                    if (!check$GroupingParser_ccc$367$20(false)) {
                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                        passedPredicate = false;
                                                                                                                                        if (!check$GroupingParser_ccc$368$20(false)) {
                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                            passedPredicate = false;
                                                                                                                                            if (!check$GroupingParser_ccc$369$20(false)) {
                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                passedPredicate = false;
                                                                                                                                                if (!check$GroupingParser_ccc$370$20(false)) {
                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                    passedPredicate = false;
                                                                                                                                                    if (!check$GroupingParser_ccc$371$20(false)) {
                                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                        passedPredicate = false;
                                                                                                                                                        if (!check$GroupingParser_ccc$372$20(false)) {
                                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                            passedPredicate = false;
                                                                                                                                                            if (!check$GroupingParser_ccc$373$20(false)) {
                                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                passedPredicate = false;
                                                                                                                                                                if (!check$GroupingParser_ccc$374$20(false)) {
                                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                    passedPredicate = false;
                                                                                                                                                                    if (!check$GroupingParser_ccc$375$20(false)) {
                                                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                        passedPredicate = false;
                                                                                                                                                                        if (!check$GroupingParser_ccc$376$20(false)) {
                                                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                            passedPredicate = false;
                                                                                                                                                                            if (!check$GroupingParser_ccc$377$20(false)) {
                                                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                passedPredicate = false;
                                                                                                                                                                                if (!check$GroupingParser_ccc$378$20(false)) {
                                                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                                                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                    passedPredicate = false;
                                                                                                                                                                                    if (!check$GroupingParser_ccc$379$20(false)) {
                                                                                                                                                                                        currentLookaheadToken = token4;
                                                                                                                                                                                        remainingLookahead = remainingLookahead4;
                                                                                                                                                                                        hitFailure = hitFailure4;
                                                                                                                                                                                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                        passedPredicate = false;
                                                                                                                                                                                        if (!check$GroupingParser_ccc$380$20(false)) {
                                                                                                                                                                                            currentLookaheadToken = token4;
                                                                                                                                                                                            remainingLookahead = remainingLookahead4;
                                                                                                                                                                                            hitFailure = hitFailure4;
                                                                                                                                                                                            if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                            passedPredicate = false;
                                                                                                                                                                                            if (!check$GroupingParser_ccc$381$20(false)) {
                                                                                                                                                                                                currentLookaheadToken = token4;
                                                                                                                                                                                                remainingLookahead = remainingLookahead4;
                                                                                                                                                                                                hitFailure = hitFailure4;
                                                                                                                                                                                                if (passedPredicate && !legacyGlitchyLookahead) return false;
                                                                                                                                                                                                passedPredicate = false;
                                                                                                                                                                                                if (!check$GroupingParser_ccc$382$20(false)) {
                                                                                                                                                                                                    currentLookaheadToken = token4;
                                                                                                                                                                                                    remainingLookahead = remainingLookahead4;
                                                                                                                                                                                                    hitFailure = hitFailure4;
                                                                                                                                                                                                    return false;
                                                                                                                                                                                                }
                                                                                                                                                                                            }
                                                                                                                                                                                        }
                                                                                                                                                                                    }
                                                                                                                                                                                }
                                                                                                                                                                            }
                                                                                                                                                                        }
                                                                                                                                                                    }
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            } finally {
                passedPredicate = passedPredicate4;
            }
            return true;
        } finally {
            lookaheadRoutineNesting = 0;
            currentLookaheadToken = null;
            hitFailure = false;
        }
    }

    // BuildPredicateRoutine: expansion at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:9
    private boolean scan$GroupingParser_ccc$419$9() {
        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 Terminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:19
            if (!scanToken(DOT)) return false;
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:25
            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/grouping/GroupingParser.ccc:419:76
            // NonTerminal identifierStr at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:76
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 419, 76);
            currentLookaheadProduction = "identifierStr";
            try {
                if (!check$identifierStr(true)) return false;
            } finally {
                popLookaheadStack();
            }
            if (hitFailure) return false;
            if (remainingLookahead <= 0) {
                return true;
            }
            // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:419:96
            return true;
        } finally {
            lookaheadRoutineNesting = 0;
            currentLookaheadToken = null;
            hitFailure = false;
        }
    }

    // BuildPredicateRoutine: expansion at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:420:9
    private boolean scan$GroupingParser_ccc$420$9() {
        remainingLookahead = 3;
        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/grouping/GroupingParser.ccc:421:13
            // NonTerminal lcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:13
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 13);
            currentLookaheadProduction = "lcurlyElm";
            try {
                if (!check$lcurlyElm(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/grouping/GroupingParser.ccc:421:23
            // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:23
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 23);
            currentLookaheadProduction = "stringElm";
            try {
                if (!check$stringElm(true)) 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/grouping/GroupingParser.ccc:421:39
            // NonTerminal rcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:421:39
            pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 421, 39);
            currentLookaheadProduction = "rcurlyElm";
            try {
                if (!check$rcurlyElm(true)) return false;
            } finally {
                popLookaheadStack();
            }
            return true;
        } finally {
            lookaheadRoutineNesting = 0;
            currentLookaheadToken = null;
            hitFailure = false;
        }
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$expList(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/grouping/GroupingParser.ccc:288:7
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:7
        pushOntoLookaheadStack("expList", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 288, 7);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:288:25
        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/grouping/GroupingParser.ccc:288:43
        boolean passedPredicate7 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token8 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$288$45(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 CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:289:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$expElm(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/grouping/GroupingParser.ccc:299:7
        Token token5 = currentLookaheadToken;
        boolean passedPredicate5 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$299$9(false)) {
                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/grouping/GroupingParser.ccc:300:7
        // NonTerminal expAlias at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:300:7
        pushOntoLookaheadStack("expElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 300, 7);
        currentLookaheadProduction = "expAlias";
        try {
            if (!check$expAlias(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:300:47
        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/grouping/GroupingParser.ccc:301:7
        Token token9 = currentLookaheadToken;
        boolean passedPredicate9 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$301$9(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 CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:302:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$expAlias(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/grouping/GroupingParser.ccc:311:7
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$311$7$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$312$7(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:313:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$expMath(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/grouping/GroupingParser.ccc:323:7
        // NonTerminal value at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:323:7
        pushOntoLookaheadStack("expMath", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 323, 7);
        currentLookaheadProduction = "value";
        try {
            if (!check$value(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:323:24
        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/grouping/GroupingParser.ccc:324:7
        boolean passedPredicate7 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token8 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$324$9(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 CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:329:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$value(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/grouping/GroupingParser.ccc:337:7
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$337$7(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$383$7(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:384:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$addFunction(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/grouping/GroupingParser.ccc:393:7
        if (!scanToken(ADD)) 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/grouping/GroupingParser.ccc:393:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:13
        pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:393:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:23
        pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:393:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:42
        pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:393:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:51
        pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:393:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$393$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:393:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:393:103
        pushOntoLookaheadStack("addFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 393, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:394:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$andFunction(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/grouping/GroupingParser.ccc:404:7
        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/grouping/GroupingParser.ccc:404:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:13
        pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:404:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:23
        pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:404:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:42
        pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:404:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:51
        pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:404:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$404$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:404:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:404:103
        pushOntoLookaheadStack("andFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 404, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:405:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$attributeValue(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/grouping/GroupingParser.ccc:418:7
        // NonTerminal identifierStr at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:418:7
        pushOntoLookaheadStack("attributeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 418, 7);
        currentLookaheadProduction = "identifierStr";
        try {
            if (!check$identifierStr(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:418:27
        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/grouping/GroupingParser.ccc:419:7
        boolean passedPredicate7 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token8 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$419$9(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 ZeroOrOne specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:420:7
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$420$9$(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:424:7
        boolean passedPredicate12 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token13 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$424$9(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token13;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate12;
        }
        hitFailure = false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:426:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$attributeFunction(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/grouping/GroupingParser.ccc:443:7
        if (!scanToken(ATTRIBUTE)) 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/grouping/GroupingParser.ccc:443:19
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:19
        pushOntoLookaheadStack("attributeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 443, 19);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:443:29
        // NonTerminal attributeValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:29
        pushOntoLookaheadStack("attributeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 443, 29);
        currentLookaheadProduction = "attributeValue";
        try {
            if (!check$attributeValue(true)) 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/grouping/GroupingParser.ccc:443:50
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:443:50
        pushOntoLookaheadStack("attributeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 443, 50);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:444:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$arrayAtLookup(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/grouping/GroupingParser.ccc:453:7
        if (!scanToken(ARRAY)) 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/grouping/GroupingParser.ccc:453:15
        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/grouping/GroupingParser.ccc:453:21
        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/grouping/GroupingParser.ccc:453:26
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:26
        pushOntoLookaheadStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 26);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:453:36
        // NonTerminal attributeValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:36
        pushOntoLookaheadStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 36);
        currentLookaheadProduction = "attributeValue";
        try {
            if (!check$attributeValue(true)) 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/grouping/GroupingParser.ccc:453:57
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:57
        pushOntoLookaheadStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 57);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:453:66
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:66
        pushOntoLookaheadStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 66);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:453:88
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:453:88
        pushOntoLookaheadStack("arrayAtLookup", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 453, 88);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:454:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$interpolatedLookupElm(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/grouping/GroupingParser.ccc:465:7
        if (!scanToken(INTERPOLATEDLOOKUP)) 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/grouping/GroupingParser.ccc:465:28
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:28
        pushOntoLookaheadStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 28);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:465:38
        // NonTerminal attributeValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:38
        pushOntoLookaheadStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 38);
        currentLookaheadProduction = "attributeValue";
        try {
            if (!check$attributeValue(true)) 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/grouping/GroupingParser.ccc:465:59
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:59
        pushOntoLookaheadStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 59);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:465:68
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:68
        pushOntoLookaheadStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 68);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:465:90
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:465:90
        pushOntoLookaheadStack("interpolatedLookupElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 465, 90);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:466:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$avgExpression(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/grouping/GroupingParser.ccc:477:7
        if (!scanToken(AVG)) 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/grouping/GroupingParser.ccc:477:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:13
        pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:477:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:23
        pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:477:42
        Token token8 = currentLookaheadToken;
        boolean passedPredicate8 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$477$44(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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:107
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:477:107
        pushOntoLookaheadStack("avgExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 477, 107);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:478:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$catFunction(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/grouping/GroupingParser.ccc:489:7
        if (!scanToken(CAT)) 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/grouping/GroupingParser.ccc:489:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:13
        pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:489:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:23
        pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:489:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:42
        pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:489:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:51
        pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:489:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$489$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:489:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:489:103
        pushOntoLookaheadStack("catFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 489, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:490:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$constantValue(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/grouping/GroupingParser.ccc:499:7
        // NonTerminal number at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:499:7
        pushOntoLookaheadStack("constantValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 499, 7);
        currentLookaheadProduction = "number";
        try {
            if (!check$number(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:500:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$constantValueSigned(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/grouping/GroupingParser.ccc:508:7
        // NonTerminal signedNumber at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:508:7
        pushOntoLookaheadStack("constantValueSigned", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 508, 7);
        currentLookaheadProduction = "signedNumber";
        try {
            if (!check$signedNumber(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:509:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$infiniteNegativeValue(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/grouping/GroupingParser.ccc:514:7
        // NonTerminal neginfElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:514:7
        pushOntoLookaheadStack("infiniteNegativeValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 514, 7);
        currentLookaheadProduction = "neginfElm";
        try {
            if (!check$neginfElm(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:514:17
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$infinitePositiveValue(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/grouping/GroupingParser.ccc:519:7
        // NonTerminal infElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:519:7
        pushOntoLookaheadStack("infinitePositiveValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 519, 7);
        currentLookaheadProduction = "infElm";
        try {
            if (!check$infElm(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:519:14
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$countAggregator(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/grouping/GroupingParser.ccc:524:7
        if (!scanToken(COUNT)) 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/grouping/GroupingParser.ccc:524:15
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:524:15
        pushOntoLookaheadStack("countAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 524, 15);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:524:25
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:524:25
        pushOntoLookaheadStack("countAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 524, 25);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:525:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$debugWaitFunction(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/grouping/GroupingParser.ccc:534:7
        if (!scanToken(DEBUGWAIT)) 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/grouping/GroupingParser.ccc:534:19
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:19
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 534, 19);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:534:29
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:29
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 534, 29);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:534:47
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:534:47
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 534, 47);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:535:28
        // NonTerminal number at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:535:28
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 535, 28);
        currentLookaheadProduction = "number";
        try {
            if (!check$number(true)) 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/grouping/GroupingParser.ccc:535:46
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:535:46
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 535, 46);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:536:28
        // NonTerminal booleanValue at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:536:28
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 536, 28);
        currentLookaheadProduction = "booleanValue";
        try {
            if (!check$booleanValue(true)) 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/grouping/GroupingParser.ccc:537:19
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:537:19
        pushOntoLookaheadStack("debugWaitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 537, 19);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:538:4
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$divFunction(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/grouping/GroupingParser.ccc:547:7
        if (!scanToken(DIV)) 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/grouping/GroupingParser.ccc:547:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:13
        pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:547:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:23
        pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:547:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:42
        pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:547:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:51
        pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:547:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$547$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:547:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:547:103
        pushOntoLookaheadStack("divFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 547, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:548:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$docIdNsSpecificValue(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/grouping/GroupingParser.ccc:554:7
        if (!scanToken(DOCIDNSSPECIFIC)) 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/grouping/GroupingParser.ccc:554:25
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:554:25
        pushOntoLookaheadStack("docIdNsSpecificValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 554, 25);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:554:35
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:554:35
        pushOntoLookaheadStack("docIdNsSpecificValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 554, 35);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:555:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$fixedWidthFunction(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/grouping/GroupingParser.ccc:564:7
        if (!scanToken(FIXEDWIDTH)) 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/grouping/GroupingParser.ccc:564:20
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:20
        pushOntoLookaheadStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 20);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:564:30
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:30
        pushOntoLookaheadStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 30);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:564:48
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:48
        pushOntoLookaheadStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 48);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:564:57
        // NonTerminal number at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:57
        pushOntoLookaheadStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 57);
        currentLookaheadProduction = "number";
        try {
            if (!check$number(true)) 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/grouping/GroupingParser.ccc:564:70
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:564:70
        pushOntoLookaheadStack("fixedWidthFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 564, 70);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:565:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$maxExpression(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/grouping/GroupingParser.ccc:574:7
        if (!scanToken(MAX)) 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/grouping/GroupingParser.ccc:574:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:13
        pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:574:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:23
        pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:574:42
        Token token8 = currentLookaheadToken;
        boolean passedPredicate8 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$574$44(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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:107
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:574:107
        pushOntoLookaheadStack("maxExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 574, 107);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:575:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$md5Function(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/grouping/GroupingParser.ccc:586:7
        if (!scanToken(MD5)) 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/grouping/GroupingParser.ccc:586:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:13
        pushOntoLookaheadStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:586:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:23
        pushOntoLookaheadStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:586:41
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:41
        pushOntoLookaheadStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 41);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:586:50
        // NonTerminal number at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:50
        pushOntoLookaheadStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 50);
        currentLookaheadProduction = "number";
        try {
            if (!check$number(true)) 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/grouping/GroupingParser.ccc:586:63
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:586:63
        pushOntoLookaheadStack("md5Function", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 586, 63);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:587:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$minExpression(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/grouping/GroupingParser.ccc:596:7
        if (!scanToken(MIN)) 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/grouping/GroupingParser.ccc:596:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:13
        pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:596:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:23
        pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:596:42
        Token token8 = currentLookaheadToken;
        boolean passedPredicate8 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$596$44(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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:107
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:596:107
        pushOntoLookaheadStack("minExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 596, 107);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:597:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$modFunction(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/grouping/GroupingParser.ccc:608:7
        if (!scanToken(MOD)) 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/grouping/GroupingParser.ccc:608:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:13
        pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:608:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:23
        pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:608:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:42
        pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:608:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:51
        pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:608:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$608$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:608:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:608:103
        pushOntoLookaheadStack("modFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 608, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:609:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$mulFunction(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/grouping/GroupingParser.ccc:619:7
        if (!scanToken(MUL)) 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/grouping/GroupingParser.ccc:619:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:13
        pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:619:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:23
        pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:619:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:42
        pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:619:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:51
        pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:619:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$619$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:619:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:619:103
        pushOntoLookaheadStack("mulFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 619, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:620:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$negFunction(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/grouping/GroupingParser.ccc:629:7
        if (!scanToken(NEG)) 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/grouping/GroupingParser.ccc:629:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:13
        pushOntoLookaheadStack("negFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 629, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:629:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:23
        pushOntoLookaheadStack("negFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 629, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:629:41
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:629:41
        pushOntoLookaheadStack("negFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 629, 41);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:630:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$normalizeSubjectFunction(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/grouping/GroupingParser.ccc:638:7
        if (!scanToken(NORMALIZESUBJECT)) 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/grouping/GroupingParser.ccc:638:26
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:26
        pushOntoLookaheadStack("normalizeSubjectFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 638, 26);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:638:36
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:36
        pushOntoLookaheadStack("normalizeSubjectFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 638, 36);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:638:54
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:638:54
        pushOntoLookaheadStack("normalizeSubjectFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 638, 54);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:639:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$nowFunction(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/grouping/GroupingParser.ccc:644:7
        if (!scanToken(NOW)) 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/grouping/GroupingParser.ccc:644:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:644:13
        pushOntoLookaheadStack("nowFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 644, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:644:23
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:644:23
        pushOntoLookaheadStack("nowFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 644, 23);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:645:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$orFunction(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/grouping/GroupingParser.ccc:654:7
        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/grouping/GroupingParser.ccc:654:12
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:12
        pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 12);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:654:22
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:22
        pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 22);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:654:41
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:41
        pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 41);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:654:50
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:50
        pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 50);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:654:69
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$654$71(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:654:102
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:654:102
        pushOntoLookaheadStack("orFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 654, 102);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:655:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$predefinedFunction(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/grouping/GroupingParser.ccc:665:7
        if (!scanToken(PREDEFINED)) 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/grouping/GroupingParser.ccc:665:20
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:20
        pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 665, 20);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:665:30
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:30
        pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 665, 30);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:665:48
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:665:48
        pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 665, 48);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:666:7
        // NonTerminal bucketElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:7
        pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 7);
        currentLookaheadProduction = "bucketElm";
        try {
            if (!check$bucketElm(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/grouping/GroupingParser.ccc:666:32
        boolean passedPredicate10 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token11 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$666$34(false)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token11;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        hitFailure = 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/grouping/GroupingParser.ccc:666:71
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:666:71
        pushOntoLookaheadStack("predefinedFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 666, 71);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:667:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$relevanceValue(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/grouping/GroupingParser.ccc:672:7
        if (!scanToken(RELEVANCE)) 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/grouping/GroupingParser.ccc:672:19
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:672:19
        pushOntoLookaheadStack("relevanceValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 672, 19);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:672:29
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:672:29
        pushOntoLookaheadStack("relevanceValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 672, 29);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:673:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$reverseFunction(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/grouping/GroupingParser.ccc:681:7
        if (!scanToken(REVERSE)) 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/grouping/GroupingParser.ccc:681:17
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:17
        pushOntoLookaheadStack("reverseFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 681, 17);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:681:27
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:27
        pushOntoLookaheadStack("reverseFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 681, 27);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:681:45
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:681:45
        pushOntoLookaheadStack("reverseFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 681, 45);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:682:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$sizeFunction(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/grouping/GroupingParser.ccc:690:7
        if (!scanToken(SIZE)) 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/grouping/GroupingParser.ccc:690:14
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:14
        pushOntoLookaheadStack("sizeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 690, 14);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:690:24
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:24
        pushOntoLookaheadStack("sizeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 690, 24);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:690:42
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:690:42
        pushOntoLookaheadStack("sizeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 690, 42);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:691:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$sortFunction(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/grouping/GroupingParser.ccc:699:7
        if (!scanToken(SORT)) 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/grouping/GroupingParser.ccc:699:14
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:14
        pushOntoLookaheadStack("sortFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 699, 14);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:699:24
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:24
        pushOntoLookaheadStack("sortFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 699, 24);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:699:42
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:699:42
        pushOntoLookaheadStack("sortFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 699, 42);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:700:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$stringValue(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/grouping/GroupingParser.ccc:708:7
        if (!scanToken(STRING)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:708:16
        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/grouping/GroupingParser.ccc:708:82
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:708:82
        pushOntoLookaheadStack("stringValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 708, 82);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:709:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$rawValue(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/grouping/GroupingParser.ccc:717:7
        // NonTerminal lcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:7
        pushOntoLookaheadStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 7);
        currentLookaheadProduction = "lcurlyElm";
        try {
            if (!check$lcurlyElm(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/grouping/GroupingParser.ccc:717:17
        if (!scanToken(INTEGER, STRING)) 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/grouping/GroupingParser.ccc:717:35
        boolean passedPredicate7 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token8 = currentLookaheadToken;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$717$37(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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:67
        // NonTerminal rcurlyElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:717:67
        pushOntoLookaheadStack("rawValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 717, 67);
        currentLookaheadProduction = "rcurlyElm";
        try {
            if (!check$rcurlyElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:718:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$stddevAggregator(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/grouping/GroupingParser.ccc:726:7
        if (!scanToken(STDDEV)) 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/grouping/GroupingParser.ccc:726:16
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:16
        pushOntoLookaheadStack("stddevAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 726, 16);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:726:26
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:26
        pushOntoLookaheadStack("stddevAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 726, 26);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:726:44
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:726:44
        pushOntoLookaheadStack("stddevAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 726, 44);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:727:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$stringValueUnquoted(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/grouping/GroupingParser.ccc:735:7
        // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:735:7
        pushOntoLookaheadStack("stringValueUnquoted", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 735, 7);
        currentLookaheadProduction = "stringElm";
        try {
            if (!check$stringElm(false)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:736:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$strCatFunction(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/grouping/GroupingParser.ccc:745:7
        if (!scanToken(STRCAT)) 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/grouping/GroupingParser.ccc:745:16
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:16
        pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 16);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:745:26
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:26
        pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 26);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:745:45
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:45
        pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 45);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:745:54
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:54
        pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 54);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:745:73
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$745$75(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:745:106
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:745:106
        pushOntoLookaheadStack("strCatFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 745, 106);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:746:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$strLenFunction(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/grouping/GroupingParser.ccc:755:7
        if (!scanToken(STRLEN)) 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/grouping/GroupingParser.ccc:755:16
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:16
        pushOntoLookaheadStack("strLenFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 755, 16);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:755:26
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:26
        pushOntoLookaheadStack("strLenFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 755, 26);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:755:44
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:755:44
        pushOntoLookaheadStack("strLenFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 755, 44);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:756:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$subFunction(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/grouping/GroupingParser.ccc:765:7
        if (!scanToken(SUB)) 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/grouping/GroupingParser.ccc:765:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:13
        pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:765:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:23
        pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:765:42
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:42
        pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 42);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:765:51
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:51
        pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 51);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:765:70
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$765$72(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:765:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:765:103
        pushOntoLookaheadStack("subFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 765, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:766:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$sumAggregator(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/grouping/GroupingParser.ccc:775:7
        if (!scanToken(SUM)) 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/grouping/GroupingParser.ccc:775:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:13
        pushOntoLookaheadStack("sumAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 775, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:775:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:23
        pushOntoLookaheadStack("sumAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 775, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:775:41
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:775:41
        pushOntoLookaheadStack("sumAggregator", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 775, 41);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:776:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$summaryValue(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/grouping/GroupingParser.ccc:784:7
        if (!scanToken(SUMMARY)) 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/grouping/GroupingParser.ccc:784:17
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:17
        pushOntoLookaheadStack("summaryValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 784, 17);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(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/grouping/GroupingParser.ccc:784:27
        Token token7 = currentLookaheadToken;
        boolean passedPredicate7 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$784$29(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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:47
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:784:47
        pushOntoLookaheadStack("summaryValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 784, 47);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:785:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$timeFunction(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/grouping/GroupingParser.ccc:794:7
        if (!scanToken(TIME)) 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/grouping/GroupingParser.ccc:794:14
        if (!scanToken(DOT)) 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/grouping/GroupingParser.ccc:794:22
        if (!scanToken(first_set$GroupingParser_ccc$794$22$)) 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/grouping/GroupingParser.ccc:803:7
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:803:7
        pushOntoLookaheadStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 803, 7);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:803:17
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:803:17
        pushOntoLookaheadStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 803, 17);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:803:35
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:803:35
        pushOntoLookaheadStack("timeFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 803, 35);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:804:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$mathFunction(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/grouping/GroupingParser.ccc:813:7
        if (!scanToken(MATH)) 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/grouping/GroupingParser.ccc:813:14
        if (!scanToken(DOT)) 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/grouping/GroupingParser.ccc:813:22
        Token token8 = currentLookaheadToken;
        int remainingLookahead8 = remainingLookahead;
        boolean hitFailure8 = hitFailure;
        boolean passedPredicate8 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$813$22(false)) {
                currentLookaheadToken = token8;
                remainingLookahead = remainingLookahead8;
                hitFailure = hitFailure8;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$816$22(false)) {
                    currentLookaheadToken = token8;
                    remainingLookahead = remainingLookahead8;
                    hitFailure = hitFailure8;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate8;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:835:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$ucaFunction(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/grouping/GroupingParser.ccc:845:7
        if (!scanToken(UCA)) 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/grouping/GroupingParser.ccc:845:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:13
        pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:845:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:23
        pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:845:41
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:41
        pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 41);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:845:50
        // NonTerminal stringElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:50
        pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 50);
        currentLookaheadProduction = "stringElm";
        try {
            if (!check$stringElm(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/grouping/GroupingParser.ccc:845:69
        Token token10 = currentLookaheadToken;
        boolean passedPredicate10 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$845$71(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token10;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate10;
        }
        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/grouping/GroupingParser.ccc:845:103
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:845:103
        pushOntoLookaheadStack("ucaFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 845, 103);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:846:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$zcurveFunction(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/grouping/GroupingParser.ccc:856:7
        if (!scanToken(ZCURVE)) 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/grouping/GroupingParser.ccc:856:16
        if (!scanToken(DOT)) 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/grouping/GroupingParser.ccc:856:24
        if (!scanToken(X, Y)) 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/grouping/GroupingParser.ccc:856:62
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:62
        pushOntoLookaheadStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 62);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:856:72
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:72
        pushOntoLookaheadStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 72);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:856:90
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:856:90
        pushOntoLookaheadStack("zcurveFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 856, 90);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:857:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$toDoubleFunction(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/grouping/GroupingParser.ccc:865:7
        if (!scanToken(TODOUBLE)) 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/grouping/GroupingParser.ccc:865:18
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:18
        pushOntoLookaheadStack("toDoubleFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 865, 18);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:865:28
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:28
        pushOntoLookaheadStack("toDoubleFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 865, 28);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:865:46
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:865:46
        pushOntoLookaheadStack("toDoubleFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 865, 46);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:866:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$toLongFunction(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/grouping/GroupingParser.ccc:874:7
        if (!scanToken(TOLONG)) 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/grouping/GroupingParser.ccc:874:16
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:16
        pushOntoLookaheadStack("toLongFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 874, 16);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:874:26
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:26
        pushOntoLookaheadStack("toLongFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 874, 26);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:874:44
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:874:44
        pushOntoLookaheadStack("toLongFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 874, 44);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:875:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$toRawFunction(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/grouping/GroupingParser.ccc:883:7
        if (!scanToken(TORAW)) 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/grouping/GroupingParser.ccc:883:15
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:15
        pushOntoLookaheadStack("toRawFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 883, 15);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:883:25
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:25
        pushOntoLookaheadStack("toRawFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 883, 25);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:883:43
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:883:43
        pushOntoLookaheadStack("toRawFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 883, 43);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:884:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$toStringFunction(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/grouping/GroupingParser.ccc:893:7
        if (!scanToken(TOSTRING)) 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/grouping/GroupingParser.ccc:893:18
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:18
        pushOntoLookaheadStack("toStringFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 893, 18);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:893:28
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:28
        pushOntoLookaheadStack("toStringFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 893, 28);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:893:46
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:893:46
        pushOntoLookaheadStack("toStringFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 893, 46);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:894:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$xorExpression(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/grouping/GroupingParser.ccc:903:7
        if (!scanToken(XOR)) 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/grouping/GroupingParser.ccc:903:13
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:13
        pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 13);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:903:23
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:23
        pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 23);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(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/grouping/GroupingParser.ccc:903:42
        Token token8 = currentLookaheadToken;
        boolean passedPredicate8 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$903$44(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 NonTerminal specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:107
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:903:107
        pushOntoLookaheadStack("xorExpression", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 903, 107);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:904:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$xorBitFunction(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/grouping/GroupingParser.ccc:915:7
        if (!scanToken(XORBIT)) 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/grouping/GroupingParser.ccc:915:16
        // NonTerminal lbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:16
        pushOntoLookaheadStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 16);
        currentLookaheadProduction = "lbraceElm";
        try {
            if (!check$lbraceElm(true)) 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/grouping/GroupingParser.ccc:915:26
        // NonTerminal expElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:26
        pushOntoLookaheadStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 26);
        currentLookaheadProduction = "expElm";
        try {
            if (!check$expElm(true)) 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/grouping/GroupingParser.ccc:915:44
        // NonTerminal commaElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:44
        pushOntoLookaheadStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 44);
        currentLookaheadProduction = "commaElm";
        try {
            if (!check$commaElm(true)) 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/grouping/GroupingParser.ccc:915:53
        // NonTerminal number at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:53
        pushOntoLookaheadStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 53);
        currentLookaheadProduction = "number";
        try {
            if (!check$number(true)) 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/grouping/GroupingParser.ccc:915:66
        // NonTerminal rbraceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:915:66
        pushOntoLookaheadStack("xorBitFunction", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 915, 66);
        currentLookaheadProduction = "rbraceElm";
        try {
            if (!check$rbraceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:916:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$bucketElm(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/grouping/GroupingParser.ccc:923:7
        if (!scanToken(BUCKET)) 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/grouping/GroupingParser.ccc:923:18
        Token token7 = currentLookaheadToken;
        int remainingLookahead7 = remainingLookahead;
        boolean hitFailure7 = hitFailure;
        boolean passedPredicate7 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$923$18(false)) {
                currentLookaheadToken = token7;
                remainingLookahead = remainingLookahead7;
                hitFailure = hitFailure7;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$924$18(false)) {
                    currentLookaheadToken = token7;
                    remainingLookahead = remainingLookahead7;
                    hitFailure = hitFailure7;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate7;
        }
        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/grouping/GroupingParser.ccc:926:20
        Token token12 = currentLookaheadToken;
        int remainingLookahead12 = remainingLookahead;
        boolean hitFailure12 = hitFailure;
        boolean passedPredicate12 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$926$20(false)) {
                currentLookaheadToken = token12;
                remainingLookahead = remainingLookahead12;
                hitFailure = hitFailure12;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$926$51(false)) {
                    currentLookaheadToken = token12;
                    remainingLookahead = remainingLookahead12;
                    hitFailure = hitFailure12;
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    passedPredicate = false;
                    if (!check$GroupingParser_ccc$926$74(false)) {
                        currentLookaheadToken = token12;
                        remainingLookahead = remainingLookahead12;
                        hitFailure = hitFailure12;
                        if (passedPredicate && !legacyGlitchyLookahead) return false;
                        passedPredicate = false;
                        if (!check$GroupingParser_ccc$926$103(false)) {
                            currentLookaheadToken = token12;
                            remainingLookahead = remainingLookahead12;
                            hitFailure = hitFailure12;
                            return false;
                        }
                    }
                }
            }
        } finally {
            passedPredicate = passedPredicate12;
        }
        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/grouping/GroupingParser.ccc:927:20
        Token token16 = currentLookaheadToken;
        boolean passedPredicate16 = passedPredicate;
        passedPredicate = false;
        try {
            if (!check$GroupingParser_ccc$927$22(false)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token16;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate16;
        }
        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/grouping/GroupingParser.ccc:929:18
        Token token19 = currentLookaheadToken;
        int remainingLookahead19 = remainingLookahead;
        boolean hitFailure19 = hitFailure;
        boolean passedPredicate19 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$929$18(false)) {
                currentLookaheadToken = token19;
                remainingLookahead = remainingLookahead19;
                hitFailure = hitFailure19;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$930$18(false)) {
                    currentLookaheadToken = token19;
                    remainingLookahead = remainingLookahead19;
                    hitFailure = hitFailure19;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate19;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:933:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$signedNumber(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/grouping/GroupingParser.ccc:942:6
        Token token5 = currentLookaheadToken;
        boolean passedPredicate5 = passedPredicate;
        passedPredicate = false;
        try {
            if (!scanToken(INFIX_SUB)) {
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                currentLookaheadToken = token5;
                hitFailure = false;
            }
        } finally {
            passedPredicate = passedPredicate5;
        }
        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/grouping/GroupingParser.ccc:942:38
        if (!scanToken(INTEGER, FLOAT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:60
        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/grouping/GroupingParser.ccc:942:143
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:942:143
        pushOntoLookaheadStack("signedNumber", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 942, 143);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:943:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$number(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/grouping/GroupingParser.ccc:952:9
        if (!scanToken(INTEGER, FLOAT)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:952:31
        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/grouping/GroupingParser.ccc:952:71
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:952:71
        pushOntoLookaheadStack("number", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 952, 71);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:953:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$booleanValue(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/grouping/GroupingParser.ccc:961:9
        if (!scanToken(TRUE, FALSE)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:961:28
        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/grouping/GroupingParser.ccc:961:68
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:961:68
        pushOntoLookaheadStack("booleanValue", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 961, 68);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:962:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$stringElm(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/grouping/GroupingParser.ccc:975:7
        Token token4 = currentLookaheadToken;
        int remainingLookahead4 = remainingLookahead;
        boolean hitFailure4 = hitFailure;
        boolean passedPredicate4 = passedPredicate;
        try {
            passedPredicate = false;
            if (!check$GroupingParser_ccc$975$7$(false)) {
                currentLookaheadToken = token4;
                remainingLookahead = remainingLookahead4;
                hitFailure = hitFailure4;
                if (passedPredicate && !legacyGlitchyLookahead) return false;
                passedPredicate = false;
                if (!check$GroupingParser_ccc$975$29(false)) {
                    currentLookaheadToken = token4;
                    remainingLookahead = remainingLookahead4;
                    hitFailure = hitFailure4;
                    return false;
                }
            }
        } finally {
            passedPredicate = passedPredicate4;
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:976:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$identifierStr(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/grouping/GroupingParser.ccc:984:9
        if (!scanToken(first_set$GroupingParser_ccc$984$9$)) return false;
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1073:20
        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/grouping/GroupingParser.ccc:1073:60
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1073:60
        pushOntoLookaheadStack("identifierStr", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1073, 60);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        if (hitFailure) return false;
        if (remainingLookahead <= 0) {
            return true;
        }
        // Lookahead Code for CodeBlock specified at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1074:5
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$addElm(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/grouping/GroupingParser.ccc:1077:7
        if (!scanToken(INFIX_ADD)) 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/grouping/GroupingParser.ccc:1077:19
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1077:19
        pushOntoLookaheadStack("addElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1077, 19);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$commaElm(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/grouping/GroupingParser.ccc:1080:7
        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/grouping/GroupingParser.ccc:1080:15
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1080:15
        pushOntoLookaheadStack("commaElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1080, 15);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$divElm(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/grouping/GroupingParser.ccc:1083:7
        if (!scanToken(INFIX_DIV)) 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/grouping/GroupingParser.ccc:1083:19
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1083:19
        pushOntoLookaheadStack("divElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1083, 19);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$eqElm(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/grouping/GroupingParser.ccc:1086:7
        if (!scanToken(EQ)) 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/grouping/GroupingParser.ccc:1086:12
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1086:12
        pushOntoLookaheadStack("eqElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1086, 12);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$ltElm(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/grouping/GroupingParser.ccc:1089:7
        if (!scanToken(LT)) 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/grouping/GroupingParser.ccc:1089:12
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1089:12
        pushOntoLookaheadStack("ltElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1089, 12);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$gtElm(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/grouping/GroupingParser.ccc:1092:7
        if (!scanToken(GT)) 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/grouping/GroupingParser.ccc:1092:12
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1092:12
        pushOntoLookaheadStack("gtElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1092, 12);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$infElm(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/grouping/GroupingParser.ccc:1095:7
        if (!scanToken(INF)) 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/grouping/GroupingParser.ccc:1095:13
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1095:13
        pushOntoLookaheadStack("infElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1095, 13);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$neginfElm(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/grouping/GroupingParser.ccc:1098:7
        if (!scanToken(NEGINF)) 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/grouping/GroupingParser.ccc:1098:16
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1098:16
        pushOntoLookaheadStack("neginfElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1098, 16);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$lbracketElm(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/grouping/GroupingParser.ccc:1101:7
        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/grouping/GroupingParser.ccc:1101:18
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1101:18
        pushOntoLookaheadStack("lbracketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1101, 18);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$rbracketElm(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/grouping/GroupingParser.ccc:1104:7
        if (!scanToken(RBRACKET)) 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/grouping/GroupingParser.ccc:1104:18
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1104:18
        pushOntoLookaheadStack("rbracketElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1104, 18);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$lbraceElm(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/grouping/GroupingParser.ccc:1107:7
        if (!scanToken(LBRACE)) 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/grouping/GroupingParser.ccc:1107:16
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1107:16
        pushOntoLookaheadStack("lbraceElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1107, 16);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$lcurlyElm(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/grouping/GroupingParser.ccc:1110:7
        if (!scanToken(LCURLY)) 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/grouping/GroupingParser.ccc:1110:16
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1110:16
        pushOntoLookaheadStack("lcurlyElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1110, 16);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$modElm(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/grouping/GroupingParser.ccc:1113:7
        if (!scanToken(INFIX_MOD)) 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/grouping/GroupingParser.ccc:1113:19
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1113:19
        pushOntoLookaheadStack("modElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1113, 19);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$mulElm(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/grouping/GroupingParser.ccc:1116:7
        if (!scanToken(INFIX_MUL)) 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/grouping/GroupingParser.ccc:1116:19
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1116:19
        pushOntoLookaheadStack("mulElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1116, 19);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$rbraceElm(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/grouping/GroupingParser.ccc:1119:7
        if (!scanToken(RBRACE)) 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/grouping/GroupingParser.ccc:1119:16
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1119:16
        pushOntoLookaheadStack("rbraceElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1119, 16);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$rcurlyElm(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/grouping/GroupingParser.ccc:1122:7
        if (!scanToken(RCURLY)) 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/grouping/GroupingParser.ccc:1122:16
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1122:16
        pushOntoLookaheadStack("rcurlyElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1122, 16);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$subElm(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/grouping/GroupingParser.ccc:1125:7
        if (!scanToken(INFIX_SUB)) 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/grouping/GroupingParser.ccc:1125:19
        // NonTerminal spaceElm at /workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc:1125:19
        pushOntoLookaheadStack("subElm", "/workspace/build/buildkite/vespaai/vespa-engine-vespa/integration/schema-language-server/language-server/src/main/ccc/grouping/GroupingParser.ccc", 1125, 19);
        currentLookaheadProduction = "spaceElm";
        try {
            if (!check$spaceElm(true)) return false;
        } finally {
            popLookaheadStack();
        }
        return true;
    }

    // BuildProductionLookaheadMethod macro
    private boolean check$spaceElm(boolean scanToEnd) {
        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/grouping/GroupingParser.ccc:1131:5
        boolean passedPredicate3 = passedPredicate;
        try {
            while (remainingLookahead > 0 && !hitFailure) {
                Token token4 = currentLookaheadToken;
                passedPredicate = false;
                if (!scanToken(SPACE)) {
                    if (passedPredicate && !legacyGlitchyLookahead) return false;
                    currentLookaheadToken = token4;
                    break;
                }
            }
        } finally {
            passedPredicate = passedPredicate3;
        }
        hitFailure = false;
        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("GroupingParser", 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("GroupingParser", 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 = GroupingParser.this.currentNodeScope;
            GroupingParser.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);
            GroupingParser.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