override fun parse()

in gdscript/src/main/kotlin/gdscript/parser/expr/GdFuncDeclExParser.kt [15:31]


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

        var ok = b.consumeToken(FUNC, pin = true)
        if (b.nextTokenIs(IDENTIFIER)) b.mceIdentifier(FUNC_DECL_ID_NMI)
        ok = ok && b.consumeToken(LRBR)
        ok = ok && GdParamListParser.parse(b, l + 1, true)
        ok = ok && b.consumeToken(RRBR)
        ok = ok && GdReturnHintParser.parse(b, l + 1, true)
        ok = ok && b.consumeToken(COLON)
        ok = ok && GdStmtParser.parseLambda(b, l + 1, false, true)

        if (ok || b.pinned()) GdRecovery.stmt(b)

        return ok || b.pinned()
    }