override fun parse()

in gdscript/src/main/kotlin/gdscript/parser/roots/GdEnumParser.kt [10:33]


    override fun parse(b: GdPsiBuilder, l: Int, optional: Boolean): Boolean {
        if (!b.recursionGuard(l, "Enum")) return false
        if (!b.nextTokenIs(ENUM)) return optional

        b.enterSection(ENUM_DECL_TL)
        var ok = b.consumeToken(ENUM, pin = true)

        if (b.nextTokenIs(IDENTIFIER)) {
            ok = ok && b.mceIdentifier(ENUM_DECL_NMI)
        }

        val lcbr = ok && b.passToken(LCBR)
        while (ok && b.nextTokenIs(IDENTIFIER)) {
            ok = enumValue(b, l + 1)
            if (!b.passToken(COMMA)) break
        }

        ok = ok && lcbr && b.consumeToken(RCBR)
        ok = ok && b.mceEndStmt()

        GdRecovery.topLevel(b)

        return b.exitSection(ok)
    }