From a3f5db0900dbd1a27c419ce6c2cc0dca019b267a Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Mon, 13 Jan 2020 16:09:34 -0800 Subject: [PATCH] chore: update stage0 --- stage0/src/Init/Lean/Parser/Command.lean | 4 +- stage0/src/Init/Lean/Parser/Level.lean | 4 +- stage0/src/Init/Lean/Parser/Parser.lean | 102 +- stage0/src/Init/Lean/Parser/Tactic.lean | 20 +- stage0/src/Init/Lean/Parser/Term.lean | 3 +- stage0/stdlib/Init/Lean/Elab/Command.c | 87 +- stage0/stdlib/Init/Lean/Parser/Command.c | 97 +- stage0/stdlib/Init/Lean/Parser/Level.c | 228 +- stage0/stdlib/Init/Lean/Parser/Parser.c | 1764 +++++++------ stage0/stdlib/Init/Lean/Parser/Tactic.c | 2920 +++++++++++++++++++--- stage0/stdlib/Init/Lean/Parser/Term.c | 144 +- 11 files changed, 4067 insertions(+), 1306 deletions(-) diff --git a/stage0/src/Init/Lean/Parser/Command.lean b/stage0/src/Init/Lean/Parser/Command.lean index a2506a7357..6c15ec50cc 100644 --- a/stage0/src/Init/Lean/Parser/Command.lean +++ b/stage0/src/Init/Lean/Parser/Command.lean @@ -86,7 +86,7 @@ declModifiers >> («abbrev» <|> «def» <|> «theorem» <|> «constant» <|> « @[builtinCommandParser] def exit := parser! "#exit" @[builtinCommandParser] def «resolve_name» := parser! "#resolve_name " >> ident @[builtinCommandParser] def «init_quot» := parser! "init_quot" -@[builtinCommandParser] def «set_option» := parser! "set_option " >> ident >> (symbolOrIdent "true" <|> symbolOrIdent "false" <|> strLit <|> numLit) +@[builtinCommandParser] def «set_option» := parser! "set_option " >> ident >> (nonReservedSymbol "true" <|> nonReservedSymbol "false" <|> strLit <|> numLit) @[builtinCommandParser] def «attribute» := parser! optional "local " >> "attribute " >> "[" >> sepBy1 attrInstance ", " >> "]" >> many1 ident @[builtinCommandParser] def «export» := parser! "export " >> ident >> "(" >> many1 ident >> ")" def openHiding := parser! try (ident >> "hiding") >> many1 ident @@ -98,7 +98,7 @@ def openSimple := parser! many1 ident @[builtinCommandParser] def syntaxCat := parser! "declare_syntax_cat " >> ident /- Lean3 command declaration commands -/ -def maxPrec := parser! symbolOrIdent "max" +def maxPrec := parser! nonReservedSymbol "max" def precedenceLit : Parser := numLit <|> maxPrec def «precedence» := parser! " : " >> precedenceLit def quotedSymbolPrec := parser! quotedSymbol >> optional «precedence» diff --git a/stage0/src/Init/Lean/Parser/Level.lean b/stage0/src/Init/Lean/Parser/Level.lean index 1f7f7a1221..4b1ab733d9 100644 --- a/stage0/src/Init/Lean/Parser/Level.lean +++ b/stage0/src/Init/Lean/Parser/Level.lean @@ -21,8 +21,8 @@ categoryParser `level rbp namespace Level @[builtinLevelParser] def paren := parser! symbol "(" appPrec >> levelParser >> ")" -@[builtinLevelParser] def max := parser! symbolOrIdent "max" >> many1 (levelParser appPrec) -@[builtinLevelParser] def imax := parser! symbolOrIdent "imax" >> many1 (levelParser appPrec) +@[builtinLevelParser] def max := parser! nonReservedSymbol "max " >> many1 (levelParser appPrec) +@[builtinLevelParser] def imax := parser! "imax" >> many1 (levelParser appPrec) @[builtinLevelParser] def hole := parser! "_" @[builtinLevelParser] def num := parser! numLit @[builtinLevelParser] def ident := parser! ident diff --git a/stage0/src/Init/Lean/Parser/Parser.lean b/stage0/src/Init/Lean/Parser/Parser.lean index f209ee5c14..c8ba80f1f3 100644 --- a/stage0/src/Init/Lean/Parser/Parser.lean +++ b/stage0/src/Init/Lean/Parser/Parser.lean @@ -897,7 +897,7 @@ symbolAux sym lbp For example, the universe `max` Function is parsed using this combinator so that it can still be used as an identifier outside of universes (but registering it as a token in a Term Syntax would not break the universe Parser). -/ -def symbolOrIdentFnAux (sym : String) (errorMsg : String) : BasicParserFn := +def nonReservedSymbolFnAux (sym : String) (errorMsg : String) : BasicParserFn := fun c s => let startPos := s.pos; let s := tokenFn c s; @@ -914,16 +914,16 @@ fun c s => s.mkErrorAt errorMsg startPos | _ => s.mkErrorAt errorMsg startPos -@[inline] def symbolOrIdentFn (sym : String) : BasicParserFn := -symbolOrIdentFnAux sym ("'" ++ sym ++ "'") +@[inline] def nonReservedSymbolFn (sym : String) : BasicParserFn := +nonReservedSymbolFnAux sym ("'" ++ sym ++ "'") -def symbolOrIdentInfo (sym : String) : ParserInfo := +def nonReservedSymbolInfo (sym : String) : ParserInfo := { firstTokens := FirstTokens.tokens [ { val := sym }, { val := "ident" } ] } -@[inline] def symbolOrIdent {k : ParserKind} (sym : String) : Parser k := +@[inline] def nonReservedSymbol {k : ParserKind} (sym : String) : Parser k := let sym := sym.trim; -{ info := symbolOrIdentInfo sym, - fn := fun _ => symbolOrIdentFn sym } +{ info := nonReservedSymbolInfo sym, + fn := fun _ => nonReservedSymbolFn sym } partial def strAux (sym : String) (errorMsg : String) : Nat → BasicParserFn | j, c, s => @@ -1247,26 +1247,32 @@ match stx with | some (Syntax.node k _) => if k == numLitKind || k == charLitKind || k == strLitKind || k == fieldIdxKind then (s, appPrec) else (s, 0) | _ => (s, 0) -def indexed {α : Type} (map : TokenMap α) (c : ParserContext) (s : ParserState) : ParserState × List α := +def indexed {α : Type} (map : TokenMap α) (c : ParserContext) (s : ParserState) (leadingIdentAsSymbol : Bool) : ParserState × List α := let (s, stx) := peekToken c s; let find (n : Name) : ParserState × List α := match map.find n with | some as => (s, as) | _ => (s, []); match stx with -| some (Syntax.atom _ sym) => find (mkNameSimple sym) -| some (Syntax.ident _ _ _ _) => find `ident -| some (Syntax.node k _) => find k -| _ => (s, []) +| some (Syntax.atom _ sym) => find (mkNameSimple sym) +| some (Syntax.ident _ _ val _) => + if leadingIdentAsSymbol then + match map.find val with + | some as => (s, as) + | none => find `ident + else + find `ident +| some (Syntax.node k _) => find k +| _ => (s, []) private def mkResult (s : ParserState) (iniSz : Nat) : ParserState := if s.stackSize == iniSz + 1 then s else s.mkNode nullKind iniSz -- throw error instead? -def leadingParser (kind : Name) (tables : ParsingTables) : ParserFn leading := +def leadingParser (kind : Name) (tables : ParsingTables) (leadingIdentAsSymbol : Bool) : ParserFn leading := fun a c s => let iniSz := s.stackSize; - let (s, ps) := indexed tables.leadingTable c s; + let (s, ps) := indexed tables.leadingTable c s leadingIdentAsSymbol; if ps.isEmpty then s.mkError (toString kind) else @@ -1282,8 +1288,9 @@ partial def trailingLoop (tables : ParsingTables) (rbp : Nat) (c : ParserContext let (s, lbp) := currLbp left c s; if rbp ≥ lbp then s.pushSyntax left else - let iniSz := s.stackSize; - let (s, ps) := indexed tables.trailingTable c s; + let iniSz := s.stackSize; + let identAsSymbol := false; + let (s, ps) := indexed tables.trailingTable c s identAsSymbol; if ps.isEmpty && tables.trailingParsers.isEmpty then s.pushSyntax left -- no available trailing parser else @@ -1295,9 +1302,9 @@ partial def trailingLoop (tables : ParsingTables) (rbp : Nat) (c : ParserContext let s := s.popSyntax; trailingLoop left s -def prattParser (kind : Name) (tables : ParsingTables) : ParserFn leading := +def prattParser (kind : Name) (tables : ParsingTables) (leadingIdentAsSymbol : Bool) : ParserFn leading := fun rbp c s => - let s := leadingParser kind tables rbp c s; + let s := leadingParser kind tables leadingIdentAsSymbol rbp c s; if s.hasError then s else let left := s.stxStack.back; @@ -1331,7 +1338,11 @@ def mkBuiltinTokenTable : IO (IO.Ref TokenTable) := IO.mkRef {} def mkBuiltinSyntaxNodeKindSetRef : IO (IO.Ref SyntaxNodeKindSet) := IO.mkRef {} @[init mkBuiltinSyntaxNodeKindSetRef] constant builtinSyntaxNodeKindSetRef : IO.Ref SyntaxNodeKindSet := arbitrary _ -abbrev ParserCategories := PersistentHashMap Name ParsingTables +structure ParserCategory := +(tables : ParsingTables) +(leadingIdentAsSymbol : Bool := false) + +abbrev ParserCategories := PersistentHashMap Name ParserCategory def mkBuiltinParserCategories : IO (IO.Ref ParserCategories) := IO.mkRef {} @[init mkBuiltinParserCategories] constant builtinParserCategoriesRef : IO.Ref ParserCategories := arbitrary _ @@ -1339,27 +1350,27 @@ def mkBuiltinParserCategories : IO (IO.Ref ParserCategories) := IO.mkRef {} private def throwParserCategoryAlreadyDefined {α} (catName : Name) : ExceptT String Id α := throw ("parser category '" ++ toString catName ++ "' has already been defined") -private def addParserCategoryCore (categories : ParserCategories) (catName : Name) : Except String ParserCategories := +private def addParserCategoryCore (categories : ParserCategories) (catName : Name) (leadingIdentAsSymbol : Bool) : Except String ParserCategories := if categories.contains catName then throwParserCategoryAlreadyDefined catName else - pure $ categories.insert catName {} + pure $ categories.insert catName { tables := {}, leadingIdentAsSymbol := leadingIdentAsSymbol } -private def addBuiltinParserCategory (catName : Name) : IO Unit := do +private def addBuiltinParserCategory (catName : Name) (leadingIdentAsSymbol : Bool) : IO Unit := do categories ← builtinParserCategoriesRef.get; -categories ← IO.ofExcept $ addParserCategoryCore categories catName; +categories ← IO.ofExcept $ addParserCategoryCore categories catName leadingIdentAsSymbol; builtinParserCategoriesRef.set categories inductive ParserExtensionOleanEntry | token (val : TokenConfig) : ParserExtensionOleanEntry | kind (val : SyntaxNodeKind) : ParserExtensionOleanEntry -| category (catName : Name) +| category (catName : Name) (leadingIdentAsSymbol : Bool) | parser (catName : Name) (declName : Name) : ParserExtensionOleanEntry inductive ParserExtensionEntry | token (val : TokenConfig) : ParserExtensionEntry | kind (val : SyntaxNodeKind) : ParserExtensionEntry -| category (catName : Name) +| category (catName : Name) (leadingIdentAsSymbol : Bool) | parser (catName : Name) (declName : Name) (k : ParserKind) (p : Parser k) : ParserExtensionEntry structure ParserExtensionState := @@ -1401,11 +1412,11 @@ throw ("unknown parser category '" ++ toString catName ++ "'") def addLeadingParser (categories : ParserCategories) (catName : Name) (parserName : Name) (p : Parser) : Except String ParserCategories := let addTokens (tks : List TokenConfig) : Except String ParserCategories := match categories.find? catName with - | none => throwUnknownParserCategory catName - | some tables => + | none => throwUnknownParserCategory catName + | some cat => let tks := tks.map $ fun tk => mkNameSimple tk.val; - let tables := tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { leadingTable := tables.leadingTable.insert tk p, .. tables }) tables; - pure (categories.insert catName tables); + let tables := tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { leadingTable := tables.leadingTable.insert tk p, .. tables }) cat.tables; + pure $ categories.insert catName { tables := tables, .. cat }; match p.info.firstTokens with | FirstTokens.tokens tks => addTokens tks | FirstTokens.optTokens tks => addTokens tks @@ -1422,8 +1433,8 @@ match p.info.firstTokens with def addTrailingParser (categories : ParserCategories) (catName : Name) (p : TrailingParser) : Except String ParserCategories := match categories.find? catName with -| none => throwUnknownParserCategory catName -| some tables => pure $ categories.insert catName (addTrailingParserAux tables p) +| none => throwUnknownParserCategory catName +| some cat => pure $ categories.insert catName { tables := addTrailingParserAux cat.tables p, .. cat } def addParser {k} (categories : ParserCategories) (catName : Name) (declName : Name) (p : Parser k) : Except String ParserCategories := match k, p with @@ -1461,9 +1472,10 @@ match e with | _ => unreachable! | ParserExtensionEntry.kind k => { kinds := s.kinds.insert k, newEntries := ParserExtensionOleanEntry.kind k :: s.newEntries, .. s } -| ParserExtensionEntry.category catName => +| ParserExtensionEntry.category catName leadingIdentAsSymbol => if s.categories.contains catName then s - else { categories := s.categories.insert catName {}, newEntries := ParserExtensionOleanEntry.category catName :: s.newEntries, .. s } + else { categories := s.categories.insert catName { tables := {}, leadingIdentAsSymbol := leadingIdentAsSymbol }, + newEntries := ParserExtensionOleanEntry.category catName leadingIdentAsSymbol :: s.newEntries, .. s } | ParserExtensionEntry.parser catName declName _ parser => match addParser s.categories catName declName parser with | Except.ok categories => { categories := categories, newEntries := ParserExtensionOleanEntry.parser catName declName :: s.newEntries, .. s } @@ -1526,8 +1538,8 @@ es.foldlM pure { tokens := tokens, .. s } | ParserExtensionOleanEntry.kind k => pure { kinds := s.kinds.insert k, .. s } - | ParserExtensionOleanEntry.category catName => do - categories ← IO.ofExcept (addParserCategoryCore s.categories catName); + | ParserExtensionOleanEntry.category catName leadingIdentAsSymbol => do + categories ← IO.ofExcept (addParserCategoryCore s.categories catName leadingIdentAsSymbol); pure { categories := categories, .. s } | ParserExtensionOleanEntry.parser catName declName => match mkParserOfConstant env s.categories declName with @@ -1555,18 +1567,18 @@ constant parserExtension : ParserExtension := arbitrary _ def isParserCategory (env : Environment) (catName : Name) : Bool := (parserExtension.getState env).categories.contains catName -def addParserCategory (env : Environment) (catName : Name) : Except String Environment := do +def addParserCategory (env : Environment) (catName : Name) (leadingIdentAsSymbol : Bool) : Except String Environment := do if isParserCategory env catName then throwParserCategoryAlreadyDefined catName else - pure $ parserExtension.addEntry env $ ParserExtensionEntry.category catName + pure $ parserExtension.addEntry env $ ParserExtensionEntry.category catName leadingIdentAsSymbol def categoryParserFnImpl (catName : Name) : ParserFn leading := fun rbp ctx s => let categories := (parserExtension.getState ctx.env).categories; match categories.find? catName with - | some tables => prattParser catName tables rbp ctx s - | none => s.mkUnexpectedError ("unknown parser category '" ++ toString catName ++ "'") + | some cat => prattParser catName cat.tables cat.leadingIdentAsSymbol rbp ctx s + | none => s.mkUnexpectedError ("unknown parser category '" ++ toString catName ++ "'") @[init] def setCategoryParserFnRef : IO Unit := categoryParserFnRef.set categoryParserFnImpl @@ -1607,11 +1619,11 @@ def mkParserState (input : String) : ParserState := def runParserCategory (env : Environment) (catName : Name) (input : String) (fileName := "") : Except String Syntax := let categories := (parserExtension.getState env).categories; match categories.find? catName with -| some tables => +| some cat => let c := mkParserContext env (mkInputContext input fileName); let s := mkParserState input; let s := whitespace c s; - let s := prattParser catName tables (0 : Nat) c s; + let s := prattParser catName cat.tables cat.leadingIdentAsSymbol (0 : Nat) c s; if s.hasError then Except.error (s.toErrorMsg c) else @@ -1652,8 +1664,8 @@ match env.find? declName with /- The parsing tables for builtin parsers are "stored" in the extracted source code. -/ -def registerBuiltinParserAttribute (attrName : Name) (catName : Name) : IO Unit := do -addBuiltinParserCategory catName; +def registerBuiltinParserAttribute (attrName : Name) (catName : Name) (leadingIdentAsSymbol := false) : IO Unit := do +addBuiltinParserCategory catName leadingIdentAsSymbol; registerBuiltinAttribute { name := attrName, descr := "Builtin parser", @@ -1699,8 +1711,8 @@ registerAttributeImplBuilder `parserAttr $ fun args => | [DataValue.ofName attrName, DataValue.ofName catName] => pure $ mkParserAttributeImpl attrName catName | _ => throw ("invalid parser attribute implementation builder arguments") -def registerParserCategory (env : Environment) (attrName : Name) (catName : Name) : IO Environment := do -env ← IO.ofExcept $ addParserCategory env catName; +def registerParserCategory (env : Environment) (attrName : Name) (catName : Name) (leadingIdentAsSymbol := false) : IO Environment := do +env ← IO.ofExcept $ addParserCategory env catName leadingIdentAsSymbol; registerAttributeOfBuilder env `parserAttr [DataValue.ofName attrName, DataValue.ofName catName] -- declare `termParser` here since it is used everywhere via antiquotations diff --git a/stage0/src/Init/Lean/Parser/Tactic.lean b/stage0/src/Init/Lean/Parser/Tactic.lean index bbad3776a7..164346877b 100644 --- a/stage0/src/Init/Lean/Parser/Tactic.lean +++ b/stage0/src/Init/Lean/Parser/Tactic.lean @@ -18,14 +18,32 @@ registerBuiltinDynamicParserAttribute `tacticParser `tactic @[inline] def tacticParser {k : ParserKind} (rbp : Nat := 0) : Parser k := categoryParser `tactic rbp +def tacticSeq {k : ParserKind} : Parser k := +sepBy1 tacticParser "; " true + namespace Tactic +def tacticSymbolInfo (sym : String) : ParserInfo := +{ firstTokens := FirstTokens.tokens [ { val := sym } ] } + +@[inline] def tacticSymbol {k : ParserKind} (sym : String) : Parser k := +let sym := sym.trim; +{ info := tacticSymbolInfo sym, + fn := fun _ => nonReservedSymbolFn sym } + +@[builtinTacticParser] def «intro» := parser! tacticSymbol "intro " >> optional ident +@[builtinTacticParser] def «intros» := parser! tacticSymbol "intros " >> many ident +@[builtinTacticParser] def «assumption» := parser! tacticSymbol "assumption" +@[builtinTacticParser] def «apply» := parser! tacticSymbol "apply " >> termParser +@[builtinTacticParser] def nestedTacticBlock := parser! "begin " >> tacticSeq >> "end" +@[builtinTacticParser] def nestedTacticBlockCurly := parser! "{" >> tacticSeq >> "}" +@[builtinTacticParser] def orelse := tparser! infixR " <|> " 2 end Tactic namespace Term -@[builtinTermParser] def tacticBlock := parser! symbol "begin " appPrec >> tacticParser >> "end" +@[builtinTermParser] def tacticBlock := parser! symbol "begin " appPrec >> tacticSeq >> "end" end Term diff --git a/stage0/src/Init/Lean/Parser/Term.lean b/stage0/src/Init/Lean/Parser/Term.lean index b0f758de4f..e6a502c5a2 100644 --- a/stage0/src/Init/Lean/Parser/Term.lean +++ b/stage0/src/Init/Lean/Parser/Term.lean @@ -9,7 +9,6 @@ import Init.Lean.Parser.Level namespace Lean namespace Parser -namespace Term /- Helper functions for defining simple parsers -/ def unicodeInfixR (sym : String) (asciiSym : String) (lbp : Nat) : TrailingParser := @@ -24,6 +23,8 @@ pushLeading >> unicodeSymbol sym asciiSym lbp >> termParser lbp def infixL (sym : String) (lbp : Nat) : TrailingParser := pushLeading >> symbol sym lbp >> termParser lbp +namespace Term + /- Built-in parsers -/ -- NOTE: `checkNoWsBefore` should be used *before* `parser!` so that it is also applied to the generated -- antiquotation. diff --git a/stage0/stdlib/Init/Lean/Elab/Command.c b/stage0/stdlib/Init/Lean/Elab/Command.c index 063a962cf6..dbb15b05ae 100644 --- a/stage0/stdlib/Init/Lean/Elab/Command.c +++ b/stage0/stdlib/Init/Lean/Elab/Command.c @@ -399,7 +399,7 @@ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabSynth___closed__1; lean_object* l___private_Init_Lean_Elab_Command_2__getState(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Command_universe___elambda__1___closed__2; lean_object* l_Lean_Elab_Command_elabCommandAux___closed__2; -lean_object* l_Lean_Parser_registerParserCategory(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserCategory(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabOpen___closed__2; extern lean_object* l_Bool_HasRepr___closed__1; lean_object* l_Lean_Meta_synthInstance(lean_object*, lean_object*, lean_object*); @@ -18689,79 +18689,80 @@ lean_inc(x_2); x_8 = l_Lean_Elab_Command_getEnv(x_2, x_3); if (lean_obj_tag(x_8) == 0) { -lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_object* x_12; x_9 = lean_ctor_get(x_8, 0); lean_inc(x_9); x_10 = lean_ctor_get(x_8, 1); lean_inc(x_10); lean_dec(x_8); -x_11 = l_Lean_Parser_registerParserCategory(x_9, x_7, x_5, x_10); -if (lean_obj_tag(x_11) == 0) +x_11 = 0; +x_12 = l_Lean_Parser_registerParserCategory(x_9, x_7, x_5, x_11, x_10); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -x_14 = l_Lean_Elab_Command_setEnv(x_12, x_2, x_13); -return x_14; +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = l_Lean_Elab_Command_setEnv(x_13, x_2, x_14); +return x_15; } else { -uint8_t x_15; -x_15 = !lean_is_exclusive(x_11); -if (x_15 == 0) +uint8_t x_16; +x_16 = !lean_is_exclusive(x_12); +if (x_16 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_16 = lean_ctor_get(x_11, 0); -x_17 = l___private_Init_Lean_Elab_Command_1__ioErrorToMessage(x_2, x_1, x_16); -x_18 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_11, 0, x_18); -return x_11; +lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_17 = lean_ctor_get(x_12, 0); +x_18 = l___private_Init_Lean_Elab_Command_1__ioErrorToMessage(x_2, x_1, x_17); +x_19 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_12, 0, x_19); +return x_12; } else { -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_19 = lean_ctor_get(x_11, 0); -x_20 = lean_ctor_get(x_11, 1); +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_20 = lean_ctor_get(x_12, 0); +x_21 = lean_ctor_get(x_12, 1); +lean_inc(x_21); lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_11); -x_21 = l___private_Init_Lean_Elab_Command_1__ioErrorToMessage(x_2, x_1, x_19); -x_22 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_22, 0, x_21); -x_23 = lean_alloc_ctor(1, 2, 0); +lean_dec(x_12); +x_22 = l___private_Init_Lean_Elab_Command_1__ioErrorToMessage(x_2, x_1, x_20); +x_23 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_20); -return x_23; +x_24 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_21); +return x_24; } } } else { -uint8_t x_24; +uint8_t x_25; lean_dec(x_7); lean_dec(x_5); lean_dec(x_2); -x_24 = !lean_is_exclusive(x_8); -if (x_24 == 0) +x_25 = !lean_is_exclusive(x_8); +if (x_25 == 0) { return x_8; } else { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_8, 0); -x_26 = lean_ctor_get(x_8, 1); +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_8, 0); +x_27 = lean_ctor_get(x_8, 1); +lean_inc(x_27); lean_inc(x_26); -lean_inc(x_25); lean_dec(x_8); -x_27 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_27, 0, x_25); -lean_ctor_set(x_27, 1, x_26); -return x_27; +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +return x_28; } } } diff --git a/stage0/stdlib/Init/Lean/Parser/Command.c b/stage0/stdlib/Init/Lean/Parser/Command.c index 3a5fc7ff3f..0ba2c74210 100644 --- a/stage0/stdlib/Init/Lean/Parser/Command.c +++ b/stage0/stdlib/Init/Lean/Parser/Command.c @@ -114,7 +114,6 @@ lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_stxQuot___elambd extern lean_object* l_Lean_Parser_Term_haveAssign___closed__2; lean_object* l_Lean_Parser_Command_structExplicitBinder___closed__11; lean_object* l_Lean_Parser_Command_declId___elambda__1___closed__3; -extern lean_object* l_Lean_Parser_Level_max___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_openRenaming; lean_object* l_Lean_Parser_Command_variables___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_partial___elambda__1___closed__3; @@ -151,6 +150,7 @@ lean_object* l_Lean_Parser_Command_infixr___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_unsafe___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_inductive___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_declaration___closed__7; +lean_object* l_Lean_Parser_Command_maxPrec___closed__5; lean_object* l___regBuiltinParser_Lean_Parser_Command_attribute(lean_object*); lean_object* l_Lean_Parser_Command_attributes___closed__7; lean_object* l_Lean_Parser_Command_section___closed__5; @@ -255,7 +255,6 @@ lean_object* l_Lean_Parser_Command_classInductive___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_abbrev___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_notation___closed__10; lean_object* l_Lean_Parser_Command_openRenaming___closed__4; -lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object*); lean_object* l_Lean_Parser_Command_example___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_attribute___closed__10; lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); @@ -415,7 +414,6 @@ lean_object* l_Lean_Parser_Command_prefix___closed__4; lean_object* l_Lean_Parser_Command_private___closed__3; lean_object* l_Lean_Parser_Command_extends___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_structExplicitBinder___closed__4; -extern lean_object* l_Lean_Parser_Level_max___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_abbrev___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_variables___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_infixl___closed__3; @@ -463,6 +461,7 @@ lean_object* l_Lean_Parser_Command_attribute; lean_object* l_Lean_Parser_Command_docComment___closed__4; uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_structure___closed__10; +lean_object* l_Lean_Parser_nonReservedSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_partial___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_quotedSymbolPrec___elambda__1(lean_object*, lean_object*, lean_object*); @@ -492,6 +491,7 @@ lean_object* l_Lean_Parser_Command_declModifiers___closed__5; lean_object* l_Lean_Parser_Command_structureTk___closed__1; lean_object* l_Lean_Parser_Command_init__quot___closed__1; lean_object* l_Lean_Parser_Command_inductive___elambda__1___closed__6; +lean_object* l_Lean_Parser_Command_maxPrec___elambda__1___closed__5; extern lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_universes___closed__1; lean_object* lean_nat_sub(lean_object*, lean_object*); @@ -509,9 +509,9 @@ lean_object* l_Lean_Parser_Command_prefix___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_prefix___closed__1; lean_object* l_Lean_Parser_Command_infixl___elambda__1___closed__2; lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__2; +lean_object* l_Lean_Parser_nonReservedSymbolInfo(lean_object*); lean_object* l_Lean_Parser_Command_example___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_declId___closed__1; -lean_object* l_Lean_Parser_symbolOrIdentFnAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_declModifiers___closed__15; lean_object* l_Lean_Parser_Command_attributes___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_export___elambda__1(lean_object*, lean_object*, lean_object*); @@ -712,7 +712,7 @@ lean_object* l_Lean_Parser_Command_attributes___closed__1; lean_object* l_Lean_Parser_Command_extends___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_universe___closed__2; lean_object* l_Lean_Parser_Command_inductive___closed__6; -lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_Command_structCtor___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_resolve__name___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_commentBody___elambda__1(lean_object*, lean_object*, lean_object*); @@ -1043,6 +1043,7 @@ lean_object* l_Lean_Parser_Command_postfix___closed__2; lean_object* l_Lean_Parser_Command_instance___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_noncomputable___closed__4; lean_object* l_Lean_Parser_Command_structInstBinder___elambda__1___closed__2; +lean_object* l_Lean_Parser_Command_maxPrec___elambda__1___closed__7; lean_object* l___regBuiltinParser_Lean_Parser_Term_stxQuot(lean_object*); lean_object* l_Lean_Parser_Command_notation___closed__4; lean_object* l_Lean_Parser_Command_openOnly___closed__6; @@ -1100,6 +1101,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_ lean_object* l_Lean_Parser_Command_mixfixKind___closed__6; lean_object* l_Lean_Parser_Command_maxPrec___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_classInductive___elambda__1___closed__9; +extern lean_object* l_Lean_Level_LevelToFormat_Result_format___main___closed__3; lean_object* l_Lean_Parser_Command_openRenaming___closed__2; lean_object* l_Lean_Parser_Command_openHiding___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_declaration___closed__8; @@ -1357,7 +1359,6 @@ lean_object* l_Lean_Parser_Command_prefix___elambda__1___closed__2; lean_object* l_Lean_Parser_Command_quotedSymbolPrec___closed__3; lean_object* l_Lean_Parser_Command_structCtor___elambda__1___closed__6; lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Command_declId___elambda__1___spec__1(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_Level_max___closed__1; lean_object* l_Lean_Parser_Command_infixr___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_universe___closed__3; lean_object* l_Lean_Parser_Command_structure___closed__12; @@ -1389,6 +1390,7 @@ lean_object* l_Lean_Parser_Command_variable___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_section___closed__6; lean_object* l_Lean_Parser_Command_variables___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_declModifiers___closed__4; +lean_object* l_Lean_Parser_Command_maxPrec___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_instance___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_set__option___closed__11; lean_object* l_Lean_Parser_Command_open___elambda__1___closed__9; @@ -1435,11 +1437,12 @@ return x_3; lean_object* l_Lean_Parser_regBuiltinCommandParserAttr(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; +lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; x_2 = l_Lean_Parser_regBuiltinCommandParserAttr___closed__2; x_3 = l_Lean_Parser_regBuiltinCommandParserAttr___closed__4; -x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); -return x_4; +x_4 = 0; +x_5 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_regCommandParserAttribute___closed__1() { @@ -21472,7 +21475,7 @@ lean_inc(x_25); x_26 = l_Lean_Parser_Command_set__option___elambda__1___closed__7; x_27 = l_Lean_Parser_Command_set__option___elambda__1___closed__10; lean_inc(x_2); -x_28 = l_Lean_Parser_symbolOrIdentFnAux(x_26, x_27, x_2, x_21); +x_28 = l_Lean_Parser_nonReservedSymbolFnAux(x_26, x_27, x_2, x_21); x_29 = lean_ctor_get(x_28, 3); lean_inc(x_29); if (lean_obj_tag(x_29) == 0) @@ -21523,7 +21526,7 @@ lean_dec(x_40); x_42 = l_Lean_Parser_Command_set__option___elambda__1___closed__8; x_43 = l_Lean_Parser_Command_set__option___elambda__1___closed__12; lean_inc(x_2); -x_44 = l_Lean_Parser_symbolOrIdentFnAux(x_42, x_43, x_2, x_39); +x_44 = l_Lean_Parser_nonReservedSymbolFnAux(x_42, x_43, x_2, x_39); x_45 = lean_ctor_get(x_44, 3); lean_inc(x_45); if (lean_obj_tag(x_45) == 0) @@ -21684,7 +21687,7 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_Command_set__option___elambda__1___closed__7; -x_2 = l_Lean_Parser_symbolOrIdentInfo(x_1); +x_2 = l_Lean_Parser_nonReservedSymbolInfo(x_1); return x_2; } } @@ -21693,7 +21696,7 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_Command_set__option___elambda__1___closed__8; -x_2 = l_Lean_Parser_symbolOrIdentInfo(x_1); +x_2 = l_Lean_Parser_nonReservedSymbolInfo(x_1); return x_2; } } @@ -26106,6 +26109,35 @@ x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); return x_5; } } +lean_object* _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Level_LevelToFormat_Result_format___main___closed__3; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__5; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__6; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} lean_object* l_Lean_Parser_Command_maxPrec___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -26158,9 +26190,9 @@ x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); x_16 = lean_array_get_size(x_15); lean_dec(x_15); -x_17 = l_Lean_Parser_Level_max___elambda__1___closed__4; -x_18 = l_Lean_Parser_Level_max___elambda__1___closed__6; -x_19 = l_Lean_Parser_symbolOrIdentFnAux(x_17, x_18, x_2, x_14); +x_17 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__5; +x_18 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__7; +x_19 = l_Lean_Parser_nonReservedSymbolFnAux(x_17, x_18, x_2, x_14); x_20 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__2; x_21 = l_Lean_Parser_ParserState_mkNode(x_19, x_20, x_16); x_22 = l_Lean_Parser_mergeOrElseErrors(x_21, x_11, x_8); @@ -26173,26 +26205,35 @@ return x_22; lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__1() { _start: { +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__5; +x_2 = l_Lean_Parser_nonReservedSymbolInfo(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__2() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__2; -x_2 = l_Lean_Parser_Level_max___closed__1; +x_2 = l_Lean_Parser_Command_maxPrec___closed__1; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__2() { +lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Command_maxPrec___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Command_maxPrec___closed__1; +x_3 = l_Lean_Parser_Command_maxPrec___closed__2; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__3() { +lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__4() { _start: { lean_object* x_1; @@ -26200,12 +26241,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Command_maxPrec___elambda__1), 3, return x_1; } } -lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__4() { +lean_object* _init_l_Lean_Parser_Command_maxPrec___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Command_maxPrec___closed__2; -x_2 = l_Lean_Parser_Command_maxPrec___closed__3; +x_1 = l_Lean_Parser_Command_maxPrec___closed__3; +x_2 = l_Lean_Parser_Command_maxPrec___closed__4; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -26216,7 +26257,7 @@ lean_object* _init_l_Lean_Parser_Command_maxPrec() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Command_maxPrec___closed__4; +x_1 = l_Lean_Parser_Command_maxPrec___closed__5; return x_1; } } @@ -32242,6 +32283,12 @@ l_Lean_Parser_Command_maxPrec___elambda__1___closed__3 = _init_l_Lean_Parser_Com lean_mark_persistent(l_Lean_Parser_Command_maxPrec___elambda__1___closed__3); l_Lean_Parser_Command_maxPrec___elambda__1___closed__4 = _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__4(); lean_mark_persistent(l_Lean_Parser_Command_maxPrec___elambda__1___closed__4); +l_Lean_Parser_Command_maxPrec___elambda__1___closed__5 = _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__5(); +lean_mark_persistent(l_Lean_Parser_Command_maxPrec___elambda__1___closed__5); +l_Lean_Parser_Command_maxPrec___elambda__1___closed__6 = _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__6(); +lean_mark_persistent(l_Lean_Parser_Command_maxPrec___elambda__1___closed__6); +l_Lean_Parser_Command_maxPrec___elambda__1___closed__7 = _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Command_maxPrec___elambda__1___closed__7); l_Lean_Parser_Command_maxPrec___closed__1 = _init_l_Lean_Parser_Command_maxPrec___closed__1(); lean_mark_persistent(l_Lean_Parser_Command_maxPrec___closed__1); l_Lean_Parser_Command_maxPrec___closed__2 = _init_l_Lean_Parser_Command_maxPrec___closed__2(); @@ -32250,6 +32297,8 @@ l_Lean_Parser_Command_maxPrec___closed__3 = _init_l_Lean_Parser_Command_maxPrec_ lean_mark_persistent(l_Lean_Parser_Command_maxPrec___closed__3); l_Lean_Parser_Command_maxPrec___closed__4 = _init_l_Lean_Parser_Command_maxPrec___closed__4(); lean_mark_persistent(l_Lean_Parser_Command_maxPrec___closed__4); +l_Lean_Parser_Command_maxPrec___closed__5 = _init_l_Lean_Parser_Command_maxPrec___closed__5(); +lean_mark_persistent(l_Lean_Parser_Command_maxPrec___closed__5); l_Lean_Parser_Command_maxPrec = _init_l_Lean_Parser_Command_maxPrec(); lean_mark_persistent(l_Lean_Parser_Command_maxPrec); l_Lean_Parser_Command_precedenceLit___closed__1 = _init_l_Lean_Parser_Command_precedenceLit___closed__1(); diff --git a/stage0/stdlib/Init/Lean/Parser/Level.c b/stage0/stdlib/Init/Lean/Parser/Level.c index 4f1c828ab9..d0fcdc689e 100644 --- a/stage0/stdlib/Init/Lean/Parser/Level.c +++ b/stage0/stdlib/Init/Lean/Parser/Level.c @@ -49,7 +49,6 @@ lean_object* l_Lean_Parser_registerBuiltinDynamicParserAttribute(lean_object*, l lean_object* l_Lean_Parser_Level_paren___closed__7; lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__5; lean_object* l_Lean_Parser_Level_hole___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object*); lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__3; @@ -75,12 +74,13 @@ lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__1; lean_object* l_Lean_Parser_Level_ident___closed__3; lean_object* l___regBuiltinParser_Lean_Parser_Level_paren(lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Name_appendIndexAfter___closed__1; lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_addLit___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__2; lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__7; -lean_object* l_Lean_Parser_symbolOrIdentFnAux(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolInfo(lean_object*); lean_object* l_Lean_Parser_Level_paren; lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__2; lean_object* l_Lean_Parser_Level_paren___closed__10; @@ -104,7 +104,7 @@ lean_object* l_Lean_Parser_regLevelParserAttribute(lean_object*); lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__11; lean_object* l_Lean_Parser_Level_imax___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_ident___closed__1; -lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_Level_addLit___closed__5; lean_object* l_Lean_Parser_Level_addLit___closed__3; lean_object* l_Lean_Parser_Level_imax___closed__2; @@ -158,6 +158,7 @@ extern lean_object* l_Lean_Syntax_getKind___closed__3; lean_object* l_Lean_Parser_mkAntiquot(uint8_t, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__13; lean_object* l_Lean_Parser_Level_max___elambda__1___closed__5; +lean_object* l_Lean_Parser_Level_max___elambda__1___closed__7; lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__5; lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__14; lean_object* l_Lean_Parser_Level_max___elambda__1___closed__3; @@ -169,6 +170,7 @@ lean_object* l_Lean_Parser_Level_paren___closed__6; lean_object* l___regBuiltinParser_Lean_Parser_Level_imax(lean_object*); lean_object* l_Lean_Parser_Level_imax___closed__4; lean_object* l_Lean_Parser_numLitFn___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__7; lean_object* l_Lean_Parser_Level_paren___closed__8; lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__4; lean_object* l_Lean_Parser_Level_hole___closed__4; @@ -218,11 +220,12 @@ return x_3; lean_object* l_Lean_Parser_regBuiltinLevelParserAttr(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; +lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; x_2 = l_Lean_Parser_regBuiltinLevelParserAttr___closed__2; x_3 = l_Lean_Parser_regBuiltinLevelParserAttr___closed__4; -x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); -return x_4; +x_4 = 0; +x_5 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_regLevelParserAttribute___closed__1() { @@ -858,27 +861,35 @@ return x_5; lean_object* _init_l_Lean_Parser_Level_max___elambda__1___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Level_LevelToFormat_Result_format___main___closed__3; -x_2 = l_String_trim(x_1); -return x_2; +lean_object* x_1; +x_1 = lean_mk_string("max "); +return x_1; } } lean_object* _init_l_Lean_Parser_Level_max___elambda__1___closed__5() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Char_HasRepr___closed__1; -x_2 = l_Lean_Parser_Level_max___elambda__1___closed__4; -x_3 = lean_string_append(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Level_max___elambda__1___closed__4; +x_2 = l_String_trim(x_1); +return x_2; } } lean_object* _init_l_Lean_Parser_Level_max___elambda__1___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_max___elambda__1___closed__5; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Level_max___elambda__1___closed__5; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Level_max___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Level_max___elambda__1___closed__6; x_2 = l_Char_HasRepr___closed__1; x_3 = lean_string_append(x_1, x_2); return x_3; @@ -939,10 +950,10 @@ x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); x_16 = lean_array_get_size(x_15); lean_dec(x_15); -x_17 = l_Lean_Parser_Level_max___elambda__1___closed__4; -x_18 = l_Lean_Parser_Level_max___elambda__1___closed__6; +x_17 = l_Lean_Parser_Level_max___elambda__1___closed__5; +x_18 = l_Lean_Parser_Level_max___elambda__1___closed__7; lean_inc(x_2); -x_19 = l_Lean_Parser_symbolOrIdentFnAux(x_17, x_18, x_2, x_14); +x_19 = l_Lean_Parser_nonReservedSymbolFnAux(x_17, x_18, x_2, x_14); x_20 = lean_ctor_get(x_19, 3); lean_inc(x_20); if (lean_obj_tag(x_20) == 0) @@ -1007,8 +1018,8 @@ lean_object* _init_l_Lean_Parser_Level_max___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Level_max___elambda__1___closed__4; -x_2 = l_Lean_Parser_symbolOrIdentInfo(x_1); +x_1 = l_Lean_Parser_Level_max___elambda__1___closed__5; +x_2 = l_Lean_Parser_nonReservedSymbolInfo(x_1); return x_2; } } @@ -1169,6 +1180,18 @@ x_3 = lean_string_append(x_1, x_2); return x_3; } } +lean_object* _init_l_Lean_Parser_Level_imax___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Level_imax___elambda__1___closed__6; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set(x_3, 1, x_1); +return x_3; +} +} lean_object* l_Lean_Parser_Level_imax___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -1216,7 +1239,7 @@ return x_9; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_41; lean_object* x_42; lean_inc(x_8); x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8); lean_dec(x_7); @@ -1224,65 +1247,121 @@ x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); x_16 = lean_array_get_size(x_15); lean_dec(x_15); -x_17 = l_Lean_Parser_Level_imax___elambda__1___closed__4; -x_18 = l_Lean_Parser_Level_imax___elambda__1___closed__6; lean_inc(x_2); -x_19 = l_Lean_Parser_symbolOrIdentFnAux(x_17, x_18, x_2, x_14); -x_20 = lean_ctor_get(x_19, 3); -lean_inc(x_20); -if (lean_obj_tag(x_20) == 0) +x_41 = l_Lean_Parser_tokenFn(x_2, x_14); +x_42 = lean_ctor_get(x_41, 3); +lean_inc(x_42); +if (lean_obj_tag(x_42) == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_21 = lean_ctor_get(x_19, 0); -lean_inc(x_21); -x_22 = lean_array_get_size(x_21); -lean_dec(x_21); -x_23 = l_Lean_Parser_regBuiltinLevelParserAttr___closed__4; -x_24 = l_Lean_Parser_appPrec; -lean_inc(x_2); -x_25 = l_Lean_Parser_categoryParserFn(x_23, x_24, x_2, x_19); -x_26 = lean_ctor_get(x_25, 3); -lean_inc(x_26); -if (lean_obj_tag(x_26) == 0) +lean_object* x_43; lean_object* x_44; +x_43 = lean_ctor_get(x_41, 0); +lean_inc(x_43); +x_44 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_43); +lean_dec(x_43); +if (lean_obj_tag(x_44) == 2) { -uint8_t x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_27 = 0; -x_28 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Level_max___elambda__1___spec__1(x_27, x_1, x_2, x_25); -lean_dec(x_1); -x_29 = l_Lean_nullKind; -x_30 = l_Lean_Parser_ParserState_mkNode(x_28, x_29, x_22); -x_31 = l_Lean_Parser_Level_imax___elambda__1___closed__1; -x_32 = l_Lean_Parser_ParserState_mkNode(x_30, x_31, x_16); -x_33 = l_Lean_Parser_mergeOrElseErrors(x_32, x_11, x_8); -lean_dec(x_8); -return x_33; +lean_object* x_45; lean_object* x_46; uint8_t x_47; +x_45 = lean_ctor_get(x_44, 1); +lean_inc(x_45); +lean_dec(x_44); +x_46 = l_Lean_Parser_Level_imax___elambda__1___closed__4; +x_47 = lean_string_dec_eq(x_45, x_46); +lean_dec(x_45); +if (x_47 == 0) +{ +lean_object* x_48; lean_object* x_49; +x_48 = l_Lean_Parser_Level_imax___elambda__1___closed__7; +lean_inc(x_8); +x_49 = l_Lean_Parser_ParserState_mkErrorsAt(x_41, x_48, x_8); +x_17 = x_49; +goto block_40; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -lean_dec(x_26); -lean_dec(x_2); -lean_dec(x_1); -x_34 = l_Lean_nullKind; -x_35 = l_Lean_Parser_ParserState_mkNode(x_25, x_34, x_22); -x_36 = l_Lean_Parser_Level_imax___elambda__1___closed__1; -x_37 = l_Lean_Parser_ParserState_mkNode(x_35, x_36, x_16); -x_38 = l_Lean_Parser_mergeOrElseErrors(x_37, x_11, x_8); -lean_dec(x_8); -return x_38; +x_17 = x_41; +goto block_40; } } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; -lean_dec(x_20); +lean_object* x_50; lean_object* x_51; +lean_dec(x_44); +x_50 = l_Lean_Parser_Level_imax___elambda__1___closed__7; +lean_inc(x_8); +x_51 = l_Lean_Parser_ParserState_mkErrorsAt(x_41, x_50, x_8); +x_17 = x_51; +goto block_40; +} +} +else +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_42); +x_52 = l_Lean_Parser_Level_imax___elambda__1___closed__7; +lean_inc(x_8); +x_53 = l_Lean_Parser_ParserState_mkErrorsAt(x_41, x_52, x_8); +x_17 = x_53; +goto block_40; +} +block_40: +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_17, 3); +lean_inc(x_18); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +x_20 = lean_array_get_size(x_19); +lean_dec(x_19); +x_21 = l_Lean_Parser_regBuiltinLevelParserAttr___closed__4; +x_22 = l_Lean_Parser_appPrec; +lean_inc(x_2); +x_23 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_17); +x_24 = lean_ctor_get(x_23, 3); +lean_inc(x_24); +if (lean_obj_tag(x_24) == 0) +{ +uint8_t x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_25 = 0; +x_26 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Level_max___elambda__1___spec__1(x_25, x_1, x_2, x_23); +lean_dec(x_1); +x_27 = l_Lean_nullKind; +x_28 = l_Lean_Parser_ParserState_mkNode(x_26, x_27, x_20); +x_29 = l_Lean_Parser_Level_imax___elambda__1___closed__1; +x_30 = l_Lean_Parser_ParserState_mkNode(x_28, x_29, x_16); +x_31 = l_Lean_Parser_mergeOrElseErrors(x_30, x_11, x_8); +lean_dec(x_8); +return x_31; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +lean_dec(x_24); lean_dec(x_2); lean_dec(x_1); -x_39 = l_Lean_Parser_Level_imax___elambda__1___closed__1; -x_40 = l_Lean_Parser_ParserState_mkNode(x_19, x_39, x_16); -x_41 = l_Lean_Parser_mergeOrElseErrors(x_40, x_11, x_8); +x_32 = l_Lean_nullKind; +x_33 = l_Lean_Parser_ParserState_mkNode(x_23, x_32, x_20); +x_34 = l_Lean_Parser_Level_imax___elambda__1___closed__1; +x_35 = l_Lean_Parser_ParserState_mkNode(x_33, x_34, x_16); +x_36 = l_Lean_Parser_mergeOrElseErrors(x_35, x_11, x_8); lean_dec(x_8); -return x_41; +return x_36; +} +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_18); +lean_dec(x_2); +lean_dec(x_1); +x_37 = l_Lean_Parser_Level_imax___elambda__1___closed__1; +x_38 = l_Lean_Parser_ParserState_mkNode(x_17, x_37, x_16); +x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_11, x_8); +lean_dec(x_8); +return x_39; +} } } } @@ -1291,10 +1370,11 @@ return x_41; lean_object* _init_l_Lean_Parser_Level_imax___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Level_imax___elambda__1___closed__4; -x_2 = l_Lean_Parser_symbolOrIdentInfo(x_1); -return x_2; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Level_imax___elambda__1___closed__4; +x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); +return x_3; } } lean_object* _init_l_Lean_Parser_Level_imax___closed__2() { @@ -2322,6 +2402,8 @@ l_Lean_Parser_Level_max___elambda__1___closed__5 = _init_l_Lean_Parser_Level_max lean_mark_persistent(l_Lean_Parser_Level_max___elambda__1___closed__5); l_Lean_Parser_Level_max___elambda__1___closed__6 = _init_l_Lean_Parser_Level_max___elambda__1___closed__6(); lean_mark_persistent(l_Lean_Parser_Level_max___elambda__1___closed__6); +l_Lean_Parser_Level_max___elambda__1___closed__7 = _init_l_Lean_Parser_Level_max___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Level_max___elambda__1___closed__7); l_Lean_Parser_Level_max___closed__1 = _init_l_Lean_Parser_Level_max___closed__1(); lean_mark_persistent(l_Lean_Parser_Level_max___closed__1); l_Lean_Parser_Level_max___closed__2 = _init_l_Lean_Parser_Level_max___closed__2(); @@ -2353,6 +2435,8 @@ l_Lean_Parser_Level_imax___elambda__1___closed__5 = _init_l_Lean_Parser_Level_im lean_mark_persistent(l_Lean_Parser_Level_imax___elambda__1___closed__5); l_Lean_Parser_Level_imax___elambda__1___closed__6 = _init_l_Lean_Parser_Level_imax___elambda__1___closed__6(); lean_mark_persistent(l_Lean_Parser_Level_imax___elambda__1___closed__6); +l_Lean_Parser_Level_imax___elambda__1___closed__7 = _init_l_Lean_Parser_Level_imax___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Level_imax___elambda__1___closed__7); l_Lean_Parser_Level_imax___closed__1 = _init_l_Lean_Parser_Level_imax___closed__1(); lean_mark_persistent(l_Lean_Parser_Level_imax___closed__1); l_Lean_Parser_Level_imax___closed__2 = _init_l_Lean_Parser_Level_imax___closed__2(); diff --git a/stage0/stdlib/Init/Lean/Parser/Parser.c b/stage0/stdlib/Init/Lean/Parser/Parser.c index 6c7b2e526c..a5c2d9de5b 100644 --- a/stage0/stdlib/Init/Lean/Parser/Parser.c +++ b/stage0/stdlib/Init/Lean/Parser/Parser.c @@ -14,6 +14,7 @@ extern "C" { #endif lean_object* l_Lean_Parser_declareBuiltinParser___closed__9; +lean_object* l_Lean_Parser_nonReservedSymbol___boxed(lean_object*, lean_object*); lean_object* l_List_reverse___rarg(lean_object*); lean_object* l_Lean_Parser_optionalFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_decimalNumberFn___spec__1___boxed(lean_object*, lean_object*); @@ -44,7 +45,7 @@ lean_object* l_Lean_Parser_mkParserExtension___closed__1; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_hexNumberFn___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_try(uint8_t, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Parser_prattParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_prattParser(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawFn___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_andthenInfo(lean_object*, lean_object*); uint8_t l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(lean_object*, lean_object*); @@ -107,8 +108,6 @@ lean_object* l_Lean_Parser_lookahead(uint8_t, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___elambda__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepArgs___rarg___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Name_quickLt(lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__4; -lean_object* l_Lean_Parser_symbolOrIdent___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_charLit(uint8_t); lean_object* l_Lean_Parser_hexNumberFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_trailingLoop___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -159,6 +158,7 @@ lean_object* lean_environment_find(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh___elambda__1___rarg(uint32_t, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_parserExtension; lean_object* l_Lean_Parser_group(uint8_t, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolInfo___closed__2; lean_object* l_Lean_Parser_dollarSymbol___closed__1; lean_object* l_Lean_Parser_ident(uint8_t); lean_object* l_Lean_Parser_parserExtension___closed__2; @@ -170,6 +170,7 @@ lean_object* l_Lean_Parser_TokenConfig_HasBeq___closed__1; lean_object* lean_io_mk_ref(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkColGe(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___boxed(lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolFn(lean_object*, lean_object*, lean_object*); uint8_t l_Char_isDigit(uint32_t); lean_object* l_Lean_Parser_ParserState_mkNode(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserState(lean_object*); @@ -186,6 +187,7 @@ lean_object* l_Lean_Parser_declareBuiltinParser___closed__5; lean_object* l_Lean_Parser_strLit___boxed(lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__9; lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__5(lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*); lean_object* l_Lean_Parser_symbolNoWsFn___closed__1; uint8_t l_Lean_isIdBeginEscape(uint32_t); @@ -200,7 +202,6 @@ lean_object* l_Lean_Parser_unquotedSymbolFn___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_unquotedSymbol___elambda__1___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_finishCommentBlock___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object*); lean_object* l_Lean_Parser_try___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__4; lean_object* l___private_Init_Lean_Parser_Parser_20__registerParserAttributeImplBuilder___lambda__1___closed__2; @@ -240,6 +241,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux___rarg___boxed(lean_o size_t l_USize_shiftRight(size_t, size_t); lean_object* l_Lean_Parser_identFnAux___main___closed__1; lean_object* l_Lean_Parser_symbolInfo___elambda__1(lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbol(uint8_t, lean_object*); lean_object* l_Lean_Parser_symbolFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_20__registerParserAttributeImplBuilder___lambda__1___closed__1; lean_object* l_Lean_Parser_mkNodeToken___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -253,7 +255,7 @@ lean_object* l_Lean_Syntax_forSepArgsM(lean_object*); lean_object* l_Lean_Parser_ParserState_mkErrorsAt(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1; lean_object* l_Lean_Syntax_foldSepRevArgs___rarg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_leadingParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_leadingParser(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__2(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkAttributeImplOfConstantUnsafe___closed__3; lean_object* l_Lean_Parser_strLitFn___rarg___closed__1; @@ -281,13 +283,13 @@ lean_object* l_Lean_Parser_finishCommentBlock___main(lean_object*, lean_object*, lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__3; lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_Parser_ident___boxed(lean_object*); -lean_object* l_Lean_Parser_indexed___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_indexed___rarg(lean_object*, lean_object*, lean_object*, uint8_t); uint8_t l_Lean_Parser_takeWhileFn___lambda__1(lean_object*, uint32_t); lean_object* l_Lean_Parser_rawIdentNoAntiquot___boxed(lean_object*); lean_object* l_Lean_Parser_andthenInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__3; lean_object* l_IO_ofExcept___at_Lean_registerClassAttr___spec__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_addParserCategory(lean_object*, lean_object*); +lean_object* l_Lean_Parser_addParserCategory(lean_object*, lean_object*, uint8_t); lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Fn(uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn(lean_object*, lean_object*, lean_object*, lean_object*); @@ -339,8 +341,9 @@ lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__1; lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_quotedSymbolFn___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser___closed__2; +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__2(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_tryFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_initCacheForInput(lean_object*); @@ -382,6 +385,7 @@ lean_object* l_Lean_Parser_fieldIdx___lambda__1___boxed(lean_object*, lean_objec lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_rawCh___elambda__1___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_HasBeq___closed__1; +lean_object* l_Lean_Parser_nonReservedSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepArgsM___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Parser_inhabited(uint8_t); lean_object* l___private_Init_Lean_Parser_Parser_7__mkResult(lean_object*, lean_object*); @@ -427,12 +431,13 @@ lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; lean_object* l_Lean_Parser_checkLeadingFn___closed__1; extern lean_object* l_Lean_strLitKind; -lean_object* l_Lean_Parser_symbolOrIdentFnAux(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolInfo(lean_object*); lean_object* l_Lean_Parser_finishCommentBlock___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unquotedSymbol___elambda__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_parserExtension___closed__6; lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___boxed(lean_object*); lean_object* l_Lean_Syntax_foldArgs(lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_nodeInfo___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_merge(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe(lean_object*, lean_object*, lean_object*); @@ -446,6 +451,7 @@ lean_object* l_Lean_Parser_node___boxed(lean_object*, lean_object*, lean_object* lean_object* l_Lean_Parser_sepBy(uint8_t, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Syntax_foldArgsM(lean_object*, lean_object*); lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*); +lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Array_foldSepBy___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__3; lean_object* l_Lean_Parser_trailingLoop___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -455,10 +461,10 @@ lean_object* l_Lean_Parser_ParserState_keepNewError(lean_object*, lean_object*); lean_object* l_Lean_Parser_regTermParserAttribute___closed__1; lean_object* l_Lean_Parser_symbol(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_anyOfFn___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserExtension___closed__8; lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_octalNumberFn___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolInfo___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1(lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__4(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_whitespace___main(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -477,7 +483,6 @@ lean_object* l_Lean_Parser_addLeadingParser___closed__1; lean_object* l_Lean_Parser_anyOfFn___main___closed__1; lean_object* l_Lean_Parser_SyntaxNodeKindSet_insert(lean_object*, lean_object*); extern lean_object* l_Lean_strLitKind___closed__1; -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__2(lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_19__ParserAttribute_add___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_21__noImmediateColon___elambda__1(uint8_t, lean_object*); @@ -487,6 +492,7 @@ lean_object* l_Lean_Parser_binNumberFn(lean_object*, lean_object*, lean_object*) lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserOfConstant___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_HasBeq; +lean_object* l_Lean_Parser_nonReservedSymbolInfo___closed__3; extern lean_object* l___private_Init_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1; lean_object* l_Lean_Parser_parserExtension___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_Inhabited___closed__1; @@ -507,6 +513,7 @@ lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNode lean_object* l_Lean_Parser_mkAntiquot___closed__12; lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; size_t l_Lean_Name_hash(lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbol___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_20__registerParserAttributeImplBuilder___lambda__1(lean_object*); lean_object* l_Lean_Parser_addToken(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -514,6 +521,7 @@ lean_object* l_Nat_repr(lean_object*); extern lean_object* l_Char_HasRepr___closed__1; lean_object* l_Lean_Parser_toTrailing___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef(lean_object*); +lean_object* l_Lean_Parser_registerBuiltinParserAttribute___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkWsBefore(uint8_t, lean_object*); lean_object* l_Lean_Parser_checkNoWsBeforeFn(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_4__isToken___boxed(lean_object*, lean_object*, lean_object*); @@ -553,7 +561,7 @@ extern lean_object* l_List_reprAux___main___rarg___closed__1; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_hexNumberFn___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenMap_Inhabited(lean_object*); lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg___boxed(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_regTermParserAttribute___closed__2; lean_object* l_Lean_Parser_rawIdent(uint8_t); lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__3; @@ -574,6 +582,7 @@ uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_obje lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_quotedSymbolFn___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hashAndthen(uint8_t); +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_setCategoryParserFnRef___closed__1; lean_object* l_PersistentHashMap_insertAux___main___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_octalNumberFn___spec__3___boxed(lean_object*, lean_object*); @@ -595,7 +604,8 @@ lean_object* l_Lean_Parser_nodeInfo___elambda__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main___closed__1; lean_object* l_Lean_Parser_identFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addParserCategory___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_categoryParserFnExtension___closed__3; extern lean_object* l___private_Init_Lean_Environment_5__envExtensionsRef; @@ -638,7 +648,6 @@ lean_object* l_Lean_Parser_getTokenTable(lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepByInfo___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__2___boxed(lean_object*); lean_object* l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1; lean_object* l_Lean_Parser_ParserState_restore___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7___boxed(lean_object*, lean_object*); @@ -656,7 +665,6 @@ lean_object* l_Lean_Parser_mkBuiltinTokenTable(lean_object*); lean_object* l_Lean_Parser_FirstTokens_toStr___closed__3; lean_object* l_Lean_Parser_manyAux(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_18__BuiltinParserAttribute_add___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_ident___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_addTrailingParser(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdentNoAntiquot___lambda__1(lean_object*, lean_object*, lean_object*); @@ -718,12 +726,14 @@ lean_object* l_Lean_Parser_unicodeSymbolCheckPrec(lean_object*, lean_object*, le lean_object* l_Lean_Parser_declareLeadingBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_appPrec; lean_object* l_Lean_Parser_checkColGeFn(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserCategory(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserCategory(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_charLitFnAux___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___spec__1(lean_object*); +lean_object* l_Lean_Parser_prattParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_tryFn___boxed(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldArgs___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldSepByM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbol___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserExtension___closed__3; lean_object* l_Lean_Parser_ParserState_mkErrorAt(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdxFn___closed__1; @@ -741,7 +751,7 @@ lean_object* l_Lean_Syntax_foldSepRevArgsM___boxed(lean_object*, lean_object*); lean_object* l_String_intercalate(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_Parser_numLit(uint8_t); -lean_object* l_Lean_Parser_leadingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_leadingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hexDigitFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkCategoryParserFnRef___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_FirstTokens_HasToString___closed__1; @@ -752,6 +762,7 @@ lean_object* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1(lea lean_object* l_Lean_Parser_Error_toString(lean_object*); lean_object* l_Lean_Parser_symbolNoWsFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___elambda__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchStep___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_string2basic___boxed(lean_object*, lean_object*); @@ -795,7 +806,6 @@ lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__1 lean_object* l_Lean_Parser_chFn___boxed(lean_object*); uint8_t l_Lean_Parser_isValidSyntaxNodeKind(lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__2; -lean_object* l_Lean_Parser_symbolOrIdentFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_beq___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelseInfo___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_22__pushNone___elambda__1(uint8_t, lean_object*, lean_object*); @@ -830,10 +840,10 @@ lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4___ra lean_object* l_List_toString___at_Lean_Parser_FirstTokens_toStr___spec__1(lean_object*); lean_object* l_Lean_Parser_epsilonInfo___closed__3; lean_object* l_Lean_Parser_unquotedSymbol(uint8_t); +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__2___boxed(lean_object*); lean_object* l_Lean_Parser_many1Indent(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_whitespace___main___spec__1___boxed(lean_object*, lean_object*); lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_17__ParserExtension_addImported___spec__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__3; lean_object* l_Lean_Parser_builtinSyntaxNodeKindSetRef; uint8_t l___private_Init_Lean_Parser_Parser_4__isToken(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserState___boxed(lean_object*); @@ -844,7 +854,6 @@ lean_object* l_Lean_Parser_symbolNoWsInfo___closed__1; lean_object* lean_io_ref_reset(lean_object*, lean_object*); lean_object* l_Lean_Parser_FirstTokens_toStr___closed__2; lean_object* l_Lean_Parser_hashOrelse___boxed(lean_object*); -lean_object* l_Lean_Parser_symbolOrIdent___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_io_ref_swap(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdentNoAntiquot(uint8_t); lean_object* l_Lean_Parser_ParserState_replaceLongest(lean_object*, lean_object*, lean_object*); @@ -865,7 +874,6 @@ lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_1 lean_object* l___private_Init_Lean_Parser_Parser_19__ParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_noFirstTokenInfo___elambda__2(lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdent___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkCategoryParserFnRef___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_chFn___rarg(uint32_t, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -877,6 +885,7 @@ lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lea lean_object* l_Lean_Parser_rawCh___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_numberFnAux___closed__1; lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolInfo___closed__1; lean_object* l_Lean_Syntax_forSepArgsM___boxed(lean_object*); lean_object* l_Lean_Parser_isIdCont___boxed(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); @@ -890,7 +899,6 @@ lean_object* l_Array_getEvenElems(lean_object*); lean_object* l_Lean_Parser_epsilonInfo___closed__1; lean_object* lean_io_ref_set(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__1; lean_object* l_Lean_Parser_andthen___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_FileMap_Inhabited___closed__1; lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__1___rarg(lean_object*, lean_object*); @@ -914,6 +922,7 @@ lean_object* lean_array_pop(lean_object*); lean_object* l_Lean_Parser_TokenMap_insert___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolInfo___closed__4; uint8_t l_Lean_isIdFirst(uint32_t); extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__3; uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); @@ -932,6 +941,7 @@ lean_object* l_Lean_Parser_sepByInfo___elambda__2(lean_object*, lean_object*, le lean_object* l_Lean_Parser_symbolInfo___closed__1; lean_object* l_Lean_Syntax_forSepArgsM___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_EnvExtension_getStateUnsafe___rarg(lean_object*, lean_object*); +lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux(uint8_t); lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__6; @@ -1027,7 +1037,7 @@ lean_object* l_Lean_Parser_currLbp___boxed(lean_object*, lean_object*, lean_obje lean_object* l_Lean_Parser_ParserState_mkEOIError(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepArgs___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_indexed___rarg___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_indexed___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawFn___boxed(lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_identFnAux___main___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepArgs(lean_object*); @@ -1059,7 +1069,6 @@ lean_object* l_Lean_Parser_Error_toString___closed__1; lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__2; lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Parser_addLeadingParser___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__2; -lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__2; lean_object* l_Lean_Parser_Parser_inhabited___closed__1; lean_object* l_Lean_Parser_checkWsBefore___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getTailInfo___main(lean_object*); @@ -1096,7 +1105,6 @@ lean_object* l_Lean_Parser_sepBy___boxed(lean_object*, lean_object*, lean_object lean_object* l_Lean_Parser_trailingLoop___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbol___boxed(lean_object*); -lean_object* l_Lean_Parser_symbolOrIdent(uint8_t, lean_object*); lean_object* l_Lean_Parser_ParserState_mergeErrors(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_isIdRest(uint32_t); lean_object* l_Lean_Parser_numberFnAux___boxed(lean_object*, lean_object*); @@ -1108,6 +1116,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_12__mergePrecendences___boxed(l lean_object* l_Lean_Parser_mkIdent(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_withPosition___boxed(lean_object*, lean_object*); uint8_t lean_string_dec_eq(lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserCategory___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -9504,7 +9513,7 @@ lean_dec(x_2); return x_5; } } -lean_object* l_Lean_Parser_symbolOrIdentFnAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_nonReservedSymbolFnAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; @@ -9605,32 +9614,32 @@ return x_25; } } } -lean_object* l_Lean_Parser_symbolOrIdentFn(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_nonReservedSymbolFn(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = l_Char_HasRepr___closed__1; x_5 = lean_string_append(x_4, x_1); x_6 = lean_string_append(x_5, x_4); -x_7 = l_Lean_Parser_symbolOrIdentFnAux(x_1, x_6, x_2, x_3); +x_7 = l_Lean_Parser_nonReservedSymbolFnAux(x_1, x_6, x_2, x_3); return x_7; } } -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1(lean_object* x_1) { +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__1(lean_object* x_1) { _start: { lean_inc(x_1); return x_1; } } -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__2(lean_object* x_1) { +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__2(lean_object* x_1) { _start: { lean_inc(x_1); return x_1; } } -lean_object* _init_l_Lean_Parser_symbolOrIdentInfo___closed__1() { +lean_object* _init_l_Lean_Parser_nonReservedSymbolInfo___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -9643,35 +9652,35 @@ lean_ctor_set(x_3, 2, x_1); return x_3; } } -lean_object* _init_l_Lean_Parser_symbolOrIdentInfo___closed__2() { +lean_object* _init_l_Lean_Parser_nonReservedSymbolInfo___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Parser_symbolOrIdentInfo___closed__1; +x_2 = l_Lean_Parser_nonReservedSymbolInfo___closed__1; x_3 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_3, 0, x_2); lean_ctor_set(x_3, 1, x_1); return x_3; } } -lean_object* _init_l_Lean_Parser_symbolOrIdentInfo___closed__3() { +lean_object* _init_l_Lean_Parser_nonReservedSymbolInfo___closed__3() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_symbolOrIdentInfo___elambda__2___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_nonReservedSymbolInfo___elambda__2___boxed), 1, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_symbolOrIdentInfo___closed__4() { +lean_object* _init_l_Lean_Parser_nonReservedSymbolInfo___closed__4() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_nonReservedSymbolInfo___elambda__1___boxed), 1, 0); return x_1; } } -lean_object* l_Lean_Parser_symbolOrIdentInfo(lean_object* x_1) { +lean_object* l_Lean_Parser_nonReservedSymbolInfo(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; @@ -9680,14 +9689,14 @@ x_3 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); lean_ctor_set(x_3, 2, x_2); -x_4 = l_Lean_Parser_symbolOrIdentInfo___closed__2; +x_4 = l_Lean_Parser_nonReservedSymbolInfo___closed__2; x_5 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_5, 0, x_3); lean_ctor_set(x_5, 1, x_4); x_6 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_6, 0, x_5); -x_7 = l_Lean_Parser_symbolOrIdentInfo___closed__3; -x_8 = l_Lean_Parser_symbolOrIdentInfo___closed__4; +x_7 = l_Lean_Parser_nonReservedSymbolInfo___closed__3; +x_8 = l_Lean_Parser_nonReservedSymbolInfo___closed__4; x_9 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_9, 0, x_7); lean_ctor_set(x_9, 1, x_8); @@ -9695,43 +9704,43 @@ lean_ctor_set(x_9, 2, x_6); return x_9; } } -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(lean_object* x_1) { +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__1___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Parser_symbolOrIdentInfo___elambda__1(x_1); +x_2 = l_Lean_Parser_nonReservedSymbolInfo___elambda__1(x_1); lean_dec(x_1); return x_2; } } -lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__2___boxed(lean_object* x_1) { +lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__2___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Parser_symbolOrIdentInfo___elambda__2(x_1); +x_2 = l_Lean_Parser_nonReservedSymbolInfo___elambda__2(x_1); lean_dec(x_1); return x_2; } } -lean_object* l_Lean_Parser_symbolOrIdent___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_nonReservedSymbol___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Char_HasRepr___closed__1; x_6 = lean_string_append(x_5, x_1); x_7 = lean_string_append(x_6, x_5); -x_8 = l_Lean_Parser_symbolOrIdentFnAux(x_1, x_7, x_3, x_4); +x_8 = l_Lean_Parser_nonReservedSymbolFnAux(x_1, x_7, x_3, x_4); return x_8; } } -lean_object* l_Lean_Parser_symbolOrIdent(uint8_t x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_nonReservedSymbol(uint8_t x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_3 = l_String_trim(x_2); lean_inc(x_3); -x_4 = l_Lean_Parser_symbolOrIdentInfo(x_3); -x_5 = lean_alloc_closure((void*)(l_Lean_Parser_symbolOrIdent___lambda__1___boxed), 4, 1); +x_4 = l_Lean_Parser_nonReservedSymbolInfo(x_3); +x_5 = lean_alloc_closure((void*)(l_Lean_Parser_nonReservedSymbol___lambda__1___boxed), 4, 1); lean_closure_set(x_5, 0, x_3); x_6 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_6, 0, x_4); @@ -9739,22 +9748,22 @@ lean_ctor_set(x_6, 1, x_5); return x_6; } } -lean_object* l_Lean_Parser_symbolOrIdent___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_nonReservedSymbol___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Parser_symbolOrIdent___lambda__1(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Parser_nonReservedSymbol___lambda__1(x_1, x_2, x_3, x_4); lean_dec(x_2); return x_5; } } -lean_object* l_Lean_Parser_symbolOrIdent___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_nonReservedSymbol___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_Lean_Parser_symbolOrIdent(x_3, x_2); +x_4 = l_Lean_Parser_nonReservedSymbol(x_3, x_2); lean_dec(x_2); return x_4; } @@ -23630,112 +23639,194 @@ x_2 = lean_alloc_closure((void*)(l_RBNode_find___main___at_Lean_Parser_indexed__ return x_2; } } -lean_object* l_Lean_Parser_indexed___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_4 = l_Lean_Parser_peekToken(x_2, x_3); -x_5 = lean_ctor_get(x_4, 0); -lean_inc(x_5); -x_6 = lean_ctor_get(x_4, 1); -lean_inc(x_6); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - x_7 = x_4; -} else { - lean_dec_ref(x_4); - x_7 = lean_box(0); -} -if (lean_obj_tag(x_6) == 0) +if (lean_obj_tag(x_1) == 0) { -lean_object* x_15; lean_object* x_16; -lean_dec(x_7); -x_15 = lean_box(0); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_5); -lean_ctor_set(x_16, 1, x_15); -return x_16; +lean_object* x_3; +x_3 = lean_box(0); +return x_3; } else { -lean_object* x_17; -x_17 = lean_ctor_get(x_6, 0); -lean_inc(x_17); -lean_dec(x_6); -switch (lean_obj_tag(x_17)) { +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; +x_4 = lean_ctor_get(x_1, 0); +x_5 = lean_ctor_get(x_1, 1); +x_6 = lean_ctor_get(x_1, 2); +x_7 = lean_ctor_get(x_1, 3); +x_8 = l_Lean_Name_quickLt(x_2, x_5); +if (x_8 == 0) +{ +uint8_t x_9; +x_9 = l_Lean_Name_quickLt(x_5, x_2); +if (x_9 == 0) +{ +lean_object* x_10; +lean_inc(x_6); +x_10 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_10, 0, x_6); +return x_10; +} +else +{ +x_1 = x_7; +goto _start; +} +} +else +{ +x_1 = x_4; +goto _start; +} +} +} +} +lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg___boxed), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Parser_indexed___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_5 = l_Lean_Parser_peekToken(x_2, x_3); +x_6 = lean_ctor_get(x_5, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_5, 1); +lean_inc(x_7); +if (lean_is_exclusive(x_5)) { + lean_ctor_release(x_5, 0); + lean_ctor_release(x_5, 1); + x_8 = x_5; +} else { + lean_dec_ref(x_5); + x_8 = lean_box(0); +} +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_16; lean_object* x_17; +lean_dec(x_8); +x_16 = lean_box(0); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_6); +lean_ctor_set(x_17, 1, x_16); +return x_17; +} +else +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_7, 0); +lean_inc(x_18); +lean_dec(x_7); +switch (lean_obj_tag(x_18)) { case 0: { -lean_object* x_18; lean_object* x_19; -lean_dec(x_7); -x_18 = lean_box(0); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_5); -lean_ctor_set(x_19, 1, x_18); -return x_19; +lean_object* x_19; lean_object* x_20; +lean_dec(x_8); +x_19 = lean_box(0); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_6); +lean_ctor_set(x_20, 1, x_19); +return x_20; } case 1: { -lean_object* x_20; -x_20 = lean_ctor_get(x_17, 0); -lean_inc(x_20); -lean_dec(x_17); -x_8 = x_20; -goto block_14; +lean_object* x_21; +x_21 = lean_ctor_get(x_18, 0); +lean_inc(x_21); +lean_dec(x_18); +x_9 = x_21; +goto block_15; } case 2: { -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 1); -lean_inc(x_21); -lean_dec(x_17); -x_22 = lean_box(0); -x_23 = lean_name_mk_string(x_22, x_21); -x_8 = x_23; -goto block_14; +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 1); +lean_inc(x_22); +lean_dec(x_18); +x_23 = lean_box(0); +x_24 = lean_name_mk_string(x_23, x_22); +x_9 = x_24; +goto block_15; } default: { -lean_object* x_24; -lean_dec(x_17); -x_24 = l_Lean_Syntax_getKind___closed__4; -x_8 = x_24; -goto block_14; -} -} -} -block_14: +if (x_4 == 0) { -lean_object* x_9; -x_9 = l_RBNode_find___main___at_Lean_Parser_indexed___spec__1___rarg(x_1, x_8); -lean_dec(x_8); -if (lean_obj_tag(x_9) == 0) -{ -lean_object* x_10; lean_object* x_11; -x_10 = lean_box(0); -if (lean_is_scalar(x_7)) { - x_11 = lean_alloc_ctor(0, 2, 0); -} else { - x_11 = x_7; -} -lean_ctor_set(x_11, 0, x_5); -lean_ctor_set(x_11, 1, x_10); -return x_11; +lean_object* x_25; +lean_dec(x_18); +x_25 = l_Lean_Syntax_getKind___closed__4; +x_9 = x_25; +goto block_15; } else { -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_9, 0); -lean_inc(x_12); -lean_dec(x_9); -if (lean_is_scalar(x_7)) { - x_13 = lean_alloc_ctor(0, 2, 0); -} else { - x_13 = x_7; +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_18, 2); +lean_inc(x_26); +lean_dec(x_18); +x_27 = l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg(x_1, x_26); +lean_dec(x_26); +if (lean_obj_tag(x_27) == 0) +{ +lean_object* x_28; +x_28 = l_Lean_Syntax_getKind___closed__4; +x_9 = x_28; +goto block_15; } -lean_ctor_set(x_13, 0, x_5); -lean_ctor_set(x_13, 1, x_12); -return x_13; +else +{ +lean_object* x_29; lean_object* x_30; +lean_dec(x_8); +x_29 = lean_ctor_get(x_27, 0); +lean_inc(x_29); +lean_dec(x_27); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_6); +lean_ctor_set(x_30, 1, x_29); +return x_30; +} +} +} +} +} +block_15: +{ +lean_object* x_10; +x_10 = l_RBNode_find___main___at_Lean_Parser_indexed___spec__1___rarg(x_1, x_9); +lean_dec(x_9); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_box(0); +if (lean_is_scalar(x_8)) { + x_12 = lean_alloc_ctor(0, 2, 0); +} else { + x_12 = x_8; +} +lean_ctor_set(x_12, 0, x_6); +lean_ctor_set(x_12, 1, x_11); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +lean_dec(x_10); +if (lean_is_scalar(x_8)) { + x_14 = lean_alloc_ctor(0, 2, 0); +} else { + x_14 = x_8; +} +lean_ctor_set(x_14, 0, x_6); +lean_ctor_set(x_14, 1, x_13); +return x_14; } } } @@ -23744,7 +23835,7 @@ lean_object* l_Lean_Parser_indexed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_indexed___rarg___boxed), 3, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_indexed___rarg___boxed), 4, 0); return x_2; } } @@ -23758,13 +23849,25 @@ lean_dec(x_1); return x_3; } } -lean_object* l_Lean_Parser_indexed___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg___boxed(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_4; -x_4 = l_Lean_Parser_indexed___rarg(x_1, x_2, x_3); +lean_object* x_3; +x_3 = l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -return x_4; +return x_3; +} +} +lean_object* l_Lean_Parser_indexed___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_4); +lean_dec(x_4); +x_6 = l_Lean_Parser_indexed___rarg(x_1, x_2, x_3, x_5); +lean_dec(x_1); +return x_6; } } lean_object* l___private_Init_Lean_Parser_Parser_7__mkResult(lean_object* x_1, lean_object* x_2) { @@ -23794,53 +23897,55 @@ return x_1; } } } -lean_object* l_Lean_Parser_leadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Lean_Parser_leadingParser(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_6 = lean_ctor_get(x_5, 0); -lean_inc(x_6); -x_7 = lean_array_get_size(x_6); -lean_dec(x_6); -x_8 = lean_ctor_get(x_2, 0); -lean_inc(x_4); -x_9 = l_Lean_Parser_indexed___rarg(x_8, x_4, x_5); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_array_get_size(x_7); +lean_dec(x_7); +x_9 = lean_ctor_get(x_2, 0); +lean_inc(x_5); +x_10 = l_Lean_Parser_indexed___rarg(x_9, x_5, x_6, x_3); +x_11 = lean_ctor_get(x_10, 0); lean_inc(x_11); -lean_dec(x_9); -x_12 = l_List_isEmpty___rarg(x_11); -if (x_12 == 0) +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = l_List_isEmpty___rarg(x_12); +if (x_13 == 0) { -uint8_t x_13; lean_object* x_14; lean_object* x_15; +uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_dec(x_1); -x_13 = 0; -x_14 = l_Lean_Parser_longestMatchFn(x_13, x_11, x_3, x_4, x_10); -x_15 = l___private_Init_Lean_Parser_Parser_7__mkResult(x_14, x_7); -return x_15; +x_14 = 0; +x_15 = l_Lean_Parser_longestMatchFn(x_14, x_12, x_4, x_5, x_11); +x_16 = l___private_Init_Lean_Parser_Parser_7__mkResult(x_15, x_8); +return x_16; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; -lean_dec(x_11); -lean_dec(x_7); +lean_object* x_17; lean_object* x_18; lean_object* x_19; +lean_dec(x_12); +lean_dec(x_8); +lean_dec(x_5); lean_dec(x_4); -lean_dec(x_3); -x_16 = l_Lean_Name_toString___closed__1; -x_17 = l_Lean_Name_toStringWithSep___main(x_16, x_1); -x_18 = l_Lean_Parser_ParserState_mkError(x_10, x_17); -return x_18; +x_17 = l_Lean_Name_toString___closed__1; +x_18 = l_Lean_Name_toStringWithSep___main(x_17, x_1); +x_19 = l_Lean_Parser_ParserState_mkError(x_11, x_18); +return x_19; } } } -lean_object* l_Lean_Parser_leadingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Lean_Parser_leadingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_6; -x_6 = l_Lean_Parser_leadingParser(x_1, x_2, x_3, x_4, x_5); +uint8_t x_7; lean_object* x_8; +x_7 = lean_unbox(x_3); +lean_dec(x_3); +x_8 = l_Lean_Parser_leadingParser(x_1, x_2, x_7, x_4, x_5, x_6); lean_dec(x_2); -return x_6; +return x_8; } } lean_object* l_Lean_Parser_trailingLoopStep(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { @@ -23920,111 +24025,112 @@ x_9 = lean_nat_dec_le(x_8, x_2); lean_dec(x_8); if (x_9 == 0) { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; x_10 = lean_ctor_get(x_7, 0); lean_inc(x_10); x_11 = lean_array_get_size(x_10); lean_dec(x_10); x_12 = lean_ctor_get(x_1, 1); lean_inc(x_12); +x_13 = 0; lean_inc(x_3); -x_13 = l_Lean_Parser_indexed___rarg(x_12, x_3, x_7); +x_14 = l_Lean_Parser_indexed___rarg(x_12, x_3, x_7, x_13); lean_dec(x_12); -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_13, 1); +x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); -lean_dec(x_13); -x_16 = l_List_isEmpty___rarg(x_15); -if (x_16 == 0) +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = l_List_isEmpty___rarg(x_16); +if (x_17 == 0) { -lean_object* x_17; lean_object* x_18; +lean_object* x_18; lean_object* x_19; lean_inc(x_3); lean_inc(x_1); -x_17 = l_Lean_Parser_trailingLoopStep(x_1, x_15, x_4, x_3, x_14); -x_18 = lean_ctor_get(x_17, 3); -lean_inc(x_18); -if (lean_obj_tag(x_18) == 0) +x_18 = l_Lean_Parser_trailingLoopStep(x_1, x_16, x_4, x_3, x_15); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) { -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_19 = l___private_Init_Lean_Parser_Parser_7__mkResult(x_17, x_11); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_20); -lean_dec(x_20); -x_22 = l_Lean_Parser_ParserState_popSyntax(x_19); -x_4 = x_21; -x_5 = x_22; +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = l___private_Init_Lean_Parser_Parser_7__mkResult(x_18, x_11); +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_21); +lean_dec(x_21); +x_23 = l_Lean_Parser_ParserState_popSyntax(x_20); +x_4 = x_22; +x_5 = x_23; goto _start; } else { -lean_dec(x_18); +lean_dec(x_19); lean_dec(x_11); lean_dec(x_3); lean_dec(x_1); -return x_17; +return x_18; } } else { -lean_object* x_24; uint8_t x_25; -x_24 = lean_ctor_get(x_1, 2); -lean_inc(x_24); -x_25 = l_List_isEmpty___rarg(x_24); -lean_dec(x_24); -if (x_25 == 0) +lean_object* x_25; uint8_t x_26; +x_25 = lean_ctor_get(x_1, 2); +lean_inc(x_25); +x_26 = l_List_isEmpty___rarg(x_25); +lean_dec(x_25); +if (x_26 == 0) { -lean_object* x_26; lean_object* x_27; +lean_object* x_27; lean_object* x_28; lean_inc(x_3); lean_inc(x_1); -x_26 = l_Lean_Parser_trailingLoopStep(x_1, x_15, x_4, x_3, x_14); -x_27 = lean_ctor_get(x_26, 3); -lean_inc(x_27); -if (lean_obj_tag(x_27) == 0) +x_27 = l_Lean_Parser_trailingLoopStep(x_1, x_16, x_4, x_3, x_15); +x_28 = lean_ctor_get(x_27, 3); +lean_inc(x_28); +if (lean_obj_tag(x_28) == 0) { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_28 = l___private_Init_Lean_Parser_Parser_7__mkResult(x_26, x_11); -x_29 = lean_ctor_get(x_28, 0); -lean_inc(x_29); -x_30 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_29); -lean_dec(x_29); -x_31 = l_Lean_Parser_ParserState_popSyntax(x_28); -x_4 = x_30; -x_5 = x_31; +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_29 = l___private_Init_Lean_Parser_Parser_7__mkResult(x_27, x_11); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_30); +lean_dec(x_30); +x_32 = l_Lean_Parser_ParserState_popSyntax(x_29); +x_4 = x_31; +x_5 = x_32; goto _start; } else { -lean_dec(x_27); +lean_dec(x_28); lean_dec(x_11); lean_dec(x_3); lean_dec(x_1); -return x_26; -} -} -else -{ -lean_object* x_33; -lean_dec(x_15); -lean_dec(x_11); -lean_dec(x_3); -lean_dec(x_1); -x_33 = l_Lean_Parser_ParserState_pushSyntax(x_14, x_4); -return x_33; -} +return x_27; } } else { lean_object* x_34; +lean_dec(x_16); +lean_dec(x_11); lean_dec(x_3); lean_dec(x_1); -x_34 = l_Lean_Parser_ParserState_pushSyntax(x_7, x_4); +x_34 = l_Lean_Parser_ParserState_pushSyntax(x_15, x_4); return x_34; } } } +else +{ +lean_object* x_35; +lean_dec(x_3); +lean_dec(x_1); +x_35 = l_Lean_Parser_ParserState_pushSyntax(x_7, x_4); +return x_35; +} +} +} lean_object* l_Lean_Parser_trailingLoop___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { @@ -24051,37 +24157,47 @@ lean_dec(x_2); return x_6; } } -lean_object* l_Lean_Parser_prattParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Lean_Parser_prattParser(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_6; lean_object* x_7; +lean_object* x_7; lean_object* x_8; +lean_inc(x_5); lean_inc(x_4); -lean_inc(x_3); -x_6 = l_Lean_Parser_leadingParser(x_1, x_2, x_3, x_4, x_5); -x_7 = lean_ctor_get(x_6, 3); -lean_inc(x_7); -if (lean_obj_tag(x_7) == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_8 = lean_ctor_get(x_6, 0); +x_7 = l_Lean_Parser_leadingParser(x_1, x_2, x_3, x_4, x_5, x_6); +x_8 = lean_ctor_get(x_7, 3); lean_inc(x_8); -x_9 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_8); -lean_dec(x_8); -x_10 = l_Lean_Parser_ParserState_popSyntax(x_6); -x_11 = l_Lean_Parser_trailingLoop___main(x_2, x_3, x_4, x_9, x_10); -lean_dec(x_3); -return x_11; +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_9); +x_10 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_9); +lean_dec(x_9); +x_11 = l_Lean_Parser_ParserState_popSyntax(x_7); +x_12 = l_Lean_Parser_trailingLoop___main(x_2, x_4, x_5, x_10, x_11); +lean_dec(x_4); +return x_12; } else { -lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_5); lean_dec(x_4); -lean_dec(x_3); lean_dec(x_2); -return x_6; +return x_7; } } } +lean_object* l_Lean_Parser_prattParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +uint8_t x_7; lean_object* x_8; +x_7 = lean_unbox(x_3); +lean_dec(x_3); +x_8 = l_Lean_Parser_prattParser(x_1, x_2, x_7, x_4, x_5, x_6); +return x_8; +} +} lean_object* l_Lean_Parser_mkCategoryParserFnRef___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -25178,27 +25294,30 @@ return x_19; } } } -lean_object* l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(lean_object* x_1, lean_object* x_2, uint8_t x_3) { _start: { -uint8_t x_3; +uint8_t x_4; lean_inc(x_1); -x_3 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__1(x_1, x_2); -if (x_3 == 0) +x_4 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__1(x_1, x_2); +if (x_4 == 0) { -lean_object* x_4; lean_object* x_5; lean_object* x_6; -x_4 = l_Lean_Parser_ParsingTables_inhabited___closed__1; -x_5 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_4); -x_6 = lean_alloc_ctor(1, 1, 0); +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_5 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_6 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_6, 0, x_5); -return x_6; +lean_ctor_set_uint8(x_6, sizeof(void*)*1, x_3); +x_7 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_6); +x_8 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_8, 0, x_7); +return x_8; } else { -lean_object* x_7; +lean_object* x_9; lean_dec(x_1); -x_7 = l___private_Init_Lean_Parser_Parser_8__throwParserCategoryAlreadyDefined___rarg(x_2); -return x_7; +x_9 = l___private_Init_Lean_Parser_Parser_8__throwParserCategoryAlreadyDefined___rarg(x_2); +return x_9; } } } @@ -25249,6 +25368,16 @@ x_8 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parse return x_8; } } +lean_object* l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_3); +lean_dec(x_3); +x_5 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_1, x_2, x_4); +return x_5; +} +} lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(lean_object* x_1, lean_object* x_2) { _start: { @@ -25276,78 +25405,78 @@ return x_7; } } } -lean_object* l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { -lean_object* x_3; lean_object* x_4; -x_3 = l_Lean_Parser_builtinParserCategoriesRef; -x_4 = lean_io_ref_get(x_3, x_2); -if (lean_obj_tag(x_4) == 0) +lean_object* x_4; lean_object* x_5; +x_4 = l_Lean_Parser_builtinParserCategoriesRef; +x_5 = lean_io_ref_get(x_4, x_3); +if (lean_obj_tag(x_5) == 0) { -lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_5 = lean_ctor_get(x_4, 0); -lean_inc(x_5); -x_6 = lean_ctor_get(x_4, 1); +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_6 = lean_ctor_get(x_5, 0); lean_inc(x_6); -lean_dec(x_4); -x_7 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_5, x_1); -x_8 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(x_7, x_6); -lean_dec(x_7); -if (lean_obj_tag(x_8) == 0) +x_7 = lean_ctor_get(x_5, 1); +lean_inc(x_7); +lean_dec(x_5); +x_8 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_6, x_1, x_2); +x_9 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(x_8, x_7); +lean_dec(x_8); +if (lean_obj_tag(x_9) == 0) { -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_8, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_9, 0); lean_inc(x_10); -lean_dec(x_8); -x_11 = lean_io_ref_set(x_3, x_9, x_10); -return x_11; +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_io_ref_set(x_4, x_10, x_11); +return x_12; } else { -uint8_t x_12; -x_12 = !lean_is_exclusive(x_8); -if (x_12 == 0) +uint8_t x_13; +x_13 = !lean_is_exclusive(x_9); +if (x_13 == 0) { -return x_8; +return x_9; } else { -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_8, 0); -x_14 = lean_ctor_get(x_8, 1); +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_9, 0); +x_15 = lean_ctor_get(x_9, 1); +lean_inc(x_15); lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_8); -x_15 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_15, 0, x_13); -lean_ctor_set(x_15, 1, x_14); -return x_15; +lean_dec(x_9); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_15); +return x_16; } } } else { -uint8_t x_16; +uint8_t x_17; lean_dec(x_1); -x_16 = !lean_is_exclusive(x_4); -if (x_16 == 0) +x_17 = !lean_is_exclusive(x_5); +if (x_17 == 0) { -return x_4; +return x_5; } else { -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_4, 0); -x_18 = lean_ctor_get(x_4, 1); +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_5, 0); +x_19 = lean_ctor_get(x_5, 1); +lean_inc(x_19); lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_4); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_18); -return x_19; +lean_dec(x_5); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +return x_20; } } } @@ -25361,6 +25490,16 @@ lean_dec(x_1); return x_3; } } +lean_object* l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_2); +lean_dec(x_2); +x_5 = l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(x_1, x_4, x_3); +return x_5; +} +} lean_object* _init_l_Lean_Parser_ParserExtensionState_inhabited___closed__1() { _start: { @@ -26285,42 +26424,42 @@ return x_1; lean_object* l_Lean_Parser_addLeadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_5; lean_object* x_14; lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_4, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_24, 2); -lean_inc(x_25); -lean_dec(x_24); -switch (lean_obj_tag(x_25)) { +lean_object* x_5; lean_object* x_14; lean_object* x_33; lean_object* x_34; +x_33 = lean_ctor_get(x_4, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_33, 2); +lean_inc(x_34); +lean_dec(x_33); +switch (lean_obj_tag(x_34)) { case 2: { -lean_object* x_26; +lean_object* x_35; lean_dec(x_3); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -lean_dec(x_25); -x_14 = x_26; -goto block_23; +x_35 = lean_ctor_get(x_34, 0); +lean_inc(x_35); +lean_dec(x_34); +x_14 = x_35; +goto block_32; } case 3: { -lean_object* x_27; +lean_object* x_36; lean_dec(x_3); -x_27 = lean_ctor_get(x_25, 0); -lean_inc(x_27); -lean_dec(x_25); -x_14 = x_27; -goto block_23; +x_36 = lean_ctor_get(x_34, 0); +lean_inc(x_36); +lean_dec(x_34); +x_14 = x_36; +goto block_32; } default: { -lean_object* x_28; -lean_dec(x_25); +lean_object* x_37; +lean_dec(x_34); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_28 = lean_box(0); -x_5 = x_28; +x_37 = lean_box(0); +x_5 = x_37; goto block_13; } } @@ -26339,7 +26478,7 @@ x_12 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_12, 0, x_11); return x_12; } -block_23: +block_32: { lean_object* x_15; lean_inc(x_1); @@ -26355,17 +26494,41 @@ return x_16; } else { -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_object* x_17; lean_object* x_18; uint8_t x_19; x_17 = lean_ctor_get(x_15, 0); lean_inc(x_17); lean_dec(x_15); x_18 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(x_14); -x_19 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(x_18); -x_20 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(x_4, x_17, x_19); -x_21 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_20); -x_22 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_22, 0, x_21); -return x_22; +x_19 = !lean_is_exclusive(x_17); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_20 = lean_ctor_get(x_17, 0); +x_21 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(x_18); +x_22 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(x_4, x_20, x_21); +lean_ctor_set(x_17, 0, x_22); +x_23 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_17); +x_24 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_24, 0, x_23); +return x_24; +} +else +{ +lean_object* x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_25 = lean_ctor_get(x_17, 0); +x_26 = lean_ctor_get_uint8(x_17, sizeof(void*)*1); +lean_inc(x_25); +lean_dec(x_17); +x_27 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(x_18); +x_28 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(x_4, x_25, x_27); +x_29 = lean_alloc_ctor(0, 1, 1); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set_uint8(x_29, sizeof(void*)*1, x_26); +x_30 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_29); +x_31 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_31, 0, x_30); +return x_31; +} } } } @@ -26560,15 +26723,38 @@ return x_5; } else { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_object* x_6; uint8_t x_7; x_6 = lean_ctor_get(x_4, 0); lean_inc(x_6); lean_dec(x_4); -x_7 = l___private_Init_Lean_Parser_Parser_14__addTrailingParserAux(x_6, x_3); -x_8 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_7); -x_9 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_9, 0, x_8); -return x_9; +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_8 = lean_ctor_get(x_6, 0); +x_9 = l___private_Init_Lean_Parser_Parser_14__addTrailingParserAux(x_8, x_3); +lean_ctor_set(x_6, 0, x_9); +x_10 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_6); +x_11 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_11, 0, x_10); +return x_11; +} +else +{ +lean_object* x_12; uint8_t x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_12 = lean_ctor_get(x_6, 0); +x_13 = lean_ctor_get_uint8(x_6, sizeof(void*)*1); +lean_inc(x_12); +lean_dec(x_6); +x_14 = l___private_Init_Lean_Parser_Parser_14__addTrailingParserAux(x_12, x_3); +x_15 = lean_alloc_ctor(0, 1, 1); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set_uint8(x_15, sizeof(void*)*1, x_13); +x_16 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_1, x_2, x_15); +x_17 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_17, 0, x_16); +return x_17; +} } } } @@ -27191,176 +27377,185 @@ return x_42; } case 2: { -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; +lean_object* x_43; uint8_t x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; x_43 = lean_ctor_get(x_2, 0); lean_inc(x_43); +x_44 = lean_ctor_get_uint8(x_2, sizeof(void*)*1); lean_dec(x_2); -x_44 = lean_ctor_get(x_1, 0); -lean_inc(x_44); -x_45 = lean_ctor_get(x_1, 1); +x_45 = lean_ctor_get(x_1, 0); lean_inc(x_45); -x_46 = lean_ctor_get(x_1, 2); +x_46 = lean_ctor_get(x_1, 1); lean_inc(x_46); -x_47 = lean_ctor_get(x_1, 3); +x_47 = lean_ctor_get(x_1, 2); lean_inc(x_47); -lean_inc(x_46); -x_48 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__1(x_46, x_43); -if (x_48 == 0) -{ -uint8_t x_49; -x_49 = !lean_is_exclusive(x_1); +x_48 = lean_ctor_get(x_1, 3); +lean_inc(x_48); +lean_inc(x_47); +x_49 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__1(x_47, x_43); if (x_49 == 0) { -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_50 = lean_ctor_get(x_1, 3); -lean_dec(x_50); -x_51 = lean_ctor_get(x_1, 2); +uint8_t x_50; +x_50 = !lean_is_exclusive(x_1); +if (x_50 == 0) +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_51 = lean_ctor_get(x_1, 3); lean_dec(x_51); -x_52 = lean_ctor_get(x_1, 1); +x_52 = lean_ctor_get(x_1, 2); lean_dec(x_52); -x_53 = lean_ctor_get(x_1, 0); +x_53 = lean_ctor_get(x_1, 1); lean_dec(x_53); -x_54 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_54 = lean_ctor_get(x_1, 0); +lean_dec(x_54); +x_55 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_56 = lean_alloc_ctor(0, 1, 1); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set_uint8(x_56, sizeof(void*)*1, x_44); lean_inc(x_43); -x_55 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_46, x_43, x_54); -x_56 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_56, 0, x_43); -x_57 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_57, 0, x_56); -lean_ctor_set(x_57, 1, x_47); -lean_ctor_set(x_1, 3, x_57); -lean_ctor_set(x_1, 2, x_55); +x_57 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_47, x_43, x_56); +x_58 = lean_alloc_ctor(2, 1, 1); +lean_ctor_set(x_58, 0, x_43); +lean_ctor_set_uint8(x_58, sizeof(void*)*1, x_44); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_58); +lean_ctor_set(x_59, 1, x_48); +lean_ctor_set(x_1, 3, x_59); +lean_ctor_set(x_1, 2, x_57); return x_1; } else { -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_dec(x_1); -x_58 = l_Lean_Parser_ParsingTables_inhabited___closed__1; -lean_inc(x_43); -x_59 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_46, x_43, x_58); -x_60 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_60, 0, x_43); -x_61 = lean_alloc_ctor(1, 2, 0); +x_60 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_61 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_61, 0, x_60); -lean_ctor_set(x_61, 1, x_47); -x_62 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_62, 0, x_44); -lean_ctor_set(x_62, 1, x_45); -lean_ctor_set(x_62, 2, x_59); -lean_ctor_set(x_62, 3, x_61); -return x_62; +lean_ctor_set_uint8(x_61, sizeof(void*)*1, x_44); +lean_inc(x_43); +x_62 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_9__addParserCategoryCore___spec__3(x_47, x_43, x_61); +x_63 = lean_alloc_ctor(2, 1, 1); +lean_ctor_set(x_63, 0, x_43); +lean_ctor_set_uint8(x_63, sizeof(void*)*1, x_44); +x_64 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_48); +x_65 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_65, 0, x_45); +lean_ctor_set(x_65, 1, x_46); +lean_ctor_set(x_65, 2, x_62); +lean_ctor_set(x_65, 3, x_64); +return x_65; } } else { +lean_dec(x_48); lean_dec(x_47); lean_dec(x_46); lean_dec(x_45); -lean_dec(x_44); lean_dec(x_43); return x_1; } } default: { -lean_object* x_63; lean_object* x_64; uint8_t x_65; lean_object* x_66; uint8_t x_67; -x_63 = lean_ctor_get(x_2, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_2, 1); -lean_inc(x_64); -x_65 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); -x_66 = lean_ctor_get(x_2, 2); +lean_object* x_66; lean_object* x_67; uint8_t x_68; lean_object* x_69; uint8_t x_70; +x_66 = lean_ctor_get(x_2, 0); lean_inc(x_66); +x_67 = lean_ctor_get(x_2, 1); +lean_inc(x_67); +x_68 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +x_69 = lean_ctor_get(x_2, 2); +lean_inc(x_69); lean_dec(x_2); -x_67 = !lean_is_exclusive(x_1); -if (x_67 == 0) +x_70 = !lean_is_exclusive(x_1); +if (x_70 == 0) { -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_68 = lean_ctor_get(x_1, 0); -x_69 = lean_ctor_get(x_1, 1); -x_70 = lean_ctor_get(x_1, 2); -x_71 = lean_ctor_get(x_1, 3); -lean_inc(x_64); -lean_inc(x_63); -x_72 = l_Lean_Parser_addParser(x_65, x_70, x_63, x_64, x_66); -if (lean_obj_tag(x_72) == 0) +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_71 = lean_ctor_get(x_1, 0); +x_72 = lean_ctor_get(x_1, 1); +x_73 = lean_ctor_get(x_1, 2); +x_74 = lean_ctor_get(x_1, 3); +lean_inc(x_67); +lean_inc(x_66); +x_75 = l_Lean_Parser_addParser(x_68, x_73, x_66, x_67, x_69); +if (lean_obj_tag(x_75) == 0) { -lean_object* x_73; lean_object* x_74; -lean_dec(x_72); +lean_object* x_76; lean_object* x_77; +lean_dec(x_75); lean_free_object(x_1); +lean_dec(x_74); +lean_dec(x_72); lean_dec(x_71); -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_64); -lean_dec(x_63); -x_73 = l_Lean_Parser_ParserExtensionState_inhabited; -x_74 = l_unreachable_x21___rarg(x_73); -return x_74; +lean_dec(x_67); +lean_dec(x_66); +x_76 = l_Lean_Parser_ParserExtensionState_inhabited; +x_77 = l_unreachable_x21___rarg(x_76); +return x_77; } else { -lean_object* x_75; lean_object* x_76; lean_object* x_77; -x_75 = lean_ctor_get(x_72, 0); -lean_inc(x_75); -lean_dec(x_72); -x_76 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_76, 0, x_63); -lean_ctor_set(x_76, 1, x_64); -x_77 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_77, 0, x_76); -lean_ctor_set(x_77, 1, x_71); -lean_ctor_set(x_1, 3, x_77); -lean_ctor_set(x_1, 2, x_75); +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_75, 0); +lean_inc(x_78); +lean_dec(x_75); +x_79 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_79, 0, x_66); +lean_ctor_set(x_79, 1, x_67); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_79); +lean_ctor_set(x_80, 1, x_74); +lean_ctor_set(x_1, 3, x_80); +lean_ctor_set(x_1, 2, x_78); return x_1; } } else { -lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_78 = lean_ctor_get(x_1, 0); -x_79 = lean_ctor_get(x_1, 1); -x_80 = lean_ctor_get(x_1, 2); -x_81 = lean_ctor_get(x_1, 3); +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_81 = lean_ctor_get(x_1, 0); +x_82 = lean_ctor_get(x_1, 1); +x_83 = lean_ctor_get(x_1, 2); +x_84 = lean_ctor_get(x_1, 3); +lean_inc(x_84); +lean_inc(x_83); +lean_inc(x_82); lean_inc(x_81); -lean_inc(x_80); -lean_inc(x_79); -lean_inc(x_78); lean_dec(x_1); -lean_inc(x_64); -lean_inc(x_63); -x_82 = l_Lean_Parser_addParser(x_65, x_80, x_63, x_64, x_66); -if (lean_obj_tag(x_82) == 0) +lean_inc(x_67); +lean_inc(x_66); +x_85 = l_Lean_Parser_addParser(x_68, x_83, x_66, x_67, x_69); +if (lean_obj_tag(x_85) == 0) { -lean_object* x_83; lean_object* x_84; +lean_object* x_86; lean_object* x_87; +lean_dec(x_85); +lean_dec(x_84); lean_dec(x_82); lean_dec(x_81); -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_64); -lean_dec(x_63); -x_83 = l_Lean_Parser_ParserExtensionState_inhabited; -x_84 = l_unreachable_x21___rarg(x_83); -return x_84; +lean_dec(x_67); +lean_dec(x_66); +x_86 = l_Lean_Parser_ParserExtensionState_inhabited; +x_87 = l_unreachable_x21___rarg(x_86); +return x_87; } else { -lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_85 = lean_ctor_get(x_82, 0); -lean_inc(x_85); -lean_dec(x_82); -x_86 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_86, 0, x_63); -lean_ctor_set(x_86, 1, x_64); -x_87 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_87, 0, x_86); -lean_ctor_set(x_87, 1, x_81); -x_88 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_88, 0, x_78); -lean_ctor_set(x_88, 1, x_79); -lean_ctor_set(x_88, 2, x_85); -lean_ctor_set(x_88, 3, x_87); -return x_88; +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_88 = lean_ctor_get(x_85, 0); +lean_inc(x_88); +lean_dec(x_85); +x_89 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_89, 0, x_66); +lean_ctor_set(x_89, 1, x_67); +x_90 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_90, 0, x_89); +lean_ctor_set(x_90, 1, x_84); +x_91 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_91, 0, x_81); +lean_ctor_set(x_91, 1, x_82); +lean_ctor_set(x_91, 2, x_88); +lean_ctor_set(x_91, 3, x_90); +return x_91; } } } @@ -30672,209 +30867,210 @@ goto _start; } case 2: { -lean_object* x_56; uint8_t x_57; +lean_object* x_56; uint8_t x_57; uint8_t x_58; x_56 = lean_ctor_get(x_10, 0); lean_inc(x_56); +x_57 = lean_ctor_get_uint8(x_10, sizeof(void*)*1); lean_dec(x_10); -x_57 = !lean_is_exclusive(x_5); -if (x_57 == 0) +x_58 = !lean_is_exclusive(x_5); +if (x_58 == 0) { -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; -x_58 = lean_ctor_get(x_5, 0); -x_59 = lean_ctor_get(x_5, 1); -x_60 = lean_ctor_get(x_5, 2); -x_61 = lean_ctor_get(x_5, 3); -x_62 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_60, x_56); -x_63 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(x_62, x_6); -lean_dec(x_62); -if (lean_obj_tag(x_63) == 0) -{ -lean_object* x_64; lean_object* x_65; -x_64 = lean_ctor_get(x_63, 0); -lean_inc(x_64); -x_65 = lean_ctor_get(x_63, 1); -lean_inc(x_65); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_59 = lean_ctor_get(x_5, 0); +x_60 = lean_ctor_get(x_5, 1); +x_61 = lean_ctor_get(x_5, 2); +x_62 = lean_ctor_get(x_5, 3); +x_63 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_61, x_56, x_57); +x_64 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(x_63, x_6); lean_dec(x_63); -lean_ctor_set(x_5, 2, x_64); +if (lean_obj_tag(x_64) == 0) +{ +lean_object* x_65; lean_object* x_66; +x_65 = lean_ctor_get(x_64, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_64, 1); +lean_inc(x_66); +lean_dec(x_64); +lean_ctor_set(x_5, 2, x_65); x_4 = x_12; -x_6 = x_65; +x_6 = x_66; goto _start; } else { -uint8_t x_67; +uint8_t x_68; lean_free_object(x_5); -lean_dec(x_61); +lean_dec(x_62); +lean_dec(x_60); lean_dec(x_59); -lean_dec(x_58); lean_dec(x_12); lean_dec(x_1); -x_67 = !lean_is_exclusive(x_63); -if (x_67 == 0) +x_68 = !lean_is_exclusive(x_64); +if (x_68 == 0) { -return x_63; +return x_64; } else { -lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_68 = lean_ctor_get(x_63, 0); -x_69 = lean_ctor_get(x_63, 1); +lean_object* x_69; lean_object* x_70; lean_object* x_71; +x_69 = lean_ctor_get(x_64, 0); +x_70 = lean_ctor_get(x_64, 1); +lean_inc(x_70); lean_inc(x_69); -lean_inc(x_68); -lean_dec(x_63); -x_70 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_70, 0, x_68); -lean_ctor_set(x_70, 1, x_69); -return x_70; +lean_dec(x_64); +x_71 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_71, 0, x_69); +lean_ctor_set(x_71, 1, x_70); +return x_71; } } } else { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_71 = lean_ctor_get(x_5, 0); -x_72 = lean_ctor_get(x_5, 1); -x_73 = lean_ctor_get(x_5, 2); -x_74 = lean_ctor_get(x_5, 3); +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_72 = lean_ctor_get(x_5, 0); +x_73 = lean_ctor_get(x_5, 1); +x_74 = lean_ctor_get(x_5, 2); +x_75 = lean_ctor_get(x_5, 3); +lean_inc(x_75); lean_inc(x_74); lean_inc(x_73); lean_inc(x_72); -lean_inc(x_71); lean_dec(x_5); -x_75 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_73, x_56); -x_76 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(x_75, x_6); -lean_dec(x_75); -if (lean_obj_tag(x_76) == 0) -{ -lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_77 = lean_ctor_get(x_76, 0); -lean_inc(x_77); -x_78 = lean_ctor_get(x_76, 1); -lean_inc(x_78); +x_76 = l___private_Init_Lean_Parser_Parser_9__addParserCategoryCore(x_74, x_56, x_57); +x_77 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory___spec__1(x_76, x_6); lean_dec(x_76); -x_79 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_79, 0, x_71); -lean_ctor_set(x_79, 1, x_72); -lean_ctor_set(x_79, 2, x_77); -lean_ctor_set(x_79, 3, x_74); +if (lean_obj_tag(x_77) == 0) +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_77, 0); +lean_inc(x_78); +x_79 = lean_ctor_get(x_77, 1); +lean_inc(x_79); +lean_dec(x_77); +x_80 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_80, 0, x_72); +lean_ctor_set(x_80, 1, x_73); +lean_ctor_set(x_80, 2, x_78); +lean_ctor_set(x_80, 3, x_75); x_4 = x_12; -x_5 = x_79; -x_6 = x_78; +x_5 = x_80; +x_6 = x_79; goto _start; } else { -lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -lean_dec(x_74); +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +lean_dec(x_75); +lean_dec(x_73); lean_dec(x_72); -lean_dec(x_71); lean_dec(x_12); lean_dec(x_1); -x_81 = lean_ctor_get(x_76, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_76, 1); +x_82 = lean_ctor_get(x_77, 0); lean_inc(x_82); -if (lean_is_exclusive(x_76)) { - lean_ctor_release(x_76, 0); - lean_ctor_release(x_76, 1); - x_83 = x_76; +x_83 = lean_ctor_get(x_77, 1); +lean_inc(x_83); +if (lean_is_exclusive(x_77)) { + lean_ctor_release(x_77, 0); + lean_ctor_release(x_77, 1); + x_84 = x_77; } else { - lean_dec_ref(x_76); - x_83 = lean_box(0); + lean_dec_ref(x_77); + x_84 = lean_box(0); } -if (lean_is_scalar(x_83)) { - x_84 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_84)) { + x_85 = lean_alloc_ctor(1, 2, 0); } else { - x_84 = x_83; + x_85 = x_84; } -lean_ctor_set(x_84, 0, x_81); -lean_ctor_set(x_84, 1, x_82); -return x_84; +lean_ctor_set(x_85, 0, x_82); +lean_ctor_set(x_85, 1, x_83); +return x_85; } } } default: { -lean_object* x_85; lean_object* x_86; uint8_t x_87; -x_85 = lean_ctor_get(x_10, 0); -lean_inc(x_85); -x_86 = lean_ctor_get(x_10, 1); +lean_object* x_86; lean_object* x_87; uint8_t x_88; +x_86 = lean_ctor_get(x_10, 0); lean_inc(x_86); +x_87 = lean_ctor_get(x_10, 1); +lean_inc(x_87); lean_dec(x_10); -x_87 = !lean_is_exclusive(x_5); -if (x_87 == 0) +x_88 = !lean_is_exclusive(x_5); +if (x_88 == 0) { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; -x_88 = lean_ctor_get(x_5, 0); -x_89 = lean_ctor_get(x_5, 1); -x_90 = lean_ctor_get(x_5, 2); -x_91 = lean_ctor_get(x_5, 3); -lean_inc(x_86); -lean_inc(x_90); +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_89 = lean_ctor_get(x_5, 0); +x_90 = lean_ctor_get(x_5, 1); +x_91 = lean_ctor_get(x_5, 2); +x_92 = lean_ctor_get(x_5, 3); +lean_inc(x_87); +lean_inc(x_91); lean_inc(x_1); -x_92 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_90, x_86); -if (lean_obj_tag(x_92) == 0) +x_93 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_91, x_87); +if (lean_obj_tag(x_93) == 0) { -lean_object* x_93; lean_object* x_94; lean_object* x_95; +lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_free_object(x_5); +lean_dec(x_92); lean_dec(x_91); lean_dec(x_90); lean_dec(x_89); -lean_dec(x_88); +lean_dec(x_87); lean_dec(x_86); -lean_dec(x_85); lean_dec(x_12); lean_dec(x_1); -x_93 = lean_ctor_get(x_92, 0); -lean_inc(x_93); -lean_dec(x_92); -x_94 = lean_alloc_ctor(18, 1, 0); -lean_ctor_set(x_94, 0, x_93); -x_95 = lean_alloc_ctor(1, 2, 0); +x_94 = lean_ctor_get(x_93, 0); +lean_inc(x_94); +lean_dec(x_93); +x_95 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_95, 0, x_94); -lean_ctor_set(x_95, 1, x_6); -return x_95; +x_96 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_96, 0, x_95); +lean_ctor_set(x_96, 1, x_6); +return x_96; } else { -lean_object* x_96; lean_object* x_97; lean_object* x_98; uint8_t x_99; lean_object* x_100; -x_96 = lean_ctor_get(x_92, 0); -lean_inc(x_96); -lean_dec(x_92); -x_97 = lean_ctor_get(x_96, 0); +lean_object* x_97; lean_object* x_98; lean_object* x_99; uint8_t x_100; lean_object* x_101; +x_97 = lean_ctor_get(x_93, 0); lean_inc(x_97); -x_98 = lean_ctor_get(x_96, 1); +lean_dec(x_93); +x_98 = lean_ctor_get(x_97, 0); lean_inc(x_98); -lean_dec(x_96); -x_99 = lean_unbox(x_97); +x_99 = lean_ctor_get(x_97, 1); +lean_inc(x_99); lean_dec(x_97); -x_100 = l_Lean_Parser_addParser(x_99, x_90, x_85, x_86, x_98); -if (lean_obj_tag(x_100) == 0) +x_100 = lean_unbox(x_98); +lean_dec(x_98); +x_101 = l_Lean_Parser_addParser(x_100, x_91, x_86, x_87, x_99); +if (lean_obj_tag(x_101) == 0) { -lean_object* x_101; lean_object* x_102; lean_object* x_103; +lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_free_object(x_5); -lean_dec(x_91); +lean_dec(x_92); +lean_dec(x_90); lean_dec(x_89); -lean_dec(x_88); lean_dec(x_12); lean_dec(x_1); -x_101 = lean_ctor_get(x_100, 0); -lean_inc(x_101); -lean_dec(x_100); -x_102 = lean_alloc_ctor(18, 1, 0); -lean_ctor_set(x_102, 0, x_101); -x_103 = lean_alloc_ctor(1, 2, 0); +x_102 = lean_ctor_get(x_101, 0); +lean_inc(x_102); +lean_dec(x_101); +x_103 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_103, 0, x_102); -lean_ctor_set(x_103, 1, x_6); -return x_103; +x_104 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_104, 0, x_103); +lean_ctor_set(x_104, 1, x_6); +return x_104; } else { -lean_object* x_104; -x_104 = lean_ctor_get(x_100, 0); -lean_inc(x_104); -lean_dec(x_100); -lean_ctor_set(x_5, 2, x_104); +lean_object* x_105; +x_105 = lean_ctor_get(x_101, 0); +lean_inc(x_105); +lean_dec(x_101); +lean_ctor_set(x_5, 2, x_105); x_4 = x_12; goto _start; } @@ -30882,86 +31078,86 @@ goto _start; } else { -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; -x_106 = lean_ctor_get(x_5, 0); -x_107 = lean_ctor_get(x_5, 1); -x_108 = lean_ctor_get(x_5, 2); -x_109 = lean_ctor_get(x_5, 3); +lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_107 = lean_ctor_get(x_5, 0); +x_108 = lean_ctor_get(x_5, 1); +x_109 = lean_ctor_get(x_5, 2); +x_110 = lean_ctor_get(x_5, 3); +lean_inc(x_110); lean_inc(x_109); lean_inc(x_108); lean_inc(x_107); -lean_inc(x_106); lean_dec(x_5); -lean_inc(x_86); -lean_inc(x_108); +lean_inc(x_87); +lean_inc(x_109); lean_inc(x_1); -x_110 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_108, x_86); -if (lean_obj_tag(x_110) == 0) +x_111 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_109, x_87); +if (lean_obj_tag(x_111) == 0) { -lean_object* x_111; lean_object* x_112; lean_object* x_113; +lean_object* x_112; lean_object* x_113; lean_object* x_114; +lean_dec(x_110); lean_dec(x_109); lean_dec(x_108); lean_dec(x_107); -lean_dec(x_106); +lean_dec(x_87); lean_dec(x_86); -lean_dec(x_85); lean_dec(x_12); lean_dec(x_1); -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -lean_dec(x_110); -x_112 = lean_alloc_ctor(18, 1, 0); -lean_ctor_set(x_112, 0, x_111); -x_113 = lean_alloc_ctor(1, 2, 0); +x_112 = lean_ctor_get(x_111, 0); +lean_inc(x_112); +lean_dec(x_111); +x_113 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_113, 0, x_112); -lean_ctor_set(x_113, 1, x_6); -return x_113; +x_114 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_114, 0, x_113); +lean_ctor_set(x_114, 1, x_6); +return x_114; } else { -lean_object* x_114; lean_object* x_115; lean_object* x_116; uint8_t x_117; lean_object* x_118; -x_114 = lean_ctor_get(x_110, 0); -lean_inc(x_114); -lean_dec(x_110); -x_115 = lean_ctor_get(x_114, 0); +lean_object* x_115; lean_object* x_116; lean_object* x_117; uint8_t x_118; lean_object* x_119; +x_115 = lean_ctor_get(x_111, 0); lean_inc(x_115); -x_116 = lean_ctor_get(x_114, 1); +lean_dec(x_111); +x_116 = lean_ctor_get(x_115, 0); lean_inc(x_116); -lean_dec(x_114); -x_117 = lean_unbox(x_115); +x_117 = lean_ctor_get(x_115, 1); +lean_inc(x_117); lean_dec(x_115); -x_118 = l_Lean_Parser_addParser(x_117, x_108, x_85, x_86, x_116); -if (lean_obj_tag(x_118) == 0) +x_118 = lean_unbox(x_116); +lean_dec(x_116); +x_119 = l_Lean_Parser_addParser(x_118, x_109, x_86, x_87, x_117); +if (lean_obj_tag(x_119) == 0) { -lean_object* x_119; lean_object* x_120; lean_object* x_121; -lean_dec(x_109); +lean_object* x_120; lean_object* x_121; lean_object* x_122; +lean_dec(x_110); +lean_dec(x_108); lean_dec(x_107); -lean_dec(x_106); lean_dec(x_12); lean_dec(x_1); -x_119 = lean_ctor_get(x_118, 0); -lean_inc(x_119); -lean_dec(x_118); -x_120 = lean_alloc_ctor(18, 1, 0); -lean_ctor_set(x_120, 0, x_119); -x_121 = lean_alloc_ctor(1, 2, 0); +x_120 = lean_ctor_get(x_119, 0); +lean_inc(x_120); +lean_dec(x_119); +x_121 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_121, 0, x_120); -lean_ctor_set(x_121, 1, x_6); -return x_121; +x_122 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_122, 0, x_121); +lean_ctor_set(x_122, 1, x_6); +return x_122; } else { -lean_object* x_122; lean_object* x_123; -x_122 = lean_ctor_get(x_118, 0); -lean_inc(x_122); -lean_dec(x_118); -x_123 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_123, 0, x_106); -lean_ctor_set(x_123, 1, x_107); -lean_ctor_set(x_123, 2, x_122); -lean_ctor_set(x_123, 3, x_109); +lean_object* x_123; lean_object* x_124; +x_123 = lean_ctor_get(x_119, 0); +lean_inc(x_123); +lean_dec(x_119); +x_124 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_124, 0, x_107); +lean_ctor_set(x_124, 1, x_108); +lean_ctor_set(x_124, 2, x_123); +lean_ctor_set(x_124, 3, x_110); x_4 = x_12; -x_5 = x_123; +x_5 = x_124; goto _start; } } @@ -32185,31 +32381,42 @@ x_4 = lean_box(x_3); return x_4; } } -lean_object* l_Lean_Parser_addParserCategory(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_addParserCategory(lean_object* x_1, lean_object* x_2, uint8_t x_3) { _start: { -uint8_t x_3; -x_3 = l_Lean_Parser_isParserCategory(x_1, x_2); -if (x_3 == 0) +uint8_t x_4; +x_4 = l_Lean_Parser_isParserCategory(x_1, x_2); +if (x_4 == 0) { -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_4 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_4, 0, x_2); -x_5 = l_Lean_Parser_parserExtension; -x_6 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_5, x_1, x_4); -x_7 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_7, 0, x_6); -return x_7; +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_5 = lean_alloc_ctor(2, 1, 1); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set_uint8(x_5, sizeof(void*)*1, x_3); +x_6 = l_Lean_Parser_parserExtension; +x_7 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_6, x_1, x_5); +x_8 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_8, 0, x_7); +return x_8; } else { -lean_object* x_8; +lean_object* x_9; lean_dec(x_1); -x_8 = l___private_Init_Lean_Parser_Parser_8__throwParserCategoryAlreadyDefined___rarg(x_2); -return x_8; +x_9 = l___private_Init_Lean_Parser_Parser_8__throwParserCategoryAlreadyDefined___rarg(x_2); +return x_9; } } } +lean_object* l_Lean_Parser_addParserCategory___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = lean_unbox(x_3); +lean_dec(x_3); +x_5 = l_Lean_Parser_addParserCategory(x_1, x_2, x_4); +return x_5; +} +} lean_object* l_Lean_Parser_categoryParserFnImpl(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -32240,12 +32447,16 @@ return x_16; } else { -lean_object* x_17; lean_object* x_18; +lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; x_17 = lean_ctor_get(x_9, 0); lean_inc(x_17); lean_dec(x_9); -x_18 = l_Lean_Parser_prattParser(x_1, x_17, x_2, x_3, x_4); -return x_18; +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get_uint8(x_17, sizeof(void*)*1); +lean_dec(x_17); +x_20 = l_Lean_Parser_prattParser(x_1, x_18, x_19, x_2, x_3, x_4); +return x_20; } } } @@ -32785,7 +32996,7 @@ return x_9; } else { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; x_10 = lean_ctor_get(x_8, 0); lean_inc(x_10); lean_dec(x_8); @@ -32795,32 +33006,36 @@ x_12 = l_Lean_Parser_mkParserContext(x_1, x_11); x_13 = l_Lean_Parser_mkParserState(x_3); lean_dec(x_3); x_14 = l_Lean_Parser_whitespace___main(x_12, x_13); -x_15 = lean_unsigned_to_nat(0u); +x_15 = lean_ctor_get(x_10, 0); +lean_inc(x_15); +x_16 = lean_ctor_get_uint8(x_10, sizeof(void*)*1); +lean_dec(x_10); +x_17 = lean_unsigned_to_nat(0u); lean_inc(x_12); -x_16 = l_Lean_Parser_prattParser(x_2, x_10, x_15, x_12, x_14); -x_17 = lean_ctor_get(x_16, 3); -lean_inc(x_17); -if (lean_obj_tag(x_17) == 0) +x_18 = l_Lean_Parser_prattParser(x_2, x_15, x_16, x_17, x_12, x_14); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_dec(x_12); -x_18 = lean_ctor_get(x_16, 0); -lean_inc(x_18); -lean_dec(x_16); -x_19 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_18); +x_20 = lean_ctor_get(x_18, 0); +lean_inc(x_20); lean_dec(x_18); -x_20 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_20, 0, x_19); -return x_20; +x_21 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_20); +lean_dec(x_20); +x_22 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_22, 0, x_21); +return x_22; } else { -lean_object* x_21; lean_object* x_22; -lean_dec(x_17); -x_21 = l_Lean_Parser_ParserState_toErrorMsg(x_12, x_16); -x_22 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_22, 0, x_21); -return x_22; +lean_object* x_23; lean_object* x_24; +lean_dec(x_19); +x_23 = l_Lean_Parser_ParserState_toErrorMsg(x_12, x_18); +x_24 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_24, 0, x_23); +return x_24; } } } @@ -33637,58 +33852,68 @@ x_1 = lean_mk_string("Builtin parser"); return x_1; } } -lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4) { _start: { -lean_object* x_4; +lean_object* x_5; lean_inc(x_2); -x_4 = l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(x_2, x_3); -if (lean_obj_tag(x_4) == 0) +x_5 = l___private_Init_Lean_Parser_Parser_10__addBuiltinParserCategory(x_2, x_3, x_4); +if (lean_obj_tag(x_5) == 0) { -lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; lean_object* x_9; lean_object* x_10; -x_5 = lean_ctor_get(x_4, 1); -lean_inc(x_5); -lean_dec(x_4); +lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; lean_object* x_10; lean_object* x_11; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +lean_dec(x_5); lean_inc(x_1); -x_6 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__BuiltinParserAttribute_add___boxed), 7, 2); -lean_closure_set(x_6, 0, x_1); -lean_closure_set(x_6, 1, x_2); -x_7 = l_Lean_Parser_registerBuiltinParserAttribute___closed__1; -x_8 = 1; -x_9 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set(x_9, 1, x_7); -lean_ctor_set(x_9, 2, x_6); -lean_ctor_set_uint8(x_9, sizeof(void*)*3, x_8); -x_10 = l_Lean_registerBuiltinAttribute(x_9, x_5); -return x_10; +x_7 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__BuiltinParserAttribute_add___boxed), 7, 2); +lean_closure_set(x_7, 0, x_1); +lean_closure_set(x_7, 1, x_2); +x_8 = l_Lean_Parser_registerBuiltinParserAttribute___closed__1; +x_9 = 1; +x_10 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_10, 0, x_1); +lean_ctor_set(x_10, 1, x_8); +lean_ctor_set(x_10, 2, x_7); +lean_ctor_set_uint8(x_10, sizeof(void*)*3, x_9); +x_11 = l_Lean_registerBuiltinAttribute(x_10, x_6); +return x_11; } else { -uint8_t x_11; +uint8_t x_12; lean_dec(x_2); lean_dec(x_1); -x_11 = !lean_is_exclusive(x_4); -if (x_11 == 0) +x_12 = !lean_is_exclusive(x_5); +if (x_12 == 0) { -return x_4; +return x_5; } else { -lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_12 = lean_ctor_get(x_4, 0); -x_13 = lean_ctor_get(x_4, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_5, 0); +x_14 = lean_ctor_get(x_5, 1); +lean_inc(x_14); lean_inc(x_13); -lean_inc(x_12); -lean_dec(x_4); -x_14 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_14, 0, x_12); -lean_ctor_set(x_14, 1, x_13); -return x_14; +lean_dec(x_5); +x_15 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_15, 0, x_13); +lean_ctor_set(x_15, 1, x_14); +return x_15; } } } } +lean_object* l_Lean_Parser_registerBuiltinParserAttribute___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_3); +lean_dec(x_3); +x_6 = l_Lean_Parser_registerBuiltinParserAttribute(x_1, x_2, x_5, x_4); +return x_6; +} +} lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_19__ParserAttribute_add___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -34311,63 +34536,73 @@ x_4 = l_Lean_registerAttributeImplBuilder(x_2, x_3, x_1); return x_4; } } -lean_object* l_Lean_Parser_registerParserCategory(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_registerParserCategory(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { _start: { -lean_object* x_5; lean_object* x_6; +lean_object* x_6; lean_object* x_7; lean_inc(x_3); -x_5 = l_Lean_Parser_addParserCategory(x_1, x_3); -x_6 = l_IO_ofExcept___at_Lean_registerClassAttr___spec__1(x_5, x_4); -lean_dec(x_5); -if (lean_obj_tag(x_6) == 0) -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -x_8 = lean_ctor_get(x_6, 1); -lean_inc(x_8); +x_6 = l_Lean_Parser_addParserCategory(x_1, x_3, x_4); +x_7 = l_IO_ofExcept___at_Lean_registerClassAttr___spec__1(x_6, x_5); lean_dec(x_6); -x_9 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_9, 0, x_2); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); x_10 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_10, 0, x_3); -x_11 = lean_box(0); -x_12 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_12, 0, x_10); -lean_ctor_set(x_12, 1, x_11); +lean_ctor_set(x_10, 0, x_2); +x_11 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_11, 0, x_3); +x_12 = lean_box(0); x_13 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_13, 0, x_9); +lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); -x_14 = l___private_Init_Lean_Parser_Parser_20__registerParserAttributeImplBuilder___closed__2; -x_15 = l_Lean_registerAttributeOfBuilder(x_7, x_14, x_13, x_8); -return x_15; +x_14 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_14, 0, x_10); +lean_ctor_set(x_14, 1, x_13); +x_15 = l___private_Init_Lean_Parser_Parser_20__registerParserAttributeImplBuilder___closed__2; +x_16 = l_Lean_registerAttributeOfBuilder(x_8, x_15, x_14, x_9); +return x_16; } else { -uint8_t x_16; +uint8_t x_17; lean_dec(x_3); lean_dec(x_2); -x_16 = !lean_is_exclusive(x_6); -if (x_16 == 0) +x_17 = !lean_is_exclusive(x_7); +if (x_17 == 0) { -return x_6; +return x_7; } else { -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_6, 0); -x_18 = lean_ctor_get(x_6, 1); +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_7, 0); +x_19 = lean_ctor_get(x_7, 1); +lean_inc(x_19); lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_6); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_18); -return x_19; +lean_dec(x_7); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +return x_20; } } } } +lean_object* l_Lean_Parser_registerParserCategory___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +uint8_t x_6; lean_object* x_7; +x_6 = lean_unbox(x_4); +lean_dec(x_4); +x_7 = l_Lean_Parser_registerParserCategory(x_1, x_2, x_3, x_6, x_5); +return x_7; +} +} lean_object* _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__1() { _start: { @@ -34407,11 +34642,12 @@ return x_3; lean_object* l_Lean_Parser_regBuiltinTermParserAttr(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; +lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; x_2 = l_Lean_Parser_regBuiltinTermParserAttr___closed__2; x_3 = l_Lean_Parser_regBuiltinTermParserAttr___closed__4; -x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); -return x_4; +x_4 = 0; +x_5 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_regTermParserAttribute___closed__1() { @@ -36692,14 +36928,14 @@ l_Lean_Parser_identFnAux___main___closed__1 = _init_l_Lean_Parser_identFnAux___m lean_mark_persistent(l_Lean_Parser_identFnAux___main___closed__1); l_Lean_Parser_symbolInfo___closed__1 = _init_l_Lean_Parser_symbolInfo___closed__1(); lean_mark_persistent(l_Lean_Parser_symbolInfo___closed__1); -l_Lean_Parser_symbolOrIdentInfo___closed__1 = _init_l_Lean_Parser_symbolOrIdentInfo___closed__1(); -lean_mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__1); -l_Lean_Parser_symbolOrIdentInfo___closed__2 = _init_l_Lean_Parser_symbolOrIdentInfo___closed__2(); -lean_mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__2); -l_Lean_Parser_symbolOrIdentInfo___closed__3 = _init_l_Lean_Parser_symbolOrIdentInfo___closed__3(); -lean_mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__3); -l_Lean_Parser_symbolOrIdentInfo___closed__4 = _init_l_Lean_Parser_symbolOrIdentInfo___closed__4(); -lean_mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__4); +l_Lean_Parser_nonReservedSymbolInfo___closed__1 = _init_l_Lean_Parser_nonReservedSymbolInfo___closed__1(); +lean_mark_persistent(l_Lean_Parser_nonReservedSymbolInfo___closed__1); +l_Lean_Parser_nonReservedSymbolInfo___closed__2 = _init_l_Lean_Parser_nonReservedSymbolInfo___closed__2(); +lean_mark_persistent(l_Lean_Parser_nonReservedSymbolInfo___closed__2); +l_Lean_Parser_nonReservedSymbolInfo___closed__3 = _init_l_Lean_Parser_nonReservedSymbolInfo___closed__3(); +lean_mark_persistent(l_Lean_Parser_nonReservedSymbolInfo___closed__3); +l_Lean_Parser_nonReservedSymbolInfo___closed__4 = _init_l_Lean_Parser_nonReservedSymbolInfo___closed__4(); +lean_mark_persistent(l_Lean_Parser_nonReservedSymbolInfo___closed__4); l_Lean_Parser_symbolNoWsInfo___closed__1 = _init_l_Lean_Parser_symbolNoWsInfo___closed__1(); lean_mark_persistent(l_Lean_Parser_symbolNoWsInfo___closed__1); l_Lean_Parser_symbolNoWsFn___closed__1 = _init_l_Lean_Parser_symbolNoWsFn___closed__1(); diff --git a/stage0/stdlib/Init/Lean/Parser/Tactic.c b/stage0/stdlib/Init/Lean/Parser/Tactic.c index d188206159..6b767a73c2 100644 --- a/stage0/stdlib/Init/Lean/Parser/Tactic.c +++ b/stage0/stdlib/Init/Lean/Parser/Tactic.c @@ -13,67 +13,208 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__7; +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__4; +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_intro(lean_object*); +extern lean_object* l_Lean_Parser_Term_orelse___elambda__1___closed__4; +lean_object* l_Lean_Parser_Tactic_orelse___closed__2; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_object* l_Lean_Parser_Tactic_intros___closed__7; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__2(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1; +extern lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__1; lean_object* l_Lean_Parser_andthenInfo(lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_Term_have___elambda__1___closed__7; +lean_object* l_Lean_Parser_Tactic_apply___closed__2; lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__1; -lean_object* l_Lean_Parser_Term_tacticBlock___closed__7; -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__12; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__1(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__5; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___closed__1; +extern lean_object* l_Lean_nullKind; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__3; +lean_object* l_Lean_Parser_Tactic_orelse___closed__1; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__5; +lean_object* l_Lean_Parser_Tactic_intro___closed__4; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3; lean_object* l_Lean_Parser_regTacticParserAttribute___closed__2; lean_object* l_Lean_Parser_Term_tacticBlock___closed__3; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__7; +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlock(lean_object*); +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__6; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4; +extern lean_object* l_Lean_Parser_Term_have___closed__3; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly; +extern lean_object* l_Lean_Parser_Term_subtype___closed__1; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___closed__2; +lean_object* l_Lean_Parser_tacticSeq___closed__2; lean_object* l_Lean_Parser_ParserState_mkNode(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_apply___closed__4; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__7; lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__1; lean_object* l_Lean_Parser_regTacticParserAttribute___closed__1; lean_object* l_Lean_Parser_registerBuiltinDynamicParserAttribute(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_regBuiltinTacticParserAttr(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__3; lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlockCurly(lean_object*); lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; +lean_object* l_Lean_Parser_Tactic_intros___closed__5; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__2; +lean_object* l_Lean_Parser_Tactic_orelse___closed__3; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__8; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__5; lean_object* l_Lean_Parser_ParserState_mkErrorsAt(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_symbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_intros___closed__3; +lean_object* l_Lean_Parser_Tactic_apply___closed__5; +lean_object* l_Lean_Parser_Tactic_assumption___closed__4; +lean_object* l_Lean_Parser_Tactic_intros___closed__6; lean_object* l_Lean_Parser_tacticParser(uint8_t, lean_object*); +lean_object* l_Lean_Parser_Tactic_tacticSymbol(uint8_t, lean_object*); lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__2; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__1; +lean_object* l_Lean_Parser_Tactic_assumption; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1(lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__5; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__4; +lean_object* l_Lean_Parser_manyAux___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +lean_object* l_Lean_Parser_tacticSeq___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_nonReservedSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__1; lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7; +lean_object* l_Lean_Parser_tacticSeq___boxed(lean_object*); +lean_object* l_Lean_Parser_Tactic_assumption___closed__1; +lean_object* l_Lean_Parser_tacticSeq___closed__1; +lean_object* l_Lean_Parser_Tactic_apply___closed__3; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*); +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_intros(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__6; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__6; +lean_object* l_Lean_Parser_Tactic_intros___closed__2; +lean_object* l_Lean_Parser_optionaInfo(lean_object*); +extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__13; +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_apply(lean_object*); +lean_object* l_Lean_Parser_Tactic_apply___closed__6; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4; +lean_object* l_Lean_Parser_Tactic_intros___closed__1; +lean_object* l_Lean_Parser_Tactic_orelse___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__2; extern lean_object* l_Char_HasRepr___closed__1; +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__1; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__1; lean_object* l_Lean_Parser_orelseInfo(lean_object*, lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Term_tacticBlock(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__10; +extern lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__13; lean_object* lean_name_mk_string(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__6; +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__7; extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11; -lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_assumption___closed__2; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__8; +lean_object* l_Lean_Parser_Tactic_intro___closed__7; +lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__3; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock; +extern lean_object* l_Lean_Parser_Term_explicitUniv___closed__4; +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_tacticBlock___closed__2; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1(lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__4; +lean_object* l_Lean_Parser_Tactic_apply; +lean_object* l_Lean_Parser_Tactic_assumption___closed__5; lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(lean_object*); lean_object* l_Lean_Parser_ParserState_restore(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_tacticBlock___closed__9; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__1; +extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__9; +lean_object* l_Lean_Parser_Tactic_orelse; lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_tacticSeq(uint8_t); +lean_object* l_Lean_Parser_Tactic_intros___closed__4; +lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__5; extern lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__4; -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6; +lean_object* l_Lean_Parser_nonReservedSymbol___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__9; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__2; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__1; lean_object* l_Lean_Parser_mergeOrElseErrors(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_categoryParser(uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__4; lean_object* l_Lean_Parser_regTacticParserAttribute(lean_object*); -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__10; -lean_object* l_Lean_Parser_Term_tacticBlock___closed__8; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_symbolInfo(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__6; +lean_object* l_Lean_Parser_sepBy1Fn(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_orelse___elambda__1___closed__1; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4; +lean_object* l_Lean_Parser_Tactic_assumption___closed__3; lean_object* l_Lean_Parser_Term_tacticBlock___closed__4; lean_object* l_Lean_Parser_Term_tacticBlock___closed__1; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__8; lean_object* l_Lean_Parser_Term_tacticBlock; -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__13; +lean_object* l_Lean_Parser_tacticSeq___elambda__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__4; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__6; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__3; +lean_object* l_Lean_Parser_Tactic_intro___closed__6; +lean_object* l_Lean_Parser_Tactic_intros; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo(lean_object*); lean_object* l_String_trim(lean_object*); +lean_object* l_Lean_Parser_Tactic_apply___closed__1; +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_assumption(lean_object*); +extern lean_object* l_Lean_Parser_Term_typeAscription___closed__2; +lean_object* l_Lean_Parser_Tactic_apply___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_tacticBlock___closed__6; +lean_object* l_Lean_Parser_Tactic_intro___closed__2; lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__3; lean_object* l_Lean_Parser_mkAntiquot(uint8_t, lean_object*, lean_object*, uint8_t); -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__9; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__5; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__7; +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__2___boxed(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__3; +lean_object* l_Lean_Parser_Tactic_intro___closed__1; +lean_object* l_Lean_Parser_Tactic_intro___closed__3; lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8; +lean_object* l_Lean_Parser_Tactic_intro___closed__5; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__4; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7; +lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__8; +lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__8; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Tactic_tacticSymbol___boxed(lean_object*, lean_object*); +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_orelse(lean_object*); +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParser___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_tacticBlock___closed__5; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1; +lean_object* l_Lean_Parser_Tactic_intro; lean_object* l_Lean_Parser_tacticParser___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__5; +extern lean_object* l_Lean_Parser_Term_orelse___elambda__1___closed__1; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__3; +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__5; +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; extern lean_object* l_Lean_Parser_Level_paren___closed__1; -lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14; +lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__10; uint8_t lean_string_dec_eq(lean_object*, lean_object*); lean_object* _init_l_Lean_Parser_regBuiltinTacticParserAttr___closed__1() { _start: @@ -114,11 +255,12 @@ return x_3; lean_object* l_Lean_Parser_regBuiltinTacticParserAttr(lean_object* x_1) { _start: { -lean_object* x_2; lean_object* x_3; lean_object* x_4; +lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; x_2 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__2; x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; -x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); -return x_4; +x_4 = 0; +x_5 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_regTacticParserAttribute___closed__1() { @@ -168,6 +310,2140 @@ x_4 = l_Lean_Parser_tacticParser(x_3, x_2); return x_4; } } +lean_object* l_Lean_Parser_tacticSeq___elambda__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +uint8_t x_7; lean_object* x_8; +x_7 = 1; +x_8 = l_Lean_Parser_sepBy1Fn(x_1, x_7, x_3, x_2, x_4, x_5, x_6); +return x_8; +} +} +lean_object* _init_l_Lean_Parser_tacticSeq___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Term_have___elambda__1___closed__7; +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___rarg___boxed), 4, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_tacticSeq___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_tacticSeq(uint8_t x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_2 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +x_5 = lean_ctor_get(x_4, 0); +lean_inc(x_5); +lean_dec(x_4); +x_6 = l_Lean_Parser_Term_have___closed__3; +x_7 = l_Lean_Parser_sepBy1Info(x_5, x_6); +x_8 = l_Lean_Parser_tacticSeq___closed__1; +x_9 = l_Lean_Parser_tacticSeq___closed__2; +x_10 = lean_box(x_1); +x_11 = lean_alloc_closure((void*)(l_Lean_Parser_tacticSeq___elambda__1___boxed), 6, 3); +lean_closure_set(x_11, 0, x_10); +lean_closure_set(x_11, 1, x_8); +lean_closure_set(x_11, 2, x_9); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_7); +lean_ctor_set(x_12, 1, x_11); +return x_12; +} +} +lean_object* l_Lean_Parser_tacticSeq___elambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +uint8_t x_7; lean_object* x_8; +x_7 = lean_unbox(x_1); +lean_dec(x_1); +x_8 = l_Lean_Parser_tacticSeq___elambda__1(x_7, x_2, x_3, x_4, x_5, x_6); +return x_8; +} +} +lean_object* l_Lean_Parser_tacticSeq___boxed(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; +x_2 = lean_unbox(x_1); +lean_dec(x_1); +x_3 = l_Lean_Parser_tacticSeq(x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__1(lean_object* x_1) { +_start: +{ +lean_inc(x_1); +return x_1; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__2(lean_object* x_1) { +_start: +{ +lean_inc(x_1); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_tacticSymbolInfo___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__2___boxed), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_tacticSymbolInfo___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__1___boxed), 1, 0); +return x_1; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_2 = lean_box(0); +x_3 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +lean_ctor_set(x_3, 2, x_2); +x_4 = lean_box(0); +x_5 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_5, 0, x_3); +lean_ctor_set(x_5, 1, x_4); +x_6 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_6, 0, x_5); +x_7 = l_Lean_Parser_Tactic_tacticSymbolInfo___closed__1; +x_8 = l_Lean_Parser_Tactic_tacticSymbolInfo___closed__2; +x_9 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_9, 0, x_7); +lean_ctor_set(x_9, 1, x_8); +lean_ctor_set(x_9, 2, x_6); +return x_9; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__1___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__1(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__2___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_Tactic_tacticSymbolInfo___elambda__2(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbol(uint8_t x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_3 = l_String_trim(x_2); +lean_inc(x_3); +x_4 = l_Lean_Parser_Tactic_tacticSymbolInfo(x_3); +x_5 = lean_alloc_closure((void*)(l_Lean_Parser_nonReservedSymbol___lambda__1___boxed), 4, 1); +lean_closure_set(x_5, 0, x_3); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_4); +lean_ctor_set(x_6, 1, x_5); +return x_6; +} +} +lean_object* l_Lean_Parser_Tactic_tacticSymbol___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = lean_unbox(x_1); +lean_dec(x_1); +x_4 = l_Lean_Parser_Tactic_tacticSymbol(x_3, x_2); +lean_dec(x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("Tactic"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_declareLeadingBuiltinParser___closed__1; +x_2 = l_Lean_Parser_Tactic_intro___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("intro"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_intro___elambda__1___closed__3; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__6() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = l_Lean_Parser_Tactic_intro___elambda__1___closed__3; +x_3 = l_Lean_Parser_Tactic_intro___elambda__1___closed__5; +x_4 = 1; +x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("intro "); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__7; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Tactic_intro___elambda__1___closed__8; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__9; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_intro___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_4 = l_Lean_Parser_Level_ident___elambda__1___closed__4; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = l_Lean_Parser_Tactic_intro___elambda__1___closed__6; +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +x_8 = lean_ctor_get(x_3, 0); +lean_inc(x_8); +x_9 = lean_array_get_size(x_8); +lean_dec(x_8); +x_10 = lean_ctor_get(x_3, 1); +lean_inc(x_10); +lean_inc(x_2); +lean_inc(x_1); +x_11 = lean_apply_3(x_7, x_1, x_2, x_3); +x_12 = lean_ctor_get(x_11, 3); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +x_15 = lean_nat_dec_eq(x_14, x_10); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_inc(x_10); +x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10); +lean_dec(x_9); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_array_get_size(x_17); +lean_dec(x_17); +x_19 = l_Lean_Parser_Tactic_intro___elambda__1___closed__8; +x_20 = l_Lean_Parser_Tactic_intro___elambda__1___closed__10; +lean_inc(x_2); +x_21 = l_Lean_Parser_nonReservedSymbolFnAux(x_19, x_20, x_2, x_16); +x_22 = lean_ctor_get(x_21, 3); +lean_inc(x_22); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_23 = lean_ctor_get(x_21, 0); +lean_inc(x_23); +x_24 = lean_array_get_size(x_23); +lean_dec(x_23); +x_25 = lean_ctor_get(x_21, 1); +lean_inc(x_25); +x_26 = lean_apply_3(x_5, x_1, x_2, x_21); +x_27 = lean_ctor_get(x_26, 3); +lean_inc(x_27); +if (lean_obj_tag(x_27) == 0) +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +lean_dec(x_25); +x_28 = l_Lean_nullKind; +x_29 = l_Lean_Parser_ParserState_mkNode(x_26, x_28, x_24); +x_30 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_31 = l_Lean_Parser_ParserState_mkNode(x_29, x_30, x_18); +x_32 = l_Lean_Parser_mergeOrElseErrors(x_31, x_13, x_10); +lean_dec(x_10); +return x_32; +} +else +{ +lean_object* x_33; uint8_t x_34; +lean_dec(x_27); +x_33 = lean_ctor_get(x_26, 1); +lean_inc(x_33); +x_34 = lean_nat_dec_eq(x_33, x_25); +lean_dec(x_33); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_25); +x_35 = l_Lean_nullKind; +x_36 = l_Lean_Parser_ParserState_mkNode(x_26, x_35, x_24); +x_37 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_18); +x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_13, x_10); +lean_dec(x_10); +return x_39; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_40 = l_Lean_Parser_ParserState_restore(x_26, x_24, x_25); +x_41 = l_Lean_nullKind; +x_42 = l_Lean_Parser_ParserState_mkNode(x_40, x_41, x_24); +x_43 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_44 = l_Lean_Parser_ParserState_mkNode(x_42, x_43, x_18); +x_45 = l_Lean_Parser_mergeOrElseErrors(x_44, x_13, x_10); +lean_dec(x_10); +return x_45; +} +} +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +lean_dec(x_22); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +x_46 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_47 = l_Lean_Parser_ParserState_mkNode(x_21, x_46, x_18); +x_48 = l_Lean_Parser_mergeOrElseErrors(x_47, x_13, x_10); +lean_dec(x_10); +return x_48; +} +} +} +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__8; +x_2 = l_Lean_Parser_Tactic_tacticSymbolInfo(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Level_ident___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_optionaInfo(x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___closed__1; +x_2 = l_Lean_Parser_Tactic_intro___closed__2; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_2 = l_Lean_Parser_Tactic_intro___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__6; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_intro___closed__4; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_intro___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___closed__5; +x_2 = l_Lean_Parser_Tactic_intro___closed__6; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intro() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_intro___closed__7; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_intro(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_intro___elambda__1___closed__4; +x_5 = l_Lean_Parser_Tactic_intro; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("intros"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_intros___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_intros___elambda__1___closed__2; +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__4() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = l_Lean_Parser_Tactic_intros___elambda__1___closed__1; +x_3 = l_Lean_Parser_Tactic_intros___elambda__1___closed__3; +x_4 = 1; +x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("intros "); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_intros___elambda__1___closed__5; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Tactic_intros___elambda__1___closed__6; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intros___elambda__1___closed__7; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_intros___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_4 = l_Lean_Parser_Level_ident___elambda__1___closed__4; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = l_Lean_Parser_Tactic_intros___elambda__1___closed__4; +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +x_8 = lean_ctor_get(x_3, 0); +lean_inc(x_8); +x_9 = lean_array_get_size(x_8); +lean_dec(x_8); +x_10 = lean_ctor_get(x_3, 1); +lean_inc(x_10); +lean_inc(x_2); +lean_inc(x_1); +x_11 = lean_apply_3(x_7, x_1, x_2, x_3); +x_12 = lean_ctor_get(x_11, 3); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +x_15 = lean_nat_dec_eq(x_14, x_10); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_inc(x_10); +x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10); +lean_dec(x_9); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_array_get_size(x_17); +lean_dec(x_17); +x_19 = l_Lean_Parser_Tactic_intros___elambda__1___closed__6; +x_20 = l_Lean_Parser_Tactic_intros___elambda__1___closed__8; +lean_inc(x_2); +x_21 = l_Lean_Parser_nonReservedSymbolFnAux(x_19, x_20, x_2, x_16); +x_22 = lean_ctor_get(x_21, 3); +lean_inc(x_22); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; lean_object* x_24; uint8_t x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_23 = lean_ctor_get(x_21, 0); +lean_inc(x_23); +x_24 = lean_array_get_size(x_23); +lean_dec(x_23); +x_25 = 0; +x_26 = l_Lean_Parser_manyAux___main(x_25, x_5, x_1, x_2, x_21); +x_27 = l_Lean_nullKind; +x_28 = l_Lean_Parser_ParserState_mkNode(x_26, x_27, x_24); +x_29 = l_Lean_Parser_Tactic_intros___elambda__1___closed__2; +x_30 = l_Lean_Parser_ParserState_mkNode(x_28, x_29, x_18); +x_31 = l_Lean_Parser_mergeOrElseErrors(x_30, x_13, x_10); +lean_dec(x_10); +return x_31; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_22); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +x_32 = l_Lean_Parser_Tactic_intros___elambda__1___closed__2; +x_33 = l_Lean_Parser_ParserState_mkNode(x_21, x_32, x_18); +x_34 = l_Lean_Parser_mergeOrElseErrors(x_33, x_13, x_10); +lean_dec(x_10); +return x_34; +} +} +} +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_intros___elambda__1___closed__6; +x_2 = l_Lean_Parser_Tactic_tacticSymbolInfo(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Level_ident___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_noFirstTokenInfo(x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intros___closed__1; +x_2 = l_Lean_Parser_Tactic_intros___closed__2; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intros___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_intros___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_intros___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_intros___closed__4; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_intros___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intros___closed__5; +x_2 = l_Lean_Parser_Tactic_intros___closed__6; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_intros() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_intros___closed__7; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_intros(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_intros___elambda__1___closed__2; +x_5 = l_Lean_Parser_Tactic_intros; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("assumption"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__2; +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__4() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__1; +x_3 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__3; +x_4 = 1; +x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__1; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__5; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__6; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_assumption___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__4; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_3, 0); +lean_inc(x_6); +x_7 = lean_array_get_size(x_6); +lean_dec(x_6); +x_8 = lean_ctor_get(x_3, 1); +lean_inc(x_8); +lean_inc(x_2); +x_9 = lean_apply_3(x_5, x_1, x_2, x_3); +x_10 = lean_ctor_get(x_9, 3); +lean_inc(x_10); +if (lean_obj_tag(x_10) == 0) +{ +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +return x_9; +} +else +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_ctor_get(x_9, 1); +lean_inc(x_12); +x_13 = lean_nat_dec_eq(x_12, x_8); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_dec(x_11); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +return x_9; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_inc(x_8); +x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8); +lean_dec(x_7); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__5; +x_18 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__7; +x_19 = l_Lean_Parser_nonReservedSymbolFnAux(x_17, x_18, x_2, x_14); +x_20 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__2; +x_21 = l_Lean_Parser_ParserState_mkNode(x_19, x_20, x_16); +x_22 = l_Lean_Parser_mergeOrElseErrors(x_21, x_11, x_8); +lean_dec(x_8); +return x_22; +} +} +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__5; +x_2 = l_Lean_Parser_Tactic_tacticSymbolInfo(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_assumption___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_assumption___closed__2; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_assumption___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_assumption___closed__3; +x_2 = l_Lean_Parser_Tactic_assumption___closed__4; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_assumption() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_assumption___closed__5; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_assumption(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_assumption___elambda__1___closed__2; +x_5 = l_Lean_Parser_Tactic_assumption; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("apply"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_apply___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_apply___elambda__1___closed__2; +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__4() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = l_Lean_Parser_Tactic_apply___elambda__1___closed__1; +x_3 = l_Lean_Parser_Tactic_apply___elambda__1___closed__3; +x_4 = 1; +x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("apply "); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_apply___elambda__1___closed__5; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Tactic_apply___elambda__1___closed__6; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_apply___elambda__1___closed__7; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_apply___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = l_Lean_Parser_Tactic_apply___elambda__1___closed__4; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_3, 0); +lean_inc(x_6); +x_7 = lean_array_get_size(x_6); +lean_dec(x_6); +x_8 = lean_ctor_get(x_3, 1); +lean_inc(x_8); +lean_inc(x_2); +x_9 = lean_apply_3(x_5, x_1, x_2, x_3); +x_10 = lean_ctor_get(x_9, 3); +lean_inc(x_10); +if (lean_obj_tag(x_10) == 0) +{ +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +return x_9; +} +else +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_ctor_get(x_9, 1); +lean_inc(x_12); +x_13 = lean_nat_dec_eq(x_12, x_8); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_dec(x_11); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +return x_9; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_inc(x_8); +x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8); +lean_dec(x_7); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = l_Lean_Parser_Tactic_apply___elambda__1___closed__6; +x_18 = l_Lean_Parser_Tactic_apply___elambda__1___closed__8; +lean_inc(x_2); +x_19 = l_Lean_Parser_nonReservedSymbolFnAux(x_17, x_18, x_2, x_14); +x_20 = lean_ctor_get(x_19, 3); +lean_inc(x_20); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_21 = l_Lean_Parser_regBuiltinTermParserAttr___closed__4; +x_22 = lean_unsigned_to_nat(0u); +x_23 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_19); +x_24 = l_Lean_Parser_Tactic_apply___elambda__1___closed__2; +x_25 = l_Lean_Parser_ParserState_mkNode(x_23, x_24, x_16); +x_26 = l_Lean_Parser_mergeOrElseErrors(x_25, x_11, x_8); +lean_dec(x_8); +return x_26; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_20); +lean_dec(x_2); +x_27 = l_Lean_Parser_Tactic_apply___elambda__1___closed__2; +x_28 = l_Lean_Parser_ParserState_mkNode(x_19, x_27, x_16); +x_29 = l_Lean_Parser_mergeOrElseErrors(x_28, x_11, x_8); +lean_dec(x_8); +return x_29; +} +} +} +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_apply___elambda__1___closed__6; +x_2 = l_Lean_Parser_Tactic_tacticSymbolInfo(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_typeAscription___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_apply___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_apply___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_apply___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_apply___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_apply___closed__3; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_apply___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_apply___closed__4; +x_2 = l_Lean_Parser_Tactic_apply___closed__5; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_apply() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_apply___closed__6; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_apply(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_apply___elambda__1___closed__2; +x_5 = l_Lean_Parser_Tactic_apply; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("nestedTacticBlock"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1; +x_3 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3; +x_4 = 1; +x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("begin "); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__5; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7() { +_start: +{ +uint8_t x_1; lean_object* x_2; +x_1 = 0; +x_2 = l_Lean_Parser_tacticSeq(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__8() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("end"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__8; +x_2 = l_String_trim(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__10; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set(x_3, 1, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Char_HasRepr___closed__1; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13; +x_2 = l_Char_HasRepr___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set(x_3, 1, x_1); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_4 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4; +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +x_8 = lean_ctor_get(x_3, 0); +lean_inc(x_8); +x_9 = lean_array_get_size(x_8); +lean_dec(x_8); +x_10 = lean_ctor_get(x_3, 1); +lean_inc(x_10); +lean_inc(x_2); +lean_inc(x_1); +x_11 = lean_apply_3(x_7, x_1, x_2, x_3); +x_12 = lean_ctor_get(x_11, 3); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +x_15 = lean_nat_dec_eq(x_14, x_10); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_56; lean_object* x_57; +lean_inc(x_10); +x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10); +lean_dec(x_9); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_array_get_size(x_17); +lean_dec(x_17); +lean_inc(x_2); +x_56 = l_Lean_Parser_tokenFn(x_2, x_16); +x_57 = lean_ctor_get(x_56, 3); +lean_inc(x_57); +if (lean_obj_tag(x_57) == 0) +{ +lean_object* x_58; lean_object* x_59; +x_58 = lean_ctor_get(x_56, 0); +lean_inc(x_58); +x_59 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_58); +lean_dec(x_58); +if (lean_obj_tag(x_59) == 2) +{ +lean_object* x_60; lean_object* x_61; uint8_t x_62; +x_60 = lean_ctor_get(x_59, 1); +lean_inc(x_60); +lean_dec(x_59); +x_61 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6; +x_62 = lean_string_dec_eq(x_60, x_61); +lean_dec(x_60); +if (x_62 == 0) +{ +lean_object* x_63; lean_object* x_64; +x_63 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_inc(x_10); +x_64 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_63, x_10); +x_19 = x_64; +goto block_55; +} +else +{ +x_19 = x_56; +goto block_55; +} +} +else +{ +lean_object* x_65; lean_object* x_66; +lean_dec(x_59); +x_65 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_inc(x_10); +x_66 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_65, x_10); +x_19 = x_66; +goto block_55; +} +} +else +{ +lean_object* x_67; lean_object* x_68; +lean_dec(x_57); +x_67 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_inc(x_10); +x_68 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_67, x_10); +x_19 = x_68; +goto block_55; +} +block_55: +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_19, 3); +lean_inc(x_20); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; +lean_inc(x_2); +x_21 = lean_apply_3(x_5, x_1, x_2, x_19); +x_22 = lean_ctor_get(x_21, 3); +lean_inc(x_22); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +x_24 = l_Lean_Parser_tokenFn(x_2, x_21); +x_25 = lean_ctor_get(x_24, 3); +lean_inc(x_25); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_24, 0); +lean_inc(x_26); +x_27 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_26); +lean_dec(x_26); +if (lean_obj_tag(x_27) == 2) +{ +lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9; +x_30 = lean_string_dec_eq(x_28, x_29); +lean_dec(x_28); +if (x_30 == 0) +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_31 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; +x_32 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_31, x_23); +x_33 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_34 = l_Lean_Parser_ParserState_mkNode(x_32, x_33, x_18); +x_35 = l_Lean_Parser_mergeOrElseErrors(x_34, x_13, x_10); +lean_dec(x_10); +return x_35; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_23); +x_36 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_37 = l_Lean_Parser_ParserState_mkNode(x_24, x_36, x_18); +x_38 = l_Lean_Parser_mergeOrElseErrors(x_37, x_13, x_10); +lean_dec(x_10); +return x_38; +} +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_27); +x_39 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; +x_40 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_39, x_23); +x_41 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_42 = l_Lean_Parser_ParserState_mkNode(x_40, x_41, x_18); +x_43 = l_Lean_Parser_mergeOrElseErrors(x_42, x_13, x_10); +lean_dec(x_10); +return x_43; +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; +lean_dec(x_25); +x_44 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; +x_45 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_44, x_23); +x_46 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_47 = l_Lean_Parser_ParserState_mkNode(x_45, x_46, x_18); +x_48 = l_Lean_Parser_mergeOrElseErrors(x_47, x_13, x_10); +lean_dec(x_10); +return x_48; +} +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +lean_dec(x_22); +lean_dec(x_2); +x_49 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_50 = l_Lean_Parser_ParserState_mkNode(x_21, x_49, x_18); +x_51 = l_Lean_Parser_mergeOrElseErrors(x_50, x_13, x_10); +lean_dec(x_10); +return x_51; +} +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_20); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +x_52 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_53 = l_Lean_Parser_ParserState_mkNode(x_19, x_52, x_18); +x_54 = l_Lean_Parser_mergeOrElseErrors(x_53, x_13, x_10); +lean_dec(x_10); +return x_54; +} +} +} +} +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6; +x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9; +x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__1; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__3; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__5; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__6; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__7; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlock() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__8; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlock(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2; +x_5 = l_Lean_Parser_Tactic_nestedTacticBlock; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("nestedTacticBlockCurly"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4() { +_start: +{ +uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1; +x_3 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3; +x_4 = 1; +x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_4 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4; +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +x_8 = lean_ctor_get(x_3, 0); +lean_inc(x_8); +x_9 = lean_array_get_size(x_8); +lean_dec(x_8); +x_10 = lean_ctor_get(x_3, 1); +lean_inc(x_10); +lean_inc(x_2); +lean_inc(x_1); +x_11 = lean_apply_3(x_7, x_1, x_2, x_3); +x_12 = lean_ctor_get(x_11, 3); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +x_15 = lean_nat_dec_eq(x_14, x_10); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_56; lean_object* x_57; +lean_inc(x_10); +x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10); +lean_dec(x_9); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_array_get_size(x_17); +lean_dec(x_17); +lean_inc(x_2); +x_56 = l_Lean_Parser_tokenFn(x_2, x_16); +x_57 = lean_ctor_get(x_56, 3); +lean_inc(x_57); +if (lean_obj_tag(x_57) == 0) +{ +lean_object* x_58; lean_object* x_59; +x_58 = lean_ctor_get(x_56, 0); +lean_inc(x_58); +x_59 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_58); +lean_dec(x_58); +if (lean_obj_tag(x_59) == 2) +{ +lean_object* x_60; lean_object* x_61; uint8_t x_62; +x_60 = lean_ctor_get(x_59, 1); +lean_inc(x_60); +lean_dec(x_59); +x_61 = l_Lean_Parser_Term_structInst___elambda__1___closed__5; +x_62 = lean_string_dec_eq(x_60, x_61); +lean_dec(x_60); +if (x_62 == 0) +{ +lean_object* x_63; lean_object* x_64; +x_63 = l_Lean_Parser_Term_structInst___elambda__1___closed__13; +lean_inc(x_10); +x_64 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_63, x_10); +x_19 = x_64; +goto block_55; +} +else +{ +x_19 = x_56; +goto block_55; +} +} +else +{ +lean_object* x_65; lean_object* x_66; +lean_dec(x_59); +x_65 = l_Lean_Parser_Term_structInst___elambda__1___closed__13; +lean_inc(x_10); +x_66 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_65, x_10); +x_19 = x_66; +goto block_55; +} +} +else +{ +lean_object* x_67; lean_object* x_68; +lean_dec(x_57); +x_67 = l_Lean_Parser_Term_structInst___elambda__1___closed__13; +lean_inc(x_10); +x_68 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_67, x_10); +x_19 = x_68; +goto block_55; +} +block_55: +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_19, 3); +lean_inc(x_20); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; +lean_inc(x_2); +x_21 = lean_apply_3(x_5, x_1, x_2, x_19); +x_22 = lean_ctor_get(x_21, 3); +lean_inc(x_22); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +x_24 = l_Lean_Parser_tokenFn(x_2, x_21); +x_25 = lean_ctor_get(x_24, 3); +lean_inc(x_25); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_24, 0); +lean_inc(x_26); +x_27 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_26); +lean_dec(x_26); +if (lean_obj_tag(x_27) == 2) +{ +lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__9; +x_30 = lean_string_dec_eq(x_28, x_29); +lean_dec(x_28); +if (x_30 == 0) +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_31 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__13; +x_32 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_31, x_23); +x_33 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_34 = l_Lean_Parser_ParserState_mkNode(x_32, x_33, x_18); +x_35 = l_Lean_Parser_mergeOrElseErrors(x_34, x_13, x_10); +lean_dec(x_10); +return x_35; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_23); +x_36 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_37 = l_Lean_Parser_ParserState_mkNode(x_24, x_36, x_18); +x_38 = l_Lean_Parser_mergeOrElseErrors(x_37, x_13, x_10); +lean_dec(x_10); +return x_38; +} +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_27); +x_39 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__13; +x_40 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_39, x_23); +x_41 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_42 = l_Lean_Parser_ParserState_mkNode(x_40, x_41, x_18); +x_43 = l_Lean_Parser_mergeOrElseErrors(x_42, x_13, x_10); +lean_dec(x_10); +return x_43; +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; +lean_dec(x_25); +x_44 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__13; +x_45 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_44, x_23); +x_46 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_47 = l_Lean_Parser_ParserState_mkNode(x_45, x_46, x_18); +x_48 = l_Lean_Parser_mergeOrElseErrors(x_47, x_13, x_10); +lean_dec(x_10); +return x_48; +} +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +lean_dec(x_22); +lean_dec(x_2); +x_49 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_50 = l_Lean_Parser_ParserState_mkNode(x_21, x_49, x_18); +x_51 = l_Lean_Parser_mergeOrElseErrors(x_50, x_13, x_10); +lean_dec(x_10); +return x_51; +} +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_20); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +x_52 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_53 = l_Lean_Parser_ParserState_mkNode(x_19, x_52, x_18); +x_54 = l_Lean_Parser_mergeOrElseErrors(x_53, x_13, x_10); +lean_dec(x_10); +return x_54; +} +} +} +} +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_explicitUniv___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_subtype___closed__1; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__1; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__3; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__6; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlockCurly(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 0; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2; +x_5 = l_Lean_Parser_Tactic_nestedTacticBlockCurly; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_Tactic_orelse___elambda__1___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_intro___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_orelse___elambda__1___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Tactic_orelse___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = l_Lean_Parser_Term_orelse___elambda__1___closed__4; +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_3, 0); +lean_inc(x_6); +x_7 = lean_array_get_size(x_6); +lean_dec(x_6); +x_8 = lean_apply_3(x_5, x_1, x_2, x_3); +x_9 = l_Lean_Parser_Tactic_orelse___elambda__1___closed__1; +x_10 = l_Lean_Parser_ParserState_mkNode(x_8, x_9, x_7); +return x_10; +} +} +lean_object* _init_l_Lean_Parser_Tactic_orelse___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_orelse___elambda__1___closed__4; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Tactic_orelse___elambda__1___closed__1; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Tactic_orelse___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_orelse___elambda__1), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_Tactic_orelse___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Tactic_orelse___closed__1; +x_2 = l_Lean_Parser_Tactic_orelse___closed__2; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_orelse() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Tactic_orelse___closed__3; +return x_1; +} +} +lean_object* l___regBuiltinParser_Lean_Parser_Tactic_orelse(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_2 = 1; +x_3 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; +x_4 = l_Lean_Parser_Tactic_orelse___elambda__1___closed__1; +x_5 = l_Lean_Parser_Tactic_orelse; +x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); +return x_6; +} +} lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__1() { _start: { @@ -208,158 +2484,68 @@ x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4); return x_5; } } -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("begin "); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__5; -x_2 = l_String_trim(x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("end"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7; -x_2 = l_String_trim(x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__9() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Char_HasRepr___closed__1; -x_2 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8; -x_3 = lean_string_append(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__10() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__9; -x_2 = l_Char_HasRepr___closed__1; -x_3 = lean_string_append(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__10; -x_3 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_3, 0, x_2); -lean_ctor_set(x_3, 1, x_1); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__12() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Char_HasRepr___closed__1; -x_2 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6; -x_3 = lean_string_append(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__13() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__12; -x_2 = l_Char_HasRepr___closed__1; -x_3 = lean_string_append(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__13; -x_3 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_3, 0, x_2); -lean_ctor_set(x_3, 1, x_1); -return x_3; -} -} lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_4 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4; +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_4 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7; x_5 = lean_ctor_get(x_4, 1); lean_inc(x_5); -x_6 = lean_ctor_get(x_3, 0); -lean_inc(x_6); -x_7 = lean_array_get_size(x_6); -lean_dec(x_6); -x_8 = lean_ctor_get(x_3, 1); +x_6 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4; +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +x_8 = lean_ctor_get(x_3, 0); lean_inc(x_8); -lean_inc(x_2); -x_9 = lean_apply_3(x_5, x_1, x_2, x_3); -x_10 = lean_ctor_get(x_9, 3); +x_9 = lean_array_get_size(x_8); +lean_dec(x_8); +x_10 = lean_ctor_get(x_3, 1); lean_inc(x_10); -if (lean_obj_tag(x_10) == 0) -{ -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_2); -return x_9; -} -else -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_ctor_get(x_9, 1); -lean_inc(x_12); -x_13 = lean_nat_dec_eq(x_12, x_8); -lean_dec(x_12); -if (x_13 == 0) -{ -lean_dec(x_11); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_2); -return x_9; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_56; lean_object* x_57; -lean_inc(x_8); -x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8); -lean_dec(x_7); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_array_get_size(x_15); -lean_dec(x_15); lean_inc(x_2); -x_56 = l_Lean_Parser_tokenFn(x_2, x_14); +lean_inc(x_1); +x_11 = lean_apply_3(x_7, x_1, x_2, x_3); +x_12 = lean_ctor_get(x_11, 3); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +x_15 = lean_nat_dec_eq(x_14, x_10); +lean_dec(x_14); +if (x_15 == 0) +{ +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_56; lean_object* x_57; +lean_inc(x_10); +x_16 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10); +lean_dec(x_9); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_array_get_size(x_17); +lean_dec(x_17); +lean_inc(x_2); +x_56 = l_Lean_Parser_tokenFn(x_2, x_16); x_57 = lean_ctor_get(x_56, 3); lean_inc(x_57); if (lean_obj_tag(x_57) == 0) @@ -375,21 +2561,21 @@ lean_object* x_60; lean_object* x_61; uint8_t x_62; x_60 = lean_ctor_get(x_59, 1); lean_inc(x_60); lean_dec(x_59); -x_61 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6; +x_61 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6; x_62 = lean_string_dec_eq(x_60, x_61); lean_dec(x_60); if (x_62 == 0) { lean_object* x_63; lean_object* x_64; -x_63 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14; -lean_inc(x_8); -x_64 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_63, x_8); -x_17 = x_64; +x_63 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_inc(x_10); +x_64 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_63, x_10); +x_19 = x_64; goto block_55; } else { -x_17 = x_56; +x_19 = x_56; goto block_55; } } @@ -397,10 +2583,10 @@ else { lean_object* x_65; lean_object* x_66; lean_dec(x_59); -x_65 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14; -lean_inc(x_8); -x_66 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_65, x_8); -x_17 = x_66; +x_65 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_inc(x_10); +x_66 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_65, x_10); +x_19 = x_66; goto block_55; } } @@ -408,24 +2594,22 @@ else { lean_object* x_67; lean_object* x_68; lean_dec(x_57); -x_67 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14; -lean_inc(x_8); -x_68 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_67, x_8); -x_17 = x_68; +x_67 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15; +lean_inc(x_10); +x_68 = l_Lean_Parser_ParserState_mkErrorsAt(x_56, x_67, x_10); +x_19 = x_68; goto block_55; } block_55: { -lean_object* x_18; -x_18 = lean_ctor_get(x_17, 3); -lean_inc(x_18); -if (lean_obj_tag(x_18) == 0) +lean_object* x_20; +x_20 = lean_ctor_get(x_19, 3); +lean_inc(x_20); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_19 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; -x_20 = lean_unsigned_to_nat(0u); +lean_object* x_21; lean_object* x_22; lean_inc(x_2); -x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); +x_21 = lean_apply_3(x_5, x_1, x_2, x_19); x_22 = lean_ctor_get(x_21, 3); lean_inc(x_22); if (lean_obj_tag(x_22) == 0) @@ -449,18 +2633,18 @@ lean_object* x_28; lean_object* x_29; uint8_t x_30; x_28 = lean_ctor_get(x_27, 1); lean_inc(x_28); lean_dec(x_27); -x_29 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8; +x_29 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9; x_30 = lean_string_dec_eq(x_28, x_29); lean_dec(x_28); if (x_30 == 0) { lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_31 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11; +x_31 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; x_32 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_31, x_23); x_33 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_34 = l_Lean_Parser_ParserState_mkNode(x_32, x_33, x_16); -x_35 = l_Lean_Parser_mergeOrElseErrors(x_34, x_11, x_8); -lean_dec(x_8); +x_34 = l_Lean_Parser_ParserState_mkNode(x_32, x_33, x_18); +x_35 = l_Lean_Parser_mergeOrElseErrors(x_34, x_13, x_10); +lean_dec(x_10); return x_35; } else @@ -468,9 +2652,9 @@ else lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_dec(x_23); x_36 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_37 = l_Lean_Parser_ParserState_mkNode(x_24, x_36, x_16); -x_38 = l_Lean_Parser_mergeOrElseErrors(x_37, x_11, x_8); -lean_dec(x_8); +x_37 = l_Lean_Parser_ParserState_mkNode(x_24, x_36, x_18); +x_38 = l_Lean_Parser_mergeOrElseErrors(x_37, x_13, x_10); +lean_dec(x_10); return x_38; } } @@ -478,12 +2662,12 @@ else { lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_dec(x_27); -x_39 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11; +x_39 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; x_40 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_39, x_23); x_41 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_42 = l_Lean_Parser_ParserState_mkNode(x_40, x_41, x_16); -x_43 = l_Lean_Parser_mergeOrElseErrors(x_42, x_11, x_8); -lean_dec(x_8); +x_42 = l_Lean_Parser_ParserState_mkNode(x_40, x_41, x_18); +x_43 = l_Lean_Parser_mergeOrElseErrors(x_42, x_13, x_10); +lean_dec(x_10); return x_43; } } @@ -491,12 +2675,12 @@ else { lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_dec(x_25); -x_44 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11; +x_44 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12; x_45 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_44, x_23); x_46 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_47 = l_Lean_Parser_ParserState_mkNode(x_45, x_46, x_16); -x_48 = l_Lean_Parser_mergeOrElseErrors(x_47, x_11, x_8); -lean_dec(x_8); +x_47 = l_Lean_Parser_ParserState_mkNode(x_45, x_46, x_18); +x_48 = l_Lean_Parser_mergeOrElseErrors(x_47, x_13, x_10); +lean_dec(x_10); return x_48; } } @@ -506,21 +2690,23 @@ lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_dec(x_22); lean_dec(x_2); x_49 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_50 = l_Lean_Parser_ParserState_mkNode(x_21, x_49, x_16); -x_51 = l_Lean_Parser_mergeOrElseErrors(x_50, x_11, x_8); -lean_dec(x_8); +x_50 = l_Lean_Parser_ParserState_mkNode(x_21, x_49, x_18); +x_51 = l_Lean_Parser_mergeOrElseErrors(x_50, x_13, x_10); +lean_dec(x_10); return x_51; } } else { lean_object* x_52; lean_object* x_53; lean_object* x_54; -lean_dec(x_18); +lean_dec(x_20); +lean_dec(x_5); lean_dec(x_2); +lean_dec(x_1); x_52 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_53 = l_Lean_Parser_ParserState_mkNode(x_17, x_52, x_16); -x_54 = l_Lean_Parser_mergeOrElseErrors(x_53, x_11, x_8); -lean_dec(x_8); +x_53 = l_Lean_Parser_ParserState_mkNode(x_19, x_52, x_18); +x_54 = l_Lean_Parser_mergeOrElseErrors(x_53, x_13, x_10); +lean_dec(x_10); return x_54; } } @@ -532,7 +2718,7 @@ lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6; +x_1 = l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6; x_2 = l_Lean_Parser_Level_paren___closed__1; x_3 = l_Lean_Parser_symbolInfo(x_1, x_2); return x_3; @@ -541,21 +2727,20 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__2() { _start: { -uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = 0; -x_2 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4; -x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); -return x_4; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_tacticBlock___closed__1; +x_2 = l_Lean_Parser_Tactic_nestedTacticBlock___closed__3; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; } } lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8; -x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); +x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_tacticBlock___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } @@ -563,47 +2748,15 @@ lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_tacticBlock___closed__2; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -x_3 = l_Lean_Parser_Term_tacticBlock___closed__3; -x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); -return x_4; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tacticBlock___closed__1; -x_2 = l_Lean_Parser_Term_tacticBlock___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_tacticBlock___closed__5; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__7() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_tacticBlock___closed__6; +x_3 = l_Lean_Parser_Term_tacticBlock___closed__3; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__8() { +lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__5() { _start: { lean_object* x_1; @@ -611,12 +2764,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_tacticBlock___elambda__1), 3 return x_1; } } -lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__9() { +lean_object* _init_l_Lean_Parser_Term_tacticBlock___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tacticBlock___closed__7; -x_2 = l_Lean_Parser_Term_tacticBlock___closed__8; +x_1 = l_Lean_Parser_Term_tacticBlock___closed__4; +x_2 = l_Lean_Parser_Term_tacticBlock___closed__5; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -627,7 +2780,7 @@ lean_object* _init_l_Lean_Parser_Term_tacticBlock() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_tacticBlock___closed__9; +x_1 = l_Lean_Parser_Term_tacticBlock___closed__6; return x_1; } } @@ -670,6 +2823,239 @@ lean_mark_persistent(l_Lean_Parser_regTacticParserAttribute___closed__2); res = l_Lean_Parser_regTacticParserAttribute(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_Parser_tacticSeq___closed__1 = _init_l_Lean_Parser_tacticSeq___closed__1(); +lean_mark_persistent(l_Lean_Parser_tacticSeq___closed__1); +l_Lean_Parser_tacticSeq___closed__2 = _init_l_Lean_Parser_tacticSeq___closed__2(); +lean_mark_persistent(l_Lean_Parser_tacticSeq___closed__2); +l_Lean_Parser_Tactic_tacticSymbolInfo___closed__1 = _init_l_Lean_Parser_Tactic_tacticSymbolInfo___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_tacticSymbolInfo___closed__1); +l_Lean_Parser_Tactic_tacticSymbolInfo___closed__2 = _init_l_Lean_Parser_Tactic_tacticSymbolInfo___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_tacticSymbolInfo___closed__2); +l_Lean_Parser_Tactic_intro___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__1); +l_Lean_Parser_Tactic_intro___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__2); +l_Lean_Parser_Tactic_intro___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__3); +l_Lean_Parser_Tactic_intro___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__4); +l_Lean_Parser_Tactic_intro___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__5); +l_Lean_Parser_Tactic_intro___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__6); +l_Lean_Parser_Tactic_intro___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__7); +l_Lean_Parser_Tactic_intro___elambda__1___closed__8 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__8(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__8); +l_Lean_Parser_Tactic_intro___elambda__1___closed__9 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__9(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__9); +l_Lean_Parser_Tactic_intro___elambda__1___closed__10 = _init_l_Lean_Parser_Tactic_intro___elambda__1___closed__10(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___elambda__1___closed__10); +l_Lean_Parser_Tactic_intro___closed__1 = _init_l_Lean_Parser_Tactic_intro___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__1); +l_Lean_Parser_Tactic_intro___closed__2 = _init_l_Lean_Parser_Tactic_intro___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__2); +l_Lean_Parser_Tactic_intro___closed__3 = _init_l_Lean_Parser_Tactic_intro___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__3); +l_Lean_Parser_Tactic_intro___closed__4 = _init_l_Lean_Parser_Tactic_intro___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__4); +l_Lean_Parser_Tactic_intro___closed__5 = _init_l_Lean_Parser_Tactic_intro___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__5); +l_Lean_Parser_Tactic_intro___closed__6 = _init_l_Lean_Parser_Tactic_intro___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__6); +l_Lean_Parser_Tactic_intro___closed__7 = _init_l_Lean_Parser_Tactic_intro___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro___closed__7); +l_Lean_Parser_Tactic_intro = _init_l_Lean_Parser_Tactic_intro(); +lean_mark_persistent(l_Lean_Parser_Tactic_intro); +res = l___regBuiltinParser_Lean_Parser_Tactic_intro(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Parser_Tactic_intros___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__1); +l_Lean_Parser_Tactic_intros___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__2); +l_Lean_Parser_Tactic_intros___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__3); +l_Lean_Parser_Tactic_intros___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__4); +l_Lean_Parser_Tactic_intros___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__5); +l_Lean_Parser_Tactic_intros___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__6); +l_Lean_Parser_Tactic_intros___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__7); +l_Lean_Parser_Tactic_intros___elambda__1___closed__8 = _init_l_Lean_Parser_Tactic_intros___elambda__1___closed__8(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___elambda__1___closed__8); +l_Lean_Parser_Tactic_intros___closed__1 = _init_l_Lean_Parser_Tactic_intros___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__1); +l_Lean_Parser_Tactic_intros___closed__2 = _init_l_Lean_Parser_Tactic_intros___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__2); +l_Lean_Parser_Tactic_intros___closed__3 = _init_l_Lean_Parser_Tactic_intros___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__3); +l_Lean_Parser_Tactic_intros___closed__4 = _init_l_Lean_Parser_Tactic_intros___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__4); +l_Lean_Parser_Tactic_intros___closed__5 = _init_l_Lean_Parser_Tactic_intros___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__5); +l_Lean_Parser_Tactic_intros___closed__6 = _init_l_Lean_Parser_Tactic_intros___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__6); +l_Lean_Parser_Tactic_intros___closed__7 = _init_l_Lean_Parser_Tactic_intros___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros___closed__7); +l_Lean_Parser_Tactic_intros = _init_l_Lean_Parser_Tactic_intros(); +lean_mark_persistent(l_Lean_Parser_Tactic_intros); +res = l___regBuiltinParser_Lean_Parser_Tactic_intros(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__1); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__2); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__3); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__4); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__5); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__6); +l_Lean_Parser_Tactic_assumption___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__7); +l_Lean_Parser_Tactic_assumption___closed__1 = _init_l_Lean_Parser_Tactic_assumption___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___closed__1); +l_Lean_Parser_Tactic_assumption___closed__2 = _init_l_Lean_Parser_Tactic_assumption___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___closed__2); +l_Lean_Parser_Tactic_assumption___closed__3 = _init_l_Lean_Parser_Tactic_assumption___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___closed__3); +l_Lean_Parser_Tactic_assumption___closed__4 = _init_l_Lean_Parser_Tactic_assumption___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___closed__4); +l_Lean_Parser_Tactic_assumption___closed__5 = _init_l_Lean_Parser_Tactic_assumption___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption___closed__5); +l_Lean_Parser_Tactic_assumption = _init_l_Lean_Parser_Tactic_assumption(); +lean_mark_persistent(l_Lean_Parser_Tactic_assumption); +res = l___regBuiltinParser_Lean_Parser_Tactic_assumption(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Parser_Tactic_apply___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__1); +l_Lean_Parser_Tactic_apply___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__2); +l_Lean_Parser_Tactic_apply___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__3); +l_Lean_Parser_Tactic_apply___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__4); +l_Lean_Parser_Tactic_apply___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__5); +l_Lean_Parser_Tactic_apply___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__6); +l_Lean_Parser_Tactic_apply___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__7); +l_Lean_Parser_Tactic_apply___elambda__1___closed__8 = _init_l_Lean_Parser_Tactic_apply___elambda__1___closed__8(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___elambda__1___closed__8); +l_Lean_Parser_Tactic_apply___closed__1 = _init_l_Lean_Parser_Tactic_apply___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___closed__1); +l_Lean_Parser_Tactic_apply___closed__2 = _init_l_Lean_Parser_Tactic_apply___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___closed__2); +l_Lean_Parser_Tactic_apply___closed__3 = _init_l_Lean_Parser_Tactic_apply___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___closed__3); +l_Lean_Parser_Tactic_apply___closed__4 = _init_l_Lean_Parser_Tactic_apply___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___closed__4); +l_Lean_Parser_Tactic_apply___closed__5 = _init_l_Lean_Parser_Tactic_apply___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___closed__5); +l_Lean_Parser_Tactic_apply___closed__6 = _init_l_Lean_Parser_Tactic_apply___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply___closed__6); +l_Lean_Parser_Tactic_apply = _init_l_Lean_Parser_Tactic_apply(); +lean_mark_persistent(l_Lean_Parser_Tactic_apply); +res = l___regBuiltinParser_Lean_Parser_Tactic_apply(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__1); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__5); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__8 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__8(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__8); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__10 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__10(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__10); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__12); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14); +l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__15); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__1 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__1); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__2 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__2); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__3 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__3); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__4 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__4); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__5 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__5); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__6 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__6); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__7 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__7); +l_Lean_Parser_Tactic_nestedTacticBlock___closed__8 = _init_l_Lean_Parser_Tactic_nestedTacticBlock___closed__8(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock___closed__8); +l_Lean_Parser_Tactic_nestedTacticBlock = _init_l_Lean_Parser_Tactic_nestedTacticBlock(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlock); +res = l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlock(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__1); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__4); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__1 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__1); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__3 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__3); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5); +l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__6 = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__6(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__6); +l_Lean_Parser_Tactic_nestedTacticBlockCurly = _init_l_Lean_Parser_Tactic_nestedTacticBlockCurly(); +lean_mark_persistent(l_Lean_Parser_Tactic_nestedTacticBlockCurly); +res = l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlockCurly(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Parser_Tactic_orelse___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_orelse___elambda__1___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_orelse___elambda__1___closed__1); +l_Lean_Parser_Tactic_orelse___closed__1 = _init_l_Lean_Parser_Tactic_orelse___closed__1(); +lean_mark_persistent(l_Lean_Parser_Tactic_orelse___closed__1); +l_Lean_Parser_Tactic_orelse___closed__2 = _init_l_Lean_Parser_Tactic_orelse___closed__2(); +lean_mark_persistent(l_Lean_Parser_Tactic_orelse___closed__2); +l_Lean_Parser_Tactic_orelse___closed__3 = _init_l_Lean_Parser_Tactic_orelse___closed__3(); +lean_mark_persistent(l_Lean_Parser_Tactic_orelse___closed__3); +l_Lean_Parser_Tactic_orelse = _init_l_Lean_Parser_Tactic_orelse(); +lean_mark_persistent(l_Lean_Parser_Tactic_orelse); +res = l___regBuiltinParser_Lean_Parser_Tactic_orelse(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); l_Lean_Parser_Term_tacticBlock___elambda__1___closed__1 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__1); l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2(); @@ -678,26 +3064,6 @@ l_Lean_Parser_Term_tacticBlock___elambda__1___closed__3 = _init_l_Lean_Parser_Te lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__3); l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4(); lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__4); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__5 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__5); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__6); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__8); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__9 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__9(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__9); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__10 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__10(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__10); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__11); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__12 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__12(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__12); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__13 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__13(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__13); -l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14 = _init_l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14); l_Lean_Parser_Term_tacticBlock___closed__1 = _init_l_Lean_Parser_Term_tacticBlock___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___closed__1); l_Lean_Parser_Term_tacticBlock___closed__2 = _init_l_Lean_Parser_Term_tacticBlock___closed__2(); @@ -710,12 +3076,6 @@ l_Lean_Parser_Term_tacticBlock___closed__5 = _init_l_Lean_Parser_Term_tacticBloc lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___closed__5); l_Lean_Parser_Term_tacticBlock___closed__6 = _init_l_Lean_Parser_Term_tacticBlock___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___closed__6); -l_Lean_Parser_Term_tacticBlock___closed__7 = _init_l_Lean_Parser_Term_tacticBlock___closed__7(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___closed__7); -l_Lean_Parser_Term_tacticBlock___closed__8 = _init_l_Lean_Parser_Term_tacticBlock___closed__8(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___closed__8); -l_Lean_Parser_Term_tacticBlock___closed__9 = _init_l_Lean_Parser_Term_tacticBlock___closed__9(); -lean_mark_persistent(l_Lean_Parser_Term_tacticBlock___closed__9); l_Lean_Parser_Term_tacticBlock = _init_l_Lean_Parser_Term_tacticBlock(); lean_mark_persistent(l_Lean_Parser_Term_tacticBlock); res = l___regBuiltinParser_Lean_Parser_Term_tacticBlock(lean_io_mk_world()); diff --git a/stage0/stdlib/Init/Lean/Parser/Term.c b/stage0/stdlib/Init/Lean/Parser/Term.c index b6c8bf426e..ef9ff05183 100644 --- a/stage0/stdlib/Init/Lean/Parser/Term.c +++ b/stage0/stdlib/Init/Lean/Parser/Term.c @@ -35,7 +35,6 @@ lean_object* l_Lean_Parser_Term_letIdDecl; lean_object* l_Lean_Parser_Term_heq___elambda__1___closed__4; extern lean_object* l_Lean_Parser_charLit___closed__1; lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__5; -lean_object* l_Lean_Parser_Term_infixL___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Term_iff(lean_object*); lean_object* l_Lean_mkAppStx(lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_letEqns___elambda__1___spec__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); @@ -46,6 +45,7 @@ lean_object* l_Lean_Parser_Term_if___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_subst; lean_object* l_Lean_Parser_Term_quotedName___closed__4; lean_object* l_Lean_Parser_Term_andthen___elambda__1___closed__2; +lean_object* l_Lean_Parser_unicodeInfixL___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_doSeq___elambda__1___spec__2(uint8_t, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_where___elambda__1___spec__2___closed__3; lean_object* l_Lean_Parser_Term_app___elambda__1___closed__1; @@ -130,6 +130,7 @@ lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__6; extern lean_object* l_Lean_Parser_Level_paren___closed__2; lean_object* l_Lean_Parser_Term_inaccessible___closed__1; lean_object* l_Lean_Parser_Term_not___closed__6; +lean_object* l_Lean_Parser_unicodeInfixR(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_lt___elambda__1___closed__4; @@ -160,6 +161,7 @@ lean_object* l_Lean_Parser_Term_char___closed__3; lean_object* l_Lean_Parser_Term_listLit___closed__3; lean_object* l_Lean_Parser_Term_match___closed__7; lean_object* l___regBuiltinParser_Lean_Parser_Term_pow(lean_object*); +lean_object* l_Lean_Parser_unicodeInfixR___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_eq___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_listLit___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__16; @@ -341,6 +343,7 @@ lean_object* l_Lean_Parser_Term_doLet___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_doPat___closed__4; lean_object* l_Lean_Parser_Term_doId___closed__2; lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__4; +lean_object* l_Lean_Parser_infixR___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_arrayLit___elambda__1___closed__5; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match__syntax___elambda__1___spec__1___closed__1; @@ -520,7 +523,6 @@ lean_object* l_Lean_Parser_Term_where___closed__4; lean_object* l_Lean_Parser_Term_prod___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_paren___closed__5; lean_object* l_Lean_Parser_Term_letPatDecl___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_infixR___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_div___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_arrayLit___closed__6; @@ -582,6 +584,7 @@ lean_object* l_Lean_Parser_Term_tupleTail___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_hole___closed__4; lean_object* l_Lean_Parser_Term_cons___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_fun___closed__6; +lean_object* l_Lean_Parser_infixR___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_num___closed__2; lean_object* l_Lean_Parser_Term_typeAscription___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_binderDefault; @@ -689,6 +692,7 @@ lean_object* l_Lean_Parser_Term_structInst___closed__4; lean_object* l_Lean_Parser_Term_num___closed__4; lean_object* l_Lean_Parser_dollarSymbol(uint8_t); lean_object* l_Lean_Parser_Term_suffices___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_infixR(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fromTerm___closed__2; lean_object* l_Lean_Parser_Term_id___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__5; @@ -795,6 +799,7 @@ lean_object* l_Lean_Parser_Term_orM___closed__1; lean_object* l_Lean_Parser_Term_sub___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_letIdDecl___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_equiv___elambda__1___closed__1; +lean_object* l_Lean_Parser_infixL___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_not___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_doElem___closed__4; lean_object* l_Lean_Parser_Term_seqLeft___elambda__1(lean_object*, lean_object*, lean_object*); @@ -1096,7 +1101,6 @@ lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_ lean_object* l_Lean_Parser_Term_id___closed__3; lean_object* l_Lean_Parser_Term_let___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_sortApp___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_unicodeInfixL(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_hole___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_structInstSource___closed__6; lean_object* l_Lean_Parser_Term_namedArgument___closed__2; @@ -1244,7 +1248,6 @@ lean_object* l_Lean_Parser_Term_match__syntax___closed__1; lean_object* l_Lean_Parser_Term_instBinder___closed__2; extern lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__4; lean_object* l_Lean_Parser_Term_letDecl___closed__1; -lean_object* l_Lean_Parser_Term_unicodeInfixL___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_doSeq___closed__5; lean_object* l_Lean_Parser_Term_emptyC___closed__4; lean_object* l_Lean_Parser_Term_band___closed__3; @@ -1282,7 +1285,6 @@ lean_object* l_Lean_Parser_Term_le___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_eq___closed__2; lean_object* l_Lean_Parser_Term_binderIdent; lean_object* l_Lean_Parser_Term_simpleBinder___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_infixR(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_seqLeft___closed__3; lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1___closed__2; lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_where___elambda__1___spec__2___closed__4; @@ -1300,7 +1302,6 @@ lean_object* l_Lean_Parser_Term_have___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_namedPattern___closed__4; lean_object* l_Lean_Parser_Term_seq___elambda__1___closed__3; -lean_object* l_Lean_Parser_Term_infixL___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_binderTactic___closed__2; lean_object* l_Lean_Parser_Term_if___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_div___closed__1; @@ -1402,7 +1403,6 @@ lean_object* l_Lean_Parser_Term_forall___elambda__1___closed__12; lean_object* l_Lean_Syntax_isTermId_x3f(lean_object*); lean_object* l_Lean_Parser_Term_let___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_infixL(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_anonymousCtor; lean_object* l_Lean_Parser_Term_dollarProj___closed__4; lean_object* l_Lean_Parser_Term_iff___closed__3; @@ -1423,6 +1423,7 @@ lean_object* l_Lean_Parser_Term_doPat___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_binderType___closed__2; lean_object* l_Lean_Parser_Term_borrowed___closed__5; lean_object* l_Lean_Parser_Term_explicitUniv___closed__8; +lean_object* l_Lean_Parser_unicodeInfixR___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_equiv___closed__1; lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_not___closed__7; @@ -1440,6 +1441,7 @@ lean_object* l_Lean_Parser_Term_structInstSource___closed__1; lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_depArrow___closed__6; lean_object* l_Lean_Parser_Term_mapConst___elambda__1___closed__3; +lean_object* l_Lean_Parser_unicodeInfixL(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_namedPattern___closed__1; lean_object* l_Lean_Parser_Term_doId___closed__7; lean_object* l_Lean_Parser_Term_explicitBinder___closed__2; @@ -1649,7 +1651,6 @@ lean_object* l_Lean_Parser_Term_fcomp___closed__3; lean_object* l_Lean_Parser_Term_doLet___closed__2; lean_object* l_Lean_Parser_Term_type___closed__5; lean_object* l_Lean_Parser_Term_match___elambda__1___closed__10; -lean_object* l_Lean_Parser_Term_unicodeInfixR___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_andthen___closed__1; lean_object* l_Lean_Parser_Term_and___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__6; @@ -1720,7 +1721,6 @@ lean_object* l_Lean_Parser_Term_dollarProj; lean_object* l_Lean_Parser_Term_dollarProj___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_proj___closed__6; lean_object* l_Lean_Parser_Term_type___closed__4; -lean_object* l_Lean_Parser_Term_infixR___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_beq___closed__2; lean_object* l_Lean_Parser_Term_arrayLit___closed__2; lean_object* l_Lean_Parser_Term_ne___elambda__1___closed__4; @@ -1739,6 +1739,7 @@ lean_object* l_Lean_Parser_Term_if___elambda__1___closed__12; lean_object* l_Lean_Parser_sepByFn___at_Lean_Parser_Term_structInst___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fcomp___closed__2; lean_object* l_Lean_Parser_Term_where___closed__3; +lean_object* l_Lean_Parser_unicodeInfixL___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_map___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__9; lean_object* l___regBuiltinParser_Lean_Parser_Term_gt(lean_object*); @@ -1838,6 +1839,7 @@ lean_object* l_Lean_Parser_Term_bindOp___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_do___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letDecl___closed__3; lean_object* l_Lean_Parser_Term_subtype___elambda__1___closed__3; +lean_object* l_Lean_Parser_infixL(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_if___closed__7; lean_object* l_Lean_Parser_Term_match___closed__10; lean_object* l_Lean_Parser_Term_modN___elambda__1___closed__2; @@ -1868,10 +1870,8 @@ lean_object* l_Lean_Parser_Term_doExpr___closed__3; lean_object* l_Lean_Parser_Term_binderTactic___closed__3; lean_object* l_Lean_Parser_Term_doId___closed__6; lean_object* l_Lean_Parser_Term_leftArrow___elambda__1(lean_object*); -lean_object* l_Lean_Parser_Term_unicodeInfixR___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_dollar___elambda__1___closed__2; -lean_object* l_Lean_Parser_Term_unicodeInfixL___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_subtype___closed__11; lean_object* l_Lean_Parser_unicodeSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_where___closed__10; @@ -1890,7 +1890,6 @@ lean_object* l_Lean_Parser_Term_bnot___elambda__1(lean_object*, lean_object*, le lean_object* l_Lean_Parser_Term_let; lean_object* l_Lean_Parser_Term_depArrow___closed__3; lean_object* l_Lean_Parser_Term_map; -lean_object* l_Lean_Parser_Term_unicodeInfixR(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_forall___closed__6; lean_object* l_Lean_Parser_Term_mod___elambda__1___closed__2; @@ -1916,6 +1915,7 @@ lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_forall___elambda uint8_t lean_string_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_suffices___closed__3; lean_object* l_Lean_Parser_Term_arrayRef___elambda__1___closed__3; +lean_object* l_Lean_Parser_infixL___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_letEqns___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_arrayLit___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__8; @@ -1928,7 +1928,7 @@ lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_letIdDecl___closed__6; lean_object* l_Lean_Parser_Term_app___closed__4; extern lean_object* l_Lean_Parser_mkAntiquot___closed__1; -lean_object* l_Lean_Parser_Term_unicodeInfixR___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_unicodeInfixR___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; @@ -1954,7 +1954,7 @@ return x_5; } } } -lean_object* l_Lean_Parser_Term_unicodeInfixR(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_unicodeInfixR(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; @@ -1988,7 +1988,7 @@ lean_closure_set(x_17, 0, x_8); lean_closure_set(x_17, 1, x_16); x_18 = l_Lean_Parser_epsilonInfo; x_19 = l_Lean_Parser_andthenInfo(x_18, x_15); -x_20 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixR___elambda__1), 4, 1); +x_20 = lean_alloc_closure((void*)(l_Lean_Parser_unicodeInfixR___elambda__1), 4, 1); lean_closure_set(x_20, 0, x_17); x_21 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_21, 0, x_19); @@ -1996,17 +1996,17 @@ lean_ctor_set(x_21, 1, x_20); return x_21; } } -lean_object* l_Lean_Parser_Term_unicodeInfixR___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_unicodeInfixR___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Lean_Parser_Term_unicodeInfixR(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixR(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_Lean_Parser_Term_infixR___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_infixR___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; @@ -2032,7 +2032,7 @@ return x_5; } } } -lean_object* l_Lean_Parser_Term_infixR(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_infixR(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; @@ -2063,7 +2063,7 @@ lean_closure_set(x_15, 0, x_6); lean_closure_set(x_15, 1, x_14); x_16 = l_Lean_Parser_epsilonInfo; x_17 = l_Lean_Parser_andthenInfo(x_16, x_13); -x_18 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR___elambda__1), 4, 1); +x_18 = lean_alloc_closure((void*)(l_Lean_Parser_infixR___elambda__1), 4, 1); lean_closure_set(x_18, 0, x_15); x_19 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_19, 0, x_17); @@ -2071,16 +2071,16 @@ lean_ctor_set(x_19, 1, x_18); return x_19; } } -lean_object* l_Lean_Parser_Term_infixR___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_infixR___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Lean_Parser_Term_unicodeInfixL___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_unicodeInfixL___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; @@ -2106,7 +2106,7 @@ return x_5; } } } -lean_object* l_Lean_Parser_Term_unicodeInfixL(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_unicodeInfixL(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; @@ -2137,7 +2137,7 @@ lean_closure_set(x_15, 0, x_8); lean_closure_set(x_15, 1, x_14); x_16 = l_Lean_Parser_epsilonInfo; x_17 = l_Lean_Parser_andthenInfo(x_16, x_13); -x_18 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixL___elambda__1), 4, 1); +x_18 = lean_alloc_closure((void*)(l_Lean_Parser_unicodeInfixL___elambda__1), 4, 1); lean_closure_set(x_18, 0, x_15); x_19 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_19, 0, x_17); @@ -2145,17 +2145,17 @@ lean_ctor_set(x_19, 1, x_18); return x_19; } } -lean_object* l_Lean_Parser_Term_unicodeInfixL___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Parser_unicodeInfixL___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Lean_Parser_Term_unicodeInfixL(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixL(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_Lean_Parser_Term_infixL___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_infixL___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; @@ -2181,7 +2181,7 @@ return x_5; } } } -lean_object* l_Lean_Parser_Term_infixL(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_infixL(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; @@ -2209,7 +2209,7 @@ lean_closure_set(x_13, 0, x_6); lean_closure_set(x_13, 1, x_12); x_14 = l_Lean_Parser_epsilonInfo; x_15 = l_Lean_Parser_andthenInfo(x_14, x_11); -x_16 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL___elambda__1), 4, 1); +x_16 = lean_alloc_closure((void*)(l_Lean_Parser_infixL___elambda__1), 4, 1); lean_closure_set(x_16, 0, x_13); x_17 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_17, 0, x_15); @@ -2217,11 +2217,11 @@ lean_ctor_set(x_17, 1, x_16); return x_17; } } -lean_object* l_Lean_Parser_Term_infixL___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Parser_infixL___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); lean_dec(x_1); return x_3; } @@ -30689,7 +30689,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_depArrow___elambda__1___closed__6; x_2 = l_Lean_Parser_Term_depArrow___elambda__1___closed__8; x_3 = lean_unsigned_to_nat(25u); -x_4 = l_Lean_Parser_Term_unicodeInfixR(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixR(x_1, x_2, x_3); return x_4; } } @@ -32259,7 +32259,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_fcomp___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(90u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -32364,7 +32364,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_prod___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(35u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -32469,7 +32469,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_add___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(65u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -32574,7 +32574,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_sub___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(65u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -32679,7 +32679,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_mul___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(70u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -32784,7 +32784,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_div___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(70u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -32889,7 +32889,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_mod___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(70u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -32994,7 +32994,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_modN___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(70u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -33099,7 +33099,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_pow___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(80u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -33213,7 +33213,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_le___elambda__1___closed__3; x_2 = l_Lean_Parser_Term_le___elambda__1___closed__4; x_3 = lean_unsigned_to_nat(50u); -x_4 = l_Lean_Parser_Term_unicodeInfixL(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixL(x_1, x_2, x_3); return x_4; } } @@ -33327,7 +33327,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_ge___elambda__1___closed__3; x_2 = l_Lean_Parser_Term_ge___elambda__1___closed__4; x_3 = lean_unsigned_to_nat(50u); -x_4 = l_Lean_Parser_Term_unicodeInfixL(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixL(x_1, x_2, x_3); return x_4; } } @@ -33432,7 +33432,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_lt___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -33537,7 +33537,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_gt___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -33642,7 +33642,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_eq___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -33747,7 +33747,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_ne___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -33852,7 +33852,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_beq___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -33957,7 +33957,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_bne___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -34071,7 +34071,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_heq___elambda__1___closed__3; x_2 = l_Lean_Parser_Term_heq___elambda__1___closed__4; x_3 = lean_unsigned_to_nat(50u); -x_4 = l_Lean_Parser_Term_unicodeInfixL(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixL(x_1, x_2, x_3); return x_4; } } @@ -34176,7 +34176,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_equiv___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(50u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -34281,7 +34281,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_subst___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(75u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -34395,7 +34395,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_and___elambda__1___closed__3; x_2 = l_Lean_Parser_Term_and___elambda__1___closed__4; x_3 = lean_unsigned_to_nat(35u); -x_4 = l_Lean_Parser_Term_unicodeInfixR(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixR(x_1, x_2, x_3); return x_4; } } @@ -34509,7 +34509,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_or___elambda__1___closed__3; x_2 = l_Lean_Parser_Term_or___elambda__1___closed__4; x_3 = lean_unsigned_to_nat(30u); -x_4 = l_Lean_Parser_Term_unicodeInfixR(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixR(x_1, x_2, x_3); return x_4; } } @@ -34623,7 +34623,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_iff___elambda__1___closed__3; x_2 = l_Lean_Parser_Term_iff___elambda__1___closed__4; x_3 = lean_unsigned_to_nat(20u); -x_4 = l_Lean_Parser_Term_unicodeInfixL(x_1, x_2, x_3); +x_4 = l_Lean_Parser_unicodeInfixL(x_1, x_2, x_3); return x_4; } } @@ -34728,7 +34728,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_band___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(35u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -34833,7 +34833,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_bor___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(30u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -34938,7 +34938,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_append___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(65u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -35043,7 +35043,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_cons___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(67u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35148,7 +35148,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_orelse___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(2u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35253,7 +35253,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_orM___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(30u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35358,7 +35358,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_andM___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(35u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35463,7 +35463,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_andthen___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(60u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35568,7 +35568,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_bindOp___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(55u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35673,7 +35673,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_mapRev___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(100u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -35778,7 +35778,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_seq___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(60u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -35883,7 +35883,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(60u); -x_3 = l_Lean_Parser_Term_infixL(x_1, x_2); +x_3 = l_Lean_Parser_infixL(x_1, x_2); return x_3; } } @@ -35988,7 +35988,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_seqRight___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(60u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -36093,7 +36093,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_map___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(100u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -36198,7 +36198,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_mapConst___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(100u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } } @@ -36303,7 +36303,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__3; x_2 = lean_unsigned_to_nat(100u); -x_3 = l_Lean_Parser_Term_infixR(x_1, x_2); +x_3 = l_Lean_Parser_infixR(x_1, x_2); return x_3; } }