diff --git a/stage0/src/Init/Lean/Elab/Quotation.lean b/stage0/src/Init/Lean/Elab/Quotation.lean index c6b7064477..f498c6ff33 100644 --- a/stage0/src/Init/Lean/Elab/Quotation.lean +++ b/stage0/src/Init/Lean/Elab/Quotation.lean @@ -219,7 +219,7 @@ else if pat.isOfKind `Lean.Parser.Term.stxQuot then -- Splices should only appear inside a nullKind node, see next case if isAntiquotSplice quoted then unconditional $ fun _ => throwError quoted "unexpected antiquotation splice" else if anti.isOfKind `Lean.Parser.Term.id then { kind := kind, rhsFn := fun rhs => `(let $anti:id := discr; $rhs) } - else unconditional $ fun _ => throwError anti "syntax_match: antiquotation must be variable" + else unconditional $ fun _ => throwError anti ("match_syntax: antiquotation must be variable " ++ toString anti) | _ => -- quotation is a single antiquotation splice => bind args array if isAntiquotSplicePat quoted then @@ -230,7 +230,7 @@ else if pat.isOfKind `Lean.Parser.Term.stxQuot then let argPats := quoted.getArgs.map $ fun arg => Syntax.node `Lean.Parser.Term.stxQuot #[mkAtom "`(", arg, mkAtom ")"]; { kind := quoted.getKind, argPats := argPats } else - unconditional $ fun _ => throwError pat "syntax_match: unexpected pattern kind" + unconditional $ fun _ => throwError pat ("match_syntax: unexpected pattern kind " ++ toString pat) -- Assuming that the first pattern of the alternative is taken, replace it with patterns (if any) for its -- child nodes. @@ -282,7 +282,7 @@ private partial def getAntiquotVarsAux : Syntax → TermElabM (List Syntax) | `(($e)) => e | _ => anti; if anti.isOfKind `Lean.Parser.Term.id then pure [anti] - else throwError anti "syntax_match: antiquotation must be variable" + else throwError anti ("match_syntax: antiquotation must be variable " ++ toString anti) else List.join <$> args.toList.mapM getAntiquotVarsAux | _ => pure [] @@ -321,7 +321,7 @@ let alts := stx.getArg 3; alts ← alts.getArgs.mapM $ fun alt => do { let pats := alt.getArg 1; pat ← if pats.getArgs.size == 1 then pure $ pats.getArg 0 - else throwError stx.val "syntax_match: expected exactly one pattern per alternative"; + else throwError stx.val "match_syntax: expected exactly one pattern per alternative"; let pat := if pat.isOfKind `Lean.Parser.Term.stxQuot then pat.setArg 1 $ elimAntiquotChoices $ pat.getArg 1 else pat; let rhs := alt.getArg 3; pure ([pat], rhs) diff --git a/stage0/src/Init/Lean/Parser/Command.lean b/stage0/src/Init/Lean/Parser/Command.lean index f83b716077..19a8ecb507 100644 --- a/stage0/src/Init/Lean/Parser/Command.lean +++ b/stage0/src/Init/Lean/Parser/Command.lean @@ -9,20 +9,14 @@ import Init.Lean.Parser.Term namespace Lean namespace Parser -@[init mkBuiltinParsingTablesRef] -constant builtinCommandParsingTable : IO.Ref ParsingTables := arbitrary _ - @[init] def regBuiltinCommandParserAttr : IO Unit := -registerBuiltinParserAttribute `builtinCommandParser `Lean.Parser.builtinCommandParsingTable +registerBuiltinParserAttribute `builtinCommandParser `command -def mkCommandParserAttribute : IO ParserAttribute := -registerParserAttribute `commandParser "command" "command parser" (some builtinCommandParsingTable) - -@[init mkCommandParserAttribute] -constant commandParserAttribute : ParserAttribute := arbitrary _ +@[init] def regCommandParserAttribute : IO Unit := +registerParserAttribute `commandParser `command @[inline] def commandParser {k : ParserKind} (rbp : Nat := 0) : Parser k := -{ fn := fun _ => commandParserAttribute.runParserFn rbp } +categoryParser `command rbp /-- Syntax quotation for terms and (lists of) commands. We prefer terms, so ambiguous quotations like diff --git a/stage0/src/Init/Lean/Parser/Level.lean b/stage0/src/Init/Lean/Parser/Level.lean index 39aac71647..137a619a10 100644 --- a/stage0/src/Init/Lean/Parser/Level.lean +++ b/stage0/src/Init/Lean/Parser/Level.lean @@ -9,20 +9,14 @@ import Init.Lean.Parser.Parser namespace Lean namespace Parser -@[init mkBuiltinParsingTablesRef] -constant builtinLevelParsingTable : IO.Ref ParsingTables := arbitrary _ - @[init] def regBuiltinLevelParserAttr : IO Unit := -registerBuiltinParserAttribute `builtinLevelParser `Lean.Parser.builtinLevelParsingTable +registerBuiltinParserAttribute `builtinLevelParser `level -def mkLevelParserAttribute : IO ParserAttribute := -registerParserAttribute `levelParser "level" "universe level parser" (some builtinLevelParsingTable) - -@[init mkLevelParserAttribute] -constant levelParserAttribute : ParserAttribute := arbitrary _ +@[init] def regLevelParserAttribute : IO Unit := +registerParserAttribute `levelParser `level @[inline] def levelParser {k : ParserKind} (rbp : Nat := 0) : Parser k := -{ fn := fun _ => levelParserAttribute.runParserFn rbp } +categoryParser `level rbp namespace Level diff --git a/stage0/src/Init/Lean/Parser/Parser.lean b/stage0/src/Init/Lean/Parser/Parser.lean index b35b0bd29c..1d7ca36835 100644 --- a/stage0/src/Init/Lean/Parser/Parser.lean +++ b/stage0/src/Init/Lean/Parser/Parser.lean @@ -1261,12 +1261,12 @@ 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 : String) (tables : ParsingTables) : ParserFn leading := +def leadingParser (kind : Name) (tables : ParsingTables) : ParserFn leading := fun a c s => let iniSz := s.stackSize; let (s, ps) := indexed tables.leadingTable c s; if ps.isEmpty then - s.mkError kind + s.mkError (toString kind) else let s := longestMatchFn ps a c s; mkResult s iniSz @@ -1293,7 +1293,7 @@ partial def trailingLoop (tables : ParsingTables) (rbp : Nat) (c : ParserContext let s := s.popSyntax; trailingLoop left s -def prattParser (kind : String) (tables : ParsingTables) : ParserFn leading := +def prattParser (kind : Name) (tables : ParsingTables) : ParserFn leading := fun rbp c s => let s := leadingParser kind tables rbp c s; if s.hasError then s @@ -1302,15 +1302,76 @@ fun rbp c s => let s := s.popSyntax; trailingLoop tables rbp c left s -def mkBuiltinTokenTable : IO (IO.Ref TokenTable) := -IO.mkRef {} +abbrev CategoryParserFn := Name → ParserFn leading -@[init mkBuiltinTokenTable] -constant builtinTokenTable : IO.Ref TokenTable := arbitrary _ +def mkCategoryParserFnRef : IO (IO.Ref CategoryParserFn) := +IO.mkRef $ fun _ _ => whitespace -abbrev TokenTableAttributeExtensionState := List TokenConfig × TokenTable +@[init mkCategoryParserFnRef] +constant categoryParserFnRef : IO.Ref CategoryParserFn := arbitrary _ -abbrev TokenTableAttributeExtension := PersistentEnvExtension TokenConfig TokenConfig TokenTableAttributeExtensionState +def mkCategoryParserFnExtension : IO (EnvExtension CategoryParserFn) := +registerEnvExtension $ categoryParserFnRef.get + +@[init mkCategoryParserFnExtension] +def categoryParserFnExtension : EnvExtension CategoryParserFn := arbitrary _ + +def categoryParserFn (catName : Name) : ParserFn leading := +fun rbp ctx s => categoryParserFnExtension.getState ctx.env catName rbp ctx s + +def categoryParser {k} (catName : Name) (rbp : Nat) : Parser k := +{ fn := fun _ => categoryParserFn catName rbp } + +def mkBuiltinTokenTable : IO (IO.Ref TokenTable) := IO.mkRef {} +@[init mkBuiltinTokenTable] constant builtinTokenTable : IO.Ref TokenTable := arbitrary _ + +/- Global table with all SyntaxNodeKind's -/ +def mkBuiltinSyntaxNodeKindSetRef : IO (IO.Ref SyntaxNodeKindSet) := IO.mkRef {} +@[init mkBuiltinSyntaxNodeKindSetRef] constant builtinSyntaxNodeKindSetRef : IO.Ref SyntaxNodeKindSet := arbitrary _ + +abbrev ParserCategories := PersistentHashMap Name ParsingTables + +def mkBuiltinParserCategories : IO (IO.Ref ParserCategories) := IO.mkRef {} +@[init mkBuiltinParserCategories] constant builtinParserCategoriesRef : IO.Ref ParserCategories := arbitrary _ + +private def addParserCategory (categories : ParserCategories) (catName : Name) : Except String ParserCategories := +if categories.contains catName then + throw ("parser category '" ++ toString catName ++ "' has already been defined") +else + pure $ categories.insert catName {} + +private def addBuiltinParserCategory (catName : Name) : IO Unit := do +categories ← builtinParserCategoriesRef.get; +categories ← IO.ofExcept $ addParserCategory categories catName; +builtinParserCategoriesRef.set categories + +inductive ParserExtensionOleanEntry +| token (val : TokenConfig) : ParserExtensionOleanEntry +| kind (val : SyntaxNodeKind) : ParserExtensionOleanEntry +| category (catName : Name) +| parser (catName : Name) (declName : Name) : ParserExtensionOleanEntry + +inductive ParserExtensionEntry +| token (val : TokenConfig) : ParserExtensionEntry +| kind (val : SyntaxNodeKind) : ParserExtensionEntry +| category (catName : Name) +| parser (catName : Name) (declName : Name) (k : ParserKind) (p : Parser k) : ParserExtensionEntry + +structure ParserExtensionState := +(tokens : TokenTable := {}) +(kinds : SyntaxNodeKindSet := {}) +(categories : ParserCategories := {}) +(newEntries : List ParserExtensionOleanEntry := []) + +instance ParserExtensionState.inhabited : Inhabited ParserExtensionState := ⟨{}⟩ + +abbrev ParserExtension := PersistentEnvExtension ParserExtensionOleanEntry ParserExtensionEntry ParserExtensionState + +private def ParserExtension.mkInitial : IO ParserExtensionState := do +tokens ← builtinTokenTable.get; +kinds ← builtinSyntaxNodeKindSetRef.get; +categories ← builtinParserCategoriesRef.get; +pure { tokens := tokens, kinds := kinds, categories := categories } private def mergePrecendences (msgPreamble : String) (sym : String) : Option Nat → Option Nat → Except String (Option Nat) | none, b => pure b @@ -1320,111 +1381,216 @@ private def mergePrecendences (msgPreamble : String) (sym : String) : Option Nat else throw $ msgPreamble ++ "precedence mismatch for '" ++ toString sym ++ "', previous: " ++ toString a ++ ", new: " ++ toString b -private def addTokenConfig (table : TokenTable) (tk : TokenConfig) : Except String TokenTable := do +private def addTokenConfig (tokens : TokenTable) (tk : TokenConfig) : Except String TokenTable := do if tk.val == "" then throw "invalid empty symbol" -else match table.find tk.val with - | none => pure $ table.insert tk.val tk +else match tokens.find tk.val with + | none => pure $ tokens.insert tk.val tk | some oldTk => do lbp ← mergePrecendences "" tk.val oldTk.lbp tk.lbp; lbpNoWs ← mergePrecendences "(no whitespace) " tk.val oldTk.lbpNoWs tk.lbpNoWs; - pure $ table.insert tk.val { lbp := lbp, lbpNoWs := lbpNoWs, .. tk } + pure $ tokens.insert tk.val { lbp := lbp, lbpNoWs := lbpNoWs, .. tk } + +def throwUnknownParserCategory {α} (catName : Name) : ExceptT String Id α := +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 => + 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); +match p.info.firstTokens with +| FirstTokens.tokens tks => addTokens tks +| FirstTokens.optTokens tks => addTokens tks +| _ => throw ("invalid parser '" ++ toString parserName ++ "', initial token is not statically known") + +private def addTrailingParserAux (tables : ParsingTables) (p : TrailingParser) : ParsingTables := +let addTokens (tks : List TokenConfig) : ParsingTables := + let tks := tks.map $ fun tk => mkNameSimple tk.val; + tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { trailingTable := tables.trailingTable.insert tk p, .. tables }) tables; +match p.info.firstTokens with +| FirstTokens.tokens tks => addTokens tks +| FirstTokens.optTokens tks => addTokens tks +| _ => { trailingParsers := p :: tables.trailingParsers, .. tables } + +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) + +def addParser {k} (categories : ParserCategories) (catName : Name) (declName : Name) (p : Parser k) : Except String ParserCategories := +match k, p with +| leading, p => addLeadingParser categories catName declName p +| trailing, p => addTrailingParser categories catName p def addParserTokens (tokenTable : TokenTable) (info : ParserInfo) : Except String TokenTable := let newTokens := info.collectTokens []; newTokens.foldlM addTokenConfig tokenTable -private def mkImportedTokenTable (es : Array (Array TokenConfig)) : IO TokenTableAttributeExtensionState := do -table ← builtinTokenTable.get; -table ← es.foldlM - (fun table tokens => - tokens.foldlM - (fun table tk => IO.ofExcept (addTokenConfig table tk)) - table) - table; -pure ([], table) +private def updateBuiltinTokens (info : ParserInfo) (declName : Name) : IO Unit := do +tokenTable ← builtinTokenTable.swap {}; +match addParserTokens tokenTable info with +| Except.ok tokenTable => builtinTokenTable.set tokenTable +| Except.error msg => throw (IO.userError ("invalid builtin parser '" ++ toString declName ++ "', " ++ msg)) -private def addTokenTableEntry (s : TokenTableAttributeExtensionState) (tk : TokenConfig) : TokenTableAttributeExtensionState := -match addTokenConfig s.2 tk with -| Except.ok table => (tk :: s.1, table) -| _ => unreachable! +def addBuiltinParser {k} (catName : Name) (declName : Name) (p : Parser k) : IO Unit := do +categories ← builtinParserCategoriesRef.get; +categories ← IO.ofExcept $ addParser categories catName declName p; +builtinParserCategoriesRef.set categories; +builtinSyntaxNodeKindSetRef.modify p.info.collectKinds; +updateBuiltinTokens p.info declName -/- We use a TokenTable attribute to make sure they are scoped. - Users do not directly use this attribute. They use them indirectly when - they use parser attributes. -/ -structure TokenTableAttribute := -(attr : AttributeImpl) -(ext : TokenTableAttributeExtension) +def addBuiltinLeadingParserNew (catName : Name) (declName : Name) (p : Parser) : IO Unit := +addBuiltinParser catName declName p -instance TokenTableAttribute.inhabited : Inhabited TokenTableAttribute := ⟨{ attr := arbitrary _, ext := arbitrary _ }⟩ +def addBuiltinTrailingParserNew (catName : Name) (declName : Name) (p : TrailingParser) : IO Unit := +addBuiltinParser catName declName p -private def addTokenAux (env : Environment) (ext : TokenTableAttributeExtension) (tk : TokenConfig) : Except String Environment := do -let s := ext.getState env; --- Recall that addTokenTableEntry is pure, and assumes `addTokenConfig` does not fail. --- So, we must run it here to handle exception. -addTokenConfig s.2 tk; -pure $ ext.addEntry env tk +-- TODO DELETE -- +def mkBuiltinParsingTablesRef : IO (IO.Ref ParsingTables) := IO.mkRef {} +@[init mkBuiltinParsingTablesRef] constant builtinTermParsingTable : IO.Ref ParsingTables := arbitrary _ +@[init mkBuiltinParsingTablesRef] constant builtinLevelParsingTable : IO.Ref ParsingTables := arbitrary _ +@[init mkBuiltinParsingTablesRef] constant builtinCommandParsingTable : IO.Ref ParsingTables := arbitrary _ +def addBuiltinLeadingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : Parser) : IO Unit := +condM (tablesRef.ptrEq builtinTermParsingTable) (addBuiltinLeadingParserNew `term declName p) $ +condM (tablesRef.ptrEq builtinLevelParsingTable) (addBuiltinLeadingParserNew `level declName p) $ +(addBuiltinLeadingParserNew `command declName p) +def addBuiltinTrailingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : TrailingParser) : IO Unit := +condM (tablesRef.ptrEq builtinTermParsingTable) (addBuiltinTrailingParserNew `term declName p) $ +condM (tablesRef.ptrEq builtinLevelParsingTable) (addBuiltinTrailingParserNew `level declName p) $ +(addBuiltinTrailingParserNew `command declName p) +--- END TODO DELETE -- -def mkTokenTableAttribute : IO TokenTableAttribute := do -ext : TokenTableAttributeExtension ← registerPersistentEnvExtension { - name := `_tokens_, - mkInitial := do table ← builtinTokenTable.get; pure ([], table), - addImportedFn := fun env => mkImportedTokenTable, - addEntryFn := addTokenTableEntry, - exportEntriesFn := fun s => s.1.reverse.toArray, - statsFn := fun s => format "number of local entries: " ++ format s.1.length -}; -let attrImpl : AttributeImpl := { - name := `_tokens_, - descr := "internal token table attribute", - add := fun env decl args persistent => pure env -- TODO -}; -registerAttribute attrImpl; -pure { ext := ext, attr := attrImpl } +private def ParserExtension.addEntry (s : ParserExtensionState) (e : ParserExtensionEntry) : ParserExtensionState := +match e with +| ParserExtensionEntry.token tk => + match addTokenConfig s.tokens tk with + | Except.ok tokens => { tokens := tokens, newEntries := ParserExtensionOleanEntry.token tk :: s.newEntries, .. s } + | _ => unreachable! +| ParserExtensionEntry.kind k => + { kinds := s.kinds.insert k, newEntries := ParserExtensionOleanEntry.kind k :: s.newEntries, .. s } +| ParserExtensionEntry.category catName => + if s.categories.contains catName then s + else { categories := s.categories.insert catName {}, newEntries := ParserExtensionOleanEntry.category catName :: 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 } + | _ => unreachable! -@[init mkTokenTableAttribute] -constant tokenTableAttribute : TokenTableAttribute := arbitrary _ +def compileParserDescr (categories : ParserCategories) : forall {k : ParserKind}, ParserDescrCore k → Except String (Parser k) +| _, ParserDescr.andthen d₁ d₂ => andthen <$> compileParserDescr d₁ <*> compileParserDescr d₂ +| _, ParserDescr.orelse d₁ d₂ => orelse <$> compileParserDescr d₁ <*> compileParserDescr d₂ +| _, ParserDescr.optional d => optional <$> compileParserDescr d +| _, ParserDescr.lookahead d => lookahead <$> compileParserDescr d +| _, ParserDescr.try d => try <$> compileParserDescr d +| _, ParserDescr.many d => many <$> compileParserDescr d +| _, ParserDescr.many1 d => many1 <$> compileParserDescr d +| _, ParserDescr.sepBy d₁ d₂ => sepBy <$> compileParserDescr d₁ <*> compileParserDescr d₂ +| _, ParserDescr.sepBy1 d₁ d₂ => sepBy1 <$> compileParserDescr d₁ <*> compileParserDescr d₂ +| _, ParserDescr.node k d => node k <$> compileParserDescr d +| _, ParserDescr.symbol tk lbp => pure $ symbol tk lbp +| _, ParserDescr.unicodeSymbol tk₁ tk₂ lbp => pure $ unicodeSymbol tk₁ tk₂ lbp +| ParserKind.leading, ParserDescr.parser catName rbp => + match categories.find? catName with + | some _ => pure $ categoryParser catName rbp + | none => throwUnknownParserCategory catName +| ParserKind.trailing, ParserDescr.pushLeading => pure $ pushLeading -def addToken (env : Environment) (tk : TokenConfig) : Except String Environment := -addTokenAux env tokenTableAttribute.2 tk +unsafe def mkParserOfConstantUnsafe (env : Environment) (categories : ParserCategories) (constName : Name) + : Except String (Sigma (fun (k : ParserKind) => Parser k)) := +match env.find? constName with +| none => throw ("unknow constant '" ++ toString constName ++ "'") +| some info => + match info.type with + | Expr.const `Lean.Parser.TrailingParser _ _ => do + p ← env.evalConst (Parser trailing) constName; + pure ⟨trailing, p⟩ + | Expr.app (Expr.const `Lean.Parser.Parser _ _) (Expr.const `Lean.ParserKind.leading _ _) _ => do + p ← env.evalConst (Parser leading) constName; + pure ⟨leading, p⟩ + | Expr.const `Lean.ParserDescr _ _ => do + d ← env.evalConst ParserDescr constName; + p ← compileParserDescr categories d; + pure ⟨leading, p⟩ + | Expr.const `Lean.TrailingParserDescr _ _ => do + d ← env.evalConst TrailingParserDescr constName; + p ← compileParserDescr categories d; + pure ⟨trailing, p⟩ + | _ => throw ("unexpected parser type at '" ++ toString constName ++ "' (`ParserDescr`, `TrailingParserDescr`, `Parser` or `TrailingParser` expected") -/- Global table with all SyntaxNodeKind's -/ -def mkSyntaxNodeKindSetRef : IO (IO.Ref SyntaxNodeKindSet) := IO.mkRef {} -@[init mkSyntaxNodeKindSetRef] -constant syntaxNodeKindSetRef : IO.Ref SyntaxNodeKindSet := arbitrary _ +@[implementedBy mkParserOfConstantUnsafe] +constant mkParserOfConstant (env : Environment) (categories : ParserCategories) (constName : Name) : Except String (Sigma (fun (k : ParserKind) => Parser k)) := +arbitrary _ -def updateBuiltinSyntaxNodeKinds (pinfo : ParserInfo) : IO Unit := -syntaxNodeKindSetRef.modify pinfo.collectKinds +private def ParserExtension.addImported (env : Environment) (es : Array (Array ParserExtensionOleanEntry)) : IO ParserExtensionState := do +s ← ParserExtension.mkInitial; +es.foldlM + (fun s entries => + entries.foldlM + (fun s entry => + match entry with + | ParserExtensionOleanEntry.token tk => do + tokens ← IO.ofExcept (addTokenConfig s.tokens tk); + pure { tokens := tokens, .. s } + | ParserExtensionOleanEntry.kind k => + pure { kinds := s.kinds.insert k, .. s } + | ParserExtensionOleanEntry.category catName => do + categories ← IO.ofExcept (addParserCategory s.categories catName); + pure { categories := categories, .. s } + | ParserExtensionOleanEntry.parser catName declName => + match mkParserOfConstant env s.categories declName with + | Except.ok p => + match addParser s.categories catName declName p.2 with + | Except.ok categories => pure { categories := categories, .. s } + | Except.error ex => throw (IO.userError ex) + | Except.error ex => throw (IO.userError ex)) + s) + s -abbrev SyntaxNodeKindExtensionState := List SyntaxNodeKind × SyntaxNodeKindSet - -def mkSyntaxNodeKindExtension : IO (PersistentEnvExtension SyntaxNodeKind SyntaxNodeKind SyntaxNodeKindExtensionState) := +def mkParserExtension : IO ParserExtension := registerPersistentEnvExtension { - name := `stxNodeKind, - mkInitial := do s ← syntaxNodeKindSetRef.get; pure ([], s), - addEntryFn := fun (s : SyntaxNodeKindExtensionState) e => (e :: s.1, s.2.insert e), - addImportedFn := fun _ es => do - s ← syntaxNodeKindSetRef.get; - let s := mkStateFromImportedEntries SyntaxNodeKindSet.insert s es; - pure ([], s), - exportEntriesFn := fun (s : SyntaxNodeKindExtensionState) => s.1.reverse.toArray + name := `parserExt, + mkInitial := ParserExtension.mkInitial, + addImportedFn := ParserExtension.addImported, + addEntryFn := ParserExtension.addEntry, + exportEntriesFn := fun s => s.newEntries.reverse.toArray, + statsFn := fun s => format "number of local entries: " ++ format s.newEntries.length } -@[init mkSyntaxNodeKindExtension] -constant syntaxNodeKindExtension : PersistentEnvExtension SyntaxNodeKind SyntaxNodeKind SyntaxNodeKindExtensionState := arbitrary _ +@[init mkParserExtension] +constant parserExtension : ParserExtension := arbitrary _ + +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 ++ "'") + +@[init] def setCategoryParserFnRef : IO Unit := +categoryParserFnRef.set categoryParserFnImpl + +def addToken (env : Environment) (tk : TokenConfig) : Except String Environment := do +-- Recall that `ParserExtension.addEntry` is pure, and assumes `addTokenConfig` does not fail. +-- So, we must run it here to handle exception. +addTokenConfig (parserExtension.getState env).tokens tk; +pure $ parserExtension.addEntry env $ ParserExtensionEntry.token tk def addSyntaxNodeKind (env : Environment) (k : SyntaxNodeKind) : Environment := -syntaxNodeKindExtension.addEntry env k +parserExtension.addEntry env $ ParserExtensionEntry.kind k def isValidSyntaxNodeKind (env : Environment) (k : SyntaxNodeKind) : Bool := -let s := syntaxNodeKindExtension.getState env; -s.2.contains k || k == `choice +let kinds := (parserExtension.getState env).kinds; +kinds.contains k || k == `choice def getSyntaxNodeKinds (env : Environment) : List SyntaxNodeKind := do -let s := syntaxNodeKindExtension.getState env; -s.2.foldl (fun ks k _ => k::ks) [] +let kinds := (parserExtension.getState env).kinds; +kinds.foldl (fun ks k _ => k::ks) [] def getTokenTable (env : Environment) : TokenTable := -(tokenTableAttribute.ext.getState env).2 +(parserExtension.getState env).tokens def mkInputContext (input : String) (fileName : String) : InputContext := { input := input, @@ -1439,295 +1605,109 @@ def mkParserContext (env : Environment) (ctx : InputContext) : ParserContext := def mkParserState (input : String) : ParserState := { cache := initCacheForInput input } -def runParser (env : Environment) (tables : ParsingTables) (input : String) (fileName := "") (kind := "
") : Except String Syntax := -let c := mkParserContext env (mkInputContext input fileName); -let s := mkParserState input; -let s := whitespace c s; -let s := prattParser kind tables (0 : Nat) c s; -if s.hasError then - Except.error (s.toErrorMsg c) -else - Except.ok s.stxStack.back +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 => + 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; + if s.hasError then + Except.error (s.toErrorMsg c) + else + Except.ok s.stxStack.back +| none => throwUnknownParserCategory catName -def mkBuiltinParsingTablesRef : IO (IO.Ref ParsingTables) := -IO.mkRef {} - -@[init mkBuiltinParsingTablesRef] -constant builtinTermParsingTable : IO.Ref ParsingTables := arbitrary _ - -private def updateBuiltinTokens (info : ParserInfo) (declName : Name) : IO Unit := do -tokenTable ← builtinTokenTable.swap {}; -match addParserTokens tokenTable info with -| Except.ok tokenTable => builtinTokenTable.set tokenTable -| Except.error msg => throw (IO.userError ("invalid builtin parser '" ++ toString declName ++ "', " ++ msg)) - -def addLeadingParser (tables : ParsingTables) (parserName : Name) (p : Parser) : Except String ParsingTables := -let addTokens (tks : List TokenConfig) : ParsingTables := - let tks := tks.map $ fun tk => mkNameSimple tk.val; - tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { leadingTable := tables.leadingTable.insert tk p, .. tables }) tables; -match p.info.firstTokens with -| FirstTokens.tokens tks => pure $ addTokens tks -| FirstTokens.optTokens tks => pure $ addTokens tks -| _ => throw ("invalid builtin parser '" ++ toString parserName ++ "', initial token is not statically known") - -def addTrailingParser (tables : ParsingTables) (p : TrailingParser) : ParsingTables := -let addTokens (tks : List TokenConfig) : ParsingTables := - let tks := tks.map $ fun tk => mkNameSimple tk.val; - tks.eraseDups.foldl (fun (tables : ParsingTables) tk => { trailingTable := tables.trailingTable.insert tk p, .. tables }) tables; -match p.info.firstTokens with -| FirstTokens.tokens tks => addTokens tks -| FirstTokens.optTokens tks => addTokens tks -| _ => { trailingParsers := p :: tables.trailingParsers, .. tables } - -def addParser {k} (tables : ParsingTables) (declName : Name) (p : Parser k) : Except String ParsingTables := -match k, p with -| leading, p => addLeadingParser tables declName p -| trailing, p => pure $ addTrailingParser tables p - -def addBuiltinParser {k} (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : Parser k) : IO Unit := do -tables ← tablesRef.get; -tablesRef.reset; -updateBuiltinTokens p.info declName; -updateBuiltinSyntaxNodeKinds p.info; -tables ← IO.ofExcept $ addParser tables declName p; -tablesRef.set tables - -def addBuiltinLeadingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : Parser) : IO Unit := -addBuiltinParser tablesRef declName p - -def addBuiltinTrailingParser (tablesRef : IO.Ref ParsingTables) (declName : Name) (p : TrailingParser) : IO Unit := -addBuiltinParser tablesRef declName p - -def declareBuiltinParser (env : Environment) (addFnName : Name) (refDeclName : Name) (declName : Name) : IO Environment := +def declareBuiltinParser (env : Environment) (addFnName : Name) (catName : Name) (declName : Name) : IO Environment := let name := `_regBuiltinParser ++ declName; let type := mkApp (mkConst `IO) (mkConst `Unit); -let val := mkAppN (mkConst addFnName) #[mkConst refDeclName, toExpr declName, mkConst declName]; +let val := mkAppN (mkConst addFnName) #[toExpr catName, toExpr declName, mkConst declName]; let decl := Declaration.defnDecl { name := name, lparams := [], type := type, value := val, hints := ReducibilityHints.opaque, isUnsafe := false }; match env.addAndCompile {} decl with -- TODO: pretty print error | Except.error _ => throw (IO.userError ("failed to emit registration code for builtin parser '" ++ toString declName ++ "'")) | Except.ok env => IO.ofExcept (setInitAttr env name) -def declareLeadingBuiltinParser (env : Environment) (refDeclName : Name) (declName : Name) : IO Environment := -declareBuiltinParser env `Lean.Parser.addBuiltinLeadingParser refDeclName declName +def declareLeadingBuiltinParser (env : Environment) (catName : Name) (declName : Name) : IO Environment := +declareBuiltinParser env `Lean.Parser.addBuiltinLeadingParserNew catName declName -def declareTrailingBuiltinParser (env : Environment) (refDeclName : Name) (declName : Name) : IO Environment := -declareBuiltinParser env `Lean.Parser.addBuiltinTrailingParser refDeclName declName +def declareTrailingBuiltinParser (env : Environment) (catName : Name) (declName : Name) : IO Environment := +declareBuiltinParser env `Lean.Parser.addBuiltinTrailingParserNew catName declName + +private def BuiltinParserAttribute.add (attrName : Name) (catName : Name) + (env : Environment) (declName : Name) (args : Syntax) (persistent : Bool) : IO Environment := do +when args.hasArgs $ throw (IO.userError ("invalid attribute '" ++ toString attrName ++ "', unexpected argument")); +unless persistent $ throw (IO.userError ("invalid attribute '" ++ toString attrName ++ "', must be persistent")); +match env.find? declName with +| none => throw "unknown declaration" +| some decl => + match decl.type with + | Expr.const `Lean.Parser.TrailingParser _ _ => + declareTrailingBuiltinParser env catName declName + | Expr.app (Expr.const `Lean.Parser.Parser _ _) (Expr.const `Lean.ParserKind.leading _ _) _ => + declareLeadingBuiltinParser env catName declName + | _ => + throw (IO.userError ("unexpected parser type at '" ++ toString declName ++ "' (`Parser` or `TrailingParser` expected")) /- The parsing tables for builtin parsers are "stored" in the extracted source code. -/ -def registerBuiltinParserAttribute (attrName : Name) (refDeclName : Name) : IO Unit := +def registerBuiltinParserAttribute (attrName : Name) (catName : Name) : IO Unit := do +addBuiltinParserCategory catName; registerAttribute { - name := attrName, - descr := "Builtin parser", - add := fun env declName args persistent => do { - when args.hasArgs $ throw (IO.userError ("invalid attribute '" ++ toString attrName ++ "', unexpected argument")); - unless persistent $ throw (IO.userError ("invalid attribute '" ++ toString attrName ++ "', must be persistent")); - match env.find? declName with - | none => throw "unknown declaration" - | some decl => - match decl.type with - | Expr.const `Lean.Parser.TrailingParser _ _ => - declareTrailingBuiltinParser env refDeclName declName - | Expr.app (Expr.const `Lean.Parser.Parser _ _) (Expr.const `Lean.ParserKind.leading _ _) _ => - declareLeadingBuiltinParser env refDeclName declName - | _ => - throw (IO.userError ("unexpected parser type at '" ++ toString declName ++ "' (`Parser` or `TrailingParser` expected")) - }, + name := attrName, + descr := "Builtin parser", + add := BuiltinParserAttribute.add attrName catName, applicationTime := AttributeApplicationTime.afterCompilation } -@[noinline] unsafe def runBuiltinParserUnsafe (kind : String) (ref : IO.Ref ParsingTables) : ParserFn leading := -fun a c s => -match unsafeIO (do tables ← ref.get; pure $ prattParser kind tables a c s) with -| Except.ok s => s -| _ => s.mkError "failed to access builtin reference" - -@[implementedBy runBuiltinParserUnsafe] -constant runBuiltinParser (kind : String) (ref : IO.Ref ParsingTables) : ParserFn leading := arbitrary _ - -structure ParserAttributeEntry := -(parserName : Name) -(kind : ParserKind) -(parser : Parser kind) - -structure ParserAttributeExtensionState := -(newEntries : List Name := []) -(tables : ParsingTables := {}) - -instance ParserAttributeExtensionState.inhabited : Inhabited ParserAttributeExtensionState := -⟨{}⟩ - -abbrev ParserAttributeExtension := PersistentEnvExtension Name ParserAttributeEntry ParserAttributeExtensionState - -structure ParserAttribute := -(attr : AttributeImpl) -(ext : ParserAttributeExtension) -(kind : String) - -namespace ParserAttribute - -instance : Inhabited ParserAttribute := ⟨{ attr := arbitrary _, ext := arbitrary _, kind := "" }⟩ - -def runParserFn (attr : ParserAttribute) : ParserFn leading := -fun a c s => - let tables : ParsingTables := (attr.ext.getState c.env).tables; - prattParser attr.kind tables a c s - -def mkParser (attr : ParserAttribute) (rbp : Nat) : Parser leading := -{ fn := fun _ => attr.runParserFn rbp } - -end ParserAttribute - -abbrev ParserAttributeTable := HashMap Name ParserAttribute - -def mkParserAttributeTable : IO (IO.Ref ParserAttributeTable) := -IO.mkRef {} - -@[init mkParserAttributeTable] -constant parserAttributeTableRef : IO.Ref ParserAttributeTable := arbitrary _ - -def compileParserDescr (table : ParserAttributeTable) : forall {k : ParserKind}, ParserDescrCore k → Except String (Parser k) -| _, ParserDescr.andthen d₁ d₂ => andthen <$> compileParserDescr d₁ <*> compileParserDescr d₂ -| _, ParserDescr.orelse d₁ d₂ => orelse <$> compileParserDescr d₁ <*> compileParserDescr d₂ -| _, ParserDescr.optional d => optional <$> compileParserDescr d -| _, ParserDescr.lookahead d => lookahead <$> compileParserDescr d -| _, ParserDescr.try d => try <$> compileParserDescr d -| _, ParserDescr.many d => many <$> compileParserDescr d -| _, ParserDescr.many1 d => many1 <$> compileParserDescr d -| _, ParserDescr.sepBy d₁ d₂ => sepBy <$> compileParserDescr d₁ <*> compileParserDescr d₂ -| _, ParserDescr.sepBy1 d₁ d₂ => sepBy1 <$> compileParserDescr d₁ <*> compileParserDescr d₂ -| _, ParserDescr.node k d => node k <$> compileParserDescr d -| _, ParserDescr.symbol tk lbp => pure $ symbol tk lbp -| _, ParserDescr.unicodeSymbol tk₁ tk₂ lbp => pure $ unicodeSymbol tk₁ tk₂ lbp -| ParserKind.leading, ParserDescr.parser n rbp => - match table.find? n with - | some attr => pure $ attr.mkParser rbp - | none => throw ("unknow parser kind '" ++ toString n ++ "'") -| ParserKind.trailing, ParserDescr.pushLeading => pure $ pushLeading - -unsafe def mkParserOfConstantUnsafe (env : Environment) (table : ParserAttributeTable) (constName : Name) - : Except String (Sigma (fun (k : ParserKind) => Parser k)) := -match env.find? constName with -| none => throw ("unknow constant '" ++ toString constName ++ "'") -| some info => - match info.type with - | Expr.const `Lean.Parser.TrailingParser _ _ => do - p ← env.evalConst (Parser trailing) constName; - pure ⟨trailing, p⟩ - | Expr.app (Expr.const `Lean.Parser.Parser _ _) (Expr.const `Lean.ParserKind.leading _ _) _ => do - p ← env.evalConst (Parser leading) constName; - pure ⟨leading, p⟩ - | Expr.const `Lean.ParserDescr _ _ => do - d ← env.evalConst ParserDescr constName; - p ← compileParserDescr table d; - pure ⟨leading, p⟩ - | Expr.const `Lean.TrailingParserDescr _ _ => do - d ← env.evalConst TrailingParserDescr constName; - p ← compileParserDescr table d; - pure ⟨trailing, p⟩ - | _ => throw ("unexpected parser type at '" ++ toString constName ++ "' (`ParserDescr`, `TrailingParserDescr`, `Parser` or `TrailingParser` expected") - -@[implementedBy mkParserOfConstantUnsafe] -constant mkParserOfConstant (env : Environment) (table : ParserAttributeTable) (constName : Name) : Except String (Sigma (fun (k : ParserKind) => Parser k)) := -arbitrary _ - -private def addImportedParsers (builtinTables : Option (IO.Ref ParsingTables)) (env : Environment) (es : Array (Array Name)) : IO ParserAttributeExtensionState := do -tables ← match builtinTables with -| some tables => tables.get -| none => pure {}; -attrTable ← parserAttributeTableRef.get; -tables ← es.foldlM - (fun tables constNames => - constNames.foldlM - (fun tables constName => - match mkParserOfConstant env attrTable constName with - | Except.ok p => - match addParser tables constName p.2 with - | Except.ok tables => pure tables - | Except.error ex => throw (IO.userError ex) - | Except.error ex => throw (IO.userError ex)) - tables) - tables; -pure { tables := tables } - -private def addParserAttributeEntry (s : ParserAttributeExtensionState) (e : ParserAttributeEntry) : ParserAttributeExtensionState := -match e with -| { parserName := parserName, parser := p, .. } => - match addParser s.tables parserName p with - | Except.ok tables => { newEntries := parserName :: s.newEntries, tables := tables } - | Except.error _ => unreachable! - -private def addParserAttribute (env : Environment) (ext : ParserAttributeExtension) (constName : Name) (persistent : Bool) : IO Environment := do -attrTable ← parserAttributeTableRef.get; -match mkParserOfConstant env attrTable constName with +private def ParserAttribute.add (attrName : Name) (catName : Name) (env : Environment) (declName : Name) (args : Syntax) (persistent : Bool) : IO Environment := do +when args.hasArgs $ throw (IO.userError ("invalid attribute '" ++ toString attrName ++ "', unexpected argument")); +let categories := (parserExtension.getState env).categories; +match mkParserOfConstant env categories declName with | Except.error ex => throw (IO.userError ex) | Except.ok p => do - let parser := p.2; - let tokens := parser.info.collectTokens []; + let parserKind := p.1; + let parser := p.2; + let tokens := parser.info.collectTokens []; env ← tokens.foldlM (fun env token => match addToken env token with | Except.ok env => pure env - | Except.error msg => throw (IO.userError ("invalid parser '" ++ toString constName ++ "', " ++ msg))) + | Except.error msg => throw (IO.userError ("invalid parser '" ++ toString declName ++ "', " ++ msg))) env; let kinds := parser.info.collectKinds {}; let env := kinds.foldl (fun env kind _ => addSyntaxNodeKind env kind) env; - let entry : ParserAttributeEntry := { parserName := constName, kind := p.1, parser := parser }; - let s : ParserAttributeExtensionState := ext.getState env; - -- Remark: addEntry does not handle exceptions. So, we use `addParser` here to make sure it does not throw an exception. - match addParser s.tables constName parser with - | Except.ok _ => pure $ ext.addEntry env entry + match addParser categories catName declName parser with + | Except.ok _ => pure $ parserExtension.addEntry env $ ParserExtensionEntry.parser catName declName parserKind parser | Except.error ex => throw (IO.userError ex) -private def ParserAttribute.mkInitial (builtinTablesRef : Option (IO.Ref ParsingTables)) : IO (ParserAttributeExtensionState) := -match builtinTablesRef with -| none => pure {} -| some tablesRef => do tables ← tablesRef.get; pure { tables := tables } - /- Parser attribute that can be optionally initialized with a builtin parser attribute. TODO: support for scoped attributes. -/ -def registerParserAttribute (attrName : Name) (kind : String) (descr : String) (builtinTables : Option (IO.Ref ParsingTables) := none) : IO ParserAttribute := do -let kindSym := mkNameSimple kind; -attrTable ← parserAttributeTableRef.get; -when (attrTable.contains kindSym) $ throw (IO.userError ("parser attribute '" ++ kind ++ "' has already been defined")); -ext : PersistentEnvExtension Name ParserAttributeEntry ParserAttributeExtensionState ← registerPersistentEnvExtension { - name := attrName, - mkInitial := ParserAttribute.mkInitial builtinTables, - addImportedFn := addImportedParsers builtinTables, - addEntryFn := addParserAttributeEntry, - exportEntriesFn := fun s => s.newEntries.reverse.toArray, - statsFn := fun s => format "number of local entries: " ++ format s.newEntries.length -}; +def registerParserAttribute (attrName : Name) (catName : Name) : IO Unit := do let attrImpl : AttributeImpl := { name := attrName, - descr := descr, - add := fun env constName _ persistent => addParserAttribute env ext constName persistent, + descr := "parser", + add := ParserAttribute.add attrName catName, applicationTime := AttributeApplicationTime.afterCompilation }; -let attr : ParserAttribute := { ext := ext, attr := attrImpl, kind := kind }; -parserAttributeTableRef.modify $ fun table => table.insert kindSym attr; -registerAttribute attrImpl; -pure attr +registerAttribute attrImpl -- declare `termParser` here since it is used everywhere via antiquotations @[init] def regBuiltinTermParserAttr : IO Unit := -registerBuiltinParserAttribute `builtinTermParser `Lean.Parser.builtinTermParsingTable +registerBuiltinParserAttribute `builtinTermParser `term -def mkTermParserAttribute : IO ParserAttribute := -registerParserAttribute `termParser "term" "term parser" (some builtinTermParsingTable) - -@[init mkTermParserAttribute] -constant termParserAttribute : ParserAttribute := arbitrary _ +@[init] def regTermParserAttribute : IO Unit := +registerParserAttribute `termParser `term @[inline] def termParser {k : ParserKind} (rbp : Nat := 0) : Parser k := -{ fn := fun _ => termParserAttribute.runParserFn rbp } +categoryParser `term rbp def dollarSymbol {k : ParserKind} : Parser k := symbol "$" 1 diff --git a/stage0/src/Init/System/IO.lean b/stage0/src/Init/System/IO.lean index 14ef4b2ce0..60c4a9485a 100644 --- a/stage0/src/Init/System/IO.lean +++ b/stage0/src/Init/System/IO.lean @@ -253,6 +253,8 @@ constant Ref.set {α : Type} (r : @& Ref α) (a : α) : IO Unit := arbitrary _ constant Ref.swap {α : Type} (r : @& Ref α) (a : α) : IO α := arbitrary _ @[extern "lean_io_ref_reset"] constant Ref.reset {α : Type} (r : @& Ref α) : IO Unit := arbitrary _ +@[extern "lean_io_ref_ptr_eq"] +constant Ref.ptrEq {α : Type} (r1 r2 : @& Ref α) : IO Bool := arbitrary _ end Prim section @@ -262,6 +264,7 @@ variables {m : Type → Type} [Monad m] [MonadIO m] @[inline] def Ref.set {α : Type} (r : Ref α) (a : α) : m Unit := Prim.liftIO (Prim.Ref.set r a) @[inline] def Ref.swap {α : Type} (r : Ref α) (a : α) : m α := Prim.liftIO (Prim.Ref.swap r a) @[inline] def Ref.reset {α : Type} (r : Ref α) : m Unit := Prim.liftIO (Prim.Ref.reset r) +@[inline] def Ref.ptrEq {α : Type} (r1 r2 : Ref α) : m Bool := Prim.liftIO (Prim.Ref.ptrEq r1 r2) @[inline] def Ref.modify {α : Type} (r : Ref α) (f : α → α) : m Unit := do v ← r.get; r.reset; diff --git a/stage0/src/runtime/io.cpp b/stage0/src/runtime/io.cpp index 12b7d229a6..d1c279ec7b 100644 --- a/stage0/src/runtime/io.cpp +++ b/stage0/src/runtime/io.cpp @@ -354,6 +354,12 @@ extern "C" obj_res lean_io_ref_swap(b_obj_arg ref, obj_arg a, obj_arg) { } } +extern "C" obj_res lean_io_ref_ptr_eq(b_obj_arg ref1, b_obj_arg ref2, obj_arg) { + // TODO: ref_maybe_mt + bool r = ref1 == ref2; // lean_to_ref(ref1)->m_value == lean_to_ref(ref2)->m_value; + return set_io_result(box(r)); +} + void initialize_io() { g_io_error_nullptr_read = mk_string("null reference read"); mark_persistent(g_io_error_nullptr_read); diff --git a/stage0/stdlib/Init/Lean/Elab/Command.c b/stage0/stdlib/Init/Lean/Elab/Command.c index f10b932315..1ea38488d8 100644 --- a/stage0/stdlib/Init/Lean/Elab/Command.c +++ b/stage0/stdlib/Init/Lean/Elab/Command.c @@ -191,6 +191,7 @@ lean_object* l_Lean_Elab_Command_CommandElabM_inhabited(lean_object*); lean_object* l_Lean_Elab_Command_mkBuiltinCommandElabTable(lean_object*); lean_object* l_Lean_Elab_Command_addOpenDecl(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Command_11__toCommandResult(lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__1; lean_object* l___private_Init_Lean_Elab_Command_13__addScopes___main___closed__1; lean_object* l_Lean_Elab_Command_elabCommand___closed__6; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabVariables___closed__3; @@ -220,7 +221,6 @@ extern lean_object* l_Lean_Elab_Term_elabTerm___closed__6; lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Elab_Command_elabCommand___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNotation___closed__2; lean_object* l_Lean_Elab_Command_elabExport___closed__3; -extern lean_object* l_Lean_Parser_mkCommandParserAttribute___closed__4; lean_object* l_Lean_Elab_Command_dbgTrace(lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Command_5__getBetterRef(lean_object*, lean_object*, lean_object*); @@ -310,6 +310,7 @@ lean_object* l_Lean_Elab_Command_getScopes(lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAux___main___at_Lean_Elab_Command_elabCommand___spec__3___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_List_foldlM___main___at___private_Init_Lean_Elab_Term_3__addMacroStack___spec__1___closed__3; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabUniverses___closed__2; +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Command_6__prettyPrint(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_elabExport(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_builtinCommandElabTable; @@ -333,7 +334,6 @@ lean_object* l_Lean_Elab_Command_CommandElabM_monadLog___lambda__1___boxed(lean_ extern lean_object* l_List_head_x21___rarg___closed__2; lean_object* l_PersistentHashMap_containsAux___main___at_Lean_Elab_Command_addBuiltinCommandElab___spec__5___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabVariable___closed__2; -extern lean_object* l_Lean_Parser_registerParserAttribute___closed__5; extern lean_object* l_Lean_Parser_Command_open___elambda__1___closed__2; uint8_t l_Array_contains___at_Lean_findField_x3f___main___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_CommandElabM_MonadQuotation___closed__1; @@ -346,6 +346,7 @@ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabExport___closed__2; lean_object* l_Lean_Elab_Command_elabSetOption___closed__1; lean_object* l_Lean_Elab_Command_Scope_inhabited___closed__1; lean_object* l_Lean_Elab_Command_elabSetOption___closed__2; +extern lean_object* l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; lean_object* l_Lean_Elab_Command_liftIOCore___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_liftIO___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_empty___at_Lean_Elab_Command_mkBuiltinCommandElabTable___spec__3; @@ -358,7 +359,6 @@ lean_object* l_Lean_Elab_Command_modifyScope___closed__1; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabCheck(lean_object*); lean_object* l_Array_filterAux___main___at_Lean_Elab_Command_sortDeclLevelParams___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Elab_Command_addBuiltinCommandElab___spec__5(lean_object*, size_t, lean_object*); -uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_declareBuiltinCommandElab___closed__6; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabEnd(lean_object*); lean_object* l_Lean_Elab_Command_throwAlreadyDeclaredUniverseLevel___rarg___closed__1; @@ -3933,7 +3933,7 @@ x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_1); x_28 = l_Lean_Elab_Command_addBuiltinCommandElab___closed__1; x_29 = lean_string_append(x_28, x_27); lean_dec(x_27); -x_30 = l_Lean_Parser_registerParserAttribute___closed__5; +x_30 = l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; x_31 = lean_string_append(x_29, x_30); lean_ctor_set_tag(x_6, 1); lean_ctor_set(x_6, 0, x_31); @@ -4036,7 +4036,7 @@ x_51 = l_Lean_Name_toStringWithSep___main(x_50, x_1); x_52 = l_Lean_Elab_Command_addBuiltinCommandElab___closed__1; x_53 = lean_string_append(x_52, x_51); lean_dec(x_51); -x_54 = l_Lean_Parser_registerParserAttribute___closed__5; +x_54 = l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; x_55 = lean_string_append(x_53, x_54); x_56 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_56, 0, x_55); @@ -4733,7 +4733,7 @@ lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_obj x_2 = l_Lean_Elab_Command_mkCommandElabAttribute___closed__2; x_3 = l___regBuiltinParser_Lean_Parser_Command_antiquot___closed__2; x_4 = l_Lean_Elab_Command_mkCommandElabAttribute___closed__3; -x_5 = l_Lean_Parser_mkCommandParserAttribute___closed__4; +x_5 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; x_6 = l_Lean_Elab_Command_builtinCommandElabTable; x_7 = l_Lean_Elab_mkElabAttribute___rarg(x_2, x_3, x_4, x_5, x_6, x_1); return x_7; @@ -9832,7 +9832,7 @@ lean_inc(x_6); x_7 = lean_ctor_get(x_5, 1); lean_inc(x_7); lean_dec(x_5); -x_8 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_4, x_6); +x_8 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_4, x_6); lean_dec(x_6); if (x_8 == 0) { @@ -19479,7 +19479,7 @@ x_11 = lean_unsigned_to_nat(1u); x_12 = lean_nat_add(x_3, x_11); lean_dec(x_3); x_13 = l_Lean_Syntax_getId(x_10); -x_14 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_13, x_4); +x_14 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_13, x_4); if (x_14 == 0) { lean_object* x_15; @@ -20156,7 +20156,7 @@ else { lean_object* x_8; uint8_t x_9; x_8 = lean_array_fget(x_2, x_3); -x_9 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_8, x_1); +x_9 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_8, x_1); lean_dec(x_8); if (x_9 == 0) { diff --git a/stage0/stdlib/Init/Lean/Elab/Declaration.c b/stage0/stdlib/Init/Lean/Elab/Declaration.c index fc4eb1aac5..8cf3d43c6e 100644 --- a/stage0/stdlib/Init/Lean/Elab/Declaration.c +++ b/stage0/stdlib/Init/Lean/Elab/Declaration.c @@ -82,12 +82,12 @@ lean_object* l_Lean_Elab_Command_modifyScope___at_Lean_Elab_Command_elabAxiom___ extern lean_object* l_Lean_Parser_Command_namespace___elambda__1___closed__1; extern lean_object* l___regBuiltinParser_Lean_Parser_Command_antiquot___closed__2; lean_object* l_Lean_Elab_Command_throwError___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_elabConstant___closed__7; lean_object* l_Lean_Elab_Command_modifyScope___at_Lean_Elab_Command_elabAxiom___spec__3(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_hole___elambda__1___closed__1; lean_object* l_Lean_Elab_Command_elabTheorem(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Elab_Command_modifyScope___closed__1; -uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_elabDef(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Elab_Command_withDeclId___closed__3; lean_object* l_Lean_Elab_Command_elabAxiom___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -2942,7 +2942,7 @@ x_11 = lean_unsigned_to_nat(1u); x_12 = lean_nat_add(x_3, x_11); lean_dec(x_3); x_13 = l_Lean_Syntax_getId(x_10); -x_14 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_13, x_4); +x_14 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_13, x_4); if (x_14 == 0) { lean_object* x_15; diff --git a/stage0/stdlib/Init/Lean/Elab/Definition.c b/stage0/stdlib/Init/Lean/Elab/Definition.c index c339978d88..41d4c16378 100644 --- a/stage0/stdlib/Init/Lean/Elab/Definition.c +++ b/stage0/stdlib/Init/Lean/Elab/Definition.c @@ -78,6 +78,7 @@ lean_object* l_Lean_Elab_Command_collectUsedFVars(lean_object*, lean_object*, le lean_object* l_Lean_Elab_Command_withUsedWhen___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Command_namespace___elambda__1___closed__1; lean_object* l_Lean_Elab_Command_throwError___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_object*, lean_object*); lean_object* l_Lean_LocalInstances_erase(lean_object*, lean_object*); lean_object* l_Lean_CollectFVars_main___main(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_withUsedWhen_x27(lean_object*); @@ -86,7 +87,6 @@ lean_object* l_Lean_Elab_Term_getLocalInsts(lean_object*, lean_object*); extern lean_object* l_Lean_Elab_Command_modifyScope___closed__1; lean_object* l_Lean_Elab_Command_elabDefLike___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Elab_Command_DefKind_isTheorem(uint8_t); -uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); extern lean_object* l_Lean_Elab_Command_withDeclId___closed__3; lean_object* l_Lean_Elab_Command_sortDeclLevelParams(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_elabDefVal___closed__3; @@ -4261,7 +4261,7 @@ x_11 = lean_unsigned_to_nat(1u); x_12 = lean_nat_add(x_3, x_11); lean_dec(x_3); x_13 = l_Lean_Syntax_getId(x_10); -x_14 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_13, x_4); +x_14 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_13, x_4); if (x_14 == 0) { lean_object* x_15; diff --git a/stage0/stdlib/Init/Lean/Elab/Level.c b/stage0/stdlib/Init/Lean/Elab/Level.c index 50f34c9755..a51bf9ba93 100644 --- a/stage0/stdlib/Init/Lean/Elab/Level.c +++ b/stage0/stdlib/Init/Lean/Elab/Level.c @@ -61,6 +61,7 @@ lean_object* l_Lean_Elab_Level_mkFreshId(lean_object*); lean_object* l_Lean_Elab_Level_elabLevel___main___closed__3; lean_object* l_ReaderT_bind___at_Lean_Elab_Level_LevelElabM_MonadLog___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Elab_Level_LevelElabM_MonadLog___closed__1; +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_object*, lean_object*); lean_object* l_Lean_Elab_Level_elabLevel___main___closed__9; lean_object* l_Lean_Elab_mkMessage___at_Lean_Elab_Level_elabLevel___main___spec__2(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); @@ -69,7 +70,6 @@ lean_object* l_Lean_Elab_Level_mkFreshId___rarg(lean_object*); lean_object* l_Lean_Elab_Level_elabLevel___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(lean_object*); extern lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__1; -uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); lean_object* l_Lean_mkLevelMVar(lean_object*); lean_object* l_Lean_Elab_Level_LevelElabM_MonadLog___lambda__4(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Level_LevelElabM_MonadLog; @@ -1156,7 +1156,7 @@ lean_dec(x_4); x_50 = lean_unsigned_to_nat(0u); x_51 = l_Lean_Syntax_getIdAt(x_1, x_50); x_52 = lean_ctor_get(x_2, 3); -x_53 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_51, x_52); +x_53 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_51, x_52); if (x_53 == 0) { lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; diff --git a/stage0/stdlib/Init/Lean/Elab/Quotation.c b/stage0/stdlib/Init/Lean/Elab/Quotation.c index 160ff9571f..0320606225 100644 --- a/stage0/stdlib/Init/Lean/Elab/Quotation.c +++ b/stage0/stdlib/Init/Lean/Elab/Quotation.c @@ -73,6 +73,7 @@ lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__5(lea lean_object* l_ReaderT_map___at_Lean_Elab_Term_oldGetAntiquotVars___spec__1(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__34; lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_14__toPreterm___main___spec__6(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Format_pretty(lean_object*, lean_object*); lean_object* l_List_map___main___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__7(lean_object*); lean_object* l_List_filterAux___main___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__11___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__6; @@ -135,7 +136,6 @@ lean_object* l___private_Init_Lean_Elab_Quotation_14__toPreterm___main___closed_ lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__2___closed__4; lean_object* l_Lean_Elab_Term_antiquotKind_x3f___boxed(lean_object*); lean_object* l_Lean_Parser_mkInputContext(lean_object*, lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__64; lean_object* lean_array_push(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__1; @@ -163,6 +163,7 @@ lean_object* l___private_Init_Lean_Elab_Quotation_12__letBindRhss___main___close lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_14__toPreterm___main___spec__8(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_stxQuot_expand___closed__24; lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__48; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__6; lean_object* lean_string_utf8_byte_size(lean_object*); lean_object* l_Lean_mkAtom(lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__2; @@ -190,7 +191,6 @@ lean_object* l_Lean_Elab_Term_stxQuot_expand___closed__26; lean_object* l_Lean_Elab_Term_antiquotKind_x3f___closed__1; lean_object* l___private_Init_Lean_Elab_Quotation_1__quoteName___main(lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_3__quoteList___main___rarg___lambda__1___closed__7; -extern lean_object* l_Lean_Parser_termParserAttribute; extern lean_object* l_Lean_nameToExprAux___main___closed__3; lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__9; @@ -338,6 +338,7 @@ lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed lean_object* l_List_filterAux___main___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__6___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_14__toPreterm___main___spec__7(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__1; +extern lean_object* l_Lean_Options_empty; extern lean_object* l_Lean_Parser_Term_beq___elambda__1___closed__1; lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_14__toPreterm___main___spec__11(lean_object*, lean_object*, lean_object*); lean_object* l_List_mapM___main___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -377,6 +378,7 @@ extern lean_object* l___private_Init_Lean_Meta_Message_1__run_x3f___rarg___close lean_object* l_Lean_Elab_Term_stxQuot_expand___closed__20; lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__61; uint8_t l_Lean_Syntax_isAtom(lean_object*); +lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nullKind___closed__2; extern lean_object* l_Lean_Parser_Term_if___elambda__1___closed__1; lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__3___boxed(lean_object*, lean_object*); @@ -550,6 +552,7 @@ lean_object* l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___cl lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Quotation_3__quoteList___main___rarg___lambda__1___closed__6; extern lean_object* l_Lean_Meta_DiscrTree_Trie_format___main___rarg___closed__1; +lean_object* l_Lean_Syntax_formatStxAux___main(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nameToExprAux___main___closed__6; lean_object* l_List_toArrayAux___main___rarg(lean_object*, lean_object*); lean_object* l_ReaderT_pure___at_Lean_Elab_Term_HeadInfo_Inhabited___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*); @@ -5806,7 +5809,7 @@ lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda_ _start: { lean_object* x_1; -x_1 = lean_mk_string("syntax_match: unexpected pattern kind"); +x_1 = lean_mk_string("match_syntax: unexpected pattern kind "); return x_1; } } @@ -5833,10 +5836,23 @@ return x_2; lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___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; -x_5 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__1___closed__3; -x_6 = l_Lean_Elab_Term_throwError___rarg(x_1, x_5, x_3, x_4); -return x_6; +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; lean_object* x_13; lean_object* x_14; +x_5 = lean_box(0); +x_6 = lean_unsigned_to_nat(0u); +lean_inc(x_1); +x_7 = l_Lean_Syntax_formatStxAux___main(x_5, x_6, x_1); +x_8 = l_Lean_Options_empty; +x_9 = l_Lean_Format_pretty(x_7, x_8); +x_10 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_10, 0, x_9); +x_11 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_11, 0, x_10); +x_12 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__1___closed__3; +x_13 = lean_alloc_ctor(8, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_11); +x_14 = l_Lean_Elab_Term_throwError___rarg(x_1, x_13, x_3, x_4); +return x_14; } } lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__2___closed__1() { @@ -6064,7 +6080,7 @@ lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda_ _start: { lean_object* x_1; -x_1 = lean_mk_string("syntax_match: antiquotation must be variable"); +x_1 = lean_mk_string("match_syntax: antiquotation must be variable "); return x_1; } } @@ -6091,10 +6107,23 @@ return x_2; lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__3(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; -x_5 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__3___closed__3; -x_6 = l_Lean_Elab_Term_throwError___rarg(x_1, x_5, x_3, x_4); -return x_6; +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; lean_object* x_13; lean_object* x_14; +x_5 = lean_box(0); +x_6 = lean_unsigned_to_nat(0u); +lean_inc(x_1); +x_7 = l_Lean_Syntax_formatStxAux___main(x_5, x_6, x_1); +x_8 = l_Lean_Options_empty; +x_9 = l_Lean_Format_pretty(x_7, x_8); +x_10 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_10, 0, x_9); +x_11 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_11, 0, x_10); +x_12 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__3___closed__3; +x_13 = lean_alloc_ctor(8, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_11); +x_14 = l_Lean_Elab_Term_throwError___rarg(x_1, x_13, x_3, x_4); +return x_14; } } lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -11403,93 +11432,93 @@ x_23 = l_Lean_Syntax_isOfKind(x_21, x_22); if (x_23 == 0) { x_24 = x_21; -goto block_32; +goto block_40; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; -x_33 = l_Lean_Syntax_getArgs(x_21); -x_34 = lean_array_get_size(x_33); -lean_dec(x_33); -x_35 = lean_unsigned_to_nat(3u); -x_36 = lean_nat_dec_eq(x_34, x_35); -lean_dec(x_34); -if (x_36 == 0) -{ -x_24 = x_21; -goto block_32; -} -else -{ -lean_object* x_37; lean_object* x_38; uint8_t x_39; -x_37 = l_Lean_Syntax_getArg(x_21, x_20); -x_38 = l_Lean_nullKind___closed__2; -lean_inc(x_37); -x_39 = l_Lean_Syntax_isOfKind(x_37, x_38); -if (x_39 == 0) -{ -lean_dec(x_37); -x_24 = x_21; -goto block_32; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; -x_40 = l_Lean_Syntax_getArgs(x_37); -x_41 = lean_array_get_size(x_40); -lean_dec(x_40); -x_42 = lean_unsigned_to_nat(2u); -x_43 = lean_nat_dec_eq(x_41, x_42); +lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; +x_41 = l_Lean_Syntax_getArgs(x_21); +x_42 = lean_array_get_size(x_41); lean_dec(x_41); -if (x_43 == 0) +x_43 = lean_unsigned_to_nat(3u); +x_44 = lean_nat_dec_eq(x_42, x_43); +lean_dec(x_42); +if (x_44 == 0) { -lean_dec(x_37); x_24 = x_21; -goto block_32; +goto block_40; } else { -lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; -x_44 = lean_unsigned_to_nat(0u); -x_45 = l_Lean_Syntax_getArg(x_37, x_44); -x_46 = l_Lean_Syntax_getArg(x_37, x_20); -lean_dec(x_37); -lean_inc(x_46); -x_47 = l_Lean_Syntax_isOfKind(x_46, x_38); +lean_object* x_45; lean_object* x_46; uint8_t x_47; +x_45 = l_Lean_Syntax_getArg(x_21, x_20); +x_46 = l_Lean_nullKind___closed__2; +lean_inc(x_45); +x_47 = l_Lean_Syntax_isOfKind(x_45, x_46); if (x_47 == 0) { -lean_dec(x_46); lean_dec(x_45); x_24 = x_21; -goto block_32; +goto block_40; } else { -lean_object* x_48; lean_object* x_49; uint8_t x_50; -x_48 = l_Lean_Syntax_getArgs(x_46); -lean_dec(x_46); +lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; +x_48 = l_Lean_Syntax_getArgs(x_45); x_49 = lean_array_get_size(x_48); lean_dec(x_48); -x_50 = lean_nat_dec_eq(x_49, x_44); +x_50 = lean_unsigned_to_nat(2u); +x_51 = lean_nat_dec_eq(x_49, x_50); lean_dec(x_49); -if (x_50 == 0) +if (x_51 == 0) { lean_dec(x_45); x_24 = x_21; -goto block_32; +goto block_40; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_52 = lean_unsigned_to_nat(0u); +x_53 = l_Lean_Syntax_getArg(x_45, x_52); +x_54 = l_Lean_Syntax_getArg(x_45, x_20); +lean_dec(x_45); +lean_inc(x_54); +x_55 = l_Lean_Syntax_isOfKind(x_54, x_46); +if (x_55 == 0) +{ +lean_dec(x_54); +lean_dec(x_53); +x_24 = x_21; +goto block_40; +} +else +{ +lean_object* x_56; lean_object* x_57; uint8_t x_58; +x_56 = l_Lean_Syntax_getArgs(x_54); +lean_dec(x_54); +x_57 = lean_array_get_size(x_56); +lean_dec(x_56); +x_58 = lean_nat_dec_eq(x_57, x_52); +lean_dec(x_57); +if (x_58 == 0) +{ +lean_dec(x_53); +x_24 = x_21; +goto block_40; } else { lean_dec(x_21); -x_24 = x_45; -goto block_32; +x_24 = x_53; +goto block_40; } } } } } } -block_32: +block_40: { lean_object* x_25; uint8_t x_26; x_25 = l_Lean_Parser_Term_id___elambda__1___closed__2; @@ -11497,36 +11526,49 @@ lean_inc(x_24); x_26 = l_Lean_Syntax_isOfKind(x_24, x_25); if (x_26 == 0) { -lean_object* x_27; lean_object* x_28; -x_27 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__3___closed__3; -x_28 = l_Lean_Elab_Term_throwError___rarg(x_24, x_27, x_2, x_3); -return x_28; +lean_object* 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; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_27 = lean_box(0); +x_28 = lean_unsigned_to_nat(0u); +lean_inc(x_24); +x_29 = l_Lean_Syntax_formatStxAux___main(x_27, x_28, x_24); +x_30 = l_Lean_Options_empty; +x_31 = l_Lean_Format_pretty(x_29, x_30); +x_32 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_32, 0, x_31); +x_33 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_33, 0, x_32); +x_34 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__3___closed__3; +x_35 = lean_alloc_ctor(8, 2, 0); +lean_ctor_set(x_35, 0, x_34); +lean_ctor_set(x_35, 1, x_33); +x_36 = l_Lean_Elab_Term_throwError___rarg(x_24, x_35, x_2, x_3); +return x_36; } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_2); -x_29 = lean_box(0); -x_30 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_30, 0, x_24); -lean_ctor_set(x_30, 1, x_29); -x_31 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_3); -return x_31; +x_37 = lean_box(0); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_24); +lean_ctor_set(x_38, 1, x_37); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_3); +return x_39; } } } } else { -lean_object* x_51; lean_object* x_52; +lean_object* x_59; lean_object* x_60; lean_dec(x_2); -x_51 = lean_box(0); -x_52 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_3); -return x_52; +x_59 = lean_box(0); +x_60 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_60, 0, x_59); +lean_ctor_set(x_60, 1, x_3); +return x_60; } } } @@ -14055,7 +14097,7 @@ lean_object* _init_l_Array_umapMAux___main___at_Lean_Elab_Term_match__syntax_exp _start: { lean_object* x_1; -x_1 = lean_mk_string("syntax_match: expected exactly one pattern per alternative"); +x_1 = lean_mk_string("match_syntax: expected exactly one pattern per alternative"); return x_1; } } @@ -24835,9 +24877,9 @@ x_6 = l_Lean_Parser_mkParserContext(x_1, x_5); x_7 = l_Lean_Parser_mkParserState(x_2); lean_dec(x_2); x_8 = l_Lean_Parser_ParserState_setPos(x_7, x_3); -x_9 = l_Lean_Parser_termParserAttribute; +x_9 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_10 = l_Lean_Parser_appPrec; -x_11 = l_Lean_Parser_ParserAttribute_runParserFn(x_9, x_10, x_6, x_8); +x_11 = l_Lean_Parser_categoryParserFn(x_9, x_10, x_6, x_8); x_12 = lean_ctor_get(x_11, 3); lean_inc(x_12); if (lean_obj_tag(x_12) == 0) diff --git a/stage0/stdlib/Init/Lean/Elab/Term.c b/stage0/stdlib/Init/Lean/Elab/Term.c index 5666ef74da..33b5f796c1 100644 --- a/stage0/stdlib/Init/Lean/Elab/Term.c +++ b/stage0/stdlib/Init/Lean/Elab/Term.c @@ -428,7 +428,6 @@ lean_object* l_Lean_Elab_Term_getCurrMacroScope(lean_object*, lean_object*); lean_object* l_Lean_MetavarContext_assignExpr(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_findAux___main___at_Lean_Elab_Term_elabTerm___spec__3(lean_object*, size_t, lean_object*); lean_object* l_Lean_Elab_Term_applyResult___boxed(lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_mkTermParserAttribute___closed__4; lean_object* l_Lean_Elab_Term_throwUnexpectedSyntax___rarg___closed__7; lean_object* l_Lean_Elab_Term_mkTermElabAttribute(lean_object*); lean_object* l_List_foldlM___main___at___private_Init_Lean_Elab_Term_3__addMacroStack___spec__1___closed__3; @@ -449,7 +448,6 @@ lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_liftLevelM(lean_object*); lean_object* l_Lean_Elab_Term_elabProp(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_resolveName___closed__8; -extern lean_object* l_Lean_Parser_registerParserAttribute___closed__5; lean_object* l_Lean_LocalDecl_toExpr(lean_object*); lean_object* l_Lean_Elab_Term_termElabAttribute___closed__5; lean_object* l_ReaderT_lift___at___private_Init_Lean_Elab_Term_13__resumePostponed___spec__1(lean_object*); @@ -459,6 +457,7 @@ size_t l_USize_mul(size_t, size_t); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrayLit(lean_object*); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabSort___closed__1; lean_object* l_Lean_Elab_mkMessageAt___at_Lean_Elab_Term_throwError___spec__3(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_Elab_Term_addBuiltinTermElab___spec__9(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_expand___at_Lean_Elab_Term_addBuiltinTermElab___spec__12(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_hole___elambda__1___closed__1; @@ -732,6 +731,7 @@ lean_object* l_List_filterAuxM___main___at___private_Init_Lean_Elab_Term_17__syn lean_object* l_Lean_Elab_Term_elabListLit___closed__3; lean_object* l_Lean_mkNatLit(lean_object*); lean_object* l_Lean_mkStrLit(lean_object*); +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__5; lean_object* l_Lean_Elab_Term_addContext(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_MessageData_coeOfOptExpr___closed__1; extern lean_object* l_Lean_Parser_Term_listLit___elambda__1___closed__2; @@ -3655,7 +3655,7 @@ x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_1); x_28 = l_Lean_Elab_Term_addBuiltinTermElab___closed__1; x_29 = lean_string_append(x_28, x_27); lean_dec(x_27); -x_30 = l_Lean_Parser_registerParserAttribute___closed__5; +x_30 = l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; x_31 = lean_string_append(x_29, x_30); lean_ctor_set_tag(x_6, 1); lean_ctor_set(x_6, 0, x_31); @@ -3758,7 +3758,7 @@ x_51 = l_Lean_Name_toStringWithSep___main(x_50, x_1); x_52 = l_Lean_Elab_Term_addBuiltinTermElab___closed__1; x_53 = lean_string_append(x_52, x_51); lean_dec(x_51); -x_54 = l_Lean_Parser_registerParserAttribute___closed__5; +x_54 = l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; x_55 = lean_string_append(x_53, x_54); x_56 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_56, 0, x_55); @@ -4465,7 +4465,7 @@ lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_obj x_2 = l_Lean_Elab_Term_mkTermElabAttribute___closed__2; x_3 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; x_4 = l_Lean_Elab_Term_mkTermElabAttribute___closed__3; -x_5 = l_Lean_Parser_mkTermParserAttribute___closed__4; +x_5 = l_Lean_Parser_addBuiltinLeadingParser___closed__5; x_6 = l_Lean_Elab_Term_builtinTermElabTable; x_7 = l_Lean_Elab_mkElabAttribute___rarg(x_2, x_3, x_4, x_5, x_6, x_1); return x_7; diff --git a/stage0/stdlib/Init/Lean/Elab/Util.c b/stage0/stdlib/Init/Lean/Elab/Util.c index f9e5f18c26..dc9062155d 100644 --- a/stage0/stdlib/Init/Lean/Elab/Util.c +++ b/stage0/stdlib/Init/Lean/Elab/Util.c @@ -71,7 +71,6 @@ lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_Elab_checkSyntaxNodeKindAtNamespaces___main(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Elab_Util_4__ElabAttribute_addImportedParsers___spec__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Elab_Util_5__ElabAttribute_addExtensionEntry___spec__3(lean_object*); -extern lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; lean_object* l_IO_ofExcept___at___private_Init_Lean_Elab_Util_6__ElabAttribute_add___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Elab_mkElabAttribute___rarg___lambda__2(lean_object*); lean_object* l_Lean_Elab_ElabAttribute_inhabited___closed__6; @@ -216,6 +215,7 @@ lean_object* lean_usize_to_nat(size_t); lean_object* l_Lean_SMap_empty___at_Lean_Elab_ElabAttribute_inhabited___spec__1___closed__3; lean_object* l_AssocList_replace___main___at___private_Init_Lean_Elab_Util_4__ElabAttribute_addImportedParsers___spec__11___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_Elab_ElabAttributeExtensionState_inhabited___spec__1___closed__2; +extern lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; lean_object* l_IO_ofExcept___at___private_Init_Lean_Elab_Util_6__ElabAttribute_add___spec__1(lean_object*, lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_Elab_ElabAttribute_inhabited___spec__1(lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_Util_5__ElabAttribute_addExtensionEntry___spec__5___rarg(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -890,7 +890,7 @@ lean_dec(x_2); lean_dec(x_1); x_5 = l_Lean_Name_toString___closed__1; x_6 = l_Lean_Name_toStringWithSep___main(x_5, x_3); -x_7 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; +x_7 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; x_8 = lean_string_append(x_7, x_6); lean_dec(x_6); x_9 = l_Char_HasRepr___closed__1; diff --git a/stage0/stdlib/Init/Lean/Parser/Command.c b/stage0/stdlib/Init/Lean/Parser/Command.c index 5cba7f6a85..bb20b0c02f 100644 --- a/stage0/stdlib/Init/Lean/Parser/Command.c +++ b/stage0/stdlib/Init/Lean/Parser/Command.c @@ -124,7 +124,6 @@ extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__16; lean_object* l_Lean_Parser_Command_declModifiers___closed__8; lean_object* l_Lean_Parser_Command_def___elambda__1___closed__8; lean_object* l_Lean_Parser_Command_infixr___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_regBuiltinCommandParserAttr___closed__4; lean_object* l_Lean_Parser_Command_partial___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_export___closed__8; lean_object* l_Lean_Parser_Command_structFields___elambda__1___closed__3; @@ -229,7 +228,6 @@ lean_object* l_Lean_Parser_Command_classInductive___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_exit___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_structExplicitBinder___elambda__1___closed__3; extern lean_object* l_Lean_Parser_Term_typeAscription___elambda__1___closed__6; -lean_object* l_Lean_Parser_commandParser___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Command_attributes___elambda__1___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_example; lean_object* l_Lean_Parser_Command_classTk___elambda__1___closed__3; @@ -253,8 +251,6 @@ 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_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_attrInstance___elambda__1___closed__4; lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_Parser_Command_structFields; @@ -289,7 +285,6 @@ extern lean_object* l_Lean_Parser_Term_listLit___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_init__quot___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_abbrev___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_attribute___elambda__1___closed__13; -extern lean_object* l_Lean_Parser_Level_paren___closed__3; lean_object* l_Lean_Parser_Command_structInstBinder___closed__6; lean_object* l_Lean_Parser_Command_theorem___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_openSimple; @@ -306,6 +301,7 @@ lean_object* l_Lean_Parser_Command_openRenamingItem___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_elab___closed__5; lean_object* l_Lean_Parser_Command_instance___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_docComment___closed__2; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__6; lean_object* l_Lean_Parser_regBuiltinCommandParserAttr___closed__2; lean_object* l_Lean_Parser_Command_constant___closed__1; lean_object* l_Lean_Parser_Command_strictInferMod___closed__1; @@ -356,7 +352,6 @@ lean_object* l_Lean_Parser_Command_infixl___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_openSimple___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_introRule___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_example___elambda__1___closed__1; -extern lean_object* l_Lean_Parser_termParserAttribute; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Command_structFields___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_openRenamingItem___closed__4; lean_object* l_Lean_Parser_Command_open___elambda__1___closed__6; @@ -391,6 +386,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Command_antiquot___closed__3; lean_object* l_Lean_Parser_Command_attrInstance___closed__2; lean_object* l_Lean_Parser_Term_stxQuot___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_universe___elambda__1___closed__3; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__2; lean_object* l_Lean_Parser_Command_variables___elambda__1___closed__8; lean_object* l_Lean_Parser_Command_elab; lean_object* l_Lean_Parser_Command_identPrec___closed__5; @@ -399,7 +395,6 @@ lean_object* l_Lean_Parser_Command_structure; lean_object* l_Lean_Parser_Command_declModifiers___closed__6; lean_object* l_Lean_Parser_Command_notation___closed__6; lean_object* l_Lean_Parser_rawIdentFn(lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkCommandParserAttribute___closed__2; lean_object* l___regBuiltinParser_Lean_Parser_Command_declaration(lean_object*); lean_object* l_Lean_Parser_Command_precedence___closed__4; lean_object* l_Lean_Parser_Command_classInductive___elambda__1___closed__2; @@ -407,7 +402,6 @@ lean_object* l_Lean_Parser_Command_reserve___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_openRenamingItem___closed__7; extern lean_object* l_Lean_Parser_unicodeSymbolFn___rarg___closed__1; lean_object* l_Lean_Parser_Command_attribute___elambda__1___closed__10; -lean_object* l_Lean_Parser_mkCommandParserAttribute(lean_object*); lean_object* l_Lean_Parser_Command_protected___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_infix___closed__4; lean_object* l_Lean_Parser_Command_check___elambda__1___closed__1; @@ -448,6 +442,7 @@ lean_object* l_Lean_Parser_Command_declaration___elambda__1(lean_object*, lean_o lean_object* l_Lean_Parser_Command_notation___closed__3; lean_object* l_Lean_Parser_Command_elab___elambda__1___closed__6; extern lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_forall___elambda__1___spec__1___closed__1; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__1; lean_object* l___regBuiltinParser_Lean_Parser_Command_check(lean_object*); lean_object* l_Lean_Parser_Command_postfix___elambda__1___closed__2; lean_object* l_Lean_Parser_Command_prefix___elambda__1___closed__5; @@ -482,7 +477,6 @@ lean_object* l_Lean_Parser_Command_relaxedInferMod; lean_object* l_Lean_Parser_Command_notation___closed__5; lean_object* l_Lean_Parser_Command_open___closed__2; lean_object* l_Lean_Parser_Command_structCtor___closed__6; -lean_object* l_Lean_Parser_mkCommandParserAttribute___closed__1; lean_object* l_Lean_Parser_regBuiltinCommandParserAttr(lean_object*); lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_exit___elambda__1___closed__1; @@ -496,7 +490,6 @@ lean_object* l_Lean_Parser_quotedSymbol(uint8_t); 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_mkCommandParserAttribute___closed__4; lean_object* l_Lean_Parser_Command_inductive___elambda__1___closed__6; extern lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_universes___closed__1; @@ -563,6 +556,7 @@ lean_object* l_Lean_Parser_optionaInfo(lean_object*); lean_object* l_Lean_Parser_Command_def___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_classTk___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_variable___closed__1; +lean_object* l_Lean_Parser_regCommandParserAttribute___closed__2; lean_object* l_Lean_Parser_Command_namespace___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_section___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_attrArg; @@ -572,7 +566,6 @@ lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__15; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Command_declValEqns___elambda__1___spec__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_prefix___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_openSimple___closed__3; -extern lean_object* l_Lean_Parser_Term_explicitUniv___closed__3; lean_object* l_Lean_Parser_Command_reserve___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_openRenamingItem___closed__2; extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__13; @@ -614,6 +607,7 @@ lean_object* l_Lean_Parser_Command_structInstBinder___closed__8; lean_object* l_Lean_Parser_Command_theorem; lean_object* l_Lean_Parser_Command_maxPrec___closed__1; lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__4; +lean_object* l_Lean_Parser_regCommandParserAttribute___closed__1; lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__14; lean_object* l_Lean_Parser_Command_structImplicitBinder___closed__5; lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Term_tupleTail___elambda__1___spec__1(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*); @@ -766,7 +760,6 @@ lean_object* l_Lean_Parser_Command_classTk___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_constant___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_relaxedInferMod___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_declSig___elambda__1(lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__4; extern lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__8; lean_object* l_Lean_Parser_Command_precedenceLit___elambda__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__4; @@ -801,7 +794,8 @@ lean_object* l_Lean_Parser_Command_structExplicitBinder___closed__5; lean_object* l_Lean_Parser_Command_private___closed__2; lean_object* l_Lean_Parser_Command_open___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_openRenaming___elambda__1___closed__4; -lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_Level_paren___closed__4; +lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__12; lean_object* l_Lean_Parser_Command_declValSimple___closed__2; lean_object* l_Lean_Parser_Command_attributes___closed__4; @@ -821,8 +815,8 @@ lean_object* l_Lean_Parser_Command_unsafe___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_openOnly___closed__5; lean_object* l_Lean_Parser_Command_infixl___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_check___elambda__1___closed__8; +lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__5; -lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object*); lean_object* l_Lean_Parser_Command_example___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_namespace___elambda__1___closed__5; extern lean_object* l_Lean_Parser_Term_letIdLhs___closed__1; @@ -843,6 +837,7 @@ lean_object* l_Lean_Parser_Command_abbrev___closed__4; lean_object* l_Lean_Parser_Command_check___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_structInstBinder___closed__1; extern lean_object* l_Lean_Parser_Term_letIdLhs___closed__2; +lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_noncomputable___closed__5; lean_object* l_Lean_Parser_Command_structCtor___closed__7; lean_object* l_Lean_Parser_Command_relaxedInferMod___closed__5; @@ -943,7 +938,7 @@ lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__13; lean_object* l_Lean_Parser_Command_reserve___closed__6; lean_object* l_Lean_Parser_Command_axiom___elambda__1___closed__2; lean_object* l_Lean_Parser_Command_structCtor___closed__5; -lean_object* l_Lean_Parser_builtinCommandParsingTable; +extern lean_object* l_Lean_Parser_builtinCommandParsingTable; extern lean_object* l_Lean_Parser_Term_listLit___elambda__1___closed__9; uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__3; @@ -959,6 +954,7 @@ lean_object* l_Lean_Parser_Command_attrInstance___elambda__1(lean_object*, lean_ extern lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_explicitUniv___elambda__1___spec__2___closed__4; lean_object* l_Lean_Parser_Command_quotedSymbolPrec___closed__2; lean_object* l_Lean_Parser_Command_mixfix___elambda__1___closed__3; +lean_object* l_Lean_Parser_categoryParser(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_prefix___closed__5; lean_object* l_Lean_Parser_Command_structImplicitBinder___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_structure___elambda__1___closed__1; @@ -988,7 +984,6 @@ lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Command_openRenaming___elam lean_object* l_Lean_Parser_Command_notation___closed__1; lean_object* l_Lean_Parser_Command_structInstBinder___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_introRule___closed__6; -lean_object* l_Lean_Parser_mkCommandParserAttribute___closed__3; lean_object* l_Lean_Parser_Command_protected___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_attributes___elambda__1___closed__8; lean_object* l_Lean_Parser_Command_declaration___closed__1; @@ -1022,7 +1017,6 @@ lean_object* l_Lean_Parser_Command_elab___elambda__1___closed__5; lean_object* l_Lean_Parser_unquotedSymbol(uint8_t); lean_object* l_Lean_Parser_Command_structure___closed__4; lean_object* l_Lean_Parser_Command_declModifiers___elambda__1___closed__1; -lean_object* l_Lean_Parser_commandParserAttribute; extern lean_object* l_Lean_Parser_Term_explicitUniv___closed__1; extern lean_object* l_Lean_Parser_Term_typeAscription___closed__1; lean_object* l_Lean_Parser_Command_open___closed__6; @@ -1046,7 +1040,6 @@ 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; lean_object* l_Lean_Parser_Command_quotedSymbolPrec; -lean_object* l_Lean_Parser_mkCommandParserAttribute___closed__5; lean_object* l_Lean_Parser_Command_structFields___closed__7; lean_object* l_Lean_Parser_Command_export___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_section___closed__7; @@ -1102,6 +1095,7 @@ lean_object* l_Lean_Parser_Command_classInductive___elambda__1___closed__9; 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; +extern lean_object* l_Lean_Parser_Term_matchAlt___closed__2; lean_object* l_Lean_Parser_Command_optDeclSig___elambda__1___closed__4; lean_object* l_Lean_Parser_Command_notation___elambda__1___closed__7; lean_object* l_String_trim(lean_object*); @@ -1124,6 +1118,7 @@ lean_object* l_Lean_Parser_Command_exit___closed__3; lean_object* l_Lean_Parser_Command_unsafe___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_mixfixKind___closed__3; lean_object* l_Lean_Parser_Command_infixr___elambda__1___closed__1; +extern lean_object* l_Lean_Parser_Term_typeAscription___closed__2; lean_object* l_Lean_Parser_Command_private___elambda__1___closed__7; lean_object* l_Lean_Parser_Command_symbol; lean_object* l_Lean_Parser_Command_noncomputable___elambda__1___closed__6; @@ -1141,7 +1136,6 @@ extern lean_object* l_Lean_Parser_Term_matchAlt___closed__1; lean_object* l_Lean_Parser_Command_protected___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_introRule___closed__5; lean_object* l_Lean_Parser_Command_set__option___elambda__1___closed__7; -lean_object* l_Lean_Parser_commandParser___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_relaxedInferMod___closed__2; lean_object* l_Lean_Parser_Command_unsafe___elambda__1___closed__1; lean_object* l_Lean_Parser_Command_reserve___elambda__1___closed__6; @@ -1286,6 +1280,7 @@ extern lean_object* l_Lean_Parser_Term_typeAscription___elambda__1___closed__9; lean_object* l_Lean_Parser_Command_openOnly___closed__3; lean_object* l_Lean_Parser_Command_example___elambda__1___closed__6; lean_object* l_Lean_Parser_Command_exit___elambda__1___closed__6; +lean_object* l_Lean_Parser_regCommandParserAttribute(lean_object*); lean_object* l_Lean_Parser_Command_quotedSymbolPrec___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_variables___elambda__1___closed__5; lean_object* l_Lean_Parser_Command_declaration___closed__13; @@ -1296,6 +1291,7 @@ lean_object* l_Lean_Parser_Command_precedence___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_structure___closed__5; lean_object* l_Lean_Parser_Command_infixr___elambda__1___closed__8; lean_object* l_Lean_Parser_Command_abbrev___closed__6; +lean_object* l_Lean_Parser_Term_stxQuot___closed__9; lean_object* l_Lean_Parser_Command_open___closed__9; lean_object* l_Lean_Parser_Command_example___closed__2; lean_object* l_Lean_Parser_Command_reserve___closed__5; @@ -1326,7 +1322,6 @@ lean_object* l_Lean_Parser_Command_attribute___closed__9; lean_object* l_Lean_Parser_Command_infixr___elambda__1___closed__2; lean_object* l_Lean_Parser_Command_introRule___closed__7; lean_object* l_Lean_Parser_Command_constant___elambda__1___closed__2; -lean_object* l_Lean_Parser_regBuiltinCommandParserAttr___closed__3; lean_object* l_Lean_Parser_unicodeSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_attributes___closed__2; lean_object* l_Lean_Parser_Command_private___elambda__1(lean_object*, lean_object*, lean_object*); @@ -1403,35 +1398,17 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_regBuiltinCommandParserAttr___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("builtinCommandParsingTable"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_regBuiltinCommandParserAttr___closed__4() { -_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_regBuiltinCommandParserAttr___closed__3; -x_3 = lean_name_mk_string(x_1, x_2); -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; x_2 = l_Lean_Parser_regBuiltinCommandParserAttr___closed__2; -x_3 = l_Lean_Parser_regBuiltinCommandParserAttr___closed__4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); return x_4; } } -lean_object* _init_l_Lean_Parser_mkCommandParserAttribute___closed__1() { +lean_object* _init_l_Lean_Parser_regCommandParserAttribute___closed__1() { _start: { lean_object* x_1; @@ -1439,83 +1416,33 @@ x_1 = lean_mk_string("commandParser"); return x_1; } } -lean_object* _init_l_Lean_Parser_mkCommandParserAttribute___closed__2() { +lean_object* _init_l_Lean_Parser_regCommandParserAttribute___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_mkCommandParserAttribute___closed__1; +x_2 = l_Lean_Parser_regCommandParserAttribute___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_mkCommandParserAttribute___closed__3() { +lean_object* l_Lean_Parser_regCommandParserAttribute(lean_object* x_1) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_builtinCommandParsingTable; -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_mkCommandParserAttribute___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("command"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkCommandParserAttribute___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("command parser"); -return x_1; -} -} -lean_object* l_Lean_Parser_mkCommandParserAttribute(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; -x_2 = l_Lean_Parser_mkCommandParserAttribute___closed__2; -x_3 = l_Lean_Parser_mkCommandParserAttribute___closed__4; -x_4 = l_Lean_Parser_mkCommandParserAttribute___closed__5; -x_5 = l_Lean_Parser_mkCommandParserAttribute___closed__3; -x_6 = l_Lean_Parser_registerParserAttribute(x_2, x_3, x_4, x_5, x_1); -return x_6; -} -} -lean_object* l_Lean_Parser_commandParser___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; -x_5 = l_Lean_Parser_commandParserAttribute; -x_6 = l_Lean_Parser_ParserAttribute_runParserFn(x_5, x_1, x_3, x_4); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = l_Lean_Parser_regCommandParserAttribute___closed__2; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; +x_4 = l_Lean_Parser_registerParserAttribute(x_2, x_3, x_1); +return x_4; } } lean_object* l_Lean_Parser_commandParser(uint8_t x_1, lean_object* x_2) { _start: { -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_commandParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_3, 0, x_2); -x_4 = l_Lean_Parser_Parser_inhabited___closed__1; -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -lean_object* l_Lean_Parser_commandParser___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_commandParser___lambda__1(x_1, x_2, x_3, x_4); -lean_dec(x_2); -return x_5; +lean_object* x_3; lean_object* x_4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; +x_4 = l_Lean_Parser_categoryParser(x_1, x_3, x_2); +return x_4; } } lean_object* l_Lean_Parser_commandParser___boxed(lean_object* x_1, lean_object* x_2) { @@ -1538,10 +1465,10 @@ x_6 = lean_array_get_size(x_5); lean_dec(x_5); x_7 = lean_ctor_get(x_4, 1); lean_inc(x_7); -x_8 = l_Lean_Parser_commandParserAttribute; +x_8 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; x_9 = lean_unsigned_to_nat(0u); lean_inc(x_3); -x_10 = l_Lean_Parser_ParserAttribute_runParserFn(x_8, x_9, x_3, x_4); +x_10 = l_Lean_Parser_categoryParserFn(x_8, x_9, x_3, x_4); x_11 = lean_ctor_get(x_10, 3); lean_inc(x_11); if (lean_obj_tag(x_11) == 0) @@ -1895,10 +1822,10 @@ x_52 = lean_array_get_size(x_51); lean_dec(x_51); x_53 = lean_ctor_get(x_49, 1); lean_inc(x_53); -x_54 = l_Lean_Parser_termParserAttribute; +x_54 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_55 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_56 = l_Lean_Parser_ParserAttribute_runParserFn(x_54, x_55, x_2, x_49); +x_56 = l_Lean_Parser_categoryParserFn(x_54, x_55, x_2, x_49); x_57 = lean_ctor_get(x_56, 3); lean_inc(x_57); if (lean_obj_tag(x_57) == 0) @@ -1938,9 +1865,9 @@ x_62 = lean_ctor_get(x_61, 0); lean_inc(x_62); x_63 = lean_array_get_size(x_62); lean_dec(x_62); -x_64 = l_Lean_Parser_commandParserAttribute; +x_64 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; lean_inc(x_2); -x_65 = l_Lean_Parser_ParserAttribute_runParserFn(x_64, x_55, x_2, x_61); +x_65 = l_Lean_Parser_categoryParserFn(x_64, x_55, x_2, x_61); x_66 = lean_ctor_get(x_65, 3); lean_inc(x_66); if (lean_obj_tag(x_66) == 0) @@ -2046,28 +1973,34 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_orelseInfo(x_1, x_1); -return x_2; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = l_Lean_Parser_Term_stxQuot___closed__2; -x_2 = l_Lean_Parser_Level_paren___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_typeAscription___closed__2; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_orelseInfo(x_4, x_2); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_stxQuot___closed__1; -x_2 = l_Lean_Parser_Term_stxQuot___closed__3; +x_1 = l_Lean_Parser_Term_stxQuot___closed__3; +x_2 = l_Lean_Parser_Level_paren___closed__4; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -2076,25 +2009,35 @@ lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_stxQuot___elambda__1___closed__2; +x_1 = l_Lean_Parser_Term_stxQuot___closed__1; x_2 = l_Lean_Parser_Term_stxQuot___closed__4; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__6() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_stxQuot___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_stxQuot___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_stxQuot___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_stxQuot___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_stxQuot___closed__5; +x_3 = l_Lean_Parser_Term_stxQuot___closed__6; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__7() { +lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__8() { _start: { lean_object* x_1; @@ -2102,12 +2045,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_stxQuot___elambda__1), 3, 0) return x_1; } } -lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__8() { +lean_object* _init_l_Lean_Parser_Term_stxQuot___closed__9() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_stxQuot___closed__6; -x_2 = l_Lean_Parser_Term_stxQuot___closed__7; +x_1 = l_Lean_Parser_Term_stxQuot___closed__7; +x_2 = l_Lean_Parser_Term_stxQuot___closed__8; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -2118,7 +2061,7 @@ lean_object* _init_l_Lean_Parser_Term_stxQuot() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_stxQuot___closed__8; +x_1 = l_Lean_Parser_Term_stxQuot___closed__9; return x_1; } } @@ -2136,13 +2079,12 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Term_stxQuot(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_stxQuot___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_stxQuot; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_stxQuot___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_stxQuot; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_antiquot___closed__1() { @@ -2151,7 +2093,7 @@ _start: lean_object* x_1; uint8_t x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; x_1 = lean_box(0); x_2 = 0; -x_3 = l_Lean_Parser_mkCommandParserAttribute___closed__4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; x_4 = 1; x_5 = l_Lean_Parser_mkAntiquot(x_2, x_3, x_1, x_4); return x_5; @@ -2196,13 +2138,12 @@ return x_3; lean_object* l___regBuiltinParser_Lean_Parser_Command_antiquot(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_builtinCommandParsingTable; -x_4 = l___regBuiltinParser_Lean_Parser_Command_antiquot___closed__3; -x_5 = l_Lean_Parser_Command_antiquot; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l___regBuiltinParser_Lean_Parser_Command_antiquot___closed__3; +x_4 = l_Lean_Parser_Command_antiquot; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_Command_commentBody___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -6865,9 +6806,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Command_declValSimple___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -11184,7 +11125,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_explicitBinder___closed__1; -x_2 = l_Lean_Parser_Level_paren___closed__3; +x_2 = l_Lean_Parser_Level_paren___closed__4; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -13192,7 +13133,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Command_structExplicitBinder___closed__2; -x_2 = l_Lean_Parser_Level_paren___closed__3; +x_2 = l_Lean_Parser_Level_paren___closed__4; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -15675,7 +15616,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Command_extends___closed__1; -x_2 = l_Lean_Parser_Term_explicitUniv___closed__3; +x_2 = l_Lean_Parser_Term_matchAlt___closed__2; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -17257,13 +17198,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_declaration(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_declaration___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_declaration; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_declaration___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_declaration; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_section___elambda__1___closed__1() { @@ -17636,13 +17576,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_section(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_section___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_section; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_section___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_section; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_namespace___elambda__1___closed__1() { @@ -17958,13 +17897,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_namespace(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_namespace___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_namespace; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_namespace___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_namespace; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_end___elambda__1___closed__1() { @@ -18326,13 +18264,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_end(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_end___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_end; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_end___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_end; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_variable___elambda__1___closed__1() { @@ -18648,13 +18585,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_variable(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_variable___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_variable; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_variable___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_variable; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_variables___elambda__1___closed__1() { @@ -19002,13 +18938,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_variables(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_variables___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_variables; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_variables___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_variables; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_universe___elambda__1___closed__1() { @@ -19324,13 +19259,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_universe(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_universe___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_universe; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_universe___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_universe; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_universes___elambda__1___closed__1() { @@ -19678,13 +19612,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_universes(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_universes___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_universes; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_universes___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_universes; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_check___elambda__1___closed__1() { @@ -19892,9 +19825,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Command_check___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -19930,11 +19863,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Command_check___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Command_check___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Command_check___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Command_check___closed__3() { @@ -19990,13 +19925,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_check(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_check___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_check; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_check___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_check; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_exit___elambda__1___closed__1() { @@ -20275,13 +20209,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_exit(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_exit___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_exit; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_exit___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_exit; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_resolve__name___elambda__1___closed__1() { @@ -20597,13 +20530,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_resolve__name(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_resolve__name___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_resolve__name; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_resolve__name___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_resolve__name; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_elab___elambda__1___closed__1() { @@ -20811,9 +20743,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Command_elab___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -20849,11 +20781,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Command_elab___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Command_elab___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Command_elab___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Command_elab___closed__3() { @@ -20909,13 +20843,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_elab(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_elab___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_elab; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_elab___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_elab; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_init__quot___elambda__1___closed__1() { @@ -21186,13 +21119,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_init__quot(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_init__quot___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_init__quot; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_init__quot___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_init__quot; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_set__option___elambda__1___closed__1() { @@ -21802,13 +21734,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_set__option(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_set__option___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_set__option; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_set__option___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_set__option; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_attribute___elambda__1___closed__1() { @@ -22569,13 +22500,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_attribute(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_attribute___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_attribute; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_attribute___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_attribute; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_export___elambda__1___closed__1() { @@ -23050,7 +22980,7 @@ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; 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_Level_paren___closed__3; +x_3 = l_Lean_Parser_Level_paren___closed__4; x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); return x_4; } @@ -23140,13 +23070,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_export(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_export___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_export; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_export___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_export; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_openHiding___elambda__1___closed__1() { @@ -25745,13 +25674,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_open(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_open___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_open; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_open___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_open; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_maxPrec___elambda__1___closed__1() { @@ -28558,13 +28486,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_reserve(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_reserve___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_reserve; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_reserve___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_reserve; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_Command_mixfixSymbol___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -28796,9 +28723,9 @@ else { lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_21); -x_34 = l_Lean_Parser_termParserAttribute; +x_34 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_35 = lean_unsigned_to_nat(0u); -x_36 = l_Lean_Parser_ParserAttribute_runParserFn(x_34, x_35, x_2, x_22); +x_36 = l_Lean_Parser_categoryParserFn(x_34, x_35, x_2, x_22); x_37 = l_Lean_Parser_Command_mixfix___elambda__1___closed__2; x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_16); x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_11, x_8); @@ -28939,13 +28866,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Command_mixfix(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_mixfix___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_mixfix; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_mixfix___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_mixfix; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Command_identPrec___elambda__1___closed__1() { @@ -29551,9 +29477,9 @@ else { lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_dec(x_28); -x_41 = l_Lean_Parser_termParserAttribute; +x_41 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_42 = lean_unsigned_to_nat(0u); -x_43 = l_Lean_Parser_ParserAttribute_runParserFn(x_41, x_42, x_2, x_29); +x_43 = l_Lean_Parser_categoryParserFn(x_41, x_42, x_2, x_29); x_44 = l_Lean_Parser_Command_notation___elambda__1___closed__2; x_45 = l_Lean_Parser_ParserState_mkNode(x_43, x_44, x_18); x_46 = l_Lean_Parser_mergeOrElseErrors(x_45, x_13, x_10); @@ -29695,9 +29621,9 @@ else { lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_dec(x_80); -x_93 = l_Lean_Parser_termParserAttribute; +x_93 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_94 = lean_unsigned_to_nat(0u); -x_95 = l_Lean_Parser_ParserAttribute_runParserFn(x_93, x_94, x_2, x_81); +x_95 = l_Lean_Parser_categoryParserFn(x_93, x_94, x_2, x_81); x_96 = l_Lean_Parser_Command_notation___elambda__1___closed__2; x_97 = l_Lean_Parser_ParserState_mkNode(x_95, x_96, x_18); x_98 = l_Lean_Parser_mergeOrElseErrors(x_97, x_13, x_10); @@ -29930,13 +29856,12 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Command_notation(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_builtinCommandParsingTable; -x_4 = l_Lean_Parser_Command_notation___elambda__1___closed__2; -x_5 = l_Lean_Parser_Command_notation; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinCommandParsingTable; +x_3 = l_Lean_Parser_Command_notation___elambda__1___closed__2; +x_4 = l_Lean_Parser_Command_notation; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* initialize_Init_Lean_Parser_Term(lean_object*); @@ -29948,36 +29873,19 @@ _G_initialized = true; res = initialize_Init_Lean_Parser_Term(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -res = l_Lean_Parser_mkBuiltinParsingTablesRef(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_builtinCommandParsingTable = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_builtinCommandParsingTable); -lean_dec_ref(res); l_Lean_Parser_regBuiltinCommandParserAttr___closed__1 = _init_l_Lean_Parser_regBuiltinCommandParserAttr___closed__1(); lean_mark_persistent(l_Lean_Parser_regBuiltinCommandParserAttr___closed__1); l_Lean_Parser_regBuiltinCommandParserAttr___closed__2 = _init_l_Lean_Parser_regBuiltinCommandParserAttr___closed__2(); lean_mark_persistent(l_Lean_Parser_regBuiltinCommandParserAttr___closed__2); -l_Lean_Parser_regBuiltinCommandParserAttr___closed__3 = _init_l_Lean_Parser_regBuiltinCommandParserAttr___closed__3(); -lean_mark_persistent(l_Lean_Parser_regBuiltinCommandParserAttr___closed__3); -l_Lean_Parser_regBuiltinCommandParserAttr___closed__4 = _init_l_Lean_Parser_regBuiltinCommandParserAttr___closed__4(); -lean_mark_persistent(l_Lean_Parser_regBuiltinCommandParserAttr___closed__4); res = l_Lean_Parser_regBuiltinCommandParserAttr(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Parser_mkCommandParserAttribute___closed__1 = _init_l_Lean_Parser_mkCommandParserAttribute___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkCommandParserAttribute___closed__1); -l_Lean_Parser_mkCommandParserAttribute___closed__2 = _init_l_Lean_Parser_mkCommandParserAttribute___closed__2(); -lean_mark_persistent(l_Lean_Parser_mkCommandParserAttribute___closed__2); -l_Lean_Parser_mkCommandParserAttribute___closed__3 = _init_l_Lean_Parser_mkCommandParserAttribute___closed__3(); -lean_mark_persistent(l_Lean_Parser_mkCommandParserAttribute___closed__3); -l_Lean_Parser_mkCommandParserAttribute___closed__4 = _init_l_Lean_Parser_mkCommandParserAttribute___closed__4(); -lean_mark_persistent(l_Lean_Parser_mkCommandParserAttribute___closed__4); -l_Lean_Parser_mkCommandParserAttribute___closed__5 = _init_l_Lean_Parser_mkCommandParserAttribute___closed__5(); -lean_mark_persistent(l_Lean_Parser_mkCommandParserAttribute___closed__5); -res = l_Lean_Parser_mkCommandParserAttribute(lean_io_mk_world()); +l_Lean_Parser_regCommandParserAttribute___closed__1 = _init_l_Lean_Parser_regCommandParserAttribute___closed__1(); +lean_mark_persistent(l_Lean_Parser_regCommandParserAttribute___closed__1); +l_Lean_Parser_regCommandParserAttribute___closed__2 = _init_l_Lean_Parser_regCommandParserAttribute___closed__2(); +lean_mark_persistent(l_Lean_Parser_regCommandParserAttribute___closed__2); +res = l_Lean_Parser_regCommandParserAttribute(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_commandParserAttribute = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_commandParserAttribute); lean_dec_ref(res); l_Lean_Parser_Term_stxQuot___elambda__1___closed__1 = _init_l_Lean_Parser_Term_stxQuot___elambda__1___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_stxQuot___elambda__1___closed__1); @@ -30013,6 +29921,8 @@ l_Lean_Parser_Term_stxQuot___closed__7 = _init_l_Lean_Parser_Term_stxQuot___clos lean_mark_persistent(l_Lean_Parser_Term_stxQuot___closed__7); l_Lean_Parser_Term_stxQuot___closed__8 = _init_l_Lean_Parser_Term_stxQuot___closed__8(); lean_mark_persistent(l_Lean_Parser_Term_stxQuot___closed__8); +l_Lean_Parser_Term_stxQuot___closed__9 = _init_l_Lean_Parser_Term_stxQuot___closed__9(); +lean_mark_persistent(l_Lean_Parser_Term_stxQuot___closed__9); l_Lean_Parser_Term_stxQuot = _init_l_Lean_Parser_Term_stxQuot(); lean_mark_persistent(l_Lean_Parser_Term_stxQuot); res = l___regBuiltinParser_Lean_Parser_Term_stxQuot(lean_io_mk_world()); diff --git a/stage0/stdlib/Init/Lean/Parser/Level.c b/stage0/stdlib/Init/Lean/Parser/Level.c index e78e420e39..a34b3f7f07 100644 --- a/stage0/stdlib/Init/Lean/Parser/Level.c +++ b/stage0/stdlib/Init/Lean/Parser/Level.c @@ -30,12 +30,10 @@ lean_object* l_Lean_Parser_regBuiltinLevelParserAttr(lean_object*); lean_object* l_Lean_Parser_Level_num___elambda__1___closed__4; lean_object* l_Lean_Parser_Level_hole___closed__5; lean_object* l_Lean_Parser_Level_hole___closed__3; -lean_object* l_Lean_Parser_levelParserAttribute; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Level_max___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Prod_HasRepr___rarg___closed__1; lean_object* l_Lean_Parser_regBuiltinLevelParserAttr___closed__2; lean_object* l_Lean_Parser_Level_ident; -lean_object* l_Lean_Parser_levelParser___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Level_num(lean_object*); extern lean_object* l_Lean_Level_LevelToFormat_Result_format___main___closed__1; lean_object* l_Lean_Parser_ParserState_pushSyntax(lean_object*, lean_object*); @@ -45,16 +43,15 @@ lean_object* l___regBuiltinParser_Lean_Parser_Level_max(lean_object*); lean_object* l_Lean_Parser_ParserState_mkNode(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_max___elambda__1___closed__1; lean_object* l_Lean_Parser_Level_num___elambda__1___closed__1; -lean_object* l_Lean_Parser_regBuiltinLevelParserAttr___closed__4; +lean_object* l_Lean_Parser_Level_max___closed__7; 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_ParserAttribute_runParserFn(lean_object*, 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_Level_ident___elambda__1___closed__3; lean_object* lean_string_append(lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__4; lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_paren___closed__5; lean_object* l_Lean_Parser_Level_hole___elambda__1___closed__8; @@ -64,7 +61,7 @@ lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__2; lean_object* l_Lean_Parser_Level_num___closed__1; lean_object* l_Lean_Parser_ParserState_mkErrorsAt(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_imax___closed__3; -lean_object* l_Lean_Parser_builtinLevelParsingTable; +extern lean_object* l_Lean_Parser_builtinLevelParsingTable; lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__6; lean_object* l_Lean_Parser_Level_max___elambda__1___closed__2; extern lean_object* l_Lean_Parser_numLit___closed__1; @@ -72,13 +69,11 @@ lean_object* l_Lean_Parser_Level_max___closed__3; lean_object* l_Lean_Parser_Level_max___elambda__1___closed__4; lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__4; lean_object* l_Lean_Parser_Level_paren___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_regBuiltinLevelParserAttr___closed__3; 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*); extern lean_object* l_Lean_Name_appendIndexAfter___closed__1; -lean_object* l_Lean_Parser_levelParser___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); 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; @@ -86,12 +81,14 @@ 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_Level_paren; lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__2; +lean_object* l_Lean_Parser_Level_paren___closed__10; lean_object* l_Lean_Parser_Level_num___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_levelParser___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__4; lean_object* l_Lean_Parser_Level_max___closed__6; lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__1; lean_object* l_Lean_Parser_Level_imax; +lean_object* l_Lean_Parser_regLevelParserAttribute___closed__1; extern lean_object* l_Char_HasRepr___closed__1; lean_object* l_Lean_Parser_Level_hole; extern lean_object* l_Lean_Level_LevelToFormat_Result_format___main___closed__5; @@ -100,6 +97,8 @@ lean_object* l_Lean_Parser_levelParser(uint8_t, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Level_max___elambda__1___spec__1(uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_num___elambda__1___closed__3; lean_object* lean_name_mk_string(lean_object*, lean_object*); +lean_object* l_Lean_Parser_regLevelParserAttribute___closed__2; +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; @@ -107,19 +106,17 @@ lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_obj 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; -extern lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__4; lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__4; lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(lean_object*); -lean_object* l_Lean_Parser_mkLevelParserAttribute___closed__5; lean_object* l_Lean_Parser_ParserState_restore(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__1; lean_object* l_Lean_Parser_Level_paren___closed__4; -lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkLevelParserAttribute___closed__3; +lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_imax___elambda__1___closed__3; -lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_paren___closed__9; lean_object* l_Lean_Parser_Level_addLit___closed__7; +lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__6; lean_object* l_Lean_Parser_Level_hole___elambda__1___closed__2; lean_object* l_Lean_Parser_Level_hole___elambda__1___closed__1; @@ -134,6 +131,7 @@ lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__3; lean_object* l_Lean_Parser_mergeOrElseErrors(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_max; lean_object* l_Lean_Parser_Level_num; +lean_object* l_Lean_Parser_categoryParser(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_Level_max___closed__5; lean_object* l_Lean_Parser_Level_num___closed__3; lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__10; @@ -156,29 +154,25 @@ lean_object* l_Lean_Parser_Level_addLit___elambda__1___closed__3; lean_object* l_Lean_Parser_Level_max___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Level_ident(lean_object*); lean_object* l_Lean_Parser_Level_addLit; +lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object*, lean_object*, lean_object*, lean_object*); 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_mkLevelParserAttribute___closed__1; 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; lean_object* l_Lean_Parser_Level_imax___closed__1; lean_object* l_Lean_Parser_Level_imax___closed__6; -lean_object* l_Lean_Parser_mkLevelParserAttribute___closed__2; lean_object* l_Lean_Parser_Level_addLit___closed__4; lean_object* l_Lean_Parser_ParserState_mkUnexpectedError(lean_object*, lean_object*); 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*); -extern lean_object* l_Lean_Parser_Parser_inhabited___closed__1; -lean_object* l_Lean_Parser_mkLevelParserAttribute___closed__4; 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; -lean_object* l_Lean_Parser_mkLevelParserAttribute(lean_object*); lean_object* l_Lean_Parser_Level_addLit___closed__1; lean_object* l_Lean_Parser_Level_max___closed__1; lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__5; @@ -204,35 +198,17 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_regBuiltinLevelParserAttr___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("builtinLevelParsingTable"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_regBuiltinLevelParserAttr___closed__4() { -_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_regBuiltinLevelParserAttr___closed__3; -x_3 = lean_name_mk_string(x_1, x_2); -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; x_2 = l_Lean_Parser_regBuiltinLevelParserAttr___closed__2; -x_3 = l_Lean_Parser_regBuiltinLevelParserAttr___closed__4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); return x_4; } } -lean_object* _init_l_Lean_Parser_mkLevelParserAttribute___closed__1() { +lean_object* _init_l_Lean_Parser_regLevelParserAttribute___closed__1() { _start: { lean_object* x_1; @@ -240,83 +216,33 @@ x_1 = lean_mk_string("levelParser"); return x_1; } } -lean_object* _init_l_Lean_Parser_mkLevelParserAttribute___closed__2() { +lean_object* _init_l_Lean_Parser_regLevelParserAttribute___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_mkLevelParserAttribute___closed__1; +x_2 = l_Lean_Parser_regLevelParserAttribute___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_mkLevelParserAttribute___closed__3() { +lean_object* l_Lean_Parser_regLevelParserAttribute(lean_object* x_1) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_builtinLevelParsingTable; -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_mkLevelParserAttribute___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("level"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkLevelParserAttribute___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("universe level parser"); -return x_1; -} -} -lean_object* l_Lean_Parser_mkLevelParserAttribute(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; -x_2 = l_Lean_Parser_mkLevelParserAttribute___closed__2; -x_3 = l_Lean_Parser_mkLevelParserAttribute___closed__4; -x_4 = l_Lean_Parser_mkLevelParserAttribute___closed__5; -x_5 = l_Lean_Parser_mkLevelParserAttribute___closed__3; -x_6 = l_Lean_Parser_registerParserAttribute(x_2, x_3, x_4, x_5, x_1); -return x_6; -} -} -lean_object* l_Lean_Parser_levelParser___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; -x_5 = l_Lean_Parser_levelParserAttribute; -x_6 = l_Lean_Parser_ParserAttribute_runParserFn(x_5, x_1, x_3, x_4); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = l_Lean_Parser_regLevelParserAttribute___closed__2; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; +x_4 = l_Lean_Parser_registerParserAttribute(x_2, x_3, x_1); +return x_4; } } lean_object* l_Lean_Parser_levelParser(uint8_t x_1, lean_object* x_2) { _start: { -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_levelParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_3, 0, x_2); -x_4 = l_Lean_Parser_Parser_inhabited___closed__1; -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -lean_object* l_Lean_Parser_levelParser___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_levelParser___lambda__1(x_1, x_2, x_3, x_4); -lean_dec(x_2); -return x_5; +lean_object* x_3; lean_object* x_4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; +x_4 = l_Lean_Parser_categoryParser(x_1, x_3, x_2); +return x_4; } } lean_object* l_Lean_Parser_levelParser___boxed(lean_object* x_1, lean_object* x_2) { @@ -585,10 +511,10 @@ 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; -x_19 = l_Lean_Parser_levelParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_20 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = lean_ctor_get(x_21, 3); lean_inc(x_22); if (lean_obj_tag(x_22) == 0) @@ -714,6 +640,17 @@ return x_3; lean_object* _init_l_Lean_Parser_Level_paren___closed__3() { _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_addBuiltinLeadingParser___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* _init_l_Lean_Parser_Level_paren___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); x_2 = l_Lean_Parser_Level_paren___elambda__1___closed__8; @@ -721,49 +658,51 @@ x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); return x_3; } } -lean_object* _init_l_Lean_Parser_Level_paren___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Level_paren___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; -} -} lean_object* _init_l_Lean_Parser_Level_paren___closed__5() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_paren___closed__2; -x_2 = l_Lean_Parser_Level_paren___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Level_paren___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Level_paren___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Level_paren___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_paren___elambda__1___closed__4; +x_1 = l_Lean_Parser_Level_paren___closed__2; x_2 = l_Lean_Parser_Level_paren___closed__5; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Level_paren___closed__7() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Level_paren___elambda__1___closed__4; +x_2 = l_Lean_Parser_Level_paren___closed__6; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Level_paren___closed__8() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Level_paren___elambda__1___closed__6; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Level_paren___closed__6; +x_3 = l_Lean_Parser_Level_paren___closed__7; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Level_paren___closed__8() { +lean_object* _init_l_Lean_Parser_Level_paren___closed__9() { _start: { lean_object* x_1; @@ -771,12 +710,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Level_paren___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Level_paren___closed__9() { +lean_object* _init_l_Lean_Parser_Level_paren___closed__10() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_paren___closed__7; -x_2 = l_Lean_Parser_Level_paren___closed__8; +x_1 = l_Lean_Parser_Level_paren___closed__8; +x_2 = l_Lean_Parser_Level_paren___closed__9; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -787,20 +726,19 @@ lean_object* _init_l_Lean_Parser_Level_paren() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Level_paren___closed__9; +x_1 = l_Lean_Parser_Level_paren___closed__10; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Level_paren(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_paren___elambda__1___closed__4; -x_5 = l_Lean_Parser_Level_paren; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_paren___elambda__1___closed__4; +x_4 = l_Lean_Parser_Level_paren; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Level_max___elambda__1___spec__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -813,10 +751,10 @@ x_6 = lean_array_get_size(x_5); lean_dec(x_5); x_7 = lean_ctor_get(x_4, 1); lean_inc(x_7); -x_8 = l_Lean_Parser_levelParserAttribute; +x_8 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_9 = l_Lean_Parser_appPrec; lean_inc(x_3); -x_10 = l_Lean_Parser_ParserAttribute_runParserFn(x_8, x_9, x_3, x_4); +x_10 = l_Lean_Parser_categoryParserFn(x_8, x_9, x_3, x_4); x_11 = lean_ctor_get(x_10, 3); lean_inc(x_11); if (lean_obj_tag(x_11) == 0) @@ -996,10 +934,10 @@ 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_levelParserAttribute; +x_23 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_24 = l_Lean_Parser_appPrec; lean_inc(x_2); -x_25 = l_Lean_Parser_ParserAttribute_runParserFn(x_23, x_24, x_2, x_19); +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) @@ -1059,36 +997,49 @@ return x_2; lean_object* _init_l_Lean_Parser_Level_max___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_max___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; +x_3 = l_Lean_Parser_appPrec; +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Level_max___closed__3() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Level_max___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Level_max___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Level_max___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Level_max___elambda__1___closed__1; -x_2 = l_Lean_Parser_Level_max___closed__2; +x_2 = l_Lean_Parser_Level_max___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Level_max___closed__4() { +lean_object* _init_l_Lean_Parser_Level_max___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Level_max___elambda__1___closed__3; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Level_max___closed__3; +x_3 = l_Lean_Parser_Level_max___closed__4; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Level_max___closed__5() { +lean_object* _init_l_Lean_Parser_Level_max___closed__6() { _start: { lean_object* x_1; @@ -1096,12 +1047,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Level_max___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Level_max___closed__6() { +lean_object* _init_l_Lean_Parser_Level_max___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_max___closed__4; -x_2 = l_Lean_Parser_Level_max___closed__5; +x_1 = l_Lean_Parser_Level_max___closed__5; +x_2 = l_Lean_Parser_Level_max___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); @@ -1112,7 +1063,7 @@ lean_object* _init_l_Lean_Parser_Level_max() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Level_max___closed__6; +x_1 = l_Lean_Parser_Level_max___closed__7; return x_1; } } @@ -1130,13 +1081,12 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Level_max(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_max___elambda__1___closed__1; -x_5 = l_Lean_Parser_Level_max; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_max___elambda__1___closed__1; +x_4 = l_Lean_Parser_Level_max; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Level_imax___elambda__1___closed__1() { @@ -1268,10 +1218,10 @@ 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_levelParserAttribute; +x_23 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_24 = l_Lean_Parser_appPrec; lean_inc(x_2); -x_25 = l_Lean_Parser_ParserAttribute_runParserFn(x_23, x_24, x_2, x_19); +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) @@ -1331,11 +1281,13 @@ return x_2; lean_object* _init_l_Lean_Parser_Level_imax___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Level_imax___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Level_max___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Level_imax___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Level_imax___closed__3() { @@ -1391,13 +1343,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_imax(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_imax___elambda__1___closed__1; -x_5 = l_Lean_Parser_Level_imax; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_imax___elambda__1___closed__1; +x_4 = l_Lean_Parser_Level_imax; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Level_hole___elambda__1___closed__1() { @@ -1668,13 +1619,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_hole(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_hole___elambda__1___closed__2; -x_5 = l_Lean_Parser_Level_hole; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_hole___elambda__1___closed__2; +x_4 = l_Lean_Parser_Level_hole; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Level_num___elambda__1___closed__1() { @@ -1832,13 +1782,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_num(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_num___elambda__1___closed__2; -x_5 = l_Lean_Parser_Level_num; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_num___elambda__1___closed__2; +x_4 = l_Lean_Parser_Level_num; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Level_ident___elambda__1___closed__1() { @@ -2007,13 +1956,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_ident(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_ident___elambda__1___closed__1; -x_5 = l_Lean_Parser_Level_ident; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_ident___elambda__1___closed__1; +x_4 = l_Lean_Parser_Level_ident; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Level_addLit___elambda__1___closed__1() { @@ -2250,13 +2198,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Level_addLit(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_builtinLevelParsingTable; -x_4 = l_Lean_Parser_Level_addLit___elambda__1___closed__2; -x_5 = l_Lean_Parser_Level_addLit; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinLevelParsingTable; +x_3 = l_Lean_Parser_Level_addLit___elambda__1___closed__2; +x_4 = l_Lean_Parser_Level_addLit; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* initialize_Init_Lean_Parser_Parser(lean_object*); @@ -2268,36 +2215,19 @@ _G_initialized = true; res = initialize_Init_Lean_Parser_Parser(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -res = l_Lean_Parser_mkBuiltinParsingTablesRef(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_builtinLevelParsingTable = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_builtinLevelParsingTable); -lean_dec_ref(res); l_Lean_Parser_regBuiltinLevelParserAttr___closed__1 = _init_l_Lean_Parser_regBuiltinLevelParserAttr___closed__1(); lean_mark_persistent(l_Lean_Parser_regBuiltinLevelParserAttr___closed__1); l_Lean_Parser_regBuiltinLevelParserAttr___closed__2 = _init_l_Lean_Parser_regBuiltinLevelParserAttr___closed__2(); lean_mark_persistent(l_Lean_Parser_regBuiltinLevelParserAttr___closed__2); -l_Lean_Parser_regBuiltinLevelParserAttr___closed__3 = _init_l_Lean_Parser_regBuiltinLevelParserAttr___closed__3(); -lean_mark_persistent(l_Lean_Parser_regBuiltinLevelParserAttr___closed__3); -l_Lean_Parser_regBuiltinLevelParserAttr___closed__4 = _init_l_Lean_Parser_regBuiltinLevelParserAttr___closed__4(); -lean_mark_persistent(l_Lean_Parser_regBuiltinLevelParserAttr___closed__4); res = l_Lean_Parser_regBuiltinLevelParserAttr(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Parser_mkLevelParserAttribute___closed__1 = _init_l_Lean_Parser_mkLevelParserAttribute___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkLevelParserAttribute___closed__1); -l_Lean_Parser_mkLevelParserAttribute___closed__2 = _init_l_Lean_Parser_mkLevelParserAttribute___closed__2(); -lean_mark_persistent(l_Lean_Parser_mkLevelParserAttribute___closed__2); -l_Lean_Parser_mkLevelParserAttribute___closed__3 = _init_l_Lean_Parser_mkLevelParserAttribute___closed__3(); -lean_mark_persistent(l_Lean_Parser_mkLevelParserAttribute___closed__3); -l_Lean_Parser_mkLevelParserAttribute___closed__4 = _init_l_Lean_Parser_mkLevelParserAttribute___closed__4(); -lean_mark_persistent(l_Lean_Parser_mkLevelParserAttribute___closed__4); -l_Lean_Parser_mkLevelParserAttribute___closed__5 = _init_l_Lean_Parser_mkLevelParserAttribute___closed__5(); -lean_mark_persistent(l_Lean_Parser_mkLevelParserAttribute___closed__5); -res = l_Lean_Parser_mkLevelParserAttribute(lean_io_mk_world()); +l_Lean_Parser_regLevelParserAttribute___closed__1 = _init_l_Lean_Parser_regLevelParserAttribute___closed__1(); +lean_mark_persistent(l_Lean_Parser_regLevelParserAttribute___closed__1); +l_Lean_Parser_regLevelParserAttribute___closed__2 = _init_l_Lean_Parser_regLevelParserAttribute___closed__2(); +lean_mark_persistent(l_Lean_Parser_regLevelParserAttribute___closed__2); +res = l_Lean_Parser_regLevelParserAttribute(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_levelParserAttribute = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_levelParserAttribute); lean_dec_ref(res); l_Lean_Parser_Level_paren___elambda__1___closed__1 = _init_l_Lean_Parser_Level_paren___elambda__1___closed__1(); lean_mark_persistent(l_Lean_Parser_Level_paren___elambda__1___closed__1); @@ -2345,6 +2275,8 @@ l_Lean_Parser_Level_paren___closed__8 = _init_l_Lean_Parser_Level_paren___closed lean_mark_persistent(l_Lean_Parser_Level_paren___closed__8); l_Lean_Parser_Level_paren___closed__9 = _init_l_Lean_Parser_Level_paren___closed__9(); lean_mark_persistent(l_Lean_Parser_Level_paren___closed__9); +l_Lean_Parser_Level_paren___closed__10 = _init_l_Lean_Parser_Level_paren___closed__10(); +lean_mark_persistent(l_Lean_Parser_Level_paren___closed__10); l_Lean_Parser_Level_paren = _init_l_Lean_Parser_Level_paren(); lean_mark_persistent(l_Lean_Parser_Level_paren); res = l___regBuiltinParser_Lean_Parser_Level_paren(lean_io_mk_world()); @@ -2374,6 +2306,8 @@ l_Lean_Parser_Level_max___closed__5 = _init_l_Lean_Parser_Level_max___closed__5( lean_mark_persistent(l_Lean_Parser_Level_max___closed__5); l_Lean_Parser_Level_max___closed__6 = _init_l_Lean_Parser_Level_max___closed__6(); lean_mark_persistent(l_Lean_Parser_Level_max___closed__6); +l_Lean_Parser_Level_max___closed__7 = _init_l_Lean_Parser_Level_max___closed__7(); +lean_mark_persistent(l_Lean_Parser_Level_max___closed__7); l_Lean_Parser_Level_max = _init_l_Lean_Parser_Level_max(); lean_mark_persistent(l_Lean_Parser_Level_max); res = l___regBuiltinParser_Lean_Parser_Level_max(lean_io_mk_world()); diff --git a/stage0/stdlib/Init/Lean/Parser/Module.c b/stage0/stdlib/Init/Lean/Parser/Module.c index 36a6c5c72d..0d19314e3e 100644 --- a/stage0/stdlib/Init/Lean/Parser/Module.c +++ b/stage0/stdlib/Init/Lean/Parser/Module.c @@ -43,7 +43,6 @@ lean_object* l_Lean_Parser_Module_import; lean_object* l_Lean_Parser_Module_import___elambda__1___closed__2; lean_object* l_Lean_Parser_Module_header___closed__4; lean_object* l_Lean_Parser_mkInputContext(lean_object*, lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_forMAux___main___at___private_Init_Lean_Parser_Module_4__testModuleParserAux___main___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); @@ -51,6 +50,7 @@ lean_object* l_Lean_Parser_Module_prelude___elambda__1___closed__1; lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_PersistentArray_forM___at___private_Init_Lean_Parser_Module_4__testModuleParserAux___main___spec__6(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Module_updateTokens___closed__1; lean_object* l_Lean_Parser_Module_import___closed__9; lean_object* l_Lean_Parser_isExitCommand___boxed(lean_object*); lean_object* l_PersistentArray_push___rarg(lean_object*, lean_object*); @@ -68,6 +68,7 @@ lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Module_2__mkEOI(lean_object*); lean_object* l_Lean_Parser_Module_prelude___closed__4; lean_object* l_IO_readTextFile___at_Lean_Parser_parseFile___spec__1(lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__2; lean_object* l_Lean_Parser_Module_header___elambda__1___closed__1; lean_object* l___private_Init_Lean_Parser_Module_4__testModuleParserAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_initCacheForInput(lean_object*); @@ -112,6 +113,7 @@ lean_object* l_Array_forMAux___main___at___private_Init_Lean_Parser_Module_4__te uint8_t l_PersistentArray_isEmpty___rarg(lean_object*); lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); lean_object* l_Lean_Parser_parseFileAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Trie_Inhabited(lean_object*); extern lean_object* l_Lean_Parser_Level_ident___elambda__1___closed__4; lean_object* l_PersistentArray_forMAux___main___at___private_Init_Lean_Parser_Module_4__testModuleParserAux___main___spec__7(lean_object*, lean_object*, lean_object*); lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(lean_object*); @@ -121,8 +123,8 @@ lean_object* l_Lean_MessageLog_forM___at___private_Init_Lean_Parser_Module_4__te lean_object* l_Lean_Parser_Module_header; lean_object* l_Lean_Parser_Module_import___closed__6; lean_object* l_Lean_Parser_Module_header___closed__5; +lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Module_prelude___closed__5; -extern lean_object* l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1; lean_object* l_Lean_Parser_Module_import___closed__2; lean_object* l_Lean_Parser_ModuleParserState_inhabited; lean_object* l_Lean_Parser_Module_prelude___elambda__1___closed__5; @@ -142,7 +144,6 @@ lean_object* l_Lean_Parser_Module_import___closed__7; lean_object* l___private_Init_Lean_Parser_Module_4__testModuleParserAux(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolInfo(lean_object*, lean_object*); lean_object* l_Array_forMAux___main___at___private_Init_Lean_Parser_Module_4__testModuleParserAux___main___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_commandParserAttribute; lean_object* l_Lean_Parser_Module_prelude___elambda__1___closed__6; lean_object* l_Lean_Parser_Module_prelude___closed__2; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Module_header___elambda__1___spec__1(uint8_t, lean_object*, lean_object*, lean_object*); @@ -1404,6 +1405,14 @@ x_6 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Module_header___elambda__1__ return x_6; } } +lean_object* _init_l_Lean_Parser_Module_updateTokens___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_Trie_Inhabited(lean_box(0)); +return x_1; +} +} lean_object* l_Lean_Parser_Module_updateTokens(lean_object* x_1) { _start: { @@ -1421,7 +1430,7 @@ if (lean_obj_tag(x_6) == 0) { lean_object* x_7; lean_object* x_8; lean_dec(x_6); -x_7 = l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1; +x_7 = l_Lean_Parser_Module_updateTokens___closed__1; x_8 = l_unreachable_x21___rarg(x_7); lean_ctor_set(x_1, 2, x_8); return x_1; @@ -1454,7 +1463,7 @@ if (lean_obj_tag(x_15) == 0) { lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_dec(x_15); -x_16 = l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1; +x_16 = l_Lean_Parser_Module_updateTokens___closed__1; x_17 = l_unreachable_x21___rarg(x_16); x_18 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_18, 0, x_10); @@ -1757,10 +1766,10 @@ lean_ctor_set(x_15, 1, x_5); lean_ctor_set(x_15, 2, x_12); lean_ctor_set(x_15, 3, x_13); x_16 = l_Lean_Parser_whitespace___main(x_11, x_15); -x_17 = l_Lean_Parser_commandParserAttribute; +x_17 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; x_18 = lean_unsigned_to_nat(0u); lean_inc(x_11); -x_19 = l_Lean_Parser_ParserAttribute_runParserFn(x_17, x_18, x_11, x_16); +x_19 = l_Lean_Parser_categoryParserFn(x_17, x_18, x_11, x_16); x_20 = lean_ctor_get(x_19, 3); lean_inc(x_20); if (lean_obj_tag(x_20) == 0) @@ -1840,10 +1849,10 @@ lean_ctor_set(x_43, 1, x_5); lean_ctor_set(x_43, 2, x_40); lean_ctor_set(x_43, 3, x_41); x_44 = l_Lean_Parser_whitespace___main(x_39, x_43); -x_45 = l_Lean_Parser_commandParserAttribute; +x_45 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; x_46 = lean_unsigned_to_nat(0u); lean_inc(x_39); -x_47 = l_Lean_Parser_ParserAttribute_runParserFn(x_45, x_46, x_39, x_44); +x_47 = l_Lean_Parser_categoryParserFn(x_45, x_46, x_39, x_44); x_48 = lean_ctor_get(x_47, 3); lean_inc(x_48); if (lean_obj_tag(x_48) == 0) @@ -3107,6 +3116,8 @@ l_Lean_Parser_Module_header___closed__7 = _init_l_Lean_Parser_Module_header___cl lean_mark_persistent(l_Lean_Parser_Module_header___closed__7); l_Lean_Parser_Module_header = _init_l_Lean_Parser_Module_header(); lean_mark_persistent(l_Lean_Parser_Module_header); +l_Lean_Parser_Module_updateTokens___closed__1 = _init_l_Lean_Parser_Module_updateTokens___closed__1(); +lean_mark_persistent(l_Lean_Parser_Module_updateTokens___closed__1); l_Lean_Parser_ModuleParserState_inhabited___closed__1 = _init_l_Lean_Parser_ModuleParserState_inhabited___closed__1(); lean_mark_persistent(l_Lean_Parser_ModuleParserState_inhabited___closed__1); l_Lean_Parser_ModuleParserState_inhabited = _init_l_Lean_Parser_ModuleParserState_inhabited(); diff --git a/stage0/stdlib/Init/Lean/Parser/Parser.c b/stage0/stdlib/Init/Lean/Parser/Parser.c index b7a7454769..fc1047ebb6 100644 --- a/stage0/stdlib/Init/Lean/Parser/Parser.c +++ b/stage0/stdlib/Init/Lean/Parser/Parser.c @@ -18,7 +18,7 @@ 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*); lean_object* l_Lean_Syntax_foldArgs___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_mkParser___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_charLit___boxed(lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__1(lean_object*); lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__2; @@ -26,30 +26,25 @@ lean_object* l_Lean_Parser_builtinTokenTable; lean_object* l_Lean_Parser_finishCommentBlock(lean_object*, lean_object*, lean_object*); lean_object* lean_string_push(lean_object*, uint32_t); extern lean_object* l_Lean_Name_toString___closed__1; -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_charLit___closed__1; lean_object* l_Lean_Parser_andthenInfo___elambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___rarg(lean_object*); lean_object* l_Lean_Parser_symbolAux___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__6; -lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__1; lean_object* l_Lean_Parser_hashOrelse(uint8_t); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__7___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___boxed(lean_object*, lean_object*, lean_object*); size_t l_USize_add(size_t, size_t); -lean_object* l___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___closed__1; extern lean_object* l_Lean_fieldIdxKind; lean_object* l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_forArgsM___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTermParserAttribute(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrec___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__1; uint8_t l_RBNode_isRed___rarg(lean_object*); lean_object* l_Lean_Parser_andthenFn___boxed(lean_object*); uint8_t l_Lean_Parser_checkTailWs(lean_object*); +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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, 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*); @@ -60,7 +55,6 @@ lean_object* l_Lean_Syntax_foldSepRevArgs___rarg(lean_object*, lean_object*, lea extern lean_object* l___private_Init_Lean_Compiler_InitAttr_2__isUnitType___closed__1; extern lean_object* l___private_Init_Lean_Environment_8__persistentEnvExtensionsRef; lean_object* l_Lean_Parser_ParserState_mkError(lean_object*, lean_object*); -lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_octalNumberFn___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserContext(lean_object*, lean_object*); lean_object* l_Lean_Parser_hashAndthen___boxed(lean_object*); @@ -69,53 +63,47 @@ lean_object* l_Lean_Parser_optional___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenConfig_toStr___closed__1; lean_object* l_Lean_Parser_manyFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_InputContext_inhabited___closed__1; +lean_object* l_PersistentHashMap_findAux___main___at_Lean_Parser_addLeadingParser___spec__2(lean_object*, size_t, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Parser_sepByInfo(lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5; -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_shrinkStack___boxed(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_orelseFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1___rarg___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_decimalNumberFn___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nameToExprAux___main___closed__1; lean_object* l_Lean_Syntax_foldSepRevArgsM(lean_object*, lean_object*); lean_object* l_unreachable_x21___rarg(lean_object*); extern lean_object* l_Lean_nullKind; +lean_object* l_Lean_Parser_mkParserExtension___closed__2; lean_object* l_Lean_Parser_andthenAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_octalNumberFn___closed__1; lean_object* l_Lean_Parser_many1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_many(uint8_t, lean_object*); -lean_object* l_Lean_Parser_mkTermParserAttribute___closed__2; lean_object* l_Lean_Parser_FirstTokens_toStr(lean_object*); lean_object* l_Lean_Parser_checkLeadingFn(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_fieldIdxKind___closed__2; lean_object* l_Lean_Syntax_getOptional_x3f(lean_object*); lean_object* l_Lean_Parser_strAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_rawCh___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* lean_array_uget(lean_object*, size_t); extern lean_object* l_Lean_Syntax_formatStxAux___main___closed__5; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Array_foldSepBy___spec__1(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_List_repr___rarg___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg(lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__2(lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_optionaInfo___elambda__2(lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1; lean_object* l_Lean_Parser_ParserFn_inhabited___rarg(lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_binNumberFn___closed__1; lean_object* l_Lean_Parser_hexNumberFn___closed__1; lean_object* l_Lean_Syntax_foldSepRevArgs(lean_object*); lean_object* l_Lean_Parser_binNumberFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_List_foldlM___main___at_Lean_Parser_addParserTokens___spec__1(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_many___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_numberFnAux(lean_object*, lean_object*); -lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenConfig_HasToString___closed__1; 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*); @@ -128,17 +116,17 @@ lean_object* l_Lean_Parser_hexNumberFn___boxed(lean_object*, lean_object*, lean_ lean_object* l_Lean_Parser_trailingLoop___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(lean_object*, lean_object*); extern size_t l_PersistentHashMap_insertAux___main___rarg___closed__2; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldSepBy___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString___main(lean_object*); lean_object* l_Lean_Parser_longestMatchFn(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_Parser_addTrailingParser___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___closed__1; +lean_object* l_Lean_Parser_parserExtension___elambda__1___boxed(lean_object*); lean_object* l_Lean_Syntax_foldSepArgs___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserExtension___closed__4; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_decimalNumberFn___spec__2(lean_object*, lean_object*); -lean_object* lean_array_uset(lean_object*, size_t, lean_object*); extern lean_object* l_Lean_nameToExprAux___main___closed__4; lean_object* l_Lean_Parser_longestMatchFn_u2081___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Trie_matchPrefix___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_octalNumberFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_stackSize___boxed(lean_object*); @@ -149,41 +137,36 @@ lean_object* l_Lean_Parser_hexNumberFn(lean_object*, lean_object*, lean_object*) lean_object* l_Array_foldSepBy___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFnAux(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_6__updateCache(lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTermParserAttribute___closed__3; -extern lean_object* l_Lean_ConstantVal_inhabited___closed__1; -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__10; -lean_object* l_Lean_Parser_mkTermParserAttribute___closed__5; +lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_next(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1; -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4; lean_object* l_Array_extract___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_addParser(uint8_t, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_16__addParserAttribute(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); -lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_Parser_addParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnRef; lean_object* l_Lean_Parser_optionalFn___boxed(lean_object*); -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_8__addParserCategory(lean_object*, lean_object*); extern lean_object* l_Lean_stxInh; lean_object* l_Lean_Parser_InputContext_inhabited; -lean_object* l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___closed__1; -lean_object* l_Lean_Parser_registerParserAttribute___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); +lean_object* l_Lean_Parser_parserExtension___elambda__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_HasToString___closed__1; -lean_object* l_Lean_Parser_runBuiltinParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_ParserExtensionState_inhabited___closed__1; lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6___rarg(lean_object*, lean_object*, lean_object*); size_t l_USize_sub(size_t, size_t); extern lean_object* l_Array_empty___closed__1; +lean_object* l_Lean_Parser_regTermParserAttribute(lean_object*); lean_object* l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Parser_addLeadingParser___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_pushSyntax(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepArgsM(lean_object*, lean_object*); +lean_object* l_Lean_Parser_builtinParserCategoriesRef; 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___private_Init_Lean_Parser_Parser_20__pushNone(uint8_t); lean_object* l_Lean_Parser_group(uint8_t, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone(uint8_t); lean_object* l_Lean_Parser_ident(uint8_t); -lean_object* l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_parserExtension___closed__2; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_whitespace___main___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_binNumberFn___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_fieldIdxKind___closed__1; @@ -191,30 +174,28 @@ lean_object* l_Lean_Parser_unquotedSymbolFn___boxed(lean_object*, lean_object*); 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_registerParserAttribute___closed__4; -lean_object* l___private_Init_Lean_Parser_Parser_12__addTokenAux(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___boxed(lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_Inhabited; -lean_object* l_Lean_Parser_syntaxNodeKindExtension___closed__3; uint8_t l_Char_isDigit(uint32_t); -lean_object* l_Lean_Parser_runBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkNode(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserState(lean_object*); lean_object* l_List_append___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserExtension___lambda__2(lean_object*); lean_object* l_Lean_Parser_ParsingTables_inhabited; -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___closed__2; lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent___lambda__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* lean_io_ref_get(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__5; lean_object* l_Lean_Parser_strLit___boxed(lean_object*); -lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__9; -lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__3; +lean_object* l_List_foldl___main___at___private_Init_Lean_Parser_Parser_13__addTrailingParserAux___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__5(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); lean_object* l_Lean_Parser_declareBuiltinParser___closed__3; @@ -224,27 +205,23 @@ extern lean_object* l_Lean_Position_Inhabited___closed__1; lean_object* l_Lean_Parser_symbolNoWsFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); 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___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___boxed(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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_try___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__4; lean_object* l_Lean_Parser_mkInputContext(lean_object*, lean_object*); lean_object* l_Lean_Parser_addBuiltinParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, 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_push(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh___elambda__1(uint8_t); lean_object* lean_array_get_size(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial(lean_object*, lean_object*); extern lean_object* l_Lean_charLitKind___closed__1; lean_object* l_Lean_registerAttribute(lean_object*, lean_object*); lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsFn(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__2; +lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__4; lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__7(lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo(lean_object*); @@ -252,63 +229,65 @@ lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__1; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___spec__1___boxed(lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_binNumberFn___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_string_utf8_extract(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_parserExtension___elambda__4___rarg(lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__1; uint8_t l_Char_isWhitespace(uint32_t); extern lean_object* l_String_splitAux___main___closed__1; +lean_object* l_Lean_Parser_categoryParserFnImpl(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_withPosition(uint8_t, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__11; +lean_object* l___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_15__ParserExtension_addEntry(lean_object*, lean_object*); lean_object* l_Lean_Parser_charLitFnAux(lean_object*, lean_object*, lean_object*); extern lean_object* l_List_repr___rarg___closed__3; lean_object* l_Lean_Parser_mkAntiquot___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__2(lean_object*); lean_object* l_Lean_Parser_identFnAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkNodeToken(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_runBuiltinParser___rarg(lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1(uint8_t, lean_object*); size_t l_USize_shiftRight(size_t, size_t); lean_object* l_Lean_Parser_identFnAux___main___closed__1; -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3; lean_object* l_Lean_Parser_symbolInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_symbolFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkNodeToken___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__1; lean_object* l_Lean_Parser_initCacheForInput___boxed(lean_object*); lean_object* l_Lean_Parser_symbolNoWs___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__2; lean_object* l_Lean_Syntax_foldSepArgsM___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__6; lean_object* lean_string_utf8_byte_size(lean_object*); 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_Parser_mkSyntaxNodeKindExtension___lambda__1(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_builtinLevelParsingTable; lean_object* l_Lean_Parser_leadingParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__2(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParserNew(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFn___rarg___closed__1; +lean_object* l_Lean_Parser_parserExtension___closed__1; lean_object* l_Lean_Parser_checkColGeFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__4; lean_object* l_Lean_Parser_quotedSymbolFn(uint8_t); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__4; extern lean_object* l_Nat_HasOfNat___closed__1; -lean_object* l_Lean_Parser_tokenTableAttribute; +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg(lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFnAux___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___closed__1; lean_object* l_Lean_Parser_strLit___closed__1; extern lean_object* l_Lean_LocalContext_Inhabited___closed__1; lean_object* l_Lean_Parser_symbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_termParser___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_termParserAttribute; lean_object* l_Lean_Parser_pushLeading___closed__1; lean_object* l_Lean_Syntax_foldArgsM___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_charLitFn___rarg___closed__1; lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(lean_object*, lean_object*); -lean_object* l_HashMapImp_moveEntries___main___at_Lean_Parser_registerParserAttribute___spec__8(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2; lean_object* l_Lean_Parser_ident___closed__1; lean_object* l_Lean_Parser_finishCommentBlock___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__3; -extern lean_object* l_Lean_AttributeImpl_inhabited___closed__2; 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*); @@ -316,84 +295,87 @@ uint8_t l_Lean_Parser_takeWhileFn___lambda__1(lean_object*, uint32_t); 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_Lean_Parser_many1Fn(uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_TokenTableAttribute_inhabited___closed__3; +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_addBuiltinLeadingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__2; -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__7; +lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__5; lean_object* l_Lean_Parser_optional(uint8_t, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___closed__1; +lean_object* l_Lean_Parser_parserExtension___closed__3; +lean_object* l_Lean_Parser_parserExtension___elambda__2___boxed(lean_object*); lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgs___spec__1(lean_object*); lean_object* l_Lean_Parser_numLit___boxed(lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__2; +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_identFn___boxed(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___boxed(lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser___closed__1; -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__11; +lean_object* l_Lean_Parser_mkParserExtension___lambda__1(lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; +lean_object* l_Lean_Parser_parserExtension___closed__5; lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_numLit___closed__1; lean_object* l_Lean_Parser_rawIdentFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkParserAttributeTable___closed__1; lean_object* l_Lean_Parser_indexed(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; lean_object* l_Lean_Parser_unicodeSymbolFn___rarg___closed__1; lean_object* lean_string_utf8_next(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__5; lean_object* l_Lean_Parser_TokenConfig_HasToString; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___boxed(lean_object*); +uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_LocalContext_contains___spec__3(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_setCategoryParserFnRef(lean_object*); lean_object* l_Lean_Syntax_forArgsM(lean_object*); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__3; lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__3(lean_object*, lean_object*); +lean_object* l_Lean_Parser_throwUnknownParserCategory(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main(lean_object*, lean_object*); lean_object* l_Lean_Parser_decimalNumberFn(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___closed__1; +lean_object* l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1; lean_object* l_Lean_Syntax_foldArgsAuxM___main___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unquotedSymbol___boxed(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__1; -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__1___boxed(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_Lean_Parser_registerBuiltinParserAttribute___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareTrailingBuiltinParser___closed__2; 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*); -lean_object* l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsAux(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_identFnAux___main___spec__4(lean_object*, lean_object*, lean_object*); -lean_object* l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_addSyntaxNodeKind(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__3; extern lean_object* l_Lean_Parser_Trie_HasEmptyc___closed__1; lean_object* l_Lean_Parser_mkIdResult___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__6(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory(lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenMap_insert(lean_object*); lean_object* l_Lean_Parser_unicodeSymbol(uint8_t, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_termParser___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldArgs___spec__1(lean_object*); lean_object* l_Lean_Parser_takeWhileFn___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___closed__6; lean_object* l_Lean_Parser_unicodeSymbolInfo___elambda__1(lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__1; lean_object* l_Lean_Parser_identNoAntiquot___closed__1; lean_object* l_Lean_Parser_ParserState_setPos(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Array_foldSepBy___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__3(lean_object*); lean_object* l_Lean_Parser_quotedSymbol___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_mkTokenAndFixPos___closed__1; extern lean_object* l_Lean_Syntax_getKind___closed__4; lean_object* l_Lean_Parser_strLitFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_whitespace___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserExtension___closed__6; lean_object* l_Lean_Parser_mkTokenAndFixPos___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkColGe___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkNoWsBeforeFn___boxed(lean_object*, lean_object*, lean_object*); @@ -402,18 +384,17 @@ lean_object* l_Lean_Parser_mkAtomicInfo___elambda__2(lean_object*); lean_object* l_Lean_Parser_manyAux___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main(uint8_t, lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___lambda__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_AssocList_foldlM___main___at_Lean_Parser_registerParserAttribute___spec__9(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_18__ParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); 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_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*); -lean_object* l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkBuiltinParserCategories(lean_object*); +lean_object* l_Lean_Parser_addLeadingParser___closed__2; lean_object* l_Lean_Parser_takeUntilFn___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(lean_object*, lean_object*); -lean_object* l_Lean_Parser_TokenTableAttribute_inhabited___closed__5; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_quotedSymbolFn___spec__2(uint32_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -421,7 +402,6 @@ lean_object* l_Lean_Parser_lookaheadFn(uint8_t); extern lean_object* l_Lean_EnvExtension_Inhabited___rarg___closed__1; lean_object* l_Lean_Parser_symbolNoWsFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___closed__4; lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol(uint8_t); lean_object* l_Lean_Parser_quotedSymbol___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*); @@ -430,15 +410,14 @@ extern lean_object* l_Lean_numLitKind; lean_object* l_Lean_Parser_mkAntiquot___elambda__2___boxed(lean_object*); lean_object* l_EStateM_bind___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsM___boxed(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_findAux___main___at_Lean_Parser_addLeadingParser___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__3; lean_object* l_Lean_Parser_quotedSymbol(uint8_t); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1(lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__5; -lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepLatest(lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkLeadingFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepRevArgsM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -454,6 +433,7 @@ 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_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_nodeInfo___elambda__1(lean_object*, lean_object*, lean_object*); @@ -461,8 +441,6 @@ lean_object* l_Lean_Parser_Error_merge(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkWsBeforeFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_append___main(lean_object*, lean_object*); -extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; -lean_object* l_Lean_Parser_ParserAttribute_mkParser___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepLatest___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbol___elambda__1(uint8_t); lean_object* l_Lean_Parser_checkColGe___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -474,24 +452,22 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Array_foldSepBy___spec__1___ 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*); uint8_t l_Lean_Parser_Error_beq(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___boxed(lean_object*); -lean_object* l_Lean_Parser_runParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepNewError(lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__5; +lean_object* l_Lean_Parser_regTermParserAttribute___closed__1; lean_object* l_Lean_Parser_symbol(uint8_t, lean_object*, lean_object*); -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4___boxed(lean_object*, lean_object*, lean_object*, 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_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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1(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*); lean_object* l_Lean_Parser_numLitFn(uint8_t, lean_object*); +lean_object* l_Lean_Parser_parserExtension___closed__4; lean_object* l_Lean_Parser_identFnAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension(lean_object*); extern lean_object* l_Lean_numLitKind___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___boxed(lean_object*); lean_object* l_Lean_Parser_optionaInfo(lean_object*); lean_object* l_Lean_Parser_FirstTokens_seq(lean_object*, lean_object*); lean_object* l_Lean_Parser_peekToken(lean_object*, lean_object*); @@ -501,62 +477,65 @@ 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___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__3; lean_object* l_Lean_Parser_mkParserOfConstant___closed__1; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux(uint8_t, lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_14__addImportedParsers___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString___main___closed__1; 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; 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; +lean_object* l_Lean_Parser_throwUnknownParserCategory___rarg(lean_object*); lean_object* l_Lean_Parser_ParserState_shrinkStack(lean_object*, lean_object*); uint8_t l_Lean_Parser_checkTailNoWs(lean_object*); lean_object* l_Lean_Parser_checkTailWs___boxed(lean_object*); lean_object* l_Lean_Parser_charLitFn(uint8_t, lean_object*); lean_object* l_Lean_Parser_trailingLoopStep(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_andthenFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchStep(uint8_t); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__3; lean_object* l_Lean_Parser_strLitFn(uint8_t, lean_object*); +lean_object* l_Lean_Parser_mkParserExtension___lambda__2___boxed(lean_object*); lean_object* l_Lean_Parser_nodeFn___boxed(lean_object*); lean_object* l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__12; -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3(lean_object*, lean_object*); size_t l_Lean_Name_hash(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*); 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_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*); uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(lean_object*, size_t, lean_object*); lean_object* l_Lean_Parser_ParserState_setCache(lean_object*, lean_object*); -lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_strAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__10; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_chFn___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkIdResult(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_decimalNumberFn___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_octalNumberFn___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_parserAttributeTableRef; lean_object* l_Lean_Parser_orelseInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_sepByFn(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__2; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_chFn___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_PersistentHashMap_insertAux___main___rarg___closed__3; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getId(lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__8; lean_object* l_Lean_Parser_rawCh___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1; lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(lean_object*, lean_object*); lean_object* l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1___boxed(lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); @@ -568,62 +547,55 @@ extern lean_object* l_Lean_charLitKind; lean_object* l_Lean_Parser_identFn___rarg___closed__1; lean_object* l_Lean_Parser_checkLeading(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepArgs___spec__1(lean_object*); -lean_object* l_Lean_Parser_TokenTableAttribute_inhabited; +lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__3(lean_object*, lean_object*, lean_object*); 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_mkTokenTableAttribute___closed__9; -lean_object* l_Lean_Parser_syntaxNodeKindExtension; lean_object* l_Lean_Parser_TokenMap_Inhabited(lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg___boxed(lean_object*); +lean_object* l_Lean_Parser_regTermParserAttribute___closed__2; lean_object* l_Lean_Parser_rawIdent(uint8_t); -lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__3; +lean_object* l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__1; lean_object* l_Lean_Parser_FirstTokens_merge(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_8__mergePrecendences(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___closed__5; lean_object* lean_eval_const(lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_hexNumberFn___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserFn_inhabited(uint8_t, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTermParserAttribute___closed__4; +lean_object* l_Lean_Parser_ParserExtensionState_inhabited; lean_object* l_Lean_Parser_ParserState_mkEOIError___closed__1; uint8_t l_Lean_Parser_isIdCont(lean_object*, lean_object*); lean_object* l_Lean_Parser_mergeOrElseErrors___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr(lean_object*, uint8_t, lean_object*); -lean_object* l_Lean_Parser_ParserAttributeExtensionState_inhabited; +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_object*, lean_object*); 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_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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_octalNumberFn___spec__3___boxed(lean_object*, lean_object*); +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_addParserTokens(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux___boxed(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint32_t lean_string_utf8_get(lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__7; -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__8; +lean_object* l_Lean_Parser_parserExtension___elambda__2(lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__13; -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_termParser___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute(lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__4___rarg(lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_Options_empty; -lean_object* l_Lean_Parser_registerParserAttribute___closed__3; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_octalNumberFn___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolFn(uint8_t); lean_object* l_Lean_Parser_ParserState_hasError___boxed(lean_object*); lean_object* l_Lean_Parser_unicodeSymbol___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; 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_runBuiltinParserUnsafe(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_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -size_t lean_usize_modn(size_t, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___closed__3; extern lean_object* l___private_Init_Lean_Environment_5__envExtensionsRef; lean_object* l_Lean_Parser_anyOfFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Parser_inhabited___lambda__1(lean_object*, lean_object*, lean_object*); @@ -632,70 +604,58 @@ lean_object* l_Lean_Parser_symbolNoWsAux___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeUntilFn(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_Parser_symbolNoWsInfo(lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepRevArgsM___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_anyOfFn(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon(uint8_t); lean_object* l_Lean_Parser_lookaheadFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__2; lean_object* l_Lean_Parser_mkEmptySubstringAt(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1___boxed(lean_object*); lean_object* l_Lean_Parser_ParsingTables_inhabited___closed__1; lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_binNumberFn___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitFnAux___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdent___lambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___closed__5; lean_object* l_Lean_Parser_Error_toString___closed__2; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Data_Trie_3__findAux___main___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__6; lean_object* l_IO_Prim_Ref_get___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchMkResult(lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdent___lambda__1___boxed(lean_object*, lean_object*, lean_object*); size_t l_USize_mul(size_t, size_t); -lean_object* l_Lean_Parser_Trie_Inhabited(lean_object*); lean_object* l_Lean_FileMap_ofString(lean_object*); -lean_object* l_Lean_Parser_updateBuiltinSyntaxNodeKinds(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; lean_object* l_Lean_Parser_whitespace(lean_object*, lean_object*); lean_object* l_List_redLength___main___rarg(lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__4; -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__1; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepArgs___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh(uint8_t, uint32_t, uint8_t); -lean_object* l_mkHashMapImp___rarg(lean_object*); lean_object* l_Lean_Parser_getTokenTable(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*); 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_symbolAux(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_isValidSyntaxNodeKind___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserExtension(lean_object*); lean_object* l_Lean_Parser_ParserState_popSyntax(lean_object*); lean_object* l_Lean_Parser_checkWsBefore___elambda__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_termParser(uint8_t, lean_object*); lean_object* l_Lean_Parser_sepByFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__2; 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*); -extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_runBuiltinParserUnsafe___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_registerParserAttribute(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, 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* l_Lean_Parser_addTrailingParser(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__7; -lean_object* l_HashMapImp_expand___at_Lean_Parser_registerParserAttribute___spec__7(lean_object*, lean_object*); lean_object* l_Lean_Parser_chFn(uint8_t); lean_object* l_Lean_Parser_mkAtomicInfo___elambda__2___boxed(lean_object*); lean_object* l_Lean_ConstantInfo_type(lean_object*); @@ -703,31 +663,28 @@ lean_object* l_Lean_Parser_declareBuiltinParser___closed__6; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_quotedSymbolFn___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdent___boxed(lean_object*); lean_object* l_Lean_Parser_mkAntiquot___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_isIdEndEscape(uint32_t); lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_15__addParserAttributeEntry(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepArgsM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6(lean_object*, lean_object*); -lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1___closed__1; +lean_object* l_Lean_Parser_mkParserExtension___closed__7; lean_object* l_Lean_Syntax_foldArgsAuxM___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__1; lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__1; -lean_object* l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); size_t l_USize_land(size_t, size_t); +lean_object* l_Lean_Parser_parserExtension___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__4; lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___boxed(lean_object*); +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1; lean_object* l_Lean_Parser_mkAntiquot___elambda__2(uint8_t); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__2; lean_object* l_Lean_Parser_toTrailing(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ParametricAttribute_setParam___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__2; -lean_object* l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1; -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__4; -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1; +lean_object* l_Lean_Parser_mkCategoryParserFnExtension___closed__1; lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn___closed__1; lean_object* l_Lean_Parser_charLitFnAux___closed__1; @@ -738,20 +695,19 @@ lean_object* l_Lean_Parser_hexDigitFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mergeErrors___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldSepBy(lean_object*); lean_object* l_Lean_Parser_ident___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__4(lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__2(lean_object*); lean_object* l_Lean_Parser_trailingNode(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelseInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1(uint8_t, lean_object*, lean_object*, uint8_t); -lean_object* l_Lean_Parser_regBuiltinTermParserAttr___closed__4; lean_object* l_Lean_Parser_sepBy1Fn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTermParserAttribute___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_16__addParserAttribute___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParser___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenConfig_beq___boxed(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; lean_object* l_Lean_Parser_noFirstTokenInfo___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__2; lean_object* l___private_Init_Lean_Parser_Parser_3__rawAux___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrec(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareLeadingBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); @@ -762,6 +718,7 @@ lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forSepArgsM___sp 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_mkParserExtension___closed__3; lean_object* l_Lean_Parser_ParserState_mkErrorAt(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdxFn___closed__1; lean_object* l_Lean_Parser_ident___elambda__1(uint8_t); @@ -778,24 +735,20 @@ extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed_ 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_hexDigitFn(lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__4___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_runBuiltinParser___rarg___boxed(lean_object*); -lean_object* l_Lean_Parser_compileParserDescr___main___closed__2; +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; lean_object* l_Lean_Parser_FirstTokens_HasToString; lean_object* l_Lean_Syntax_forArgsM___rarg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__2___boxed(lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__2___boxed(lean_object*); lean_object* l_Lean_Parser_pushLeading; lean_object* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1(lean_object*); 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___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1; lean_object* l_Lean_Parser_mkAntiquot___elambda__2___rarg(lean_object*, lean_object*, lean_object*, 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_syntaxNodeKindExtension___elambda__1___boxed(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_13__addTrailingParserAux(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__2; lean_object* l_Lean_Parser_string2basic___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepNewError___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -809,6 +762,7 @@ lean_object* l_Lean_Parser_identNoAntiquot___boxed(lean_object*); lean_object* l_Lean_Parser_tryFn(uint8_t); lean_object* l_Lean_Parser_whitespace___main___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn_u2081___boxed(lean_object*); +lean_object* l_Lean_Parser_builtinCommandParsingTable; lean_object* l_Lean_Parser_withPosition___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l_Lean_Parser_pushLeadingFn(lean_object*, lean_object*, lean_object*); @@ -819,38 +773,36 @@ lean_object* l_Lean_Parser_compileParserDescr___boxed(lean_object*, lean_object* lean_object* l_Lean_mkApp(lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_Inhabited; lean_object* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParser(uint8_t, lean_object*, lean_object*); extern lean_object* l_Lean_Syntax_asNode___closed__1; lean_object* l_Lean_nameToExprAux___main(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParser___elambda__1___boxed(lean_object*); lean_object* l_Lean_Syntax_getArgs(lean_object*); lean_object* l_Array_foldSepByM___boxed(lean_object*, lean_object*); lean_object* l_Lean_Environment_addAndCompile(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__2(uint8_t, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); -lean_object* l_mkHashMap___at_Lean_Parser_mkParserAttributeTable___spec__1(lean_object*); +lean_object* lean_io_ref_ptr_eq(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_chFn___boxed(lean_object*); uint8_t l_Lean_Parser_isValidSyntaxNodeKind(lean_object*, lean_object*); -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__6; lean_object* l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__2; lean_object* l_Lean_Parser_symbolOrIdentFn(lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; 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_Lean_Parser_ParserAttribute_mkParser(lean_object*, lean_object*); lean_object* l_Lean_Parser_FirstTokens_toStr___closed__1; -lean_object* l_Lean_Parser_syntaxNodeKindExtension___closed__2; lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldArgs___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_runParserCategory(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_AttributeImpl_inhabited___closed__1; -lean_object* l_Lean_Parser_addLeadingParser(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___boxed(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry(lean_object*, lean_object*); uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__1; +lean_object* l_Lean_Parser_mkParserExtension___closed__5; +lean_object* l_Lean_Parser_categoryParser___elambda__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfySymbolFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolInfo(lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_binNumberFn___spec__2(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; lean_object* l_Lean_Parser_TokenConfig_toStr(lean_object*); @@ -860,11 +812,8 @@ lean_object* l_Lean_Parser_fieldIdx___lambda__1(lean_object*, lean_object*, lean 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_satisfyFn___at_Lean_Parser_octalNumberFn___spec__1___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l___private_Init_Util_1__mkPanicMessage___closed__2; -lean_object* l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__1; lean_object* l_Lean_Syntax_foldArgsAuxM___main___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo; -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_14__addImportedParsers(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_lookaheadFn___boxed(lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6(lean_object*); lean_object* l_Lean_Parser_anyOfFn___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); @@ -872,13 +821,14 @@ 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_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(lean_object*); -lean_object* l_Lean_Parser_ParserAttribute_Inhabited___closed__1; 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_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*); +lean_object* l_Lean_Parser_categoryParser___elambda__1(uint8_t); +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__3; lean_object* l_Lean_Parser_symbolFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn_u2081(uint8_t); lean_object* l_Lean_Parser_symbolNoWsInfo___closed__1; @@ -893,77 +843,69 @@ lean_object* l_Lean_Parser_strLitFn___rarg(lean_object*, lean_object*); extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; lean_object* l_Lean_Parser_fieldIdxFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_forArgsM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(lean_object*, lean_object*, lean_object*); -lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* l_Lean_Parser_orelse___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_builtinTermParsingTable; -lean_object* l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1; +lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1(uint8_t, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1(uint8_t, lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_many1Indent___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_toTrailing___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_hexNumberFn___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___lambda__1(lean_object*); lean_object* l_Lean_Parser_checkNoWsBefore___elambda__1(uint8_t); lean_object* l_RBNode_setBlack___rarg(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__2; lean_object* l_Lean_Parser_noFirstTokenInfo___elambda__2(lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_Trie_empty___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_8__mergePrecendences___boxed(lean_object*, lean_object*, 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*); lean_object* l_Lean_Parser_epsilonInfo___closed__2; lean_object* l_Lean_Parser_Parser_inhabited___closed__2; +lean_object* l_Lean_Parser_mkCategoryParserFnExtension(lean_object*); lean_object* l_Lean_Parser_dollarSymbol___closed__2; lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_numberFnAux___closed__1; -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__5; -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_forSepArgsM___boxed(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_isIdCont___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1(uint8_t, lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); lean_object* l_PersistentHashMap_insertAux___main___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhile1Fn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___rarg___closed__2; +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__7; 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; -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerParserAttribute___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_andthen___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon(uint8_t); 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*); lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__3; lean_object* l_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); lean_object* l_Lean_Parser_rawIdentFn___boxed(lean_object*, lean_object*); lean_object* l_String_trim(lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___closed__4; lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_Lean_Syntax_forSepArgsM___rarg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(lean_object*, size_t, size_t, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawFn(uint8_t); -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2; lean_object* l_Lean_Syntax_getOptionalIdent_x3f___boxed(lean_object*); lean_object* l_Lean_Parser_charLitFn___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_regBuiltinTermParserAttr(lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindSetRef(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable(lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeFn(uint8_t); lean_object* l___private_Init_Lean_Parser_Parser_5__tokenFnAux(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkWsBeforeFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optionalFn(uint8_t); -lean_object* l_Lean_Parser_mkParserAttributeTable(lean_object*); 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* lean_mk_array(lean_object*, lean_object*); lean_object* l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_isIdFirst(uint32_t); uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); @@ -971,32 +913,34 @@ lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_ob lean_object* l_Lean_Parser_ParserState_mkLongestNodeAlt(lean_object*, lean_object*); lean_object* l_Lean_Syntax_isNone___boxed(lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM___main___at_Lean_Syntax_foldSepRevArgsM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__3; lean_object* l_Lean_Parser_currLbp(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserOfConstant(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhile1Fn(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_registerParserAttribute___closed__2; -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__1(lean_object*, lean_object*); lean_object* lean_io_initializing(lean_object*); lean_object* l_Array_getEvenElems___boxed(lean_object*); -lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; lean_object* l_Lean_Parser_sepByInfo___elambda__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__2(lean_object*, lean_object*); 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___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; lean_object* l_Lean_Parser_rawIdent___closed__1; +lean_object* l_Lean_Parser_parserExtension___elambda__1(lean_object*); +lean_object* l_Lean_Parser_addBuiltinTrailingParserNew(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_getSyntaxNodeKinds(lean_object*); lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Syntax_getKind___closed__3; -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_12__addTokenConfig(lean_object*, lean_object*); +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_string2basic(uint8_t, lean_object*); lean_object* l_Lean_Parser_mkAntiquot(uint8_t, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_pushLeadingFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optionaInfo___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_addParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_addParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_leadingNode(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_toErrorMsg(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__4(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1010,9 +954,7 @@ lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_hexNumberFn___spe lean_object* l_Lean_Parser_identFn___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn___boxed(lean_object*); lean_object* l_Lean_Parser_mkAntiquot___elambda__1(uint8_t); -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_manyFn(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_next___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Parser_inhabited___lambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_chFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1020,45 +962,45 @@ lean_object* l_Lean_Syntax_getOptional_x3f___boxed(lean_object*); lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgsM___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1Info___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__2(lean_object*); +lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__5; lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString(lean_object*); lean_object* l_Lean_Parser_orelse(uint8_t, lean_object*, lean_object*); -lean_object* l_Lean_Parser_runBuiltinParserUnsafe___closed__1; uint8_t l_List_beq___main___at_Lean_Parser_Error_toString___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn(uint8_t); -lean_object* l_Lean_Parser_TokenTableAttribute_inhabited___closed__4; -lean_object* l___private_Init_Lean_Parser_Parser_9__addTokenConfig(lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldArgsAuxM(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__1(lean_object*); -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_hexNumberFn___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_unquotedSymbol___elambda__1(uint8_t, lean_object*); +lean_object* l_Lean_Parser_categoryParserFnExtension; lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__2___boxed(lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___closed__1; +lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object*, lean_object*); lean_object* l_Lean_Syntax_forArgsM___boxed(lean_object*); lean_object* l_List_toStringAux___main___at_Lean_Parser_FirstTokens_toStr___spec__2(uint8_t, lean_object*); lean_object* l_List_toArrayAux___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_andthen(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_node(uint8_t, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__5(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_lookahead___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Parser_syntaxNodeKindSetRef; lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__8; uint8_t l_List_isEmpty___rarg(lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__7; lean_object* l_Lean_Parser_unicodeSymbolInfo(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identNoAntiquot(uint8_t); lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1(uint8_t, lean_object*); +lean_object* l_Lean_Parser_mkCategoryParserFnRef(lean_object*); lean_object* l_Lean_Parser_ParserState_keepPrevError___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__2(lean_object*, size_t, lean_object*); lean_object* l_Lean_Parser_many1Fn___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_beq___main___at_Lean_Parser_Error_toString___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkCategoryParserFnRef___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_10__ParserExtension_mkInitial(lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_Parser_TokenTableAttribute_inhabited___closed__1; lean_object* lean_usize_to_nat(size_t); -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__1(lean_object*); lean_object* l_Lean_Parser_mkTokenAndFixPos(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_FirstTokens_toOptional(lean_object*); @@ -1076,27 +1018,27 @@ 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_TokenTableAttribute_inhabited___closed__2; +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__2; lean_object* l_Lean_Parser_indexed___rarg___boxed(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*); lean_object* l_Lean_Parser_ParserState_keepPrevError(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___rarg(lean_object*); lean_object* l_Lean_Parser_checkWsBefore___elambda__1___boxed(lean_object*); lean_object* l_Lean_Parser_ParserFn_inhabited___rarg___boxed(lean_object*); +lean_object* l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(lean_object*); lean_object* l_Lean_Parser_orelseFn___boxed(lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; -lean_object* l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2___boxed(lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4(lean_object*); -lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__1(lean_object*, lean_object*); lean_object* l_List_toStringAux___main___at_Lean_Parser_FirstTokens_toStr___spec__2___boxed(lean_object*, lean_object*); lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__5___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_mkTokenTableAttribute___closed__3; lean_object* l_Lean_Parser_unicodeSymbolInfo___closed__1; lean_object* l_Lean_Parser_checkColGe___lambda__1___boxed(lean_object*, lean_object*, 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_numLitFn___rarg(lean_object*, lean_object*); -uint8_t l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__5; lean_object* l___private_Init_Lean_Data_Trie_2__insertAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___at_Lean_Parser_identFnAux___main___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_charLitFn___rarg(lean_object*, lean_object*); @@ -1105,8 +1047,10 @@ uint8_t lean_string_utf8_at_end(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_replaceLongest___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkConst(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchStep___boxed(lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); 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_addBuiltinTrailingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolOrIdentInfo___closed__2; @@ -1115,7 +1059,6 @@ lean_object* l_Lean_Parser_checkWsBefore___elambda__1___rarg(lean_object*, lean_ lean_object* l_Lean_Syntax_getTailInfo___main(lean_object*); lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__1; -extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; extern lean_object* l_Lean_initAttr; lean_object* l_Lean_Parser_identFn(uint8_t, lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_decimalNumberFn___spec__2___boxed(lean_object*, lean_object*); @@ -1134,19 +1077,21 @@ lean_object* l_Lean_Parser_group___boxed(lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__3___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1Info___elambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLit(uint8_t); lean_object* l_Lean_Parser_many1(uint8_t, lean_object*, uint8_t); lean_object* l_Lean_Parser_mkAtomicInfo___closed__2; lean_object* l_Lean_Parser_sepBy___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__3; lean_object* l_Lean_Parser_trailingLoop___boxed(lean_object*, 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*); +lean_object* l_Lean_Parser_parserExtension___elambda__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdxFn(lean_object*, lean_object*); -uint8_t l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3(lean_object*, lean_object*); 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*); @@ -1154,7 +1099,9 @@ lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1___box 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*); -lean_object* l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___boxed(lean_object*, lean_object*); +uint8_t l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isIdent(lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__1; lean_object* l_Lean_Parser_ParserFn_inhabited___boxed(lean_object*, lean_object*, lean_object*); @@ -23864,13 +23811,15 @@ return x_15; } else { -lean_object* x_16; +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_dec(x_11); lean_dec(x_7); lean_dec(x_4); lean_dec(x_3); -x_16 = l_Lean_Parser_ParserState_mkError(x_10, x_1); -return x_16; +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; } } } @@ -24122,6 +24071,468 @@ return x_6; } } } +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: +{ +lean_object* x_5; +x_5 = l_Lean_Parser_whitespace___main(x_3, x_4); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_mkCategoryParserFnRef___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkCategoryParserFnRef___lambda__1___boxed), 4, 0); +return x_1; +} +} +lean_object* l_Lean_Parser_mkCategoryParserFnRef(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Parser_mkCategoryParserFnRef___closed__1; +x_3 = lean_io_mk_ref(x_2, x_1); +return x_3; +} +} +lean_object* l_Lean_Parser_mkCategoryParserFnRef___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_mkCategoryParserFnRef___lambda__1(x_1, x_2, x_3, x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_inc(x_4); +return x_4; +} +} +lean_object* _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___lambda__1___boxed), 4, 0); +return x_1; +} +} +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_io_initializing(x_2); +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_4; uint8_t x_5; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = lean_unbox(x_4); +lean_dec(x_4); +if (x_5 == 0) +{ +uint8_t x_6; +lean_dec(x_1); +x_6 = !lean_is_exclusive(x_3); +if (x_6 == 0) +{ +lean_object* x_7; lean_object* x_8; +x_7 = lean_ctor_get(x_3, 0); +lean_dec(x_7); +x_8 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; +lean_ctor_set_tag(x_3, 1); +lean_ctor_set(x_3, 0, x_8); +return x_3; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_3, 1); +lean_inc(x_9); +lean_dec(x_3); +x_10 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; +x_11 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_9); +return x_11; +} +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_12 = lean_ctor_get(x_3, 1); +lean_inc(x_12); +lean_dec(x_3); +x_13 = l___private_Init_Lean_Environment_5__envExtensionsRef; +x_14 = lean_io_ref_get(x_13, x_12); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = lean_array_get_size(x_15); +lean_dec(x_15); +x_18 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1; +x_19 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_19, 0, x_17); +lean_ctor_set(x_19, 1, x_1); +lean_ctor_set(x_19, 2, x_18); +x_20 = lean_io_ref_get(x_13, x_16); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_io_ref_reset(x_13, x_22); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_25 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; +lean_inc(x_19); +x_26 = x_19; +x_27 = lean_array_push(x_21, x_26); +x_28 = lean_io_ref_set(x_13, x_27, x_24); +if (lean_obj_tag(x_28) == 0) +{ +uint8_t x_29; +x_29 = !lean_is_exclusive(x_28); +if (x_29 == 0) +{ +lean_object* x_30; +x_30 = lean_ctor_get(x_28, 0); +lean_dec(x_30); +lean_ctor_set(x_28, 0, x_19); +return x_28; +} +else +{ +lean_object* x_31; lean_object* x_32; +x_31 = lean_ctor_get(x_28, 1); +lean_inc(x_31); +lean_dec(x_28); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_19); +lean_ctor_set(x_32, 1, x_31); +return x_32; +} +} +else +{ +uint8_t x_33; +lean_dec(x_19); +x_33 = !lean_is_exclusive(x_28); +if (x_33 == 0) +{ +return x_28; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_28, 0); +x_35 = lean_ctor_get(x_28, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_28); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; +} +} +} +else +{ +uint8_t x_37; +lean_dec(x_21); +lean_dec(x_19); +x_37 = !lean_is_exclusive(x_23); +if (x_37 == 0) +{ +return x_23; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_23, 0); +x_39 = lean_ctor_get(x_23, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_23); +x_40 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; +} +} +} +else +{ +uint8_t x_41; +lean_dec(x_19); +x_41 = !lean_is_exclusive(x_20); +if (x_41 == 0) +{ +return x_20; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_20, 0); +x_43 = lean_ctor_get(x_20, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_20); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +return x_44; +} +} +} +else +{ +uint8_t x_45; +lean_dec(x_1); +x_45 = !lean_is_exclusive(x_14); +if (x_45 == 0) +{ +return x_14; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_14, 0); +x_47 = lean_ctor_get(x_14, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_14); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +} +} +else +{ +uint8_t x_49; +lean_dec(x_1); +x_49 = !lean_is_exclusive(x_3); +if (x_49 == 0) +{ +return x_3; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_3, 0); +x_51 = lean_ctor_get(x_3, 1); +lean_inc(x_51); +lean_inc(x_50); +lean_dec(x_3); +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; +} +} +} +} +lean_object* _init_l_Lean_Parser_mkCategoryParserFnExtension___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_categoryParserFnRef; +x_2 = lean_alloc_closure((void*)(l_IO_Prim_Ref_get___boxed), 3, 2); +lean_closure_set(x_2, 0, lean_box(0)); +lean_closure_set(x_2, 1, x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_mkCategoryParserFnExtension(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Parser_mkCategoryParserFnExtension___closed__1; +x_3 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1(x_2, x_1); +return x_3; +} +} +lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___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_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___lambda__1(x_1, x_2, x_3, x_4); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg(lean_object* x_1) { +_start: +{ +lean_inc(x_1); +return x_1; +} +} +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg___boxed), 1, 0); +return x_4; +} +} +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_String_splitAux___main___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_categoryParserFnExtension___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParserFnExtension___elambda__2), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_categoryParserFnExtension___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParserFnExtension___elambda__1___boxed), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_categoryParserFnExtension___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_Parser_categoryParserFnExtension___closed__1; +x_3 = l_Lean_Parser_categoryParserFnExtension___closed__2; +x_4 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_3); +return x_4; +} +} +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_categoryParserFnExtension___elambda__1___rarg(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Parser_categoryParserFnExtension___elambda__1(x_1, x_2, x_3); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_4; +} +} +lean_object* l_Lean_Parser_categoryParserFn(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 = lean_ctor_get(x_3, 1); +lean_inc(x_5); +x_6 = l_Lean_Parser_categoryParserFnExtension; +x_7 = l_Lean_EnvExtension_getStateUnsafe___rarg(x_6, x_5); +lean_dec(x_5); +x_8 = lean_apply_4(x_7, x_1, x_2, x_3, x_4); +return x_8; +} +} +lean_object* l_Lean_Parser_categoryParser___elambda__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_Parser_categoryParserFn(x_1, x_2, x_4, x_5); +return x_6; +} +} +lean_object* l_Lean_Parser_categoryParser___elambda__1(uint8_t x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 0); +return x_2; +} +} +lean_object* l_Lean_Parser_categoryParser(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_4 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 2); +lean_closure_set(x_4, 0, x_2); +lean_closure_set(x_4, 1, x_3); +x_5 = l_Lean_Parser_Parser_inhabited___closed__1; +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_5); +lean_ctor_set(x_6, 1, x_4); +return x_6; +} +} +lean_object* l_Lean_Parser_categoryParser___elambda__1___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_Parser_categoryParser___elambda__1___rarg(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_3); +return x_6; +} +} +lean_object* l_Lean_Parser_categoryParser___elambda__1___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_categoryParser___elambda__1(x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_categoryParser___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_1); +lean_dec(x_1); +x_5 = l_Lean_Parser_categoryParser(x_4, x_2, x_3); +return x_5; +} +} lean_object* l_Lean_Parser_mkBuiltinTokenTable(lean_object* x_1) { _start: { @@ -24131,7 +24542,957 @@ x_3 = lean_io_mk_ref(x_2, x_1); return x_3; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__1() { +lean_object* _init_l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_LocalContext_Inhabited___closed__1; +return x_1; +} +} +lean_object* l_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; +x_3 = lean_io_mk_ref(x_2, x_1); +return x_3; +} +} +lean_object* _init_l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_LocalContext_Inhabited___closed__1; +return x_1; +} +} +lean_object* l_Lean_Parser_mkBuiltinParserCategories(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1; +x_3 = lean_io_mk_ref(x_2, x_1); +return x_3; +} +} +uint8_t l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = 5; +x_6 = l_PersistentHashMap_insertAux___main___rarg___closed__2; +x_7 = x_2 & x_6; +x_8 = lean_usize_to_nat(x_7); +x_9 = lean_box(2); +x_10 = lean_array_get(x_9, x_4, x_8); +lean_dec(x_8); +lean_dec(x_4); +switch (lean_obj_tag(x_10)) { +case 0: +{ +lean_object* x_11; uint8_t x_12; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_name_eq(x_3, x_11); +lean_dec(x_11); +return x_12; +} +case 1: +{ +lean_object* x_13; size_t x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +lean_dec(x_10); +x_14 = x_2 >> x_5; +x_1 = x_13; +x_2 = x_14; +goto _start; +} +default: +{ +uint8_t x_16; +x_16 = 0; +return x_16; +} +} +} +else +{ +lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_17 = lean_ctor_get(x_1, 0); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_unsigned_to_nat(0u); +x_19 = l_PersistentHashMap_containsAtAux___main___at_Lean_LocalContext_contains___spec__3(x_17, x_18, x_3); +lean_dec(x_17); +return x_19; +} +} +} +uint8_t l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; size_t x_4; uint8_t x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = l_Lean_Name_hash(x_2); +x_5 = l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__2(x_3, x_4, x_2); +return x_5; +} +} +lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__5(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; uint8_t x_8; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +x_7 = lean_array_get_size(x_5); +x_8 = lean_nat_dec_lt(x_2, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +uint8_t x_9; +lean_dec(x_2); +x_9 = !lean_is_exclusive(x_1); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_1, 1); +lean_dec(x_10); +x_11 = lean_ctor_get(x_1, 0); +lean_dec(x_11); +x_12 = lean_array_push(x_5, x_3); +x_13 = lean_array_push(x_6, x_4); +lean_ctor_set(x_1, 1, x_13); +lean_ctor_set(x_1, 0, x_12); +return x_1; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_1); +x_14 = lean_array_push(x_5, x_3); +x_15 = lean_array_push(x_6, x_4); +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 +{ +lean_object* x_17; uint8_t x_18; +x_17 = lean_array_fget(x_5, x_2); +x_18 = lean_name_eq(x_3, x_17); +lean_dec(x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +lean_dec(x_6); +lean_dec(x_5); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_2, x_19); +lean_dec(x_2); +x_2 = x_20; +goto _start; +} +else +{ +uint8_t x_22; +x_22 = !lean_is_exclusive(x_1); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_ctor_get(x_1, 1); +lean_dec(x_23); +x_24 = lean_ctor_get(x_1, 0); +lean_dec(x_24); +x_25 = lean_array_fset(x_5, x_2, x_3); +x_26 = lean_array_fset(x_6, x_2, x_4); +lean_dec(x_2); +lean_ctor_set(x_1, 1, x_26); +lean_ctor_set(x_1, 0, x_25); +return x_1; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_1); +x_27 = lean_array_fset(x_5, x_2, x_3); +x_28 = lean_array_fset(x_6, x_2, x_4); +lean_dec(x_2); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__6(size_t 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_7; uint8_t x_8; +x_7 = lean_array_get_size(x_4); +x_8 = lean_nat_dec_lt(x_5, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_dec(x_5); +return x_6; +} +else +{ +lean_object* x_9; lean_object* x_10; size_t x_11; size_t x_12; size_t x_13; size_t x_14; size_t x_15; size_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_9 = lean_array_fget(x_4, x_5); +x_10 = lean_array_fget(x_3, x_5); +x_11 = l_Lean_Name_hash(x_9); +x_12 = 1; +x_13 = x_1 - x_12; +x_14 = 5; +x_15 = x_14 * x_13; +x_16 = x_11 >> x_15; +x_17 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_6, x_16, x_1, x_9, x_10); +x_18 = lean_unsigned_to_nat(1u); +x_19 = lean_nat_add(x_5, x_18); +lean_dec(x_5); +x_5 = x_19; +x_6 = x_17; +goto _start; +} +} +} +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +uint8_t x_6; +x_6 = !lean_is_exclusive(x_1); +if (x_6 == 0) +{ +lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_7 = lean_ctor_get(x_1, 0); +x_8 = 1; +x_9 = 5; +x_10 = l_PersistentHashMap_insertAux___main___rarg___closed__2; +x_11 = x_2 & x_10; +x_12 = lean_usize_to_nat(x_11); +x_13 = lean_array_get_size(x_7); +x_14 = lean_nat_dec_lt(x_12, x_13); +lean_dec(x_13); +if (x_14 == 0) +{ +lean_dec(x_12); +lean_dec(x_5); +lean_dec(x_4); +return x_1; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_array_fget(x_7, x_12); +x_16 = lean_box(2); +x_17 = lean_array_fset(x_7, x_12, x_16); +switch (lean_obj_tag(x_15)) { +case 0: +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_15); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_19 = lean_ctor_get(x_15, 0); +x_20 = lean_ctor_get(x_15, 1); +x_21 = lean_name_eq(x_4, x_19); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_free_object(x_15); +x_22 = l_PersistentHashMap_mkCollisionNode___rarg(x_19, x_20, x_4, x_5); +x_23 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_23, 0, x_22); +x_24 = lean_array_fset(x_17, x_12, x_23); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_24); +return x_1; +} +else +{ +lean_object* x_25; +lean_dec(x_20); +lean_dec(x_19); +lean_ctor_set(x_15, 1, x_5); +lean_ctor_set(x_15, 0, x_4); +x_25 = lean_array_fset(x_17, x_12, x_15); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_25); +return x_1; +} +} +else +{ +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_15, 0); +x_27 = lean_ctor_get(x_15, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_15); +x_28 = lean_name_eq(x_4, x_26); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = l_PersistentHashMap_mkCollisionNode___rarg(x_26, x_27, x_4, x_5); +x_30 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_30, 0, x_29); +x_31 = lean_array_fset(x_17, x_12, x_30); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_31); +return x_1; +} +else +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_27); +lean_dec(x_26); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_4); +lean_ctor_set(x_32, 1, x_5); +x_33 = lean_array_fset(x_17, x_12, x_32); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_33); +return x_1; +} +} +} +case 1: +{ +uint8_t x_34; +x_34 = !lean_is_exclusive(x_15); +if (x_34 == 0) +{ +lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_39; +x_35 = lean_ctor_get(x_15, 0); +x_36 = x_2 >> x_9; +x_37 = x_3 + x_8; +x_38 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_35, x_36, x_37, x_4, x_5); +lean_ctor_set(x_15, 0, x_38); +x_39 = lean_array_fset(x_17, x_12, x_15); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_39); +return x_1; +} +else +{ +lean_object* x_40; size_t x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_40 = lean_ctor_get(x_15, 0); +lean_inc(x_40); +lean_dec(x_15); +x_41 = x_2 >> x_9; +x_42 = x_3 + x_8; +x_43 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_40, x_41, x_42, x_4, x_5); +x_44 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_44, 0, x_43); +x_45 = lean_array_fset(x_17, x_12, x_44); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_45); +return x_1; +} +} +default: +{ +lean_object* x_46; lean_object* x_47; +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_4); +lean_ctor_set(x_46, 1, x_5); +x_47 = lean_array_fset(x_17, x_12, x_46); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_47); +return x_1; +} +} +} +} +else +{ +lean_object* x_48; size_t x_49; size_t x_50; size_t x_51; size_t x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_48 = lean_ctor_get(x_1, 0); +lean_inc(x_48); +lean_dec(x_1); +x_49 = 1; +x_50 = 5; +x_51 = l_PersistentHashMap_insertAux___main___rarg___closed__2; +x_52 = x_2 & x_51; +x_53 = lean_usize_to_nat(x_52); +x_54 = lean_array_get_size(x_48); +x_55 = lean_nat_dec_lt(x_53, x_54); +lean_dec(x_54); +if (x_55 == 0) +{ +lean_object* x_56; +lean_dec(x_53); +lean_dec(x_5); +lean_dec(x_4); +x_56 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_56, 0, x_48); +return x_56; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_array_fget(x_48, x_53); +x_58 = lean_box(2); +x_59 = lean_array_fset(x_48, x_53, x_58); +switch (lean_obj_tag(x_57)) { +case 0: +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_60 = lean_ctor_get(x_57, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_57, 1); +lean_inc(x_61); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + lean_ctor_release(x_57, 1); + x_62 = x_57; +} else { + lean_dec_ref(x_57); + x_62 = lean_box(0); +} +x_63 = lean_name_eq(x_4, x_60); +if (x_63 == 0) +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_dec(x_62); +x_64 = l_PersistentHashMap_mkCollisionNode___rarg(x_60, x_61, x_4, x_5); +x_65 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_65, 0, x_64); +x_66 = lean_array_fset(x_59, x_53, x_65); +lean_dec(x_53); +x_67 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_67, 0, x_66); +return x_67; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_dec(x_61); +lean_dec(x_60); +if (lean_is_scalar(x_62)) { + x_68 = lean_alloc_ctor(0, 2, 0); +} else { + x_68 = x_62; +} +lean_ctor_set(x_68, 0, x_4); +lean_ctor_set(x_68, 1, x_5); +x_69 = lean_array_fset(x_59, x_53, x_68); +lean_dec(x_53); +x_70 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_70, 0, x_69); +return x_70; +} +} +case 1: +{ +lean_object* x_71; lean_object* x_72; size_t x_73; size_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_71 = lean_ctor_get(x_57, 0); +lean_inc(x_71); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + x_72 = x_57; +} else { + lean_dec_ref(x_57); + x_72 = lean_box(0); +} +x_73 = x_2 >> x_50; +x_74 = x_3 + x_49; +x_75 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_71, x_73, x_74, x_4, x_5); +if (lean_is_scalar(x_72)) { + x_76 = lean_alloc_ctor(1, 1, 0); +} else { + x_76 = x_72; +} +lean_ctor_set(x_76, 0, x_75); +x_77 = lean_array_fset(x_59, x_53, x_76); +lean_dec(x_53); +x_78 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_78, 0, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_79, 0, x_4); +lean_ctor_set(x_79, 1, x_5); +x_80 = lean_array_fset(x_59, x_53, x_79); +lean_dec(x_53); +x_81 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_81, 0, x_80); +return x_81; +} +} +} +} +} +else +{ +lean_object* x_82; lean_object* x_83; size_t x_84; uint8_t x_85; +x_82 = lean_unsigned_to_nat(0u); +x_83 = l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__5(x_1, x_82, x_4, x_5); +x_84 = 7; +x_85 = x_84 <= x_3; +if (x_85 == 0) +{ +lean_object* x_86; lean_object* x_87; uint8_t x_88; +x_86 = l_PersistentHashMap_getCollisionNodeSize___rarg(x_83); +x_87 = lean_unsigned_to_nat(4u); +x_88 = lean_nat_dec_lt(x_86, x_87); +lean_dec(x_86); +if (x_88 == 0) +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +x_89 = lean_ctor_get(x_83, 0); +lean_inc(x_89); +x_90 = lean_ctor_get(x_83, 1); +lean_inc(x_90); +lean_dec(x_83); +x_91 = l_PersistentHashMap_insertAux___main___rarg___closed__3; +x_92 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__6(x_3, x_89, x_90, x_89, x_82, x_91); +lean_dec(x_90); +lean_dec(x_89); +return x_92; +} +else +{ +return x_83; +} +} +else +{ +return x_83; +} +} +} +} +lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = !lean_is_exclusive(x_1); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; size_t x_7; size_t x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_ctor_get(x_1, 1); +x_7 = l_Lean_Name_hash(x_2); +x_8 = 1; +x_9 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_5, x_7, x_8, x_2, x_3); +x_10 = lean_unsigned_to_nat(1u); +x_11 = lean_nat_add(x_6, x_10); +lean_dec(x_6); +lean_ctor_set(x_1, 1, x_11); +lean_ctor_set(x_1, 0, x_9); +return x_1; +} +else +{ +lean_object* x_12; lean_object* x_13; size_t x_14; size_t x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_12 = lean_ctor_get(x_1, 0); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_1); +x_14 = l_Lean_Name_hash(x_2); +x_15 = 1; +x_16 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_12, x_14, x_15, x_2, x_3); +x_17 = lean_unsigned_to_nat(1u); +x_18 = lean_nat_add(x_13, x_17); +lean_dec(x_13); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_16); +lean_ctor_set(x_19, 1, x_18); +return x_19; +} +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("parser category '"); +return x_1; +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("' has already been defined"); +return x_1; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_8__addParserCategory(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; +lean_inc(x_1); +x_3 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1(x_1, x_2); +if (x_3 == 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_8__addParserCategory___spec__3(x_1, x_2, x_4); +x_6 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_6, 0, x_5); +return x_6; +} +else +{ +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_dec(x_1); +x_7 = l_Lean_Name_toString___closed__1; +x_8 = l_Lean_Name_toStringWithSep___main(x_7, x_2); +x_9 = l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__1; +x_10 = lean_string_append(x_9, x_8); +lean_dec(x_8); +x_11 = l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2; +x_12 = lean_string_append(x_10, x_11); +x_13 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_13, 0, x_12); +return x_13; +} +} +} +lean_object* l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; uint8_t x_5; lean_object* x_6; +x_4 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_5 = l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__2(x_1, x_4, x_3); +lean_dec(x_3); +x_6 = lean_box(x_5); +return x_6; +} +} +lean_object* l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1(x_1, x_2); +lean_dec(x_2); +x_4 = lean_box(x_3); +return x_4; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__6___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: +{ +size_t x_7; lean_object* x_8; +x_7 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__6(x_7, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +size_t x_6; size_t x_7; lean_object* x_8; +x_6 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_7 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_8 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__4(x_1, x_6, x_7, x_4, x_5); +return x_8; +} +} +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_5); +lean_ctor_set(x_6, 1, x_2); +return x_6; +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory(lean_object* x_1, lean_object* x_2) { +_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_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_inc(x_6); +lean_dec(x_4); +x_7 = l___private_Init_Lean_Parser_Parser_8__addParserCategory(x_5, x_1); +x_8 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1(x_7, x_6); +lean_dec(x_7); +if (lean_obj_tag(x_8) == 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_inc(x_10); +lean_dec(x_8); +x_11 = lean_io_ref_set(x_3, x_9, x_10); +return x_11; +} +else +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_8); +if (x_12 == 0) +{ +return x_8; +} +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_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; +} +} +} +else +{ +uint8_t x_16; +lean_dec(x_1); +x_16 = !lean_is_exclusive(x_4); +if (x_16 == 0) +{ +return x_4; +} +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_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_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_ParserExtensionState_inhabited___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_Trie_HasEmptyc___closed__1; +x_3 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; +x_4 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1; +x_5 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_4); +lean_ctor_set(x_5, 3, x_1); +return x_5; +} +} +lean_object* _init_l_Lean_Parser_ParserExtensionState_inhabited() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Parser_ParserExtensionState_inhabited___closed__1; +return x_1; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_10__ParserExtension_mkInitial(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Parser_builtinTokenTable; +x_3 = lean_io_ref_get(x_2, x_1); +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_3, 1); +lean_inc(x_5); +lean_dec(x_3); +x_6 = l_Lean_Parser_builtinSyntaxNodeKindSetRef; +x_7 = lean_io_ref_get(x_6, x_5); +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_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = l_Lean_Parser_builtinParserCategoriesRef; +x_11 = lean_io_ref_get(x_10, x_9); +if (lean_obj_tag(x_11) == 0) +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_11, 0); +x_14 = lean_box(0); +x_15 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_15, 0, x_4); +lean_ctor_set(x_15, 1, x_8); +lean_ctor_set(x_15, 2, x_13); +lean_ctor_set(x_15, 3, x_14); +lean_ctor_set(x_11, 0, x_15); +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_16 = lean_ctor_get(x_11, 0); +x_17 = lean_ctor_get(x_11, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_11); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_19, 0, x_4); +lean_ctor_set(x_19, 1, x_8); +lean_ctor_set(x_19, 2, x_16); +lean_ctor_set(x_19, 3, x_18); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_17); +return x_20; +} +} +else +{ +uint8_t x_21; +lean_dec(x_8); +lean_dec(x_4); +x_21 = !lean_is_exclusive(x_11); +if (x_21 == 0) +{ +return x_11; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_11, 0); +x_23 = lean_ctor_get(x_11, 1); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_11); +x_24 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_24, 0, x_22); +lean_ctor_set(x_24, 1, x_23); +return x_24; +} +} +} +else +{ +uint8_t x_25; +lean_dec(x_4); +x_25 = !lean_is_exclusive(x_7); +if (x_25 == 0) +{ +return x_7; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_7, 0); +x_27 = lean_ctor_get(x_7, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_7); +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; +} +} +} +else +{ +uint8_t x_29; +x_29 = !lean_is_exclusive(x_3); +if (x_29 == 0) +{ +return x_3; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_3, 0); +x_31 = lean_ctor_get(x_3, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_3); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; +} +} +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__1() { _start: { lean_object* x_1; @@ -24139,7 +25500,7 @@ x_1 = lean_mk_string("precedence mismatch for '"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__2() { _start: { lean_object* x_1; @@ -24147,7 +25508,7 @@ x_1 = lean_mk_string("', previous: "); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__3() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__3() { _start: { lean_object* x_1; @@ -24155,7 +25516,7 @@ x_1 = lean_mk_string(", new: "); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_8__mergePrecendences(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { if (lean_obj_tag(x_3) == 0) @@ -24189,15 +25550,15 @@ 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; 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_dec(x_3); -x_10 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__1; +x_10 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__1; x_11 = lean_string_append(x_1, x_10); x_12 = lean_string_append(x_11, x_2); -x_13 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__2; +x_13 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__2; x_14 = lean_string_append(x_12, x_13); x_15 = l_Nat_repr(x_7); x_16 = lean_string_append(x_14, x_15); lean_dec(x_15); -x_17 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__3; +x_17 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__3; x_18 = lean_string_append(x_16, x_17); x_19 = l_Nat_repr(x_8); x_20 = lean_string_append(x_18, x_19); @@ -24220,16 +25581,16 @@ return x_22; } } } -lean_object* l___private_Init_Lean_Parser_Parser_8__mergePrecendences___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Init_Lean_Parser_Parser_11__mergePrecendences___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___private_Init_Lean_Parser_Parser_8__mergePrecendences(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences(x_1, x_2, x_3, x_4); lean_dec(x_2); return x_5; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1() { _start: { lean_object* x_1; @@ -24237,7 +25598,7 @@ x_1 = lean_mk_string("(no whitespace) "); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__2() { _start: { lean_object* x_1; @@ -24245,17 +25606,17 @@ x_1 = lean_mk_string("invalid empty symbol"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__3() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__2; +x_1 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Init_Lean_Parser_Parser_9__addTokenConfig(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_12__addTokenConfig(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; @@ -24302,7 +25663,7 @@ lean_inc(x_16); lean_dec(x_9); x_17 = lean_ctor_get(x_16, 1); lean_inc(x_17); -x_18 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences(x_6, x_3, x_17, x_4); +x_18 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences(x_6, x_3, x_17, x_4); if (lean_obj_tag(x_18) == 0) { uint8_t x_19; @@ -24336,8 +25697,8 @@ lean_dec(x_18); x_23 = lean_ctor_get(x_16, 2); lean_inc(x_23); lean_dec(x_16); -x_24 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1; -x_25 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences(x_24, x_3, x_23, x_5); +x_24 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1; +x_25 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences(x_24, x_3, x_23, x_5); if (lean_obj_tag(x_25) == 0) { uint8_t x_26; @@ -24404,7 +25765,7 @@ lean_inc(x_35); lean_dec(x_9); x_36 = lean_ctor_get(x_35, 1); lean_inc(x_36); -x_37 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences(x_6, x_3, x_36, x_4); +x_37 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences(x_6, x_3, x_36, x_4); if (lean_obj_tag(x_37) == 0) { lean_object* x_38; lean_object* x_39; lean_object* x_40; @@ -24438,8 +25799,8 @@ lean_dec(x_37); x_42 = lean_ctor_get(x_35, 2); lean_inc(x_42); lean_dec(x_35); -x_43 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1; -x_44 = l___private_Init_Lean_Parser_Parser_8__mergePrecendences(x_43, x_3, x_42, x_5); +x_43 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1; +x_44 = l___private_Init_Lean_Parser_Parser_11__mergePrecendences(x_43, x_3, x_42, x_5); if (lean_obj_tag(x_44) == 0) { lean_object* x_45; lean_object* x_46; lean_object* x_47; @@ -24502,2917 +25863,86 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_53 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__3; +x_53 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__3; return x_53; } } } -lean_object* l_List_foldlM___main___at_Lean_Parser_addParserTokens___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_3; -x_3 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_3, 0, x_1); -return x_3; -} -else -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; -x_4 = lean_ctor_get(x_2, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 1); -lean_inc(x_5); -lean_dec(x_2); -x_6 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig(x_1, x_4); -if (lean_obj_tag(x_6) == 0) -{ -uint8_t x_7; -lean_dec(x_5); -x_7 = !lean_is_exclusive(x_6); -if (x_7 == 0) -{ -return x_6; -} -else -{ -lean_object* x_8; lean_object* x_9; -x_8 = lean_ctor_get(x_6, 0); -lean_inc(x_8); -lean_dec(x_6); -x_9 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_9, 0, x_8); -return x_9; -} -} -else -{ -lean_object* x_10; -x_10 = lean_ctor_get(x_6, 0); -lean_inc(x_10); -lean_dec(x_6); -x_1 = x_10; -x_2 = x_5; -goto _start; -} -} -} -} -lean_object* l_Lean_Parser_addParserTokens(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; -x_3 = lean_ctor_get(x_2, 0); -lean_inc(x_3); -lean_dec(x_2); -x_4 = lean_box(0); -x_5 = lean_apply_1(x_3, x_4); -x_6 = l_List_foldlM___main___at_Lean_Parser_addParserTokens___spec__1(x_1, x_5); -return x_6; -} -} -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_3; lean_object* x_4; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -x_4 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; -} -else -{ -lean_object* x_5; lean_object* x_6; -x_5 = lean_ctor_get(x_1, 0); -lean_inc(x_5); -x_6 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_6, 0, x_5); -lean_ctor_set(x_6, 1, x_2); -return x_6; -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; uint8_t x_7; -x_6 = lean_array_get_size(x_2); -x_7 = lean_nat_dec_lt(x_3, x_6); -lean_dec(x_6); -if (x_7 == 0) -{ -lean_object* x_8; -lean_dec(x_3); -x_8 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_8, 0, x_4); -lean_ctor_set(x_8, 1, x_5); -return x_8; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_9 = lean_array_fget(x_2, x_3); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_3, x_10); -lean_dec(x_3); -x_12 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig(x_4, x_9); -x_13 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__1(x_12, x_5); -lean_dec(x_12); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_13, 1); -lean_inc(x_15); -lean_dec(x_13); -x_3 = x_11; -x_4 = x_14; -x_5 = x_15; -goto _start; -} -else -{ -uint8_t x_17; -lean_dec(x_11); -x_17 = !lean_is_exclusive(x_13); -if (x_17 == 0) -{ -return x_13; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_13, 0); -x_19 = lean_ctor_get(x_13, 1); -lean_inc(x_19); -lean_inc(x_18); -lean_dec(x_13); -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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; uint8_t x_7; -x_6 = lean_array_get_size(x_2); -x_7 = lean_nat_dec_lt(x_3, x_6); -lean_dec(x_6); -if (x_7 == 0) -{ -lean_object* x_8; -lean_dec(x_3); -x_8 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_8, 0, x_4); -lean_ctor_set(x_8, 1, x_5); -return x_8; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_9 = lean_array_fget(x_2, x_3); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_3, x_10); -lean_dec(x_3); -x_12 = lean_unsigned_to_nat(0u); -x_13 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__2(x_9, x_9, x_12, x_4, x_5); -lean_dec(x_9); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_13, 1); -lean_inc(x_15); -lean_dec(x_13); -x_3 = x_11; -x_4 = x_14; -x_5 = x_15; -goto _start; -} -else -{ -uint8_t x_17; -lean_dec(x_11); -x_17 = !lean_is_exclusive(x_13); -if (x_17 == 0) -{ -return x_13; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_13, 0); -x_19 = lean_ctor_get(x_13, 1); -lean_inc(x_19); -lean_inc(x_18); -lean_dec(x_13); -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___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = l_Lean_Parser_builtinTokenTable; -x_4 = lean_io_ref_get(x_3, x_2); -if (lean_obj_tag(x_4) == 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_inc(x_6); -lean_dec(x_4); -x_7 = lean_unsigned_to_nat(0u); -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__3(x_1, x_1, x_7, x_5, x_6); -if (lean_obj_tag(x_8) == 0) -{ -uint8_t x_9; -x_9 = !lean_is_exclusive(x_8); -if (x_9 == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_ctor_get(x_8, 0); -x_11 = lean_box(0); -x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_11); -lean_ctor_set(x_12, 1, x_10); -lean_ctor_set(x_8, 0, x_12); -return x_8; -} -else -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_13 = lean_ctor_get(x_8, 0); -x_14 = lean_ctor_get(x_8, 1); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_8); -x_15 = lean_box(0); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_13); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_14); -return x_17; -} -} -else -{ -uint8_t x_18; -x_18 = !lean_is_exclusive(x_8); -if (x_18 == 0) -{ -return x_8; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_8, 0); -x_20 = lean_ctor_get(x_8, 1); -lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_8); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -else -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_4); -if (x_22 == 0) -{ -return x_4; -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_4, 0); -x_24 = lean_ctor_get(x_4, 1); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_4); -x_25 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_25, 0, x_23); -lean_ctor_set(x_25, 1, x_24); -return x_25; -} -} -} -} -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__1(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__2(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_2); -lean_dec(x_1); -return x_6; -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___spec__3(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_2); -lean_dec(x_1); -return x_6; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* _init_l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1() { +lean_object* _init_l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Trie_Inhabited(lean_box(0)); +x_1 = lean_mk_string("unknown parser category '"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__2() { +lean_object* l_Lean_Parser_throwUnknownParserCategory___rarg(lean_object* x_1) { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1; -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* l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = lean_ctor_get(x_1, 1); -lean_inc(x_3); -lean_inc(x_2); -x_4 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig(x_3, x_2); -if (lean_obj_tag(x_4) == 0) -{ -lean_object* x_5; lean_object* x_6; -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_5 = l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__2; -x_6 = l_unreachable_x21___rarg(x_5); -return x_6; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_7 = lean_ctor_get(x_4, 0); -lean_inc(x_7); -lean_dec(x_4); -x_8 = lean_ctor_get(x_1, 0); -lean_inc(x_8); -lean_dec(x_1); -x_9 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_9, 0, x_2); -lean_ctor_set(x_9, 1, x_8); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_9); -lean_ctor_set(x_10, 1, x_7); -return x_10; -} -} -} -lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___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_Trie_empty___closed__1; -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_TokenTableAttribute_inhabited___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Array_empty___closed__1; -x_2 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__1; -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_TokenTableAttribute_inhabited___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_EnvExtension_Inhabited___rarg___closed__1; -x_3 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__2; -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_1 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__3; -x_2 = lean_box(0); -x_3 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; -x_4 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; -x_5 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -x_6 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; -x_7 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_2); -lean_ctor_set(x_7, 2, x_3); -lean_ctor_set(x_7, 3, x_4); -lean_ctor_set(x_7, 4, x_5); -lean_ctor_set(x_7, 5, x_6); -return x_7; -} -} -lean_object* _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_AttributeImpl_inhabited___closed__2; -x_2 = l_Lean_Parser_TokenTableAttribute_inhabited___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_TokenTableAttribute_inhabited() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__5; -return x_1; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_12__addTokenAux(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; -x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); -x_5 = lean_ctor_get(x_4, 1); -lean_inc(x_5); -lean_dec(x_4); -lean_inc(x_3); -x_6 = l___private_Init_Lean_Parser_Parser_9__addTokenConfig(x_5, x_3); -if (lean_obj_tag(x_6) == 0) -{ -uint8_t x_7; +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; +x_2 = l_Lean_Name_toString___closed__1; +x_3 = l_Lean_Name_toStringWithSep___main(x_2, x_1); +x_4 = l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1; +x_5 = lean_string_append(x_4, x_3); lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_7 = !lean_is_exclusive(x_6); -if (x_7 == 0) -{ -return x_6; -} -else -{ -lean_object* x_8; lean_object* x_9; -x_8 = lean_ctor_get(x_6, 0); -lean_inc(x_8); -lean_dec(x_6); -x_9 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_9, 0, x_8); -return x_9; +x_6 = l_Char_HasRepr___closed__1; +x_7 = lean_string_append(x_5, x_6); +x_8 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_8, 0, x_7); +return x_8; } } -else -{ -uint8_t x_10; -x_10 = !lean_is_exclusive(x_6); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; -x_11 = lean_ctor_get(x_6, 0); -lean_dec(x_11); -x_12 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_1, x_3); -lean_ctor_set(x_6, 0, x_12); -return x_6; -} -else -{ -lean_object* x_13; lean_object* x_14; -lean_dec(x_6); -x_13 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_1, x_3); -x_14 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_14, 0, x_13); -return x_14; -} -} -} -} -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(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_throwUnknownParserCategory(lean_object* x_1) { _start: { -uint8_t x_6; -x_6 = lean_nat_dec_lt(x_5, x_4); -if (x_6 == 0) -{ -uint8_t x_7; -lean_dec(x_5); -x_7 = 0; -return x_7; -} -else -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; -x_8 = lean_array_fget(x_3, x_5); -x_9 = lean_ctor_get(x_8, 1); -lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_ctor_get(x_1, 0); -x_11 = lean_name_eq(x_9, x_10); -lean_dec(x_9); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -x_5 = x_13; -goto _start; -} -else -{ -lean_dec(x_5); -return x_11; -} -} -} -} -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = lean_io_initializing(x_2); -if (lean_obj_tag(x_3) == 0) -{ -lean_object* x_4; uint8_t x_5; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_unbox(x_4); -lean_dec(x_4); -if (x_5 == 0) -{ -uint8_t x_6; -lean_dec(x_1); -x_6 = !lean_is_exclusive(x_3); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; -x_7 = lean_ctor_get(x_3, 0); -lean_dec(x_7); -x_8 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; -lean_ctor_set_tag(x_3, 1); -lean_ctor_set(x_3, 0, x_8); -return x_3; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_3, 1); -lean_inc(x_9); -lean_dec(x_3); -x_10 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; -x_11 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_9); -return x_11; -} -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_12 = lean_ctor_get(x_3, 1); -lean_inc(x_12); -lean_dec(x_3); -x_13 = l___private_Init_Lean_Environment_5__envExtensionsRef; -x_14 = lean_io_ref_get(x_13, x_12); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_array_get_size(x_15); -lean_dec(x_15); -x_18 = l_Lean_Parser_TokenTableAttribute_inhabited___closed__2; -x_19 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_1); -lean_ctor_set(x_19, 2, x_18); -x_20 = lean_io_ref_get(x_13, x_16); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = lean_io_ref_reset(x_13, x_22); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -x_25 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_19); -x_26 = x_19; -x_27 = lean_array_push(x_21, x_26); -x_28 = lean_io_ref_set(x_13, x_27, x_24); -if (lean_obj_tag(x_28) == 0) -{ -uint8_t x_29; -x_29 = !lean_is_exclusive(x_28); -if (x_29 == 0) -{ -lean_object* x_30; -x_30 = lean_ctor_get(x_28, 0); -lean_dec(x_30); -lean_ctor_set(x_28, 0, x_19); -return x_28; -} -else -{ -lean_object* x_31; lean_object* x_32; -x_31 = lean_ctor_get(x_28, 1); -lean_inc(x_31); -lean_dec(x_28); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_19); -lean_ctor_set(x_32, 1, x_31); -return x_32; -} -} -else -{ -uint8_t x_33; -lean_dec(x_19); -x_33 = !lean_is_exclusive(x_28); -if (x_33 == 0) -{ -return x_28; -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_28, 0); -x_35 = lean_ctor_get(x_28, 1); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_28); -x_36 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_36, 0, x_34); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -} -else -{ -uint8_t x_37; -lean_dec(x_21); -lean_dec(x_19); -x_37 = !lean_is_exclusive(x_23); -if (x_37 == 0) -{ -return x_23; -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_23, 0); -x_39 = lean_ctor_get(x_23, 1); -lean_inc(x_39); -lean_inc(x_38); -lean_dec(x_23); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; -} -} -} -else -{ -uint8_t x_41; -lean_dec(x_19); -x_41 = !lean_is_exclusive(x_20); -if (x_41 == 0) -{ -return x_20; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_20, 0); -x_43 = lean_ctor_get(x_20, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_20); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_1); -x_45 = !lean_is_exclusive(x_14); -if (x_45 == 0) -{ -return x_14; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_14, 0); -x_47 = lean_ctor_get(x_14, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_14); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} -} -} -} -else -{ -uint8_t x_49; -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_3); -if (x_49 == 0) -{ -return x_3; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_3, 0); -x_51 = lean_ctor_get(x_3, 1); -lean_inc(x_51); -lean_inc(x_50); -lean_dec(x_3); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; -} -} -} -} -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = l___private_Init_Lean_Environment_8__persistentEnvExtensionsRef; -x_4 = lean_io_ref_get(x_3, x_2); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_5; -x_5 = !lean_is_exclusive(x_4); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; -x_6 = lean_ctor_get(x_4, 0); -x_7 = lean_ctor_get(x_4, 1); -x_8 = lean_array_get_size(x_6); -x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_1, x_6, x_6, x_8, x_9); -lean_dec(x_8); -lean_dec(x_6); -if (x_10 == 0) -{ -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; -lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 1); -lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 2); -lean_inc(x_13); -x_14 = lean_ctor_get(x_1, 3); -lean_inc(x_14); -x_15 = lean_ctor_get(x_1, 4); -lean_inc(x_15); -x_16 = lean_ctor_get(x_1, 5); -lean_inc(x_16); -lean_dec(x_1); -x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_18, 0, x_12); -lean_closure_set(x_18, 1, x_17); -x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_18, x_7); -if (lean_obj_tag(x_19) == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_11); -lean_ctor_set(x_22, 2, x_13); -lean_ctor_set(x_22, 3, x_14); -lean_ctor_set(x_22, 4, x_15); -lean_ctor_set(x_22, 5, x_16); -x_23 = lean_io_ref_get(x_3, x_21); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); -lean_dec(x_23); -x_26 = lean_io_ref_reset(x_3, x_25); -if (lean_obj_tag(x_26) == 0) -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_27 = lean_ctor_get(x_26, 1); -lean_inc(x_27); -lean_dec(x_26); -x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_22); -x_29 = x_22; -x_30 = lean_array_push(x_24, x_29); -x_31 = lean_io_ref_set(x_3, x_30, x_27); -if (lean_obj_tag(x_31) == 0) -{ -uint8_t x_32; -x_32 = !lean_is_exclusive(x_31); -if (x_32 == 0) -{ -lean_object* x_33; -x_33 = lean_ctor_get(x_31, 0); -lean_dec(x_33); -lean_ctor_set(x_31, 0, x_22); -return x_31; -} -else -{ -lean_object* x_34; lean_object* x_35; -x_34 = lean_ctor_get(x_31, 1); -lean_inc(x_34); -lean_dec(x_31); -x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_22); -lean_ctor_set(x_35, 1, x_34); -return x_35; -} -} -else -{ -uint8_t x_36; -lean_dec(x_22); -x_36 = !lean_is_exclusive(x_31); -if (x_36 == 0) -{ -return x_31; -} -else -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_31, 0); -x_38 = lean_ctor_get(x_31, 1); -lean_inc(x_38); -lean_inc(x_37); -lean_dec(x_31); -x_39 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_39, 0, x_37); -lean_ctor_set(x_39, 1, x_38); -return x_39; -} -} -} -else -{ -uint8_t x_40; -lean_dec(x_24); -lean_dec(x_22); -x_40 = !lean_is_exclusive(x_26); -if (x_40 == 0) -{ -return x_26; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_26, 0); -x_42 = lean_ctor_get(x_26, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_26); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; -} -} -} -else -{ -uint8_t x_44; -lean_dec(x_22); -x_44 = !lean_is_exclusive(x_23); -if (x_44 == 0) -{ -return x_23; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_23, 0); -x_46 = lean_ctor_get(x_23, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_23); -x_47 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_47, 0, x_45); -lean_ctor_set(x_47, 1, x_46); -return x_47; -} -} -} -else -{ -uint8_t x_48; -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_11); -x_48 = !lean_is_exclusive(x_19); -if (x_48 == 0) -{ -return x_19; -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_19, 0); -x_50 = lean_ctor_get(x_19, 1); -lean_inc(x_50); -lean_inc(x_49); -lean_dec(x_19); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -return x_51; -} -} -} -else -{ -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; -x_52 = lean_ctor_get(x_1, 0); -lean_inc(x_52); -lean_dec(x_1); -x_53 = l_Lean_Name_toString___closed__1; -x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); -x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_56 = lean_string_append(x_55, x_54); -lean_dec(x_54); -x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_58 = lean_string_append(x_56, x_57); -lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_58); -return x_4; -} -} -else -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_59 = lean_ctor_get(x_4, 0); -x_60 = lean_ctor_get(x_4, 1); -lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_4); -x_61 = lean_array_get_size(x_59); -x_62 = lean_unsigned_to_nat(0u); -x_63 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_1, x_59, x_59, x_61, x_62); -lean_dec(x_61); -lean_dec(x_59); -if (x_63 == 0) -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_64 = lean_ctor_get(x_1, 0); -lean_inc(x_64); -x_65 = lean_ctor_get(x_1, 1); -lean_inc(x_65); -x_66 = lean_ctor_get(x_1, 2); -lean_inc(x_66); -x_67 = lean_ctor_get(x_1, 3); -lean_inc(x_67); -x_68 = lean_ctor_get(x_1, 4); -lean_inc(x_68); -x_69 = lean_ctor_get(x_1, 5); -lean_inc(x_69); -lean_dec(x_1); -x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_71, 0, x_65); -lean_closure_set(x_71, 1, x_70); -x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__3(x_71, x_60); -if (lean_obj_tag(x_72) == 0) -{ -lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_72, 1); -lean_inc(x_74); -lean_dec(x_72); -x_75 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_75, 0, x_73); -lean_ctor_set(x_75, 1, x_64); -lean_ctor_set(x_75, 2, x_66); -lean_ctor_set(x_75, 3, x_67); -lean_ctor_set(x_75, 4, x_68); -lean_ctor_set(x_75, 5, x_69); -x_76 = lean_io_ref_get(x_3, x_74); -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); -lean_dec(x_76); -x_79 = lean_io_ref_reset(x_3, x_78); -if (lean_obj_tag(x_79) == 0) -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_80 = lean_ctor_get(x_79, 1); -lean_inc(x_80); -lean_dec(x_79); -x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_75); -x_82 = x_75; -x_83 = lean_array_push(x_77, x_82); -x_84 = lean_io_ref_set(x_3, x_83, x_80); -if (lean_obj_tag(x_84) == 0) -{ -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_ctor_get(x_84, 1); -lean_inc(x_85); -if (lean_is_exclusive(x_84)) { - lean_ctor_release(x_84, 0); - lean_ctor_release(x_84, 1); - x_86 = x_84; -} else { - lean_dec_ref(x_84); - x_86 = lean_box(0); -} -if (lean_is_scalar(x_86)) { - x_87 = lean_alloc_ctor(0, 2, 0); -} else { - x_87 = x_86; -} -lean_ctor_set(x_87, 0, x_75); -lean_ctor_set(x_87, 1, x_85); -return x_87; -} -else -{ -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; -lean_dec(x_75); -x_88 = lean_ctor_get(x_84, 0); -lean_inc(x_88); -x_89 = lean_ctor_get(x_84, 1); -lean_inc(x_89); -if (lean_is_exclusive(x_84)) { - lean_ctor_release(x_84, 0); - lean_ctor_release(x_84, 1); - x_90 = x_84; -} else { - lean_dec_ref(x_84); - x_90 = lean_box(0); -} -if (lean_is_scalar(x_90)) { - x_91 = lean_alloc_ctor(1, 2, 0); -} else { - x_91 = x_90; -} -lean_ctor_set(x_91, 0, x_88); -lean_ctor_set(x_91, 1, x_89); -return x_91; -} -} -else -{ -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; -lean_dec(x_77); -lean_dec(x_75); -x_92 = lean_ctor_get(x_79, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_79, 1); -lean_inc(x_93); -if (lean_is_exclusive(x_79)) { - lean_ctor_release(x_79, 0); - lean_ctor_release(x_79, 1); - x_94 = x_79; -} else { - lean_dec_ref(x_79); - x_94 = lean_box(0); -} -if (lean_is_scalar(x_94)) { - x_95 = lean_alloc_ctor(1, 2, 0); -} else { - x_95 = x_94; -} -lean_ctor_set(x_95, 0, x_92); -lean_ctor_set(x_95, 1, x_93); -return x_95; -} -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -lean_dec(x_75); -x_96 = lean_ctor_get(x_76, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_76, 1); -lean_inc(x_97); -if (lean_is_exclusive(x_76)) { - lean_ctor_release(x_76, 0); - lean_ctor_release(x_76, 1); - x_98 = x_76; -} else { - lean_dec_ref(x_76); - x_98 = lean_box(0); -} -if (lean_is_scalar(x_98)) { - x_99 = lean_alloc_ctor(1, 2, 0); -} else { - x_99 = x_98; -} -lean_ctor_set(x_99, 0, x_96); -lean_ctor_set(x_99, 1, x_97); -return x_99; -} -} -else -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_67); -lean_dec(x_66); -lean_dec(x_64); -x_100 = lean_ctor_get(x_72, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_72, 1); -lean_inc(x_101); -if (lean_is_exclusive(x_72)) { - lean_ctor_release(x_72, 0); - lean_ctor_release(x_72, 1); - x_102 = x_72; -} else { - lean_dec_ref(x_72); - x_102 = lean_box(0); -} -if (lean_is_scalar(x_102)) { - x_103 = lean_alloc_ctor(1, 2, 0); -} else { - x_103 = x_102; -} -lean_ctor_set(x_103, 0, x_100); -lean_ctor_set(x_103, 1, x_101); -return x_103; -} -} -else -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; -x_104 = lean_ctor_get(x_1, 0); -lean_inc(x_104); -lean_dec(x_1); -x_105 = l_Lean_Name_toString___closed__1; -x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); -x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_108 = lean_string_append(x_107, x_106); -lean_dec(x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_110 = lean_string_append(x_108, x_109); -x_111 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_111, 0, x_110); -lean_ctor_set(x_111, 1, x_60); -return x_111; -} -} -} -else -{ -uint8_t x_112; -lean_dec(x_1); -x_112 = !lean_is_exclusive(x_4); -if (x_112 == 0) -{ -return x_4; -} -else -{ -lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_113 = lean_ctor_get(x_4, 0); -x_114 = lean_ctor_get(x_4, 1); -lean_inc(x_114); -lean_inc(x_113); -lean_dec(x_4); -x_115 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_115, 0, x_113); -lean_ctor_set(x_115, 1, x_114); -return x_115; -} -} -} -} -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_box(0); -x_4 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_1); -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_2); -return x_5; -} -} -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l___private_Init_Lean_Parser_Parser_10__mkImportedTokenTable(x_2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__3(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; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -lean_dec(x_1); -x_3 = l_List_reverse___rarg(x_2); -x_4 = l_List_redLength___main___rarg(x_3); -x_5 = lean_mk_empty_array_with_capacity(x_4); -lean_dec(x_4); -x_6 = l_List_toArrayAux___main___rarg(x_3, x_5); -return x_6; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("_tokens_"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___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_mkTokenTableAttribute___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_builtinTokenTable; -x_2 = lean_alloc_closure((void*)(l_IO_Prim_Ref_get___boxed), 3, 2); -lean_closure_set(x_2, 0, lean_box(0)); -lean_closure_set(x_2, 1, x_1); +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_throwUnknownParserCategory___rarg), 1, 0); return x_2; } } -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__4() { +lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Parser_addLeadingParser___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__1), 2, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__3; -x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__4; -x_3 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__6() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed), 3, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__7() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry), 2, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__8() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkTokenTableAttribute___lambda__3), 1, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__9() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__2; -x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__5; -x_3 = l_Lean_Parser_mkTokenTableAttribute___closed__6; -x_4 = l_Lean_Parser_mkTokenTableAttribute___closed__7; -x_5 = l_Lean_Parser_mkTokenTableAttribute___closed__8; -x_6 = l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; -x_7 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_2); -lean_ctor_set(x_7, 2, x_3); -lean_ctor_set(x_7, 3, x_4); -lean_ctor_set(x_7, 4, x_5); -lean_ctor_set(x_7, 5, x_6); -return x_7; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__10() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("internal token table attribute"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTokenTableAttribute___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; -x_1 = l_Lean_Parser_mkTokenTableAttribute___closed__2; -x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__10; -x_3 = l_Lean_AttributeImpl_inhabited___closed__1; -x_4 = 0; -x_5 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_5, 0, x_1); -lean_ctor_set(x_5, 1, x_2); -lean_ctor_set(x_5, 2, x_3); -lean_ctor_set_uint8(x_5, sizeof(void*)*3, x_4); -return x_5; -} -} -lean_object* l_Lean_Parser_mkTokenTableAttribute(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__9; -x_3 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkTokenTableAttribute___spec__1(x_2, x_1); -if (lean_obj_tag(x_3) == 0) -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_3, 1); -lean_inc(x_5); -lean_dec(x_3); -x_6 = l_Lean_Parser_mkTokenTableAttribute___closed__11; -x_7 = l_Lean_registerAttribute(x_6, x_5); -if (lean_obj_tag(x_7) == 0) -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_7); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; -x_9 = lean_ctor_get(x_7, 0); -lean_dec(x_9); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_6); -lean_ctor_set(x_10, 1, x_4); -lean_ctor_set(x_7, 0, x_10); -return x_7; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_11 = lean_ctor_get(x_7, 1); -lean_inc(x_11); -lean_dec(x_7); -x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_6); -lean_ctor_set(x_12, 1, x_4); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_11); -return x_13; -} -} -else -{ -uint8_t x_14; -lean_dec(x_4); -x_14 = !lean_is_exclusive(x_7); -if (x_14 == 0) -{ -return x_7; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_15 = lean_ctor_get(x_7, 0); -x_16 = lean_ctor_get(x_7, 1); -lean_inc(x_16); -lean_inc(x_15); -lean_dec(x_7); -x_17 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_17, 0, x_15); -lean_ctor_set(x_17, 1, x_16); -return x_17; -} -} -} -else -{ -uint8_t x_18; -x_18 = !lean_is_exclusive(x_3); -if (x_18 == 0) -{ -return x_3; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_3, 0); -x_20 = lean_ctor_get(x_3, 1); -lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_3); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -} -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2___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 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkTokenTableAttribute___spec__2(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_7 = lean_box(x_6); -return x_7; -} -} -lean_object* l_Lean_Parser_mkTokenTableAttribute___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Parser_mkTokenTableAttribute___lambda__2(x_1, x_2, x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_4; -} -} -lean_object* l_Lean_Parser_addToken(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = l_Lean_Parser_tokenTableAttribute; -x_4 = lean_ctor_get(x_3, 1); -lean_inc(x_4); -x_5 = l___private_Init_Lean_Parser_Parser_12__addTokenAux(x_1, x_4, x_2); -return x_5; -} -} -lean_object* _init_l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_LocalContext_Inhabited___closed__1; -return x_1; -} -} -lean_object* l_Lean_Parser_mkSyntaxNodeKindSetRef(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1; -x_3 = lean_io_mk_ref(x_2, x_1); -return x_3; -} -} -lean_object* l_Lean_Parser_updateBuiltinSyntaxNodeKinds(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_ctor_get(x_1, 1); -lean_inc(x_3); -lean_dec(x_1); -x_4 = l_Lean_Parser_syntaxNodeKindSetRef; -x_5 = lean_io_ref_get(x_4, x_2); -if (lean_obj_tag(x_5) == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_6 = lean_ctor_get(x_5, 0); -lean_inc(x_6); -x_7 = lean_ctor_get(x_5, 1); -lean_inc(x_7); -lean_dec(x_5); -x_8 = lean_io_ref_reset(x_4, x_7); -if (lean_obj_tag(x_8) == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_8, 1); -lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_apply_1(x_3, x_6); -x_11 = lean_io_ref_set(x_4, x_10, x_9); -return x_11; -} -else -{ -uint8_t x_12; +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_get_size(x_1); +x_7 = lean_nat_dec_lt(x_4, x_6); lean_dec(x_6); -lean_dec(x_3); -x_12 = !lean_is_exclusive(x_8); -if (x_12 == 0) +if (x_7 == 0) { +lean_object* x_8; +lean_dec(x_4); +x_8 = lean_box(0); return x_8; } 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_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); +lean_object* x_9; uint8_t x_10; +x_9 = lean_array_fget(x_1, x_4); +x_10 = lean_name_eq(x_5, x_9); +lean_dec(x_9); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_4, x_11); +lean_dec(x_4); +x_3 = lean_box(0); +x_4 = x_12; +goto _start; +} +else +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_array_fget(x_2, x_4); +lean_dec(x_4); +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_14); return x_15; } } } -else -{ -uint8_t x_16; -lean_dec(x_3); -x_16 = !lean_is_exclusive(x_5); -if (x_16 == 0) -{ -return x_5; } -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_5, 0); -x_18 = lean_ctor_get(x_5, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_5); -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_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_array_get_size(x_2); -x_6 = lean_nat_dec_lt(x_3, x_5); -lean_dec(x_5); -if (x_6 == 0) -{ -lean_dec(x_3); -return x_4; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_7 = lean_array_fget(x_2, x_3); -x_8 = lean_box(0); -x_9 = l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(x_4, x_7, x_8); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_3, x_10); -lean_dec(x_3); -x_3 = x_11; -x_4 = x_9; -goto _start; -} -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_array_get_size(x_2); -x_6 = lean_nat_dec_lt(x_3, x_5); -lean_dec(x_5); -if (x_6 == 0) -{ -lean_dec(x_3); -return x_4; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_7 = lean_array_fget(x_2, x_3); -x_8 = lean_unsigned_to_nat(0u); -x_9 = l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__2(x_7, x_7, x_8, x_4); -lean_dec(x_7); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_3, x_10); -lean_dec(x_3); -x_3 = x_11; -x_4 = x_9; -goto _start; -} -} -} -lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = lean_unsigned_to_nat(0u); -x_4 = l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3(x_2, x_2, x_3, x_1); -return x_4; -} -} -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5(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; -x_6 = lean_nat_dec_lt(x_5, x_4); -if (x_6 == 0) -{ -uint8_t x_7; -lean_dec(x_5); -x_7 = 0; -return x_7; -} -else -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; -x_8 = lean_array_fget(x_3, x_5); -x_9 = lean_ctor_get(x_8, 1); -lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_ctor_get(x_1, 0); -x_11 = lean_name_eq(x_9, x_10); -lean_dec(x_9); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -x_5 = x_13; -goto _start; -} -else -{ -lean_dec(x_5); -return x_11; -} -} -} -} -lean_object* _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_ConstantVal_inhabited___closed__1; -x_2 = l_Lean_LocalContext_Inhabited___closed__1; -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_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Array_empty___closed__1; -x_2 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__1; -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* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = lean_io_initializing(x_2); -if (lean_obj_tag(x_3) == 0) -{ -lean_object* x_4; uint8_t x_5; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_unbox(x_4); -lean_dec(x_4); -if (x_5 == 0) -{ -uint8_t x_6; -lean_dec(x_1); -x_6 = !lean_is_exclusive(x_3); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; -x_7 = lean_ctor_get(x_3, 0); -lean_dec(x_7); -x_8 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; -lean_ctor_set_tag(x_3, 1); -lean_ctor_set(x_3, 0, x_8); -return x_3; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_3, 1); -lean_inc(x_9); -lean_dec(x_3); -x_10 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__1; -x_11 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_9); -return x_11; -} -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_12 = lean_ctor_get(x_3, 1); -lean_inc(x_12); -lean_dec(x_3); -x_13 = l___private_Init_Lean_Environment_5__envExtensionsRef; -x_14 = lean_io_ref_get(x_13, x_12); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_array_get_size(x_15); -lean_dec(x_15); -x_18 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2; -x_19 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_1); -lean_ctor_set(x_19, 2, x_18); -x_20 = lean_io_ref_get(x_13, x_16); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = lean_io_ref_reset(x_13, x_22); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -x_25 = l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_19); -x_26 = x_19; -x_27 = lean_array_push(x_21, x_26); -x_28 = lean_io_ref_set(x_13, x_27, x_24); -if (lean_obj_tag(x_28) == 0) -{ -uint8_t x_29; -x_29 = !lean_is_exclusive(x_28); -if (x_29 == 0) -{ -lean_object* x_30; -x_30 = lean_ctor_get(x_28, 0); -lean_dec(x_30); -lean_ctor_set(x_28, 0, x_19); -return x_28; -} -else -{ -lean_object* x_31; lean_object* x_32; -x_31 = lean_ctor_get(x_28, 1); -lean_inc(x_31); -lean_dec(x_28); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_19); -lean_ctor_set(x_32, 1, x_31); -return x_32; -} -} -else -{ -uint8_t x_33; -lean_dec(x_19); -x_33 = !lean_is_exclusive(x_28); -if (x_33 == 0) -{ -return x_28; -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_28, 0); -x_35 = lean_ctor_get(x_28, 1); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_28); -x_36 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_36, 0, x_34); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -} -else -{ -uint8_t x_37; -lean_dec(x_21); -lean_dec(x_19); -x_37 = !lean_is_exclusive(x_23); -if (x_37 == 0) -{ -return x_23; -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_23, 0); -x_39 = lean_ctor_get(x_23, 1); -lean_inc(x_39); -lean_inc(x_38); -lean_dec(x_23); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; -} -} -} -else -{ -uint8_t x_41; -lean_dec(x_19); -x_41 = !lean_is_exclusive(x_20); -if (x_41 == 0) -{ -return x_20; -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_20, 0); -x_43 = lean_ctor_get(x_20, 1); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_20); -x_44 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_44, 0, x_42); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -uint8_t x_45; -lean_dec(x_1); -x_45 = !lean_is_exclusive(x_14); -if (x_45 == 0) -{ -return x_14; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_14, 0); -x_47 = lean_ctor_get(x_14, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_14); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} -} -} -} -else -{ -uint8_t x_49; -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_3); -if (x_49 == 0) -{ -return x_3; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_3, 0); -x_51 = lean_ctor_get(x_3, 1); -lean_inc(x_51); -lean_inc(x_50); -lean_dec(x_3); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; -} -} -} -} -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__4(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = l___private_Init_Lean_Environment_8__persistentEnvExtensionsRef; -x_4 = lean_io_ref_get(x_3, x_2); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_5; -x_5 = !lean_is_exclusive(x_4); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; -x_6 = lean_ctor_get(x_4, 0); -x_7 = lean_ctor_get(x_4, 1); -x_8 = lean_array_get_size(x_6); -x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5(x_1, x_6, x_6, x_8, x_9); -lean_dec(x_8); -lean_dec(x_6); -if (x_10 == 0) -{ -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; -lean_free_object(x_4); -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 1); -lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 2); -lean_inc(x_13); -x_14 = lean_ctor_get(x_1, 3); -lean_inc(x_14); -x_15 = lean_ctor_get(x_1, 4); -lean_inc(x_15); -x_16 = lean_ctor_get(x_1, 5); -lean_inc(x_16); -lean_dec(x_1); -x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_18, 0, x_12); -lean_closure_set(x_18, 1, x_17); -x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6(x_18, x_7); -if (lean_obj_tag(x_19) == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_11); -lean_ctor_set(x_22, 2, x_13); -lean_ctor_set(x_22, 3, x_14); -lean_ctor_set(x_22, 4, x_15); -lean_ctor_set(x_22, 5, x_16); -x_23 = lean_io_ref_get(x_3, x_21); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); -lean_dec(x_23); -x_26 = lean_io_ref_reset(x_3, x_25); -if (lean_obj_tag(x_26) == 0) -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_27 = lean_ctor_get(x_26, 1); -lean_inc(x_27); -lean_dec(x_26); -x_28 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_22); -x_29 = x_22; -x_30 = lean_array_push(x_24, x_29); -x_31 = lean_io_ref_set(x_3, x_30, x_27); -if (lean_obj_tag(x_31) == 0) -{ -uint8_t x_32; -x_32 = !lean_is_exclusive(x_31); -if (x_32 == 0) -{ -lean_object* x_33; -x_33 = lean_ctor_get(x_31, 0); -lean_dec(x_33); -lean_ctor_set(x_31, 0, x_22); -return x_31; -} -else -{ -lean_object* x_34; lean_object* x_35; -x_34 = lean_ctor_get(x_31, 1); -lean_inc(x_34); -lean_dec(x_31); -x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_22); -lean_ctor_set(x_35, 1, x_34); -return x_35; -} -} -else -{ -uint8_t x_36; -lean_dec(x_22); -x_36 = !lean_is_exclusive(x_31); -if (x_36 == 0) -{ -return x_31; -} -else -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_31, 0); -x_38 = lean_ctor_get(x_31, 1); -lean_inc(x_38); -lean_inc(x_37); -lean_dec(x_31); -x_39 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_39, 0, x_37); -lean_ctor_set(x_39, 1, x_38); -return x_39; -} -} -} -else -{ -uint8_t x_40; -lean_dec(x_24); -lean_dec(x_22); -x_40 = !lean_is_exclusive(x_26); -if (x_40 == 0) -{ -return x_26; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_26, 0); -x_42 = lean_ctor_get(x_26, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_26); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; -} -} -} -else -{ -uint8_t x_44; -lean_dec(x_22); -x_44 = !lean_is_exclusive(x_23); -if (x_44 == 0) -{ -return x_23; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_23, 0); -x_46 = lean_ctor_get(x_23, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_23); -x_47 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_47, 0, x_45); -lean_ctor_set(x_47, 1, x_46); -return x_47; -} -} -} -else -{ -uint8_t x_48; -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_11); -x_48 = !lean_is_exclusive(x_19); -if (x_48 == 0) -{ -return x_19; -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_19, 0); -x_50 = lean_ctor_get(x_19, 1); -lean_inc(x_50); -lean_inc(x_49); -lean_dec(x_19); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -return x_51; -} -} -} -else -{ -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; -x_52 = lean_ctor_get(x_1, 0); -lean_inc(x_52); -lean_dec(x_1); -x_53 = l_Lean_Name_toString___closed__1; -x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_52); -x_55 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_56 = lean_string_append(x_55, x_54); -lean_dec(x_54); -x_57 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_58 = lean_string_append(x_56, x_57); -lean_ctor_set_tag(x_4, 1); -lean_ctor_set(x_4, 0, x_58); -return x_4; -} -} -else -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_59 = lean_ctor_get(x_4, 0); -x_60 = lean_ctor_get(x_4, 1); -lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_4); -x_61 = lean_array_get_size(x_59); -x_62 = lean_unsigned_to_nat(0u); -x_63 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5(x_1, x_59, x_59, x_61, x_62); -lean_dec(x_61); -lean_dec(x_59); -if (x_63 == 0) -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_64 = lean_ctor_get(x_1, 0); -lean_inc(x_64); -x_65 = lean_ctor_get(x_1, 1); -lean_inc(x_65); -x_66 = lean_ctor_get(x_1, 2); -lean_inc(x_66); -x_67 = lean_ctor_get(x_1, 3); -lean_inc(x_67); -x_68 = lean_ctor_get(x_1, 4); -lean_inc(x_68); -x_69 = lean_ctor_get(x_1, 5); -lean_inc(x_69); -lean_dec(x_1); -x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; -x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_71, 0, x_65); -lean_closure_set(x_71, 1, x_70); -x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6(x_71, x_60); -if (lean_obj_tag(x_72) == 0) -{ -lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_72, 1); -lean_inc(x_74); -lean_dec(x_72); -x_75 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_75, 0, x_73); -lean_ctor_set(x_75, 1, x_64); -lean_ctor_set(x_75, 2, x_66); -lean_ctor_set(x_75, 3, x_67); -lean_ctor_set(x_75, 4, x_68); -lean_ctor_set(x_75, 5, x_69); -x_76 = lean_io_ref_get(x_3, x_74); -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); -lean_dec(x_76); -x_79 = lean_io_ref_reset(x_3, x_78); -if (lean_obj_tag(x_79) == 0) -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_80 = lean_ctor_get(x_79, 1); -lean_inc(x_80); -lean_dec(x_79); -x_81 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_inc(x_75); -x_82 = x_75; -x_83 = lean_array_push(x_77, x_82); -x_84 = lean_io_ref_set(x_3, x_83, x_80); -if (lean_obj_tag(x_84) == 0) -{ -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_ctor_get(x_84, 1); -lean_inc(x_85); -if (lean_is_exclusive(x_84)) { - lean_ctor_release(x_84, 0); - lean_ctor_release(x_84, 1); - x_86 = x_84; -} else { - lean_dec_ref(x_84); - x_86 = lean_box(0); -} -if (lean_is_scalar(x_86)) { - x_87 = lean_alloc_ctor(0, 2, 0); -} else { - x_87 = x_86; -} -lean_ctor_set(x_87, 0, x_75); -lean_ctor_set(x_87, 1, x_85); -return x_87; -} -else -{ -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; -lean_dec(x_75); -x_88 = lean_ctor_get(x_84, 0); -lean_inc(x_88); -x_89 = lean_ctor_get(x_84, 1); -lean_inc(x_89); -if (lean_is_exclusive(x_84)) { - lean_ctor_release(x_84, 0); - lean_ctor_release(x_84, 1); - x_90 = x_84; -} else { - lean_dec_ref(x_84); - x_90 = lean_box(0); -} -if (lean_is_scalar(x_90)) { - x_91 = lean_alloc_ctor(1, 2, 0); -} else { - x_91 = x_90; -} -lean_ctor_set(x_91, 0, x_88); -lean_ctor_set(x_91, 1, x_89); -return x_91; -} -} -else -{ -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; -lean_dec(x_77); -lean_dec(x_75); -x_92 = lean_ctor_get(x_79, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_79, 1); -lean_inc(x_93); -if (lean_is_exclusive(x_79)) { - lean_ctor_release(x_79, 0); - lean_ctor_release(x_79, 1); - x_94 = x_79; -} else { - lean_dec_ref(x_79); - x_94 = lean_box(0); -} -if (lean_is_scalar(x_94)) { - x_95 = lean_alloc_ctor(1, 2, 0); -} else { - x_95 = x_94; -} -lean_ctor_set(x_95, 0, x_92); -lean_ctor_set(x_95, 1, x_93); -return x_95; -} -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -lean_dec(x_75); -x_96 = lean_ctor_get(x_76, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_76, 1); -lean_inc(x_97); -if (lean_is_exclusive(x_76)) { - lean_ctor_release(x_76, 0); - lean_ctor_release(x_76, 1); - x_98 = x_76; -} else { - lean_dec_ref(x_76); - x_98 = lean_box(0); -} -if (lean_is_scalar(x_98)) { - x_99 = lean_alloc_ctor(1, 2, 0); -} else { - x_99 = x_98; -} -lean_ctor_set(x_99, 0, x_96); -lean_ctor_set(x_99, 1, x_97); -return x_99; -} -} -else -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_67); -lean_dec(x_66); -lean_dec(x_64); -x_100 = lean_ctor_get(x_72, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_72, 1); -lean_inc(x_101); -if (lean_is_exclusive(x_72)) { - lean_ctor_release(x_72, 0); - lean_ctor_release(x_72, 1); - x_102 = x_72; -} else { - lean_dec_ref(x_72); - x_102 = lean_box(0); -} -if (lean_is_scalar(x_102)) { - x_103 = lean_alloc_ctor(1, 2, 0); -} else { - x_103 = x_102; -} -lean_ctor_set(x_103, 0, x_100); -lean_ctor_set(x_103, 1, x_101); -return x_103; -} -} -else -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; -x_104 = lean_ctor_get(x_1, 0); -lean_inc(x_104); -lean_dec(x_1); -x_105 = l_Lean_Name_toString___closed__1; -x_106 = l_Lean_Name_toStringWithSep___main(x_105, x_104); -x_107 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__3; -x_108 = lean_string_append(x_107, x_106); -lean_dec(x_106); -x_109 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__4; -x_110 = lean_string_append(x_108, x_109); -x_111 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_111, 0, x_110); -lean_ctor_set(x_111, 1, x_60); -return x_111; -} -} -} -else -{ -uint8_t x_112; -lean_dec(x_1); -x_112 = !lean_is_exclusive(x_4); -if (x_112 == 0) -{ -return x_4; -} -else -{ -lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_113 = lean_ctor_get(x_4, 0); -x_114 = lean_ctor_get(x_4, 1); -lean_inc(x_114); -lean_inc(x_113); -lean_dec(x_4); -x_115 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_115, 0, x_113); -lean_ctor_set(x_115, 1, x_114); -return x_115; -} -} -} -} -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; lean_object* x_5; -x_4 = l_Lean_Parser_syntaxNodeKindSetRef; -x_5 = lean_io_ref_get(x_4, x_3); -if (lean_obj_tag(x_5) == 0) -{ -uint8_t x_6; -x_6 = !lean_is_exclusive(x_5); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_7 = lean_ctor_get(x_5, 0); -x_8 = lean_unsigned_to_nat(0u); -x_9 = l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3(x_2, x_2, x_8, x_7); -x_10 = lean_box(0); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_9); -lean_ctor_set(x_5, 0, x_11); -return x_5; -} -else -{ -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; -x_12 = lean_ctor_get(x_5, 0); -x_13 = lean_ctor_get(x_5, 1); -lean_inc(x_13); -lean_inc(x_12); -lean_dec(x_5); -x_14 = lean_unsigned_to_nat(0u); -x_15 = l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3(x_2, x_2, x_14, x_12); -x_16 = lean_box(0); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_15); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_13); -return x_18; -} -} -else -{ -uint8_t x_19; -x_19 = !lean_is_exclusive(x_5); -if (x_19 == 0) -{ -return x_5; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_5, 0); -x_21 = lean_ctor_get(x_5, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_5); -x_22 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_21); -return x_22; -} -} -} -} -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__2(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; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -lean_inc(x_2); -x_4 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_4, 0, x_2); -lean_ctor_set(x_4, 1, x_3); -x_5 = lean_ctor_get(x_1, 1); -lean_inc(x_5); -lean_dec(x_1); -x_6 = lean_box(0); -x_7 = l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(x_5, x_2, x_6); -x_8 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_8, 0, x_4); -lean_ctor_set(x_8, 1, x_7); -return x_8; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("stxNodeKind"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___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_mkSyntaxNodeKindExtension___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_syntaxNodeKindSetRef; -x_2 = lean_alloc_closure((void*)(l_IO_Prim_Ref_get___boxed), 3, 2); -lean_closure_set(x_2, 0, lean_box(0)); -lean_closure_set(x_2, 1, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_mkSyntaxNodeKindExtension___closed__3; -x_2 = l_Lean_Parser_mkTokenTableAttribute___closed__4; -x_3 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__1___boxed), 3, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__6() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__2), 2, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__7() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_1 = l_Lean_Parser_mkSyntaxNodeKindExtension___closed__2; -x_2 = l_Lean_Parser_mkSyntaxNodeKindExtension___closed__4; -x_3 = l_Lean_Parser_mkSyntaxNodeKindExtension___closed__5; -x_4 = l_Lean_Parser_mkSyntaxNodeKindExtension___closed__6; -x_5 = l_Lean_Parser_mkTokenTableAttribute___closed__8; -x_6 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; -x_7 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_2); -lean_ctor_set(x_7, 2, x_3); -lean_ctor_set(x_7, 3, x_4); -lean_ctor_set(x_7, 4, x_5); -lean_ctor_set(x_7, 5, x_6); -return x_7; -} -} -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Parser_mkSyntaxNodeKindExtension___closed__7; -x_3 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__4(x_2, x_1); -return x_3; -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__2___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_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__2(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3___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_Array_iterateMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__3(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_mkStateFromImportedEntries___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__1(x_1, x_2); -lean_dec(x_2); -return x_3; -} -} -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5___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 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__5(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_7 = lean_box(x_6); -return x_7; -} -} -lean_object* l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Parser_mkSyntaxNodeKindExtension___lambda__1(x_1, x_2, x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_4; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_box(0); -return x_2; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__2(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Array_empty___closed__1; -return x_2; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__3(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_inc(x_1); -return x_1; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__4___rarg(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_String_splitAux___main___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* l_Lean_Parser_syntaxNodeKindExtension___elambda__4(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_syntaxNodeKindExtension___elambda__4___rarg), 1, 0); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_syntaxNodeKindExtension___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_EnvExtension_Inhabited___rarg___closed__1; -x_3 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2; -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* _init_l_Lean_Parser_syntaxNodeKindExtension___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_syntaxNodeKindExtension___elambda__4___boxed), 2, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_syntaxNodeKindExtension___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_syntaxNodeKindExtension___elambda__3___boxed), 2, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_syntaxNodeKindExtension___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_syntaxNodeKindExtension___elambda__2___boxed), 1, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_syntaxNodeKindExtension___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_syntaxNodeKindExtension___elambda__1___boxed), 1, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_syntaxNodeKindExtension___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_1 = l_Lean_Parser_syntaxNodeKindExtension___closed__1; -x_2 = lean_box(0); -x_3 = l_Lean_Parser_syntaxNodeKindExtension___closed__2; -x_4 = l_Lean_Parser_syntaxNodeKindExtension___closed__3; -x_5 = l_Lean_Parser_syntaxNodeKindExtension___closed__4; -x_6 = l_Lean_Parser_syntaxNodeKindExtension___closed__5; -x_7 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_2); -lean_ctor_set(x_7, 2, x_3); -lean_ctor_set(x_7, 3, x_4); -lean_ctor_set(x_7, 4, x_5); -lean_ctor_set(x_7, 5, x_6); -return x_7; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__1___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Parser_syntaxNodeKindExtension___elambda__1(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__2___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Parser_syntaxNodeKindExtension___elambda__2(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__3___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Parser_syntaxNodeKindExtension___elambda__3(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_Parser_syntaxNodeKindExtension___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Parser_syntaxNodeKindExtension___elambda__4(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_Parser_addSyntaxNodeKind(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = l_Lean_Parser_syntaxNodeKindExtension; -x_4 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_1, x_2); -return x_4; -} -} -uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; uint8_t x_5; -x_4 = lean_array_get_size(x_1); -x_5 = lean_nat_dec_lt(x_2, x_4); -lean_dec(x_4); -if (x_5 == 0) -{ -uint8_t x_6; -lean_dec(x_2); -x_6 = 0; -return x_6; -} -else -{ -lean_object* x_7; uint8_t x_8; -x_7 = lean_array_fget(x_1, x_2); -x_8 = lean_name_eq(x_3, x_7); -lean_dec(x_7); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; -x_9 = lean_unsigned_to_nat(1u); -x_10 = lean_nat_add(x_2, x_9); -lean_dec(x_2); -x_2 = x_10; -goto _start; -} -else -{ -uint8_t x_12; -lean_dec(x_2); -x_12 = 1; -return x_12; -} -} -} -} -uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +lean_object* l_PersistentHashMap_findAux___main___at_Lean_Parser_addLeadingParser___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -27432,547 +25962,77 @@ lean_dec(x_4); switch (lean_obj_tag(x_10)) { case 0: { -lean_object* x_11; uint8_t x_12; +lean_object* x_11; lean_object* x_12; uint8_t x_13; x_11 = lean_ctor_get(x_10, 0); lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); lean_dec(x_10); -x_12 = lean_name_eq(x_3, x_11); +x_13 = lean_name_eq(x_3, x_11); lean_dec(x_11); -return x_12; +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_12); +x_14 = lean_box(0); +return x_14; +} +else +{ +lean_object* x_15; +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_12); +return x_15; +} } case 1: { -lean_object* x_13; size_t x_14; -x_13 = lean_ctor_get(x_10, 0); -lean_inc(x_13); +lean_object* x_16; size_t x_17; +x_16 = lean_ctor_get(x_10, 0); +lean_inc(x_16); lean_dec(x_10); -x_14 = x_2 >> x_5; -x_1 = x_13; -x_2 = x_14; +x_17 = x_2 >> x_5; +x_1 = x_16; +x_2 = x_17; goto _start; } default: { -uint8_t x_16; -x_16 = 0; -return x_16; -} -} -} -else -{ -lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_17 = lean_ctor_get(x_1, 0); -lean_inc(x_17); -lean_dec(x_1); -x_18 = lean_unsigned_to_nat(0u); -x_19 = l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(x_17, x_18, x_3); -lean_dec(x_17); +lean_object* x_19; +x_19 = lean_box(0); return x_19; } } } -uint8_t l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(lean_object* x_1, lean_object* x_2) { +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_1, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_1, 1); +lean_inc(x_21); +lean_dec(x_1); +x_22 = lean_unsigned_to_nat(0u); +x_23 = l_PersistentHashMap_findAtAux___main___at_Lean_Parser_addLeadingParser___spec__3(x_20, x_21, lean_box(0), x_22, x_3); +lean_dec(x_21); +lean_dec(x_20); +return x_23; +} +} +} +lean_object* l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_3; size_t x_4; uint8_t x_5; +lean_object* x_3; size_t x_4; lean_object* x_5; x_3 = lean_ctor_get(x_1, 0); lean_inc(x_3); lean_dec(x_1); x_4 = l_Lean_Name_hash(x_2); -x_5 = l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(x_3, x_4, x_2); +x_5 = l_PersistentHashMap_findAux___main___at_Lean_Parser_addLeadingParser___spec__2(x_3, x_4, x_2); return x_5; } } -uint8_t l_Lean_Parser_isValidSyntaxNodeKind(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_3 = l_Lean_Parser_syntaxNodeKindExtension; -x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_3, x_1); -x_5 = lean_ctor_get(x_4, 1); -lean_inc(x_5); -lean_dec(x_4); -x_6 = l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_5, x_2); -if (x_6 == 0) -{ -lean_object* x_7; uint8_t x_8; -x_7 = l_Lean_choiceKind___closed__2; -x_8 = lean_name_eq(x_2, x_7); -return x_8; -} -else -{ -uint8_t x_9; -x_9 = 1; -return x_9; -} -} -} -lean_object* l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; lean_object* x_5; -x_4 = l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(x_1, x_2, x_3); -lean_dec(x_3); -lean_dec(x_1); -x_5 = lean_box(x_4); -return x_5; -} -} -lean_object* l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -size_t x_4; uint8_t x_5; lean_object* x_6; -x_4 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_5 = l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(x_1, x_4, x_3); -lean_dec(x_3); -x_6 = lean_box(x_5); -return x_6; -} -} -lean_object* l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_1, x_2); -lean_dec(x_2); -x_4 = lean_box(x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_isValidSyntaxNodeKind___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_Parser_isValidSyntaxNodeKind(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_array_get_size(x_2); -x_6 = lean_nat_dec_lt(x_3, x_5); -lean_dec(x_5); -if (x_6 == 0) -{ -lean_dec(x_3); -return x_4; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_7 = lean_array_fget(x_2, x_3); -x_8 = lean_unsigned_to_nat(1u); -x_9 = lean_nat_add(x_3, x_8); -lean_dec(x_3); -switch (lean_obj_tag(x_7)) { -case 0: -{ -lean_object* x_10; lean_object* x_11; -x_10 = lean_ctor_get(x_7, 0); -lean_inc(x_10); -lean_dec(x_7); -x_11 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_4); -x_3 = x_9; -x_4 = x_11; -goto _start; -} -case 1: -{ -lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_7, 0); -lean_inc(x_13); -lean_dec(x_7); -x_14 = l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_13, x_4); -lean_dec(x_13); -x_3 = x_9; -x_4 = x_14; -goto _start; -} -default: -{ -x_3 = x_9; -goto _start; -} -} -} -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_array_get_size(x_2); -x_6 = lean_nat_dec_lt(x_3, x_5); -lean_dec(x_5); -if (x_6 == 0) -{ -lean_dec(x_3); -return x_4; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_7 = lean_array_fget(x_2, x_3); -x_8 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_8, 0, x_7); -lean_ctor_set(x_8, 1, x_4); -x_9 = lean_unsigned_to_nat(1u); -x_10 = lean_nat_add(x_3, x_9); -lean_dec(x_3); -x_3 = x_10; -x_4 = x_8; -goto _start; -} -} -} -lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_ctor_get(x_1, 0); -x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(x_3, x_3, x_4, x_2); -return x_5; -} -else -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_6 = lean_ctor_get(x_1, 0); -x_7 = lean_unsigned_to_nat(0u); -x_8 = l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(x_6, x_6, x_7, x_2); -return x_8; -} -} -} -lean_object* l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = lean_ctor_get(x_1, 0); -x_4 = l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_3, x_2); -return x_4; -} -} -lean_object* l_Lean_Parser_getSyntaxNodeKinds(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; -x_2 = l_Lean_Parser_syntaxNodeKindExtension; -x_3 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); -x_4 = lean_ctor_get(x_3, 1); -lean_inc(x_4); -lean_dec(x_3); -x_5 = lean_box(0); -x_6 = l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(x_4, x_5); -lean_dec(x_4); -return x_6; -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3___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_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4___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_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_Parser_getSyntaxNodeKinds___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Parser_getSyntaxNodeKinds(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_getTokenTable(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Parser_tokenTableAttribute; -x_3 = lean_ctor_get(x_2, 1); -lean_inc(x_3); -x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_3, x_1); -lean_dec(x_3); -x_5 = lean_ctor_get(x_4, 1); -lean_inc(x_5); -lean_dec(x_4); -return x_5; -} -} -lean_object* l_Lean_Parser_getTokenTable___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Parser_getTokenTable(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_mkInputContext(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -lean_inc(x_1); -x_3 = l_Lean_FileMap_ofString(x_1); -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_mkParserContext(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = l_Lean_Parser_getTokenTable(x_1); -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_2); -lean_ctor_set(x_4, 1, x_1); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_mkParserState(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; -x_2 = l_Lean_Parser_initCacheForInput(x_1); -x_3 = lean_box(0); -x_4 = l_Array_empty___closed__1; -x_5 = lean_unsigned_to_nat(0u); -x_6 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_6, 0, x_4); -lean_ctor_set(x_6, 1, x_5); -lean_ctor_set(x_6, 2, x_2); -lean_ctor_set(x_6, 3, x_3); -return x_6; -} -} -lean_object* l_Lean_Parser_mkParserState___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Parser_mkParserState(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_runParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_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; lean_object* x_12; -lean_inc(x_3); -x_6 = l_Lean_Parser_mkInputContext(x_3, x_4); -x_7 = l_Lean_Parser_mkParserContext(x_1, x_6); -x_8 = l_Lean_Parser_mkParserState(x_3); -lean_dec(x_3); -x_9 = l_Lean_Parser_whitespace___main(x_7, x_8); -x_10 = lean_unsigned_to_nat(0u); -lean_inc(x_7); -x_11 = l_Lean_Parser_prattParser(x_5, x_2, x_10, x_7, x_9); -x_12 = lean_ctor_get(x_11, 3); -lean_inc(x_12); -if (lean_obj_tag(x_12) == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; -lean_dec(x_7); -x_13 = lean_ctor_get(x_11, 0); -lean_inc(x_13); -lean_dec(x_11); -x_14 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__updateCache___spec__1(x_13); -lean_dec(x_13); -x_15 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_15, 0, x_14); -return x_15; -} -else -{ -lean_object* x_16; lean_object* x_17; -lean_dec(x_12); -x_16 = l_Lean_Parser_ParserState_toErrorMsg(x_7, x_11); -x_17 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_17, 0, x_16); -return x_17; -} -} -} -lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Parser_ParsingTables_inhabited___closed__1; -x_3 = lean_io_mk_ref(x_2, x_1); -return x_3; -} -} -lean_object* _init_l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("invalid builtin parser '"); -return x_1; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens(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; -x_4 = l_Lean_Parser_builtinTokenTable; -x_5 = l_Lean_Parser_Trie_HasEmptyc___closed__1; -x_6 = lean_io_ref_swap(x_4, x_5, x_3); -if (lean_obj_tag(x_6) == 0) -{ -uint8_t x_7; -x_7 = !lean_is_exclusive(x_6); -if (x_7 == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_8 = lean_ctor_get(x_6, 0); -x_9 = lean_ctor_get(x_6, 1); -x_10 = l_Lean_Parser_addParserTokens(x_8, x_1); -if (lean_obj_tag(x_10) == 0) -{ -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; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -lean_dec(x_10); -x_12 = l_Lean_Name_toString___closed__1; -x_13 = l_Lean_Name_toStringWithSep___main(x_12, x_2); -x_14 = l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1; -x_15 = lean_string_append(x_14, x_13); -lean_dec(x_13); -x_16 = l_Lean_registerTagAttribute___lambda__4___closed__3; -x_17 = lean_string_append(x_15, x_16); -x_18 = lean_string_append(x_17, x_11); -lean_dec(x_11); -lean_ctor_set_tag(x_6, 1); -lean_ctor_set(x_6, 0, x_18); -return x_6; -} -else -{ -lean_object* x_19; lean_object* x_20; -lean_free_object(x_6); -lean_dec(x_2); -x_19 = lean_ctor_get(x_10, 0); -lean_inc(x_19); -lean_dec(x_10); -x_20 = lean_io_ref_set(x_4, x_19, x_9); -return x_20; -} -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_6, 0); -x_22 = lean_ctor_get(x_6, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_6); -x_23 = l_Lean_Parser_addParserTokens(x_21, x_1); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; lean_object* 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; lean_object* x_32; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -lean_dec(x_23); -x_25 = l_Lean_Name_toString___closed__1; -x_26 = l_Lean_Name_toStringWithSep___main(x_25, x_2); -x_27 = l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1; -x_28 = lean_string_append(x_27, x_26); -lean_dec(x_26); -x_29 = l_Lean_registerTagAttribute___lambda__4___closed__3; -x_30 = lean_string_append(x_28, x_29); -x_31 = lean_string_append(x_30, x_24); -lean_dec(x_24); -x_32 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_22); -return x_32; -} -else -{ -lean_object* x_33; lean_object* x_34; -lean_dec(x_2); -x_33 = lean_ctor_get(x_23, 0); -lean_inc(x_33); -lean_dec(x_23); -x_34 = lean_io_ref_set(x_4, x_33, x_22); -return x_34; -} -} -} -else -{ -uint8_t x_35; -lean_dec(x_2); -lean_dec(x_1); -x_35 = !lean_is_exclusive(x_6); -if (x_35 == 0) -{ -return x_6; -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_6, 0); -x_37 = lean_ctor_get(x_6, 1); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_6); -x_38 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_38, 0, x_36); -lean_ctor_set(x_38, 1, x_37); -return x_38; -} -} -} -} -lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(lean_object* x_1) { +lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -27995,7 +26055,7 @@ lean_inc(x_6); lean_dec(x_4); x_7 = lean_box(0); x_8 = lean_name_mk_string(x_7, x_6); -x_9 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_5); +x_9 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(x_5); lean_ctor_set(x_1, 1, x_9); lean_ctor_set(x_1, 0, x_8); return x_1; @@ -28013,7 +26073,7 @@ lean_inc(x_12); lean_dec(x_10); x_13 = lean_box(0); x_14 = lean_name_mk_string(x_13, x_12); -x_15 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_11); +x_15 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(x_11); x_16 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_16, 0, x_14); lean_ctor_set(x_16, 1, x_15); @@ -28022,7 +26082,7 @@ return x_16; } } } -uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object* x_1, lean_object* x_2) { +uint8_t l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -28051,7 +26111,7 @@ return x_8; } } } -lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -28069,7 +26129,7 @@ if (x_4 == 0) lean_object* x_5; lean_object* x_6; uint8_t x_7; x_5 = lean_ctor_get(x_1, 0); x_6 = lean_ctor_get(x_1, 1); -x_7 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_5, x_2); +x_7 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_5, x_2); if (x_7 == 0) { lean_ctor_set(x_1, 1, x_2); @@ -28097,7 +26157,7 @@ x_11 = lean_ctor_get(x_1, 1); lean_inc(x_11); lean_inc(x_10); lean_dec(x_1); -x_12 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_10, x_2); +x_12 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_10, x_2); if (x_12 == 0) { lean_object* x_13; @@ -28118,66 +26178,16 @@ goto _start; } } } -lean_object* l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(lean_object* x_1) { +lean_object* l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; x_2 = lean_box(0); -x_3 = l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__3(x_1, x_2); +x_3 = l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__6(x_1, x_2); return x_3; } } -lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_3) == 0) -{ -lean_dec(x_1); -return x_2; -} -else -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_3, 1); -lean_inc(x_5); -lean_dec(x_3); -x_6 = !lean_is_exclusive(x_2); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; -x_7 = lean_ctor_get(x_2, 0); -lean_inc(x_1); -x_8 = l_Lean_Parser_TokenMap_insert___rarg(x_7, x_4, x_1); -lean_ctor_set(x_2, 0, x_8); -x_3 = x_5; -goto _start; -} -else -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_10 = lean_ctor_get(x_2, 0); -x_11 = lean_ctor_get(x_2, 1); -x_12 = lean_ctor_get(x_2, 2); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_dec(x_2); -lean_inc(x_1); -x_13 = l_Lean_Parser_TokenMap_insert___rarg(x_10, x_4, x_1); -x_14 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_14, 0, x_13); -lean_ctor_set(x_14, 1, x_11); -lean_ctor_set(x_14, 2, x_12); -x_2 = x_14; -x_3 = x_5; -goto _start; -} -} -} -} -lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -28231,88 +26241,149 @@ lean_object* _init_l_Lean_Parser_addLeadingParser___closed__1() { _start: { lean_object* x_1; +x_1 = lean_mk_string("invalid parser '"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_addLeadingParser___closed__2() { +_start: +{ +lean_object* x_1; x_1 = lean_mk_string("', initial token is not statically known"); return x_1; } } -lean_object* l_Lean_Parser_addLeadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +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_4; lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_3, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_13, 2); -lean_inc(x_14); -lean_dec(x_13); -switch (lean_obj_tag(x_14)) { +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)) { case 2: { -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -lean_dec(x_2); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -lean_dec(x_14); -x_16 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_15); -x_17 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(x_16); -x_18 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__5(x_3, x_1, x_17); -x_19 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_19, 0, x_18); -return x_19; +lean_object* x_26; +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; } case 3: { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -lean_dec(x_2); -x_20 = lean_ctor_get(x_14, 0); -lean_inc(x_20); -lean_dec(x_14); -x_21 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_20); -x_22 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(x_21); -x_23 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__6(x_3, x_1, x_22); -x_24 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_24, 0, x_23); -return x_24; +lean_object* x_27; +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; } default: { -lean_object* x_25; -lean_dec(x_14); -lean_dec(x_3); -lean_dec(x_1); -x_25 = lean_box(0); -x_4 = x_25; -goto block_12; -} -} -block_12: -{ -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_28; +lean_dec(x_25); lean_dec(x_4); -x_5 = l_Lean_Name_toString___closed__1; -x_6 = l_Lean_Name_toStringWithSep___main(x_5, x_2); -x_7 = l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1; -x_8 = lean_string_append(x_7, x_6); -lean_dec(x_6); -x_9 = l_Lean_Parser_addLeadingParser___closed__1; -x_10 = lean_string_append(x_8, x_9); -x_11 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_11, 0, x_10); -return x_11; +lean_dec(x_2); +lean_dec(x_1); +x_28 = lean_box(0); +x_5 = x_28; +goto block_13; +} +} +block_13: +{ +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; +lean_dec(x_5); +x_6 = l_Lean_Name_toString___closed__1; +x_7 = l_Lean_Name_toStringWithSep___main(x_6, x_3); +x_8 = l_Lean_Parser_addLeadingParser___closed__1; +x_9 = lean_string_append(x_8, x_7); +lean_dec(x_7); +x_10 = l_Lean_Parser_addLeadingParser___closed__2; +x_11 = lean_string_append(x_9, x_10); +x_12 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_12, 0, x_11); +return x_12; +} +block_23: +{ +lean_object* x_15; +lean_inc(x_1); +x_15 = l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(x_1, x_2); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; +lean_dec(x_14); +lean_dec(x_4); +lean_dec(x_1); +x_16 = l_Lean_Parser_throwUnknownParserCategory___rarg(x_2); +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; +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_8__addParserCategory___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; } } } -lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4___boxed(lean_object* x_1, lean_object* x_2) { +} +lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Parser_addLeadingParser___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_PersistentHashMap_findAtAux___main___at_Lean_Parser_addLeadingParser___spec__3(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_6; +} +} +lean_object* l_PersistentHashMap_findAux___main___at_Lean_Parser_addLeadingParser___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; lean_object* x_5; +x_4 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_5 = l_PersistentHashMap_findAux___main___at_Lean_Parser_addLeadingParser___spec__2(x_1, x_4, x_3); +lean_dec(x_3); +return x_5; +} +} +lean_object* l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(x_1, x_2); +lean_dec(x_2); +return x_3; +} +} +lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__4(x_1, x_2); +x_3 = l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7(x_1, x_2); lean_dec(x_2); lean_dec(x_1); x_4 = lean_box(x_3); return x_4; } } -lean_object* l_List_foldl___main___at_Lean_Parser_addTrailingParser___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldl___main___at___private_Init_Lean_Parser_Parser_13__addTrailingParserAux___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -28362,7 +26433,7 @@ goto _start; } } } -lean_object* l_Lean_Parser_addTrailingParser(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_13__addTrailingParserAux(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_13; lean_object* x_18; lean_object* x_19; @@ -28437,256 +26508,478 @@ return x_11; block_17: { lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_14 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__1(x_13); -x_15 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__2(x_14); -x_16 = l_List_foldl___main___at_Lean_Parser_addTrailingParser___spec__1(x_2, x_1, x_15); +x_14 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(x_13); +x_15 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(x_14); +x_16 = l_List_foldl___main___at___private_Init_Lean_Parser_Parser_13__addTrailingParserAux___spec__1(x_2, x_1, x_15); return x_16; } } } -lean_object* l_Lean_Parser_addParser(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_addTrailingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -if (x_1 == 0) +lean_object* x_4; +lean_inc(x_1); +x_4 = l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(x_1, x_2); +if (lean_obj_tag(x_4) == 0) { lean_object* x_5; -x_5 = l_Lean_Parser_addLeadingParser(x_2, x_3, x_4); +lean_dec(x_3); +lean_dec(x_1); +x_5 = l_Lean_Parser_throwUnknownParserCategory___rarg(x_2); return x_5; } else { -lean_object* x_6; lean_object* x_7; -lean_dec(x_3); -x_6 = l_Lean_Parser_addTrailingParser(x_2, x_4); -x_7 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_7, 0, x_6); +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_6 = lean_ctor_get(x_4, 0); +lean_inc(x_6); +lean_dec(x_4); +x_7 = l___private_Init_Lean_Parser_Parser_13__addTrailingParserAux(x_6, x_3); +x_8 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_8__addParserCategory___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; +} +} +} +lean_object* l_Lean_Parser_addParser(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (x_1 == 0) +{ +lean_object* x_6; +x_6 = l_Lean_Parser_addLeadingParser(x_2, x_3, x_4, x_5); +return x_6; +} +else +{ +lean_object* x_7; +lean_dec(x_4); +x_7 = l_Lean_Parser_addTrailingParser(x_2, x_3, x_5); return x_7; } } } -lean_object* l_Lean_Parser_addParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_addParser___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_5; lean_object* x_6; -x_5 = lean_unbox(x_1); +uint8_t x_6; lean_object* x_7; +x_6 = lean_unbox(x_1); lean_dec(x_1); -x_6 = l_Lean_Parser_addParser(x_5, x_2, x_3, x_4); -return x_6; +x_7 = l_Lean_Parser_addParser(x_6, x_2, x_3, x_4, x_5); +return x_7; } } -lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldlM___main___at_Lean_Parser_addParserTokens___spec__1(lean_object* x_1, lean_object* x_2) { _start: { -if (lean_obj_tag(x_1) == 0) +if (lean_obj_tag(x_2) == 0) { -lean_object* x_3; lean_object* x_4; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -x_4 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; +lean_object* x_3; +x_3 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_3, 0, x_1); +return x_3; } else { -lean_object* x_5; lean_object* x_6; -x_5 = lean_ctor_get(x_1, 0); +lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_4 = lean_ctor_get(x_2, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_2, 1); lean_inc(x_5); -x_6 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_6, 0, x_5); -lean_ctor_set(x_6, 1, x_2); +lean_dec(x_2); +x_6 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig(x_1, x_4); +if (lean_obj_tag(x_6) == 0) +{ +uint8_t x_7; +lean_dec(x_5); +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ return x_6; } +else +{ +lean_object* x_8; lean_object* x_9; +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_9, 0, x_8); +return x_9; +} +} +else +{ +lean_object* x_10; +x_10 = lean_ctor_get(x_6, 0); +lean_inc(x_10); +lean_dec(x_6); +x_1 = x_10; +x_2 = x_5; +goto _start; +} +} +} +} +lean_object* l_Lean_Parser_addParserTokens(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; +x_3 = lean_ctor_get(x_2, 0); +lean_inc(x_3); +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +x_6 = l_List_foldlM___main___at_Lean_Parser_addParserTokens___spec__1(x_1, x_5); +return x_6; +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("invalid builtin parser '"); +return x_1; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens(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; +x_4 = l_Lean_Parser_builtinTokenTable; +x_5 = l_Lean_Parser_Trie_HasEmptyc___closed__1; +x_6 = lean_io_ref_swap(x_4, x_5, x_3); +if (lean_obj_tag(x_6) == 0) +{ +uint8_t x_7; +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_8 = lean_ctor_get(x_6, 0); +x_9 = lean_ctor_get(x_6, 1); +x_10 = l_Lean_Parser_addParserTokens(x_8, x_1); +if (lean_obj_tag(x_10) == 0) +{ +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; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +x_12 = l_Lean_Name_toString___closed__1; +x_13 = l_Lean_Name_toStringWithSep___main(x_12, x_2); +x_14 = l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1; +x_15 = lean_string_append(x_14, x_13); +lean_dec(x_13); +x_16 = l_Lean_registerTagAttribute___lambda__4___closed__3; +x_17 = lean_string_append(x_15, x_16); +x_18 = lean_string_append(x_17, x_11); +lean_dec(x_11); +lean_ctor_set_tag(x_6, 1); +lean_ctor_set(x_6, 0, x_18); +return x_6; +} +else +{ +lean_object* x_19; lean_object* x_20; +lean_free_object(x_6); +lean_dec(x_2); +x_19 = lean_ctor_get(x_10, 0); +lean_inc(x_19); +lean_dec(x_10); +x_20 = lean_io_ref_set(x_4, x_19, x_9); +return x_20; +} +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_6, 0); +x_22 = lean_ctor_get(x_6, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_6); +x_23 = l_Lean_Parser_addParserTokens(x_21, x_1); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; lean_object* 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; lean_object* x_32; +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +lean_dec(x_23); +x_25 = l_Lean_Name_toString___closed__1; +x_26 = l_Lean_Name_toStringWithSep___main(x_25, x_2); +x_27 = l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1; +x_28 = lean_string_append(x_27, x_26); +lean_dec(x_26); +x_29 = l_Lean_registerTagAttribute___lambda__4___closed__3; +x_30 = lean_string_append(x_28, x_29); +x_31 = lean_string_append(x_30, x_24); +lean_dec(x_24); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_22); +return x_32; +} +else +{ +lean_object* x_33; lean_object* x_34; +lean_dec(x_2); +x_33 = lean_ctor_get(x_23, 0); +lean_inc(x_33); +lean_dec(x_23); +x_34 = lean_io_ref_set(x_4, x_33, x_22); +return x_34; +} +} +} +else +{ +uint8_t x_35; +lean_dec(x_2); +lean_dec(x_1); +x_35 = !lean_is_exclusive(x_6); +if (x_35 == 0) +{ +return x_6; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_6, 0); +x_37 = lean_ctor_get(x_6, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_6); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +return x_38; +} +} } } lean_object* l_Lean_Parser_addBuiltinParser(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -lean_object* x_6; -x_6 = lean_io_ref_get(x_2, x_5); -if (lean_obj_tag(x_6) == 0) +lean_object* x_6; lean_object* x_7; +x_6 = l_Lean_Parser_builtinParserCategoriesRef; +x_7 = lean_io_ref_get(x_6, x_5); +if (lean_obj_tag(x_7) == 0) { -lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -x_8 = lean_ctor_get(x_6, 1); +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); -lean_dec(x_6); -x_9 = lean_io_ref_reset(x_2, x_8); -if (lean_obj_tag(x_9) == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_4, 0); -lean_inc(x_11); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +lean_inc(x_4); lean_inc(x_3); -lean_inc(x_11); -x_12 = l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens(x_11, x_3, x_10); -if (lean_obj_tag(x_12) == 0) +x_10 = l_Lean_Parser_addParser(x_1, x_8, x_2, x_3, x_4); +x_11 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1(x_10, x_9); +lean_dec(x_10); +if (lean_obj_tag(x_11) == 0) { -lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_12, 1); +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_inc(x_13); -lean_dec(x_12); -x_14 = l_Lean_Parser_updateBuiltinSyntaxNodeKinds(x_11, x_13); +lean_dec(x_11); +x_14 = lean_io_ref_set(x_6, x_12, x_13); if (lean_obj_tag(x_14) == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; x_15 = lean_ctor_get(x_14, 1); lean_inc(x_15); lean_dec(x_14); -x_16 = l_Lean_Parser_addParser(x_1, x_7, x_3, x_4); -x_17 = l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(x_16, x_15); -lean_dec(x_16); -if (lean_obj_tag(x_17) == 0) +x_16 = lean_ctor_get(x_4, 0); +lean_inc(x_16); +lean_dec(x_4); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +x_18 = l_Lean_Parser_builtinSyntaxNodeKindSetRef; +x_19 = lean_io_ref_get(x_18, x_15); +if (lean_obj_tag(x_19) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_io_ref_set(x_2, x_18, x_19); -return x_20; -} -else +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = lean_io_ref_reset(x_18, x_21); +if (lean_obj_tag(x_22) == 0) { -uint8_t x_21; -x_21 = !lean_is_exclusive(x_17); -if (x_21 == 0) -{ -return x_17; -} -else -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = lean_ctor_get(x_17, 0); -x_23 = lean_ctor_get(x_17, 1); +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_22, 1); lean_inc(x_23); -lean_inc(x_22); -lean_dec(x_17); -x_24 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_24, 0, x_22); -lean_ctor_set(x_24, 1, x_23); -return x_24; +lean_dec(x_22); +x_24 = lean_apply_1(x_17, x_20); +x_25 = lean_io_ref_set(x_18, x_24, x_23); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_25, 1); +lean_inc(x_26); +lean_dec(x_25); +x_27 = l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens(x_16, x_3, x_26); +return x_27; +} +else +{ +uint8_t x_28; +lean_dec(x_16); +lean_dec(x_3); +x_28 = !lean_is_exclusive(x_25); +if (x_28 == 0) +{ +return x_25; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_25, 0); +x_30 = lean_ctor_get(x_25, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_25); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +return x_31; } } } else { -uint8_t x_25; -lean_dec(x_7); +uint8_t x_32; +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_3); +x_32 = !lean_is_exclusive(x_22); +if (x_32 == 0) +{ +return x_22; +} +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_22, 0); +x_34 = lean_ctor_get(x_22, 1); +lean_inc(x_34); +lean_inc(x_33); +lean_dec(x_22); +x_35 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_35, 0, x_33); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +} +else +{ +uint8_t x_36; +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_3); +x_36 = !lean_is_exclusive(x_19); +if (x_36 == 0) +{ +return x_19; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_19, 0); +x_38 = lean_ctor_get(x_19, 1); +lean_inc(x_38); +lean_inc(x_37); +lean_dec(x_19); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; +} +} +} +else +{ +uint8_t x_40; lean_dec(x_4); lean_dec(x_3); -x_25 = !lean_is_exclusive(x_14); -if (x_25 == 0) +x_40 = !lean_is_exclusive(x_14); +if (x_40 == 0) { return x_14; } else { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_14, 0); -x_27 = lean_ctor_get(x_14, 1); -lean_inc(x_27); -lean_inc(x_26); +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_14, 0); +x_42 = lean_ctor_get(x_14, 1); +lean_inc(x_42); +lean_inc(x_41); lean_dec(x_14); -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; +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -uint8_t x_29; +uint8_t x_44; +lean_dec(x_4); +lean_dec(x_3); +x_44 = !lean_is_exclusive(x_11); +if (x_44 == 0) +{ +return x_11; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_11, 0); +x_46 = lean_ctor_get(x_11, 1); +lean_inc(x_46); +lean_inc(x_45); lean_dec(x_11); +x_47 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_47, 0, x_45); +lean_ctor_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +uint8_t x_48; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_48 = !lean_is_exclusive(x_7); +if (x_48 == 0) +{ +return x_7; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_7, 0); +x_50 = lean_ctor_get(x_7, 1); +lean_inc(x_50); +lean_inc(x_49); lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -x_29 = !lean_is_exclusive(x_12); -if (x_29 == 0) -{ -return x_12; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_12, 0); -x_31 = lean_ctor_get(x_12, 1); -lean_inc(x_31); -lean_inc(x_30); -lean_dec(x_12); -x_32 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_32, 0, x_30); -lean_ctor_set(x_32, 1, x_31); -return x_32; +x_51 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +return x_51; } } } -else -{ -uint8_t x_33; -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -x_33 = !lean_is_exclusive(x_9); -if (x_33 == 0) -{ -return x_9; -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_9, 0); -x_35 = lean_ctor_get(x_9, 1); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_9); -x_36 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_36, 0, x_34); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -} -else -{ -uint8_t x_37; -lean_dec(x_4); -lean_dec(x_3); -x_37 = !lean_is_exclusive(x_6); -if (x_37 == 0) -{ -return x_6; -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_6, 0); -x_39 = lean_ctor_get(x_6, 1); -lean_inc(x_39); -lean_inc(x_38); -lean_dec(x_6); -x_40 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; -} -} -} -} -lean_object* l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_IO_ofExcept___at_Lean_Parser_addBuiltinParser___spec__1(x_1, x_2); -lean_dec(x_1); -return x_3; -} } lean_object* l_Lean_Parser_addBuiltinParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: @@ -28695,11 +26988,10 @@ uint8_t x_6; lean_object* x_7; x_6 = lean_unbox(x_1); lean_dec(x_1); x_7 = l_Lean_Parser_addBuiltinParser(x_6, x_2, x_3, x_4, x_5); -lean_dec(x_2); return x_7; } } -lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Parser_addBuiltinLeadingParserNew(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; @@ -28708,6 +27000,192 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_5, x_1, x_2, x_3, x_4); return x_6; } } +lean_object* l_Lean_Parser_addBuiltinTrailingParserNew(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 = 1; +x_6 = l_Lean_Parser_addBuiltinParser(x_5, x_1, x_2, x_3, x_4); +return x_6; +} +} +lean_object* l_Lean_Parser_mkBuiltinParsingTablesRef(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +x_3 = lean_io_mk_ref(x_2, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("command"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___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_addBuiltinLeadingParser___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("level"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__3; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("term"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_addBuiltinLeadingParser___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__5; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_addBuiltinLeadingParser(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; +x_5 = l_Lean_Parser_builtinTermParsingTable; +x_6 = lean_io_ref_ptr_eq(x_1, x_5, x_4); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_unbox(x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_6, 1); +lean_inc(x_9); +lean_dec(x_6); +x_10 = l_Lean_Parser_builtinLevelParsingTable; +x_11 = lean_io_ref_ptr_eq(x_1, x_10, x_9); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; uint8_t x_13; +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +x_13 = lean_unbox(x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +lean_dec(x_11); +x_15 = 0; +x_16 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; +x_17 = l_Lean_Parser_addBuiltinParser(x_15, x_16, x_2, x_3, x_14); +return x_17; +} +else +{ +lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; +x_18 = lean_ctor_get(x_11, 1); +lean_inc(x_18); +lean_dec(x_11); +x_19 = 0; +x_20 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; +x_21 = l_Lean_Parser_addBuiltinParser(x_19, x_20, x_2, x_3, x_18); +return x_21; +} +} +else +{ +uint8_t x_22; +lean_dec(x_3); +lean_dec(x_2); +x_22 = !lean_is_exclusive(x_11); +if (x_22 == 0) +{ +return x_11; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_11, 0); +x_24 = lean_ctor_get(x_11, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_11); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; +} +} +} +else +{ +lean_object* x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; +x_26 = lean_ctor_get(x_6, 1); +lean_inc(x_26); +lean_dec(x_6); +x_27 = 0; +x_28 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_29 = l_Lean_Parser_addBuiltinParser(x_27, x_28, x_2, x_3, x_26); +return x_29; +} +} +else +{ +uint8_t x_30; +lean_dec(x_3); +lean_dec(x_2); +x_30 = !lean_is_exclusive(x_6); +if (x_30 == 0) +{ +return x_6; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_6, 0); +x_32 = lean_ctor_get(x_6, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_6); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; +} +} +} +} lean_object* l_Lean_Parser_addBuiltinLeadingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -28720,11 +27198,116 @@ return x_5; lean_object* l_Lean_Parser_addBuiltinTrailingParser(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 = 1; -x_6 = l_Lean_Parser_addBuiltinParser(x_5, x_1, x_2, x_3, x_4); +lean_object* x_5; lean_object* x_6; +x_5 = l_Lean_Parser_builtinTermParsingTable; +x_6 = lean_io_ref_ptr_eq(x_1, x_5, x_4); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_unbox(x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_6, 1); +lean_inc(x_9); +lean_dec(x_6); +x_10 = l_Lean_Parser_builtinLevelParsingTable; +x_11 = lean_io_ref_ptr_eq(x_1, x_10, x_9); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; uint8_t x_13; +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +x_13 = lean_unbox(x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +lean_dec(x_11); +x_15 = 1; +x_16 = l_Lean_Parser_addBuiltinLeadingParser___closed__2; +x_17 = l_Lean_Parser_addBuiltinParser(x_15, x_16, x_2, x_3, x_14); +return x_17; +} +else +{ +lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; +x_18 = lean_ctor_get(x_11, 1); +lean_inc(x_18); +lean_dec(x_11); +x_19 = 1; +x_20 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; +x_21 = l_Lean_Parser_addBuiltinParser(x_19, x_20, x_2, x_3, x_18); +return x_21; +} +} +else +{ +uint8_t x_22; +lean_dec(x_3); +lean_dec(x_2); +x_22 = !lean_is_exclusive(x_11); +if (x_22 == 0) +{ +return x_11; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_11, 0); +x_24 = lean_ctor_get(x_11, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_11); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; +} +} +} +else +{ +lean_object* x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; +x_26 = lean_ctor_get(x_6, 1); +lean_inc(x_26); +lean_dec(x_6); +x_27 = 1; +x_28 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_29 = l_Lean_Parser_addBuiltinParser(x_27, x_28, x_2, x_3, x_26); +return x_29; +} +} +else +{ +uint8_t x_30; +lean_dec(x_3); +lean_dec(x_2); +x_30 = !lean_is_exclusive(x_6); +if (x_30 == 0) +{ return x_6; } +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_6, 0); +x_32 = lean_ctor_get(x_6, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_6); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; +} +} +} } lean_object* l_Lean_Parser_addBuiltinTrailingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: @@ -28735,1230 +27318,334 @@ lean_dec(x_1); return x_5; } } -lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_15__ParserExtension_addEntry(lean_object* x_1, lean_object* x_2) { _start: { -if (lean_obj_tag(x_1) == 0) +switch (lean_obj_tag(x_2)) { +case 0: { -lean_object* x_3; lean_object* x_4; -x_3 = lean_ctor_get(x_1, 0); +lean_object* x_3; uint8_t x_4; +x_3 = lean_ctor_get(x_2, 0); lean_inc(x_3); -x_4 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; +lean_dec(x_2); +x_4 = !lean_is_exclusive(x_1); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_ctor_get(x_1, 1); +x_7 = lean_ctor_get(x_1, 2); +x_8 = lean_ctor_get(x_1, 3); +lean_inc(x_3); +x_9 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig(x_5, x_3); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; +lean_dec(x_9); +lean_free_object(x_1); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +x_10 = l_Lean_Parser_ParserExtensionState_inhabited; +x_11 = l_unreachable_x21___rarg(x_10); +return x_11; } else { -lean_object* x_5; lean_object* x_6; -x_5 = lean_ctor_get(x_1, 0); -lean_inc(x_5); -x_6 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_6, 0, x_5); -lean_ctor_set(x_6, 1, x_2); -return x_6; -} -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("_regBuiltinParser"); +lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_12 = lean_ctor_get(x_9, 0); +lean_inc(x_12); +lean_dec(x_9); +x_13 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_13, 0, x_3); +x_14 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_14, 0, x_13); +lean_ctor_set(x_14, 1, x_8); +lean_ctor_set(x_1, 3, x_14); +lean_ctor_set(x_1, 0, x_12); return x_1; } } -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__2() { -_start: +else { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_declareBuiltinParser___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__3() { -_start: +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_15 = lean_ctor_get(x_1, 0); +x_16 = lean_ctor_get(x_1, 1); +x_17 = lean_ctor_get(x_1, 2); +x_18 = lean_ctor_get(x_1, 3); +lean_inc(x_18); +lean_inc(x_17); +lean_inc(x_16); +lean_inc(x_15); +lean_dec(x_1); +lean_inc(x_3); +x_19 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig(x_15, x_3); +if (lean_obj_tag(x_19) == 0) { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l___private_Init_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_declareBuiltinParser___closed__3; -x_3 = l_Lean_mkConst(x_2, x_1); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l___private_Init_Lean_Compiler_InitAttr_2__isUnitType___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_declareBuiltinParser___closed__5; -x_3 = l_Lean_mkConst(x_2, x_1); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__7() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_declareBuiltinParser___closed__4; -x_2 = l_Lean_Parser_declareBuiltinParser___closed__6; -x_3 = l_Lean_mkApp(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(3u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__9() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("failed to emit registration code for builtin parser '"); -return x_1; -} -} -lean_object* l_Lean_Parser_declareBuiltinParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_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; 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; uint8_t x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_6 = l_Lean_Parser_declareBuiltinParser___closed__2; -lean_inc(x_4); -x_7 = l_Lean_Name_append___main(x_6, x_4); -x_8 = lean_box(0); -x_9 = l_Lean_mkConst(x_2, x_8); -x_10 = l_Lean_mkConst(x_3, x_8); -lean_inc(x_4); -x_11 = l_Lean_nameToExprAux___main(x_4); -lean_inc(x_4); -x_12 = l_Lean_mkConst(x_4, x_8); -x_13 = l_Lean_Parser_declareBuiltinParser___closed__8; -x_14 = lean_array_push(x_13, x_10); -x_15 = lean_array_push(x_14, x_11); -x_16 = lean_array_push(x_15, x_12); -x_17 = lean_unsigned_to_nat(0u); -x_18 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_16, x_16, x_17, x_9); +lean_object* x_20; lean_object* x_21; +lean_dec(x_19); +lean_dec(x_18); +lean_dec(x_17); lean_dec(x_16); -x_19 = l_Lean_Parser_declareBuiltinParser___closed__7; -lean_inc(x_7); -x_20 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_20, 0, x_7); -lean_ctor_set(x_20, 1, x_8); -lean_ctor_set(x_20, 2, x_19); -x_21 = lean_box(0); -x_22 = 0; -x_23 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_23, 0, x_20); -lean_ctor_set(x_23, 1, x_18); -lean_ctor_set(x_23, 2, x_21); -lean_ctor_set_uint8(x_23, sizeof(void*)*3, x_22); -x_24 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_24, 0, x_23); -x_25 = l_Lean_Options_empty; -x_26 = l_Lean_Environment_addAndCompile(x_1, x_25, x_24); -lean_dec(x_24); -if (lean_obj_tag(x_26) == 0) +lean_dec(x_3); +x_20 = l_Lean_Parser_ParserExtensionState_inhabited; +x_21 = l_unreachable_x21___rarg(x_20); +return x_21; +} +else { -lean_object* 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; -lean_dec(x_26); -lean_dec(x_7); -x_27 = l_Lean_Name_toString___closed__1; -x_28 = l_Lean_Name_toStringWithSep___main(x_27, x_4); -x_29 = l_Lean_Parser_declareBuiltinParser___closed__9; -x_30 = lean_string_append(x_29, x_28); -lean_dec(x_28); -x_31 = l_Char_HasRepr___closed__1; -x_32 = lean_string_append(x_30, x_31); +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_22 = lean_ctor_get(x_19, 0); +lean_inc(x_22); +lean_dec(x_19); +x_23 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_23, 0, x_3); +x_24 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_18); +x_25 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_25, 0, x_22); +lean_ctor_set(x_25, 1, x_16); +lean_ctor_set(x_25, 2, x_17); +lean_ctor_set(x_25, 3, x_24); +return x_25; +} +} +} +case 1: +{ +lean_object* x_26; uint8_t x_27; +x_26 = lean_ctor_get(x_2, 0); +lean_inc(x_26); +lean_dec(x_2); +x_27 = !lean_is_exclusive(x_1); +if (x_27 == 0) +{ +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_28 = lean_ctor_get(x_1, 1); +x_29 = lean_ctor_get(x_1, 3); +x_30 = lean_box(0); +lean_inc(x_26); +x_31 = l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(x_28, x_26, x_30); +x_32 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_32, 0, x_26); x_33 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_5); -return x_33; +lean_ctor_set(x_33, 1, x_29); +lean_ctor_set(x_1, 3, x_33); +lean_ctor_set(x_1, 1, x_31); +return x_1; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -lean_dec(x_4); -x_34 = lean_ctor_get(x_26, 0); -lean_inc(x_34); -lean_dec(x_26); -x_35 = l_Lean_initAttr; -x_36 = lean_box(0); -x_37 = l_Lean_ParametricAttribute_setParam___rarg(x_35, x_34, x_7, x_36); -x_38 = l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(x_37, x_5); -lean_dec(x_37); -return x_38; -} -} -} -lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_nameToExprAux___main___closed__4; -x_2 = l_Lean_Syntax_formatStxAux___main___closed__5; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("addBuiltinLeadingParser"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__3() { -_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_declareLeadingBuiltinParser___closed__2; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* l_Lean_Parser_declareLeadingBuiltinParser(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; -x_5 = l_Lean_Parser_declareLeadingBuiltinParser___closed__3; -x_6 = l_Lean_Parser_declareBuiltinParser(x_1, x_5, x_2, x_3, x_4); -return x_6; -} -} -lean_object* _init_l_Lean_Parser_declareTrailingBuiltinParser___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("addBuiltinTrailingParser"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_declareTrailingBuiltinParser___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_declareTrailingBuiltinParser___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -lean_object* l_Lean_Parser_declareTrailingBuiltinParser(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; -x_5 = l_Lean_Parser_declareTrailingBuiltinParser___closed__2; -x_6 = l_Lean_Parser_declareBuiltinParser(x_1, x_5, x_2, x_3, x_4); -return x_6; -} -} -lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("unexpected parser type at '"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("' (`Parser` or `TrailingParser` expected"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("TrailingParser"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("ParserKind"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("leading"); -return x_1; -} -} -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7) { -_start: -{ -uint8_t x_8; -x_8 = l_Lean_Syntax_hasArgs(x_5); -if (x_8 == 0) -{ -if (x_6 == 0) -{ -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_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_9 = l_Lean_Name_toString___closed__1; -x_10 = l_Lean_Name_toStringWithSep___main(x_9, x_1); -x_11 = l_Lean_registerTagAttribute___lambda__4___closed__1; -x_12 = lean_string_append(x_11, x_10); -lean_dec(x_10); -x_13 = l_Lean_registerTagAttribute___lambda__4___closed__2; -x_14 = lean_string_append(x_12, x_13); -x_15 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_15, 0, x_14); -lean_ctor_set(x_15, 1, x_7); -return x_15; -} -else -{ -lean_object* x_16; lean_object* x_25; -lean_dec(x_1); -lean_inc(x_4); -lean_inc(x_3); -x_25 = lean_environment_find(x_3, x_4); -if (lean_obj_tag(x_25) == 0) -{ -lean_object* x_26; lean_object* x_27; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_26 = l_Lean_mkInitAttr___lambda__1___closed__1; -x_27 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_7); -return x_27; -} -else -{ -lean_object* x_28; lean_object* x_29; -x_28 = lean_ctor_get(x_25, 0); -lean_inc(x_28); -lean_dec(x_25); -x_29 = l_Lean_ConstantInfo_type(x_28); -lean_dec(x_28); -switch (lean_obj_tag(x_29)) { -case 4: -{ -lean_object* x_30; -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -lean_dec(x_29); -if (lean_obj_tag(x_30) == 1) -{ -lean_object* x_31; -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -if (lean_obj_tag(x_31) == 1) -{ -lean_object* x_32; -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -if (lean_obj_tag(x_32) == 1) -{ -lean_object* x_33; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -if (lean_obj_tag(x_33) == 0) -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; -x_34 = lean_ctor_get(x_30, 1); -lean_inc(x_34); -lean_dec(x_30); -x_35 = lean_ctor_get(x_31, 1); -lean_inc(x_35); -lean_dec(x_31); -x_36 = lean_ctor_get(x_32, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_34 = lean_ctor_get(x_1, 0); +x_35 = lean_ctor_get(x_1, 1); +x_36 = lean_ctor_get(x_1, 2); +x_37 = lean_ctor_get(x_1, 3); +lean_inc(x_37); lean_inc(x_36); -lean_dec(x_32); -x_37 = l_Lean_nameToExprAux___main___closed__1; -x_38 = lean_string_dec_eq(x_36, x_37); -lean_dec(x_36); -if (x_38 == 0) +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_1); +x_38 = lean_box(0); +lean_inc(x_26); +x_39 = l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(x_35, x_26, x_38); +x_40 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_40, 0, x_26); +x_41 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_37); +x_42 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_42, 0, x_34); +lean_ctor_set(x_42, 1, x_39); +lean_ctor_set(x_42, 2, x_36); +lean_ctor_set(x_42, 3, x_41); +return x_42; +} +} +case 2: { -lean_object* x_39; -lean_dec(x_35); -lean_dec(x_34); -lean_dec(x_3); +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; +x_43 = lean_ctor_get(x_2, 0); +lean_inc(x_43); lean_dec(x_2); -x_39 = lean_box(0); -x_16 = x_39; -goto block_24; -} -else +x_44 = lean_ctor_get(x_1, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_1, 1); +lean_inc(x_45); +x_46 = lean_ctor_get(x_1, 2); +lean_inc(x_46); +x_47 = lean_ctor_get(x_1, 3); +lean_inc(x_47); +lean_inc(x_46); +x_48 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_8__addParserCategory___spec__1(x_46, x_43); +if (x_48 == 0) { -lean_object* x_40; uint8_t x_41; -x_40 = l_Lean_Syntax_formatStxAux___main___closed__5; -x_41 = lean_string_dec_eq(x_35, x_40); -lean_dec(x_35); -if (x_41 == 0) +uint8_t x_49; +x_49 = !lean_is_exclusive(x_1); +if (x_49 == 0) { -lean_object* x_42; -lean_dec(x_34); -lean_dec(x_3); -lean_dec(x_2); -x_42 = lean_box(0); -x_16 = x_42; -goto block_24; -} -else -{ -lean_object* x_43; uint8_t x_44; -x_43 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3; -x_44 = lean_string_dec_eq(x_34, x_43); -lean_dec(x_34); -if (x_44 == 0) -{ -lean_object* x_45; -lean_dec(x_3); -lean_dec(x_2); -x_45 = lean_box(0); -x_16 = x_45; -goto block_24; -} -else -{ -lean_object* x_46; -x_46 = l_Lean_Parser_declareTrailingBuiltinParser(x_3, x_2, x_4, x_7); -return x_46; -} -} -} -} -else -{ -lean_object* x_47; -lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_31); -lean_dec(x_30); -lean_dec(x_3); -lean_dec(x_2); -x_47 = lean_box(0); -x_16 = x_47; -goto block_24; -} -} -else -{ -lean_object* x_48; -lean_dec(x_32); -lean_dec(x_31); -lean_dec(x_30); -lean_dec(x_3); -lean_dec(x_2); -x_48 = lean_box(0); -x_16 = x_48; -goto block_24; -} -} -else -{ -lean_object* x_49; -lean_dec(x_31); -lean_dec(x_30); -lean_dec(x_3); -lean_dec(x_2); -x_49 = lean_box(0); -x_16 = x_49; -goto block_24; -} -} -else -{ -lean_object* x_50; -lean_dec(x_30); -lean_dec(x_3); -lean_dec(x_2); -x_50 = lean_box(0); -x_16 = x_50; -goto block_24; -} -} -case 5: -{ -lean_object* x_51; -x_51 = lean_ctor_get(x_29, 0); -lean_inc(x_51); -if (lean_obj_tag(x_51) == 4) -{ -lean_object* x_52; -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); +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); lean_dec(x_51); -if (lean_obj_tag(x_52) == 1) -{ -lean_object* x_53; -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -if (lean_obj_tag(x_53) == 1) -{ -lean_object* x_54; -x_54 = lean_ctor_get(x_53, 0); -lean_inc(x_54); -if (lean_obj_tag(x_54) == 1) -{ -lean_object* x_55; -x_55 = lean_ctor_get(x_54, 0); -lean_inc(x_55); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; -x_56 = lean_ctor_get(x_29, 1); -lean_inc(x_56); -lean_dec(x_29); -x_57 = lean_ctor_get(x_52, 1); -lean_inc(x_57); +x_52 = lean_ctor_get(x_1, 1); lean_dec(x_52); -x_58 = lean_ctor_get(x_53, 1); -lean_inc(x_58); +x_53 = lean_ctor_get(x_1, 0); lean_dec(x_53); -x_59 = lean_ctor_get(x_54, 1); -lean_inc(x_59); -lean_dec(x_54); -x_60 = l_Lean_nameToExprAux___main___closed__1; -x_61 = lean_string_dec_eq(x_59, x_60); -lean_dec(x_59); -if (x_61 == 0) -{ -lean_object* x_62; -lean_dec(x_58); -lean_dec(x_57); -lean_dec(x_56); -lean_dec(x_3); -lean_dec(x_2); -x_62 = lean_box(0); -x_16 = x_62; -goto block_24; +x_54 = l_Lean_Parser_ParsingTables_inhabited___closed__1; +lean_inc(x_43); +x_55 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_8__addParserCategory___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); +return x_1; } else { -lean_object* x_63; uint8_t x_64; -x_63 = l_Lean_Syntax_formatStxAux___main___closed__5; -x_64 = lean_string_dec_eq(x_58, x_63); -lean_dec(x_58); -if (x_64 == 0) -{ -lean_object* x_65; -lean_dec(x_57); -lean_dec(x_56); -lean_dec(x_3); -lean_dec(x_2); -x_65 = lean_box(0); -x_16 = x_65; -goto block_24; -} -else -{ -uint8_t x_66; -x_66 = lean_string_dec_eq(x_57, x_63); -lean_dec(x_57); -if (x_66 == 0) -{ -lean_object* x_67; -lean_dec(x_56); -lean_dec(x_3); -lean_dec(x_2); -x_67 = lean_box(0); -x_16 = x_67; -goto block_24; -} -else -{ -if (lean_obj_tag(x_56) == 4) -{ -lean_object* x_68; -x_68 = lean_ctor_get(x_56, 0); -lean_inc(x_68); -lean_dec(x_56); -if (lean_obj_tag(x_68) == 1) -{ -lean_object* x_69; -x_69 = lean_ctor_get(x_68, 0); -lean_inc(x_69); -if (lean_obj_tag(x_69) == 1) -{ -lean_object* x_70; -x_70 = lean_ctor_get(x_69, 0); -lean_inc(x_70); -if (lean_obj_tag(x_70) == 1) -{ -lean_object* x_71; -x_71 = lean_ctor_get(x_70, 0); -lean_inc(x_71); -if (lean_obj_tag(x_71) == 0) -{ -lean_object* x_72; lean_object* x_73; lean_object* x_74; uint8_t x_75; -x_72 = lean_ctor_get(x_68, 1); -lean_inc(x_72); -lean_dec(x_68); -x_73 = lean_ctor_get(x_69, 1); -lean_inc(x_73); -lean_dec(x_69); -x_74 = lean_ctor_get(x_70, 1); -lean_inc(x_74); -lean_dec(x_70); -x_75 = lean_string_dec_eq(x_74, x_60); -lean_dec(x_74); -if (x_75 == 0) -{ -lean_object* x_76; -lean_dec(x_73); -lean_dec(x_72); -lean_dec(x_3); -lean_dec(x_2); -x_76 = lean_box(0); -x_16 = x_76; -goto block_24; -} -else -{ -lean_object* x_77; uint8_t x_78; -x_77 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4; -x_78 = lean_string_dec_eq(x_73, x_77); -lean_dec(x_73); -if (x_78 == 0) -{ -lean_object* x_79; -lean_dec(x_72); -lean_dec(x_3); -lean_dec(x_2); -x_79 = lean_box(0); -x_16 = x_79; -goto block_24; -} -else -{ -lean_object* x_80; uint8_t x_81; -x_80 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5; -x_81 = lean_string_dec_eq(x_72, x_80); -lean_dec(x_72); -if (x_81 == 0) -{ -lean_object* x_82; -lean_dec(x_3); -lean_dec(x_2); -x_82 = lean_box(0); -x_16 = x_82; -goto block_24; -} -else -{ -lean_object* x_83; -x_83 = l_Lean_Parser_declareLeadingBuiltinParser(x_3, x_2, x_4, x_7); -return x_83; -} -} +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +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_8__addParserCategory___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); +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; } } else { -lean_object* x_84; -lean_dec(x_71); -lean_dec(x_70); -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_3); -lean_dec(x_2); -x_84 = lean_box(0); -x_16 = x_84; -goto block_24; -} -} -else -{ -lean_object* x_85; -lean_dec(x_70); -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_3); -lean_dec(x_2); -x_85 = lean_box(0); -x_16 = x_85; -goto block_24; -} -} -else -{ -lean_object* x_86; -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_3); -lean_dec(x_2); -x_86 = lean_box(0); -x_16 = x_86; -goto block_24; -} -} -else -{ -lean_object* x_87; -lean_dec(x_68); -lean_dec(x_3); -lean_dec(x_2); -x_87 = lean_box(0); -x_16 = x_87; -goto block_24; -} -} -else -{ -lean_object* x_88; -lean_dec(x_56); -lean_dec(x_3); -lean_dec(x_2); -x_88 = lean_box(0); -x_16 = x_88; -goto block_24; -} -} -} -} -} -else -{ -lean_object* x_89; -lean_dec(x_55); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_52); -lean_dec(x_29); -lean_dec(x_3); -lean_dec(x_2); -x_89 = lean_box(0); -x_16 = x_89; -goto block_24; -} -} -else -{ -lean_object* x_90; -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_52); -lean_dec(x_29); -lean_dec(x_3); -lean_dec(x_2); -x_90 = lean_box(0); -x_16 = x_90; -goto block_24; -} -} -else -{ -lean_object* x_91; -lean_dec(x_53); -lean_dec(x_52); -lean_dec(x_29); -lean_dec(x_3); -lean_dec(x_2); -x_91 = lean_box(0); -x_16 = x_91; -goto block_24; -} -} -else -{ -lean_object* x_92; -lean_dec(x_52); -lean_dec(x_29); -lean_dec(x_3); -lean_dec(x_2); -x_92 = lean_box(0); -x_16 = x_92; -goto block_24; -} -} -else -{ -lean_object* x_93; -lean_dec(x_51); -lean_dec(x_29); -lean_dec(x_3); -lean_dec(x_2); -x_93 = lean_box(0); -x_16 = x_93; -goto block_24; +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_94; -lean_dec(x_29); -lean_dec(x_3); +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_inc(x_66); lean_dec(x_2); -x_94 = lean_box(0); -x_16 = x_94; -goto block_24; -} -} -} -block_24: +x_67 = !lean_is_exclusive(x_1); +if (x_67 == 0) { -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_23; -lean_dec(x_16); -x_17 = l_Lean_Name_toString___closed__1; -x_18 = l_Lean_Name_toStringWithSep___main(x_17, x_4); -x_19 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1; -x_20 = lean_string_append(x_19, x_18); -lean_dec(x_18); -x_21 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2; -x_22 = lean_string_append(x_20, x_21); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_7); -return x_23; +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, 2); +x_69 = lean_ctor_get(x_1, 3); +x_70 = lean_ctor_get(x_1, 1); +lean_dec(x_70); +x_71 = lean_ctor_get(x_1, 0); +lean_dec(x_71); +lean_inc(x_64); +lean_inc(x_63); +x_72 = l_Lean_Parser_addParser(x_65, x_68, x_63, x_64, x_66); +if (lean_obj_tag(x_72) == 0) +{ +lean_object* x_73; lean_object* x_74; +lean_dec(x_72); +lean_free_object(x_1); +lean_dec(x_69); +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; } +else +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; +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_69); +x_78 = l_Lean_Parser_Trie_HasEmptyc___closed__1; +x_79 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; +lean_ctor_set(x_1, 3, x_77); +lean_ctor_set(x_1, 2, x_75); +lean_ctor_set(x_1, 1, x_79); +lean_ctor_set(x_1, 0, x_78); +return x_1; } } else { -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_95 = l_Lean_Name_toString___closed__1; -x_96 = l_Lean_Name_toStringWithSep___main(x_95, x_1); -x_97 = l_Lean_registerTagAttribute___lambda__4___closed__1; -x_98 = lean_string_append(x_97, x_96); -lean_dec(x_96); -x_99 = l_Lean_registerTagAttribute___lambda__4___closed__5; -x_100 = lean_string_append(x_98, x_99); -x_101 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_101, 0, x_100); -lean_ctor_set(x_101, 1, x_7); -return x_101; -} -} -} -lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___closed__1() { -_start: -{ -lean_object* x_1; -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) { -_start: -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; lean_object* x_8; -lean_inc(x_1); -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___boxed), 7, 2); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_2); -x_5 = l_Lean_Parser_registerBuiltinParserAttribute___closed__1; -x_6 = 1; -x_7 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_5); -lean_ctor_set(x_7, 2, x_4); -lean_ctor_set_uint8(x_7, sizeof(void*)*3, x_6); -x_8 = l_Lean_registerAttribute(x_7, x_3); -return x_8; -} -} -lean_object* l_Lean_Parser_registerBuiltinParserAttribute___lambda__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, lean_object* x_7) { -_start: -{ -uint8_t x_8; lean_object* x_9; -x_8 = lean_unbox(x_6); -lean_dec(x_6); -x_9 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1(x_1, x_2, x_3, x_4, x_5, x_8, x_7); -lean_dec(x_5); -return x_9; -} -} -lean_object* _init_l_Lean_Parser_runBuiltinParserUnsafe___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("failed to access builtin reference"); -return x_1; -} -} -lean_object* l_Lean_Parser_runBuiltinParserUnsafe(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; lean_object* x_11; lean_object* x_12; -x_11 = lean_box(0); -x_12 = lean_io_ref_get(x_2, x_11); -if (lean_obj_tag(x_12) == 0) -{ -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_12); -lean_inc(x_5); -x_14 = l_Lean_Parser_prattParser(x_1, x_13, x_3, x_4, x_5); -x_15 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_15, 0, x_14); -x_6 = x_15; -goto block_10; -} -else -{ -lean_object* x_16; lean_object* x_17; -lean_dec(x_4); -lean_dec(x_3); +lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_80 = lean_ctor_get(x_1, 2); +x_81 = lean_ctor_get(x_1, 3); +lean_inc(x_81); +lean_inc(x_80); lean_dec(x_1); -x_16 = lean_ctor_get(x_12, 0); -lean_inc(x_16); -lean_dec(x_12); -x_17 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_17, 0, x_16); -x_6 = x_17; -goto block_10; -} -block_10: +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) { -if (lean_obj_tag(x_6) == 0) -{ -lean_object* x_7; lean_object* x_8; -lean_dec(x_6); -x_7 = l_Lean_Parser_runBuiltinParserUnsafe___closed__1; -x_8 = l_Lean_Parser_ParserState_mkError(x_5, x_7); -return x_8; +lean_object* x_83; lean_object* x_84; +lean_dec(x_82); +lean_dec(x_81); +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; } else { -lean_object* x_9; -lean_dec(x_5); -x_9 = lean_ctor_get(x_6, 0); -lean_inc(x_9); -lean_dec(x_6); -return x_9; +lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; +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 = l_Lean_Parser_Trie_HasEmptyc___closed__1; +x_89 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; +x_90 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_90, 0, x_88); +lean_ctor_set(x_90, 1, x_89); +lean_ctor_set(x_90, 2, x_85); +lean_ctor_set(x_90, 3, x_87); +return x_90; } } } } -lean_object* l_Lean_Parser_runBuiltinParserUnsafe___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Lean_Parser_runBuiltinParserUnsafe(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_2); -return x_6; -} -} -lean_object* l_Lean_Parser_runBuiltinParser___rarg(lean_object* x_1) { -_start: -{ -lean_inc(x_1); -return x_1; -} -} -lean_object* l_Lean_Parser_runBuiltinParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -x_5 = lean_alloc_closure((void*)(l_Lean_Parser_runBuiltinParser___rarg___boxed), 1, 0); -return x_5; -} -} -lean_object* l_Lean_Parser_runBuiltinParser___rarg___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Parser_runBuiltinParser___rarg(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_runBuiltinParser___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_runBuiltinParser(x_1, x_2, x_3, x_4); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = lean_box(0); -x_3 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_3, 0, x_2); -lean_ctor_set(x_3, 1, x_2); -lean_ctor_set(x_3, 2, x_1); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___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_ParserAttributeExtensionState_inhabited___closed__1; -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_ParserAttributeExtensionState_inhabited() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; -return x_1; -} -} -lean_object* _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Array_empty___closed__1; -x_2 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___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_ParserAttribute_Inhabited___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_EnvExtension_Inhabited___rarg___closed__1; -x_3 = l_Lean_Parser_ParserAttribute_Inhabited___closed__1; -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_1 = l_Lean_Parser_ParserAttribute_Inhabited___closed__2; -x_2 = lean_box(0); -x_3 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__1; -x_4 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; -x_5 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; -x_6 = l_Lean_PersistentEnvExtension_inhabited___rarg___closed__4; -x_7 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_2); -lean_ctor_set(x_7, 2, x_3); -lean_ctor_set(x_7, 3, x_4); -lean_ctor_set(x_7, 4, x_5); -lean_ctor_set(x_7, 5, x_6); -return x_7; -} -} -lean_object* _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_AttributeImpl_inhabited___closed__2; -x_2 = l_Lean_Parser_ParserAttribute_Inhabited___closed__3; -x_3 = l_String_splitAux___main___closed__1; -x_4 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* _init_l_Lean_Parser_ParserAttribute_Inhabited() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Parser_ParserAttribute_Inhabited___closed__4; -return x_1; -} -} -lean_object* l_Lean_Parser_ParserAttribute_runParserFn(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; lean_object* x_9; lean_object* x_10; -x_5 = lean_ctor_get(x_1, 1); -lean_inc(x_5); -x_6 = lean_ctor_get(x_3, 1); -lean_inc(x_6); -x_7 = l_Lean_PersistentEnvExtension_getState___rarg(x_5, x_6); -lean_dec(x_6); -lean_dec(x_5); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = lean_ctor_get(x_1, 2); -lean_inc(x_9); -lean_dec(x_1); -x_10 = l_Lean_Parser_prattParser(x_9, x_8, x_2, x_3, x_4); -return x_10; -} -} -lean_object* l_Lean_Parser_ParserAttribute_mkParser___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Lean_Parser_ParserAttribute_runParserFn(x_1, x_2, x_4, x_5); -return x_6; -} -} -lean_object* l_Lean_Parser_ParserAttribute_mkParser(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_ParserAttribute_mkParser___elambda__1___boxed), 5, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -x_4 = l_Lean_Parser_Parser_inhabited___closed__1; -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -lean_object* l_Lean_Parser_ParserAttribute_mkParser___elambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Lean_Parser_ParserAttribute_mkParser___elambda__1(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_3); -return x_6; -} -} -lean_object* l_mkHashMap___at_Lean_Parser_mkParserAttributeTable___spec__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_mkHashMapImp___rarg(x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_mkParserAttributeTable___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(8u); -x_2 = l_mkHashMapImp___rarg(x_1); -return x_2; -} -} -lean_object* l_Lean_Parser_mkParserAttributeTable(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Parser_mkParserAttributeTable___closed__1; -x_3 = lean_io_mk_ref(x_2, x_1); -return x_3; -} -} -lean_object* l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_3; -x_3 = lean_box(0); -return x_3; -} -else -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; -x_4 = lean_ctor_get(x_2, 0); -x_5 = lean_ctor_get(x_2, 1); -x_6 = lean_ctor_get(x_2, 2); -x_7 = lean_name_eq(x_4, x_1); -if (x_7 == 0) -{ -x_2 = x_6; -goto _start; -} -else -{ -lean_object* x_9; -lean_inc(x_5); -x_9 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_9, 0, x_5); -return x_9; -} -} -} -} -lean_object* l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; size_t x_5; size_t x_6; lean_object* x_7; lean_object* x_8; -x_3 = lean_ctor_get(x_1, 1); -x_4 = lean_array_get_size(x_3); -x_5 = l_Lean_Name_hash(x_2); -x_6 = lean_usize_modn(x_5, x_4); -lean_dec(x_4); -x_7 = lean_array_uget(x_3, x_6); -x_8 = l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2(x_2, x_7); -lean_dec(x_7); -return x_8; } } lean_object* _init_l_Lean_Parser_compileParserDescr___main___closed__1() { _start: { -lean_object* x_1; -x_1 = lean_mk_string("unknow parser kind '"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_compileParserDescr___main___closed__2() { -_start: -{ lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_pushLeading___closed__2; x_2 = lean_alloc_ctor(1, 1, 0); @@ -29980,11 +27667,13 @@ lean_inc(x_4); x_5 = lean_ctor_get(x_3, 1); lean_inc(x_5); lean_dec(x_3); +lean_inc(x_1); x_6 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_4); if (lean_obj_tag(x_6) == 0) { uint8_t x_7; lean_dec(x_5); +lean_dec(x_1); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) { @@ -30094,11 +27783,13 @@ lean_inc(x_33); x_34 = lean_ctor_get(x_3, 1); lean_inc(x_34); lean_dec(x_3); +lean_inc(x_1); x_35 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_33); if (lean_obj_tag(x_35) == 0) { uint8_t x_36; lean_dec(x_34); +lean_dec(x_1); x_36 = !lean_is_exclusive(x_35); if (x_36 == 0) { @@ -30651,11 +28342,13 @@ lean_inc(x_174); x_175 = lean_ctor_get(x_3, 1); lean_inc(x_175); lean_dec(x_3); +lean_inc(x_1); x_176 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_174); if (lean_obj_tag(x_176) == 0) { uint8_t x_177; lean_dec(x_175); +lean_dec(x_1); x_177 = !lean_is_exclusive(x_176); if (x_177 == 0) { @@ -30775,11 +28468,13 @@ lean_inc(x_209); x_210 = lean_ctor_get(x_3, 1); lean_inc(x_210); lean_dec(x_3); +lean_inc(x_1); x_211 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_209); if (lean_obj_tag(x_211) == 0) { uint8_t x_212; lean_dec(x_210); +lean_dec(x_1); x_212 = !lean_is_exclusive(x_211); if (x_212 == 0) { @@ -30972,6 +28667,7 @@ return x_263; case 10: { lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; +lean_dec(x_1); x_264 = lean_ctor_get(x_3, 0); lean_inc(x_264); x_265 = lean_ctor_get(x_3, 1); @@ -30995,6 +28691,7 @@ return x_271; case 11: { lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; +lean_dec(x_1); x_272 = lean_ctor_get(x_3, 0); lean_inc(x_272); x_273 = lean_ctor_get(x_3, 1); @@ -31029,33 +28726,22 @@ lean_inc(x_282); x_283 = lean_ctor_get(x_3, 1); lean_inc(x_283); lean_dec(x_3); -x_284 = l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1(x_1, x_282); +x_284 = l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(x_1, x_282); if (lean_obj_tag(x_284) == 0) { -lean_object* x_285; lean_object* x_286; lean_object* x_287; lean_object* x_288; lean_object* x_289; lean_object* x_290; lean_object* x_291; +lean_object* x_285; lean_dec(x_283); -x_285 = l_Lean_Name_toString___closed__1; -x_286 = l_Lean_Name_toStringWithSep___main(x_285, x_282); -x_287 = l_Lean_Parser_compileParserDescr___main___closed__1; -x_288 = lean_string_append(x_287, x_286); -lean_dec(x_286); -x_289 = l_Char_HasRepr___closed__1; -x_290 = lean_string_append(x_288, x_289); -x_291 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_291, 0, x_290); -return x_291; +x_285 = l_Lean_Parser_throwUnknownParserCategory___rarg(x_282); +return x_285; } else { -lean_object* x_292; lean_object* x_293; lean_object* x_294; -lean_dec(x_282); -x_292 = lean_ctor_get(x_284, 0); -lean_inc(x_292); +lean_object* x_286; lean_object* x_287; lean_dec(x_284); -x_293 = l_Lean_Parser_ParserAttribute_mkParser(x_292, x_283); -x_294 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_294, 0, x_293); -return x_294; +x_286 = l_Lean_Parser_categoryParser(x_2, x_282, x_283); +x_287 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_287, 0, x_286); +return x_287; } } } @@ -31065,525 +28751,551 @@ else switch (lean_obj_tag(x_3)) { case 0: { -lean_object* x_295; lean_object* x_296; lean_object* x_297; -x_295 = lean_ctor_get(x_3, 0); -lean_inc(x_295); -x_296 = lean_ctor_get(x_3, 1); -lean_inc(x_296); +lean_object* x_288; lean_object* x_289; lean_object* x_290; +x_288 = lean_ctor_get(x_3, 0); +lean_inc(x_288); +x_289 = lean_ctor_get(x_3, 1); +lean_inc(x_289); lean_dec(x_3); -x_297 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_295); -if (lean_obj_tag(x_297) == 0) +lean_inc(x_1); +x_290 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_288); +if (lean_obj_tag(x_290) == 0) { -uint8_t x_298; -lean_dec(x_296); -x_298 = !lean_is_exclusive(x_297); -if (x_298 == 0) +uint8_t x_291; +lean_dec(x_289); +lean_dec(x_1); +x_291 = !lean_is_exclusive(x_290); +if (x_291 == 0) { -return x_297; +return x_290; } else { -lean_object* x_299; lean_object* x_300; -x_299 = lean_ctor_get(x_297, 0); -lean_inc(x_299); -lean_dec(x_297); -x_300 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_300, 0, x_299); -return x_300; +lean_object* x_292; lean_object* x_293; +x_292 = lean_ctor_get(x_290, 0); +lean_inc(x_292); +lean_dec(x_290); +x_293 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_293, 0, x_292); +return x_293; } } else { -lean_object* x_301; lean_object* x_302; -x_301 = lean_ctor_get(x_297, 0); +lean_object* x_294; lean_object* x_295; +x_294 = lean_ctor_get(x_290, 0); +lean_inc(x_294); +lean_dec(x_290); +x_295 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_289); +if (lean_obj_tag(x_295) == 0) +{ +uint8_t x_296; +lean_dec(x_294); +x_296 = !lean_is_exclusive(x_295); +if (x_296 == 0) +{ +return x_295; +} +else +{ +lean_object* x_297; lean_object* x_298; +x_297 = lean_ctor_get(x_295, 0); +lean_inc(x_297); +lean_dec(x_295); +x_298 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_298, 0, x_297); +return x_298; +} +} +else +{ +uint8_t x_299; +x_299 = !lean_is_exclusive(x_295); +if (x_299 == 0) +{ +lean_object* x_300; lean_object* x_301; lean_object* x_302; lean_object* x_303; lean_object* x_304; lean_object* x_305; lean_object* x_306; lean_object* x_307; +x_300 = lean_ctor_get(x_295, 0); +x_301 = lean_ctor_get(x_294, 0); lean_inc(x_301); -lean_dec(x_297); -x_302 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_296); -if (lean_obj_tag(x_302) == 0) -{ -uint8_t x_303; -lean_dec(x_301); -x_303 = !lean_is_exclusive(x_302); -if (x_303 == 0) -{ -return x_302; -} -else -{ -lean_object* x_304; lean_object* x_305; -x_304 = lean_ctor_get(x_302, 0); +x_302 = lean_ctor_get(x_300, 0); +lean_inc(x_302); +x_303 = l_Lean_Parser_andthenInfo(x_301, x_302); +x_304 = lean_ctor_get(x_294, 1); lean_inc(x_304); -lean_dec(x_302); -x_305 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_305, 0, x_304); -return x_305; -} +lean_dec(x_294); +x_305 = lean_ctor_get(x_300, 1); +lean_inc(x_305); +lean_dec(x_300); +x_306 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_306, 0, x_304); +lean_closure_set(x_306, 1, x_305); +x_307 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_307, 0, x_303); +lean_ctor_set(x_307, 1, x_306); +lean_ctor_set(x_295, 0, x_307); +return x_295; } else { -uint8_t x_306; -x_306 = !lean_is_exclusive(x_302); -if (x_306 == 0) -{ -lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; lean_object* x_314; -x_307 = lean_ctor_get(x_302, 0); -x_308 = lean_ctor_get(x_301, 0); +lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; lean_object* x_314; lean_object* x_315; lean_object* x_316; +x_308 = lean_ctor_get(x_295, 0); lean_inc(x_308); -x_309 = lean_ctor_get(x_307, 0); +lean_dec(x_295); +x_309 = lean_ctor_get(x_294, 0); lean_inc(x_309); -x_310 = l_Lean_Parser_andthenInfo(x_308, x_309); -x_311 = lean_ctor_get(x_301, 1); -lean_inc(x_311); -lean_dec(x_301); -x_312 = lean_ctor_get(x_307, 1); +x_310 = lean_ctor_get(x_308, 0); +lean_inc(x_310); +x_311 = l_Lean_Parser_andthenInfo(x_309, x_310); +x_312 = lean_ctor_get(x_294, 1); lean_inc(x_312); -lean_dec(x_307); -x_313 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_313, 0, x_311); -lean_closure_set(x_313, 1, x_312); -x_314 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_314, 0, x_310); -lean_ctor_set(x_314, 1, x_313); -lean_ctor_set(x_302, 0, x_314); -return x_302; -} -else -{ -lean_object* x_315; lean_object* x_316; lean_object* x_317; lean_object* x_318; lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; -x_315 = lean_ctor_get(x_302, 0); -lean_inc(x_315); -lean_dec(x_302); -x_316 = lean_ctor_get(x_301, 0); -lean_inc(x_316); -x_317 = lean_ctor_get(x_315, 0); -lean_inc(x_317); -x_318 = l_Lean_Parser_andthenInfo(x_316, x_317); -x_319 = lean_ctor_get(x_301, 1); -lean_inc(x_319); -lean_dec(x_301); -x_320 = lean_ctor_get(x_315, 1); -lean_inc(x_320); -lean_dec(x_315); -x_321 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_321, 0, x_319); -lean_closure_set(x_321, 1, x_320); -x_322 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_322, 0, x_318); -lean_ctor_set(x_322, 1, x_321); -x_323 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_323, 0, x_322); -return x_323; +lean_dec(x_294); +x_313 = lean_ctor_get(x_308, 1); +lean_inc(x_313); +lean_dec(x_308); +x_314 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_314, 0, x_312); +lean_closure_set(x_314, 1, x_313); +x_315 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_315, 0, x_311); +lean_ctor_set(x_315, 1, x_314); +x_316 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_316, 0, x_315); +return x_316; } } } } case 1: { -lean_object* x_324; lean_object* x_325; lean_object* x_326; -x_324 = lean_ctor_get(x_3, 0); -lean_inc(x_324); -x_325 = lean_ctor_get(x_3, 1); -lean_inc(x_325); +lean_object* x_317; lean_object* x_318; lean_object* x_319; +x_317 = lean_ctor_get(x_3, 0); +lean_inc(x_317); +x_318 = lean_ctor_get(x_3, 1); +lean_inc(x_318); lean_dec(x_3); -x_326 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_324); -if (lean_obj_tag(x_326) == 0) +lean_inc(x_1); +x_319 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_317); +if (lean_obj_tag(x_319) == 0) { -uint8_t x_327; -lean_dec(x_325); -x_327 = !lean_is_exclusive(x_326); -if (x_327 == 0) +uint8_t x_320; +lean_dec(x_318); +lean_dec(x_1); +x_320 = !lean_is_exclusive(x_319); +if (x_320 == 0) { -return x_326; +return x_319; } else { -lean_object* x_328; lean_object* x_329; -x_328 = lean_ctor_get(x_326, 0); -lean_inc(x_328); -lean_dec(x_326); -x_329 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_329, 0, x_328); -return x_329; +lean_object* x_321; lean_object* x_322; +x_321 = lean_ctor_get(x_319, 0); +lean_inc(x_321); +lean_dec(x_319); +x_322 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_322, 0, x_321); +return x_322; } } else { -lean_object* x_330; lean_object* x_331; -x_330 = lean_ctor_get(x_326, 0); +lean_object* x_323; lean_object* x_324; +x_323 = lean_ctor_get(x_319, 0); +lean_inc(x_323); +lean_dec(x_319); +x_324 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_318); +if (lean_obj_tag(x_324) == 0) +{ +uint8_t x_325; +lean_dec(x_323); +x_325 = !lean_is_exclusive(x_324); +if (x_325 == 0) +{ +return x_324; +} +else +{ +lean_object* x_326; lean_object* x_327; +x_326 = lean_ctor_get(x_324, 0); +lean_inc(x_326); +lean_dec(x_324); +x_327 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_327, 0, x_326); +return x_327; +} +} +else +{ +uint8_t x_328; +x_328 = !lean_is_exclusive(x_324); +if (x_328 == 0) +{ +lean_object* x_329; lean_object* x_330; lean_object* x_331; lean_object* x_332; lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; +x_329 = lean_ctor_get(x_324, 0); +x_330 = lean_ctor_get(x_323, 0); lean_inc(x_330); -lean_dec(x_326); -x_331 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_325); -if (lean_obj_tag(x_331) == 0) -{ -uint8_t x_332; -lean_dec(x_330); -x_332 = !lean_is_exclusive(x_331); -if (x_332 == 0) -{ -return x_331; -} -else -{ -lean_object* x_333; lean_object* x_334; -x_333 = lean_ctor_get(x_331, 0); +x_331 = lean_ctor_get(x_329, 0); +lean_inc(x_331); +x_332 = l_Lean_Parser_orelseInfo(x_330, x_331); +x_333 = lean_ctor_get(x_323, 1); lean_inc(x_333); -lean_dec(x_331); -x_334 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_334, 0, x_333); -return x_334; -} +lean_dec(x_323); +x_334 = lean_ctor_get(x_329, 1); +lean_inc(x_334); +lean_dec(x_329); +x_335 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn___rarg), 5, 2); +lean_closure_set(x_335, 0, x_333); +lean_closure_set(x_335, 1, x_334); +x_336 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_336, 0, x_332); +lean_ctor_set(x_336, 1, x_335); +lean_ctor_set(x_324, 0, x_336); +return x_324; } else { -uint8_t x_335; -x_335 = !lean_is_exclusive(x_331); -if (x_335 == 0) -{ -lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; -x_336 = lean_ctor_get(x_331, 0); -x_337 = lean_ctor_get(x_330, 0); +lean_object* x_337; lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; +x_337 = lean_ctor_get(x_324, 0); lean_inc(x_337); -x_338 = lean_ctor_get(x_336, 0); +lean_dec(x_324); +x_338 = lean_ctor_get(x_323, 0); lean_inc(x_338); -x_339 = l_Lean_Parser_orelseInfo(x_337, x_338); -x_340 = lean_ctor_get(x_330, 1); -lean_inc(x_340); -lean_dec(x_330); -x_341 = lean_ctor_get(x_336, 1); +x_339 = lean_ctor_get(x_337, 0); +lean_inc(x_339); +x_340 = l_Lean_Parser_orelseInfo(x_338, x_339); +x_341 = lean_ctor_get(x_323, 1); lean_inc(x_341); -lean_dec(x_336); -x_342 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn___rarg), 5, 2); -lean_closure_set(x_342, 0, x_340); -lean_closure_set(x_342, 1, x_341); -x_343 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_343, 0, x_339); -lean_ctor_set(x_343, 1, x_342); -lean_ctor_set(x_331, 0, x_343); -return x_331; -} -else -{ -lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; lean_object* x_352; -x_344 = lean_ctor_get(x_331, 0); -lean_inc(x_344); -lean_dec(x_331); -x_345 = lean_ctor_get(x_330, 0); -lean_inc(x_345); -x_346 = lean_ctor_get(x_344, 0); -lean_inc(x_346); -x_347 = l_Lean_Parser_orelseInfo(x_345, x_346); -x_348 = lean_ctor_get(x_330, 1); -lean_inc(x_348); -lean_dec(x_330); -x_349 = lean_ctor_get(x_344, 1); -lean_inc(x_349); -lean_dec(x_344); -x_350 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn___rarg), 5, 2); -lean_closure_set(x_350, 0, x_348); -lean_closure_set(x_350, 1, x_349); -x_351 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_351, 0, x_347); -lean_ctor_set(x_351, 1, x_350); -x_352 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_352, 0, x_351); -return x_352; +lean_dec(x_323); +x_342 = lean_ctor_get(x_337, 1); +lean_inc(x_342); +lean_dec(x_337); +x_343 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn___rarg), 5, 2); +lean_closure_set(x_343, 0, x_341); +lean_closure_set(x_343, 1, x_342); +x_344 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_344, 0, x_340); +lean_ctor_set(x_344, 1, x_343); +x_345 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_345, 0, x_344); +return x_345; } } } } case 2: { -lean_object* x_353; lean_object* x_354; -x_353 = lean_ctor_get(x_3, 0); -lean_inc(x_353); +lean_object* x_346; lean_object* x_347; +x_346 = lean_ctor_get(x_3, 0); +lean_inc(x_346); lean_dec(x_3); -x_354 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_353); -if (lean_obj_tag(x_354) == 0) +x_347 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_346); +if (lean_obj_tag(x_347) == 0) { -uint8_t x_355; -x_355 = !lean_is_exclusive(x_354); -if (x_355 == 0) +uint8_t x_348; +x_348 = !lean_is_exclusive(x_347); +if (x_348 == 0) { -return x_354; +return x_347; } else { -lean_object* x_356; lean_object* x_357; -x_356 = lean_ctor_get(x_354, 0); -lean_inc(x_356); -lean_dec(x_354); -x_357 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_357, 0, x_356); -return x_357; +lean_object* x_349; lean_object* x_350; +x_349 = lean_ctor_get(x_347, 0); +lean_inc(x_349); +lean_dec(x_347); +x_350 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_350, 0, x_349); +return x_350; } } else { -uint8_t x_358; -x_358 = !lean_is_exclusive(x_354); -if (x_358 == 0) +uint8_t x_351; +x_351 = !lean_is_exclusive(x_347); +if (x_351 == 0) { -lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; -x_359 = lean_ctor_get(x_354, 0); -x_360 = lean_ctor_get(x_359, 0); -lean_inc(x_360); -x_361 = l_Lean_Parser_optionaInfo(x_360); -x_362 = lean_ctor_get(x_359, 1); -lean_inc(x_362); -lean_dec(x_359); -x_363 = lean_alloc_closure((void*)(l_Lean_Parser_optionalFn___rarg), 4, 1); -lean_closure_set(x_363, 0, x_362); -x_364 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_364, 0, x_361); -lean_ctor_set(x_364, 1, x_363); -lean_ctor_set(x_354, 0, x_364); -return x_354; +lean_object* x_352; lean_object* x_353; lean_object* x_354; lean_object* x_355; lean_object* x_356; lean_object* x_357; +x_352 = lean_ctor_get(x_347, 0); +x_353 = lean_ctor_get(x_352, 0); +lean_inc(x_353); +x_354 = l_Lean_Parser_optionaInfo(x_353); +x_355 = lean_ctor_get(x_352, 1); +lean_inc(x_355); +lean_dec(x_352); +x_356 = lean_alloc_closure((void*)(l_Lean_Parser_optionalFn___rarg), 4, 1); +lean_closure_set(x_356, 0, x_355); +x_357 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_357, 0, x_354); +lean_ctor_set(x_357, 1, x_356); +lean_ctor_set(x_347, 0, x_357); +return x_347; } else { -lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; lean_object* x_370; lean_object* x_371; -x_365 = lean_ctor_get(x_354, 0); -lean_inc(x_365); -lean_dec(x_354); -x_366 = lean_ctor_get(x_365, 0); -lean_inc(x_366); -x_367 = l_Lean_Parser_optionaInfo(x_366); -x_368 = lean_ctor_get(x_365, 1); -lean_inc(x_368); -lean_dec(x_365); -x_369 = lean_alloc_closure((void*)(l_Lean_Parser_optionalFn___rarg), 4, 1); -lean_closure_set(x_369, 0, x_368); -x_370 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_370, 0, x_367); -lean_ctor_set(x_370, 1, x_369); -x_371 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_371, 0, x_370); -return x_371; +lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; +x_358 = lean_ctor_get(x_347, 0); +lean_inc(x_358); +lean_dec(x_347); +x_359 = lean_ctor_get(x_358, 0); +lean_inc(x_359); +x_360 = l_Lean_Parser_optionaInfo(x_359); +x_361 = lean_ctor_get(x_358, 1); +lean_inc(x_361); +lean_dec(x_358); +x_362 = lean_alloc_closure((void*)(l_Lean_Parser_optionalFn___rarg), 4, 1); +lean_closure_set(x_362, 0, x_361); +x_363 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_363, 0, x_360); +lean_ctor_set(x_363, 1, x_362); +x_364 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_364, 0, x_363); +return x_364; } } } case 3: { -lean_object* x_372; lean_object* x_373; -x_372 = lean_ctor_get(x_3, 0); -lean_inc(x_372); +lean_object* x_365; lean_object* x_366; +x_365 = lean_ctor_get(x_3, 0); +lean_inc(x_365); lean_dec(x_3); -x_373 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_372); -if (lean_obj_tag(x_373) == 0) +x_366 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_365); +if (lean_obj_tag(x_366) == 0) { -uint8_t x_374; -x_374 = !lean_is_exclusive(x_373); -if (x_374 == 0) +uint8_t x_367; +x_367 = !lean_is_exclusive(x_366); +if (x_367 == 0) { -return x_373; +return x_366; } else { -lean_object* x_375; lean_object* x_376; -x_375 = lean_ctor_get(x_373, 0); +lean_object* x_368; lean_object* x_369; +x_368 = lean_ctor_get(x_366, 0); +lean_inc(x_368); +lean_dec(x_366); +x_369 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_369, 0, x_368); +return x_369; +} +} +else +{ +uint8_t x_370; +x_370 = !lean_is_exclusive(x_366); +if (x_370 == 0) +{ +lean_object* x_371; uint8_t x_372; +x_371 = lean_ctor_get(x_366, 0); +x_372 = !lean_is_exclusive(x_371); +if (x_372 == 0) +{ +lean_object* x_373; lean_object* x_374; +x_373 = lean_ctor_get(x_371, 1); +x_374 = lean_alloc_closure((void*)(l_Lean_Parser_lookaheadFn___rarg), 4, 1); +lean_closure_set(x_374, 0, x_373); +lean_ctor_set(x_371, 1, x_374); +return x_366; +} +else +{ +lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; +x_375 = lean_ctor_get(x_371, 0); +x_376 = lean_ctor_get(x_371, 1); +lean_inc(x_376); lean_inc(x_375); -lean_dec(x_373); -x_376 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_376, 0, x_375); -return x_376; +lean_dec(x_371); +x_377 = lean_alloc_closure((void*)(l_Lean_Parser_lookaheadFn___rarg), 4, 1); +lean_closure_set(x_377, 0, x_376); +x_378 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_378, 0, x_375); +lean_ctor_set(x_378, 1, x_377); +lean_ctor_set(x_366, 0, x_378); +return x_366; } } else { -uint8_t x_377; -x_377 = !lean_is_exclusive(x_373); -if (x_377 == 0) -{ -lean_object* x_378; uint8_t x_379; -x_378 = lean_ctor_get(x_373, 0); -x_379 = !lean_is_exclusive(x_378); -if (x_379 == 0) -{ -lean_object* x_380; lean_object* x_381; -x_380 = lean_ctor_get(x_378, 1); -x_381 = lean_alloc_closure((void*)(l_Lean_Parser_lookaheadFn___rarg), 4, 1); -lean_closure_set(x_381, 0, x_380); -lean_ctor_set(x_378, 1, x_381); -return x_373; -} -else -{ -lean_object* x_382; lean_object* x_383; lean_object* x_384; lean_object* x_385; -x_382 = lean_ctor_get(x_378, 0); -x_383 = lean_ctor_get(x_378, 1); -lean_inc(x_383); -lean_inc(x_382); -lean_dec(x_378); -x_384 = lean_alloc_closure((void*)(l_Lean_Parser_lookaheadFn___rarg), 4, 1); -lean_closure_set(x_384, 0, x_383); -x_385 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_385, 0, x_382); -lean_ctor_set(x_385, 1, x_384); -lean_ctor_set(x_373, 0, x_385); -return x_373; -} -} -else -{ -lean_object* x_386; lean_object* x_387; lean_object* x_388; lean_object* x_389; lean_object* x_390; lean_object* x_391; lean_object* x_392; -x_386 = lean_ctor_get(x_373, 0); -lean_inc(x_386); -lean_dec(x_373); -x_387 = lean_ctor_get(x_386, 0); -lean_inc(x_387); -x_388 = lean_ctor_get(x_386, 1); -lean_inc(x_388); -if (lean_is_exclusive(x_386)) { - lean_ctor_release(x_386, 0); - lean_ctor_release(x_386, 1); - x_389 = x_386; +lean_object* x_379; lean_object* x_380; lean_object* x_381; lean_object* x_382; lean_object* x_383; lean_object* x_384; lean_object* x_385; +x_379 = lean_ctor_get(x_366, 0); +lean_inc(x_379); +lean_dec(x_366); +x_380 = lean_ctor_get(x_379, 0); +lean_inc(x_380); +x_381 = lean_ctor_get(x_379, 1); +lean_inc(x_381); +if (lean_is_exclusive(x_379)) { + lean_ctor_release(x_379, 0); + lean_ctor_release(x_379, 1); + x_382 = x_379; } else { - lean_dec_ref(x_386); - x_389 = lean_box(0); + lean_dec_ref(x_379); + x_382 = lean_box(0); } -x_390 = lean_alloc_closure((void*)(l_Lean_Parser_lookaheadFn___rarg), 4, 1); -lean_closure_set(x_390, 0, x_388); -if (lean_is_scalar(x_389)) { - x_391 = lean_alloc_ctor(0, 2, 0); +x_383 = lean_alloc_closure((void*)(l_Lean_Parser_lookaheadFn___rarg), 4, 1); +lean_closure_set(x_383, 0, x_381); +if (lean_is_scalar(x_382)) { + x_384 = lean_alloc_ctor(0, 2, 0); } else { - x_391 = x_389; + x_384 = x_382; } -lean_ctor_set(x_391, 0, x_387); -lean_ctor_set(x_391, 1, x_390); -x_392 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_392, 0, x_391); -return x_392; +lean_ctor_set(x_384, 0, x_380); +lean_ctor_set(x_384, 1, x_383); +x_385 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_385, 0, x_384); +return x_385; } } } case 4: { -lean_object* x_393; lean_object* x_394; -x_393 = lean_ctor_get(x_3, 0); -lean_inc(x_393); +lean_object* x_386; lean_object* x_387; +x_386 = lean_ctor_get(x_3, 0); +lean_inc(x_386); lean_dec(x_3); -x_394 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_393); -if (lean_obj_tag(x_394) == 0) +x_387 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_386); +if (lean_obj_tag(x_387) == 0) { -uint8_t x_395; -x_395 = !lean_is_exclusive(x_394); -if (x_395 == 0) +uint8_t x_388; +x_388 = !lean_is_exclusive(x_387); +if (x_388 == 0) { -return x_394; +return x_387; } else { -lean_object* x_396; lean_object* x_397; -x_396 = lean_ctor_get(x_394, 0); +lean_object* x_389; lean_object* x_390; +x_389 = lean_ctor_get(x_387, 0); +lean_inc(x_389); +lean_dec(x_387); +x_390 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_390, 0, x_389); +return x_390; +} +} +else +{ +uint8_t x_391; +x_391 = !lean_is_exclusive(x_387); +if (x_391 == 0) +{ +lean_object* x_392; uint8_t x_393; +x_392 = lean_ctor_get(x_387, 0); +x_393 = !lean_is_exclusive(x_392); +if (x_393 == 0) +{ +lean_object* x_394; lean_object* x_395; +x_394 = lean_ctor_get(x_392, 1); +x_395 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); +lean_closure_set(x_395, 0, x_394); +lean_ctor_set(x_392, 1, x_395); +return x_387; +} +else +{ +lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; +x_396 = lean_ctor_get(x_392, 0); +x_397 = lean_ctor_get(x_392, 1); +lean_inc(x_397); lean_inc(x_396); -lean_dec(x_394); -x_397 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_397, 0, x_396); -return x_397; +lean_dec(x_392); +x_398 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); +lean_closure_set(x_398, 0, x_397); +x_399 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_399, 0, x_396); +lean_ctor_set(x_399, 1, x_398); +lean_ctor_set(x_387, 0, x_399); +return x_387; } } else { -uint8_t x_398; -x_398 = !lean_is_exclusive(x_394); -if (x_398 == 0) -{ -lean_object* x_399; uint8_t x_400; -x_399 = lean_ctor_get(x_394, 0); -x_400 = !lean_is_exclusive(x_399); -if (x_400 == 0) -{ -lean_object* x_401; lean_object* x_402; -x_401 = lean_ctor_get(x_399, 1); -x_402 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); -lean_closure_set(x_402, 0, x_401); -lean_ctor_set(x_399, 1, x_402); -return x_394; -} -else -{ -lean_object* x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; -x_403 = lean_ctor_get(x_399, 0); -x_404 = lean_ctor_get(x_399, 1); -lean_inc(x_404); -lean_inc(x_403); -lean_dec(x_399); -x_405 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); -lean_closure_set(x_405, 0, x_404); -x_406 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_406, 0, x_403); -lean_ctor_set(x_406, 1, x_405); -lean_ctor_set(x_394, 0, x_406); -return x_394; -} -} -else -{ -lean_object* x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; -x_407 = lean_ctor_get(x_394, 0); -lean_inc(x_407); -lean_dec(x_394); -x_408 = lean_ctor_get(x_407, 0); -lean_inc(x_408); -x_409 = lean_ctor_get(x_407, 1); -lean_inc(x_409); -if (lean_is_exclusive(x_407)) { - lean_ctor_release(x_407, 0); - lean_ctor_release(x_407, 1); - x_410 = x_407; +lean_object* x_400; lean_object* x_401; lean_object* x_402; lean_object* x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; +x_400 = lean_ctor_get(x_387, 0); +lean_inc(x_400); +lean_dec(x_387); +x_401 = lean_ctor_get(x_400, 0); +lean_inc(x_401); +x_402 = lean_ctor_get(x_400, 1); +lean_inc(x_402); +if (lean_is_exclusive(x_400)) { + lean_ctor_release(x_400, 0); + lean_ctor_release(x_400, 1); + x_403 = x_400; } else { - lean_dec_ref(x_407); - x_410 = lean_box(0); + lean_dec_ref(x_400); + x_403 = lean_box(0); } -x_411 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); -lean_closure_set(x_411, 0, x_409); -if (lean_is_scalar(x_410)) { - x_412 = lean_alloc_ctor(0, 2, 0); +x_404 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); +lean_closure_set(x_404, 0, x_402); +if (lean_is_scalar(x_403)) { + x_405 = lean_alloc_ctor(0, 2, 0); } else { - x_412 = x_410; + x_405 = x_403; } -lean_ctor_set(x_412, 0, x_408); -lean_ctor_set(x_412, 1, x_411); -x_413 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_413, 0, x_412); -return x_413; +lean_ctor_set(x_405, 0, x_401); +lean_ctor_set(x_405, 1, x_404); +x_406 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_406, 0, x_405); +return x_406; } } } case 5: { -lean_object* x_414; lean_object* x_415; -x_414 = lean_ctor_get(x_3, 0); -lean_inc(x_414); +lean_object* x_407; lean_object* x_408; +x_407 = lean_ctor_get(x_3, 0); +lean_inc(x_407); lean_dec(x_3); -x_415 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_414); -if (lean_obj_tag(x_415) == 0) +x_408 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_407); +if (lean_obj_tag(x_408) == 0) { -uint8_t x_416; -x_416 = !lean_is_exclusive(x_415); -if (x_416 == 0) +uint8_t x_409; +x_409 = !lean_is_exclusive(x_408); +if (x_409 == 0) { -return x_415; +return x_408; } else { -lean_object* x_417; lean_object* x_418; -x_417 = lean_ctor_get(x_415, 0); -lean_inc(x_417); -lean_dec(x_415); -x_418 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_418, 0, x_417); -return x_418; +lean_object* x_410; lean_object* x_411; +x_410 = lean_ctor_get(x_408, 0); +lean_inc(x_410); +lean_dec(x_408); +x_411 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_411, 0, x_410); +return x_411; } } else { -uint8_t x_419; -x_419 = !lean_is_exclusive(x_415); -if (x_419 == 0) +uint8_t x_412; +x_412 = !lean_is_exclusive(x_408); +if (x_412 == 0) { -lean_object* x_420; lean_object* x_421; lean_object* x_422; lean_object* x_423; lean_object* x_424; lean_object* x_425; lean_object* x_426; -x_420 = lean_ctor_get(x_415, 0); +lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; lean_object* x_418; lean_object* x_419; +x_413 = lean_ctor_get(x_408, 0); +x_414 = lean_ctor_get(x_413, 0); +lean_inc(x_414); +x_415 = l_Lean_Parser_noFirstTokenInfo(x_414); +x_416 = lean_ctor_get(x_413, 1); +lean_inc(x_416); +lean_dec(x_413); +x_417 = lean_box(x_2); +x_418 = lean_alloc_closure((void*)(l_Lean_Parser_manyFn___boxed), 5, 2); +lean_closure_set(x_418, 0, x_417); +lean_closure_set(x_418, 1, x_416); +x_419 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_419, 0, x_415); +lean_ctor_set(x_419, 1, x_418); +lean_ctor_set(x_408, 0, x_419); +return x_408; +} +else +{ +lean_object* x_420; lean_object* x_421; lean_object* x_422; lean_object* x_423; lean_object* x_424; lean_object* x_425; lean_object* x_426; lean_object* x_427; +x_420 = lean_ctor_get(x_408, 0); +lean_inc(x_420); +lean_dec(x_408); x_421 = lean_ctor_get(x_420, 0); lean_inc(x_421); x_422 = l_Lean_Parser_noFirstTokenInfo(x_421); @@ -31597,549 +29309,514 @@ lean_closure_set(x_425, 1, x_423); x_426 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_426, 0, x_422); lean_ctor_set(x_426, 1, x_425); -lean_ctor_set(x_415, 0, x_426); -return x_415; -} -else -{ -lean_object* x_427; lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; lean_object* x_433; lean_object* x_434; -x_427 = lean_ctor_get(x_415, 0); -lean_inc(x_427); -lean_dec(x_415); -x_428 = lean_ctor_get(x_427, 0); -lean_inc(x_428); -x_429 = l_Lean_Parser_noFirstTokenInfo(x_428); -x_430 = lean_ctor_get(x_427, 1); -lean_inc(x_430); -lean_dec(x_427); -x_431 = lean_box(x_2); -x_432 = lean_alloc_closure((void*)(l_Lean_Parser_manyFn___boxed), 5, 2); -lean_closure_set(x_432, 0, x_431); -lean_closure_set(x_432, 1, x_430); -x_433 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_433, 0, x_429); -lean_ctor_set(x_433, 1, x_432); -x_434 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_434, 0, x_433); -return x_434; +x_427 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_427, 0, x_426); +return x_427; } } } case 6: { -lean_object* x_435; lean_object* x_436; -x_435 = lean_ctor_get(x_3, 0); -lean_inc(x_435); +lean_object* x_428; lean_object* x_429; +x_428 = lean_ctor_get(x_3, 0); +lean_inc(x_428); lean_dec(x_3); -x_436 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_435); -if (lean_obj_tag(x_436) == 0) +x_429 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_428); +if (lean_obj_tag(x_429) == 0) { -uint8_t x_437; -x_437 = !lean_is_exclusive(x_436); -if (x_437 == 0) +uint8_t x_430; +x_430 = !lean_is_exclusive(x_429); +if (x_430 == 0) { -return x_436; +return x_429; } else { -lean_object* x_438; lean_object* x_439; -x_438 = lean_ctor_get(x_436, 0); -lean_inc(x_438); -lean_dec(x_436); -x_439 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_439, 0, x_438); -return x_439; +lean_object* x_431; lean_object* x_432; +x_431 = lean_ctor_get(x_429, 0); +lean_inc(x_431); +lean_dec(x_429); +x_432 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_432, 0, x_431); +return x_432; } } else { -uint8_t x_440; -x_440 = !lean_is_exclusive(x_436); -if (x_440 == 0) +uint8_t x_433; +x_433 = !lean_is_exclusive(x_429); +if (x_433 == 0) { -lean_object* x_441; uint8_t x_442; -x_441 = lean_ctor_get(x_436, 0); -x_442 = !lean_is_exclusive(x_441); -if (x_442 == 0) +lean_object* x_434; uint8_t x_435; +x_434 = lean_ctor_get(x_429, 0); +x_435 = !lean_is_exclusive(x_434); +if (x_435 == 0) { -lean_object* x_443; uint8_t x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; -x_443 = lean_ctor_get(x_441, 1); -x_444 = 0; -x_445 = lean_box(x_2); -x_446 = lean_box(x_444); -x_447 = lean_alloc_closure((void*)(l_Lean_Parser_many1Fn___boxed), 6, 3); -lean_closure_set(x_447, 0, x_445); -lean_closure_set(x_447, 1, x_443); -lean_closure_set(x_447, 2, x_446); -lean_ctor_set(x_441, 1, x_447); -return x_436; +lean_object* x_436; uint8_t x_437; lean_object* x_438; lean_object* x_439; lean_object* x_440; +x_436 = lean_ctor_get(x_434, 1); +x_437 = 0; +x_438 = lean_box(x_2); +x_439 = lean_box(x_437); +x_440 = lean_alloc_closure((void*)(l_Lean_Parser_many1Fn___boxed), 6, 3); +lean_closure_set(x_440, 0, x_438); +lean_closure_set(x_440, 1, x_436); +lean_closure_set(x_440, 2, x_439); +lean_ctor_set(x_434, 1, x_440); +return x_429; } else { -lean_object* x_448; lean_object* x_449; uint8_t x_450; lean_object* x_451; lean_object* x_452; lean_object* x_453; lean_object* x_454; -x_448 = lean_ctor_get(x_441, 0); -x_449 = lean_ctor_get(x_441, 1); -lean_inc(x_449); +lean_object* x_441; lean_object* x_442; uint8_t x_443; lean_object* x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; +x_441 = lean_ctor_get(x_434, 0); +x_442 = lean_ctor_get(x_434, 1); +lean_inc(x_442); +lean_inc(x_441); +lean_dec(x_434); +x_443 = 0; +x_444 = lean_box(x_2); +x_445 = lean_box(x_443); +x_446 = lean_alloc_closure((void*)(l_Lean_Parser_many1Fn___boxed), 6, 3); +lean_closure_set(x_446, 0, x_444); +lean_closure_set(x_446, 1, x_442); +lean_closure_set(x_446, 2, x_445); +x_447 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_447, 0, x_441); +lean_ctor_set(x_447, 1, x_446); +lean_ctor_set(x_429, 0, x_447); +return x_429; +} +} +else +{ +lean_object* x_448; lean_object* x_449; lean_object* x_450; lean_object* x_451; uint8_t x_452; lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; +x_448 = lean_ctor_get(x_429, 0); lean_inc(x_448); -lean_dec(x_441); -x_450 = 0; -x_451 = lean_box(x_2); -x_452 = lean_box(x_450); -x_453 = lean_alloc_closure((void*)(l_Lean_Parser_many1Fn___boxed), 6, 3); -lean_closure_set(x_453, 0, x_451); -lean_closure_set(x_453, 1, x_449); -lean_closure_set(x_453, 2, x_452); -x_454 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_454, 0, x_448); -lean_ctor_set(x_454, 1, x_453); -lean_ctor_set(x_436, 0, x_454); -return x_436; -} -} -else -{ -lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; uint8_t x_459; lean_object* x_460; lean_object* x_461; lean_object* x_462; lean_object* x_463; lean_object* x_464; -x_455 = lean_ctor_get(x_436, 0); -lean_inc(x_455); -lean_dec(x_436); -x_456 = lean_ctor_get(x_455, 0); -lean_inc(x_456); -x_457 = lean_ctor_get(x_455, 1); -lean_inc(x_457); -if (lean_is_exclusive(x_455)) { - lean_ctor_release(x_455, 0); - lean_ctor_release(x_455, 1); - x_458 = x_455; +lean_dec(x_429); +x_449 = lean_ctor_get(x_448, 0); +lean_inc(x_449); +x_450 = lean_ctor_get(x_448, 1); +lean_inc(x_450); +if (lean_is_exclusive(x_448)) { + lean_ctor_release(x_448, 0); + lean_ctor_release(x_448, 1); + x_451 = x_448; } else { - lean_dec_ref(x_455); - x_458 = lean_box(0); + lean_dec_ref(x_448); + x_451 = lean_box(0); } -x_459 = 0; -x_460 = lean_box(x_2); -x_461 = lean_box(x_459); -x_462 = lean_alloc_closure((void*)(l_Lean_Parser_many1Fn___boxed), 6, 3); -lean_closure_set(x_462, 0, x_460); -lean_closure_set(x_462, 1, x_457); -lean_closure_set(x_462, 2, x_461); -if (lean_is_scalar(x_458)) { - x_463 = lean_alloc_ctor(0, 2, 0); +x_452 = 0; +x_453 = lean_box(x_2); +x_454 = lean_box(x_452); +x_455 = lean_alloc_closure((void*)(l_Lean_Parser_many1Fn___boxed), 6, 3); +lean_closure_set(x_455, 0, x_453); +lean_closure_set(x_455, 1, x_450); +lean_closure_set(x_455, 2, x_454); +if (lean_is_scalar(x_451)) { + x_456 = lean_alloc_ctor(0, 2, 0); } else { - x_463 = x_458; + x_456 = x_451; } -lean_ctor_set(x_463, 0, x_456); -lean_ctor_set(x_463, 1, x_462); -x_464 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_464, 0, x_463); -return x_464; +lean_ctor_set(x_456, 0, x_449); +lean_ctor_set(x_456, 1, x_455); +x_457 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_457, 0, x_456); +return x_457; } } } case 7: { -lean_object* x_465; lean_object* x_466; lean_object* x_467; -x_465 = lean_ctor_get(x_3, 0); -lean_inc(x_465); -x_466 = lean_ctor_get(x_3, 1); -lean_inc(x_466); +lean_object* x_458; lean_object* x_459; lean_object* x_460; +x_458 = lean_ctor_get(x_3, 0); +lean_inc(x_458); +x_459 = lean_ctor_get(x_3, 1); +lean_inc(x_459); lean_dec(x_3); -x_467 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_465); -if (lean_obj_tag(x_467) == 0) +lean_inc(x_1); +x_460 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_458); +if (lean_obj_tag(x_460) == 0) { -uint8_t x_468; -lean_dec(x_466); -x_468 = !lean_is_exclusive(x_467); -if (x_468 == 0) +uint8_t x_461; +lean_dec(x_459); +lean_dec(x_1); +x_461 = !lean_is_exclusive(x_460); +if (x_461 == 0) { -return x_467; +return x_460; } else { -lean_object* x_469; lean_object* x_470; -x_469 = lean_ctor_get(x_467, 0); -lean_inc(x_469); -lean_dec(x_467); -x_470 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_470, 0, x_469); -return x_470; +lean_object* x_462; lean_object* x_463; +x_462 = lean_ctor_get(x_460, 0); +lean_inc(x_462); +lean_dec(x_460); +x_463 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_463, 0, x_462); +return x_463; } } else { -lean_object* x_471; lean_object* x_472; -x_471 = lean_ctor_get(x_467, 0); +lean_object* x_464; lean_object* x_465; +x_464 = lean_ctor_get(x_460, 0); +lean_inc(x_464); +lean_dec(x_460); +x_465 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_459); +if (lean_obj_tag(x_465) == 0) +{ +uint8_t x_466; +lean_dec(x_464); +x_466 = !lean_is_exclusive(x_465); +if (x_466 == 0) +{ +return x_465; +} +else +{ +lean_object* x_467; lean_object* x_468; +x_467 = lean_ctor_get(x_465, 0); +lean_inc(x_467); +lean_dec(x_465); +x_468 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_468, 0, x_467); +return x_468; +} +} +else +{ +uint8_t x_469; +x_469 = !lean_is_exclusive(x_465); +if (x_469 == 0) +{ +lean_object* x_470; lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; uint8_t x_476; lean_object* x_477; lean_object* x_478; lean_object* x_479; lean_object* x_480; +x_470 = lean_ctor_get(x_465, 0); +x_471 = lean_ctor_get(x_464, 0); lean_inc(x_471); -lean_dec(x_467); -x_472 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_466); -if (lean_obj_tag(x_472) == 0) -{ -uint8_t x_473; -lean_dec(x_471); -x_473 = !lean_is_exclusive(x_472); -if (x_473 == 0) -{ -return x_472; -} -else -{ -lean_object* x_474; lean_object* x_475; -x_474 = lean_ctor_get(x_472, 0); +x_472 = lean_ctor_get(x_470, 0); +lean_inc(x_472); +x_473 = l_Lean_Parser_sepByInfo(x_471, x_472); +x_474 = lean_ctor_get(x_464, 1); lean_inc(x_474); -lean_dec(x_472); -x_475 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_475, 0, x_474); -return x_475; -} +lean_dec(x_464); +x_475 = lean_ctor_get(x_470, 1); +lean_inc(x_475); +lean_dec(x_470); +x_476 = 0; +x_477 = lean_box(x_2); +x_478 = lean_box(x_476); +x_479 = lean_alloc_closure((void*)(l_Lean_Parser_sepByFn___boxed), 7, 4); +lean_closure_set(x_479, 0, x_477); +lean_closure_set(x_479, 1, x_478); +lean_closure_set(x_479, 2, x_474); +lean_closure_set(x_479, 3, x_475); +x_480 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_480, 0, x_473); +lean_ctor_set(x_480, 1, x_479); +lean_ctor_set(x_465, 0, x_480); +return x_465; } else { -uint8_t x_476; -x_476 = !lean_is_exclusive(x_472); -if (x_476 == 0) -{ -lean_object* x_477; lean_object* x_478; lean_object* x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; uint8_t x_483; lean_object* x_484; lean_object* x_485; lean_object* x_486; lean_object* x_487; -x_477 = lean_ctor_get(x_472, 0); -x_478 = lean_ctor_get(x_471, 0); -lean_inc(x_478); -x_479 = lean_ctor_get(x_477, 0); -lean_inc(x_479); -x_480 = l_Lean_Parser_sepByInfo(x_478, x_479); -x_481 = lean_ctor_get(x_471, 1); +lean_object* x_481; lean_object* x_482; lean_object* x_483; lean_object* x_484; lean_object* x_485; lean_object* x_486; uint8_t x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; lean_object* x_492; +x_481 = lean_ctor_get(x_465, 0); lean_inc(x_481); -lean_dec(x_471); -x_482 = lean_ctor_get(x_477, 1); +lean_dec(x_465); +x_482 = lean_ctor_get(x_464, 0); lean_inc(x_482); -lean_dec(x_477); -x_483 = 0; -x_484 = lean_box(x_2); -x_485 = lean_box(x_483); -x_486 = lean_alloc_closure((void*)(l_Lean_Parser_sepByFn___boxed), 7, 4); -lean_closure_set(x_486, 0, x_484); -lean_closure_set(x_486, 1, x_485); -lean_closure_set(x_486, 2, x_481); -lean_closure_set(x_486, 3, x_482); -x_487 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_487, 0, x_480); -lean_ctor_set(x_487, 1, x_486); -lean_ctor_set(x_472, 0, x_487); -return x_472; -} -else -{ -lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; lean_object* x_492; lean_object* x_493; uint8_t x_494; lean_object* x_495; lean_object* x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; -x_488 = lean_ctor_get(x_472, 0); -lean_inc(x_488); -lean_dec(x_472); -x_489 = lean_ctor_get(x_471, 0); -lean_inc(x_489); -x_490 = lean_ctor_get(x_488, 0); -lean_inc(x_490); -x_491 = l_Lean_Parser_sepByInfo(x_489, x_490); -x_492 = lean_ctor_get(x_471, 1); -lean_inc(x_492); -lean_dec(x_471); -x_493 = lean_ctor_get(x_488, 1); -lean_inc(x_493); -lean_dec(x_488); -x_494 = 0; -x_495 = lean_box(x_2); -x_496 = lean_box(x_494); -x_497 = lean_alloc_closure((void*)(l_Lean_Parser_sepByFn___boxed), 7, 4); -lean_closure_set(x_497, 0, x_495); -lean_closure_set(x_497, 1, x_496); -lean_closure_set(x_497, 2, x_492); -lean_closure_set(x_497, 3, x_493); -x_498 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_498, 0, x_491); -lean_ctor_set(x_498, 1, x_497); -x_499 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_499, 0, x_498); -return x_499; +x_483 = lean_ctor_get(x_481, 0); +lean_inc(x_483); +x_484 = l_Lean_Parser_sepByInfo(x_482, x_483); +x_485 = lean_ctor_get(x_464, 1); +lean_inc(x_485); +lean_dec(x_464); +x_486 = lean_ctor_get(x_481, 1); +lean_inc(x_486); +lean_dec(x_481); +x_487 = 0; +x_488 = lean_box(x_2); +x_489 = lean_box(x_487); +x_490 = lean_alloc_closure((void*)(l_Lean_Parser_sepByFn___boxed), 7, 4); +lean_closure_set(x_490, 0, x_488); +lean_closure_set(x_490, 1, x_489); +lean_closure_set(x_490, 2, x_485); +lean_closure_set(x_490, 3, x_486); +x_491 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_491, 0, x_484); +lean_ctor_set(x_491, 1, x_490); +x_492 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_492, 0, x_491); +return x_492; } } } } case 8: { -lean_object* x_500; lean_object* x_501; lean_object* x_502; -x_500 = lean_ctor_get(x_3, 0); -lean_inc(x_500); -x_501 = lean_ctor_get(x_3, 1); -lean_inc(x_501); +lean_object* x_493; lean_object* x_494; lean_object* x_495; +x_493 = lean_ctor_get(x_3, 0); +lean_inc(x_493); +x_494 = lean_ctor_get(x_3, 1); +lean_inc(x_494); lean_dec(x_3); -x_502 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_500); -if (lean_obj_tag(x_502) == 0) +lean_inc(x_1); +x_495 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_493); +if (lean_obj_tag(x_495) == 0) { -uint8_t x_503; -lean_dec(x_501); -x_503 = !lean_is_exclusive(x_502); -if (x_503 == 0) +uint8_t x_496; +lean_dec(x_494); +lean_dec(x_1); +x_496 = !lean_is_exclusive(x_495); +if (x_496 == 0) { -return x_502; +return x_495; } else { -lean_object* x_504; lean_object* x_505; -x_504 = lean_ctor_get(x_502, 0); -lean_inc(x_504); -lean_dec(x_502); -x_505 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_505, 0, x_504); -return x_505; +lean_object* x_497; lean_object* x_498; +x_497 = lean_ctor_get(x_495, 0); +lean_inc(x_497); +lean_dec(x_495); +x_498 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_498, 0, x_497); +return x_498; } } else { -lean_object* x_506; lean_object* x_507; -x_506 = lean_ctor_get(x_502, 0); +lean_object* x_499; lean_object* x_500; +x_499 = lean_ctor_get(x_495, 0); +lean_inc(x_499); +lean_dec(x_495); +x_500 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_494); +if (lean_obj_tag(x_500) == 0) +{ +uint8_t x_501; +lean_dec(x_499); +x_501 = !lean_is_exclusive(x_500); +if (x_501 == 0) +{ +return x_500; +} +else +{ +lean_object* x_502; lean_object* x_503; +x_502 = lean_ctor_get(x_500, 0); +lean_inc(x_502); +lean_dec(x_500); +x_503 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_503, 0, x_502); +return x_503; +} +} +else +{ +uint8_t x_504; +x_504 = !lean_is_exclusive(x_500); +if (x_504 == 0) +{ +lean_object* x_505; lean_object* x_506; lean_object* x_507; lean_object* x_508; lean_object* x_509; lean_object* x_510; uint8_t x_511; lean_object* x_512; lean_object* x_513; lean_object* x_514; lean_object* x_515; +x_505 = lean_ctor_get(x_500, 0); +x_506 = lean_ctor_get(x_499, 0); lean_inc(x_506); -lean_dec(x_502); -x_507 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_501); -if (lean_obj_tag(x_507) == 0) -{ -uint8_t x_508; -lean_dec(x_506); -x_508 = !lean_is_exclusive(x_507); -if (x_508 == 0) -{ -return x_507; -} -else -{ -lean_object* x_509; lean_object* x_510; -x_509 = lean_ctor_get(x_507, 0); +x_507 = lean_ctor_get(x_505, 0); +lean_inc(x_507); +x_508 = l_Lean_Parser_sepBy1Info(x_506, x_507); +x_509 = lean_ctor_get(x_499, 1); lean_inc(x_509); -lean_dec(x_507); -x_510 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_510, 0, x_509); -return x_510; -} +lean_dec(x_499); +x_510 = lean_ctor_get(x_505, 1); +lean_inc(x_510); +lean_dec(x_505); +x_511 = 0; +x_512 = lean_box(x_2); +x_513 = lean_box(x_511); +x_514 = lean_alloc_closure((void*)(l_Lean_Parser_sepBy1Fn___boxed), 7, 4); +lean_closure_set(x_514, 0, x_512); +lean_closure_set(x_514, 1, x_513); +lean_closure_set(x_514, 2, x_509); +lean_closure_set(x_514, 3, x_510); +x_515 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_515, 0, x_508); +lean_ctor_set(x_515, 1, x_514); +lean_ctor_set(x_500, 0, x_515); +return x_500; } else { -uint8_t x_511; -x_511 = !lean_is_exclusive(x_507); -if (x_511 == 0) -{ -lean_object* x_512; lean_object* x_513; lean_object* x_514; lean_object* x_515; lean_object* x_516; lean_object* x_517; uint8_t x_518; lean_object* x_519; lean_object* x_520; lean_object* x_521; lean_object* x_522; -x_512 = lean_ctor_get(x_507, 0); -x_513 = lean_ctor_get(x_506, 0); -lean_inc(x_513); -x_514 = lean_ctor_get(x_512, 0); -lean_inc(x_514); -x_515 = l_Lean_Parser_sepBy1Info(x_513, x_514); -x_516 = lean_ctor_get(x_506, 1); +lean_object* x_516; lean_object* x_517; lean_object* x_518; lean_object* x_519; lean_object* x_520; lean_object* x_521; uint8_t x_522; lean_object* x_523; lean_object* x_524; lean_object* x_525; lean_object* x_526; lean_object* x_527; +x_516 = lean_ctor_get(x_500, 0); lean_inc(x_516); -lean_dec(x_506); -x_517 = lean_ctor_get(x_512, 1); +lean_dec(x_500); +x_517 = lean_ctor_get(x_499, 0); lean_inc(x_517); -lean_dec(x_512); -x_518 = 0; -x_519 = lean_box(x_2); -x_520 = lean_box(x_518); -x_521 = lean_alloc_closure((void*)(l_Lean_Parser_sepBy1Fn___boxed), 7, 4); -lean_closure_set(x_521, 0, x_519); -lean_closure_set(x_521, 1, x_520); -lean_closure_set(x_521, 2, x_516); -lean_closure_set(x_521, 3, x_517); -x_522 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_522, 0, x_515); -lean_ctor_set(x_522, 1, x_521); -lean_ctor_set(x_507, 0, x_522); -return x_507; -} -else -{ -lean_object* x_523; lean_object* x_524; lean_object* x_525; lean_object* x_526; lean_object* x_527; lean_object* x_528; uint8_t x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; lean_object* x_534; -x_523 = lean_ctor_get(x_507, 0); -lean_inc(x_523); -lean_dec(x_507); -x_524 = lean_ctor_get(x_506, 0); -lean_inc(x_524); -x_525 = lean_ctor_get(x_523, 0); -lean_inc(x_525); -x_526 = l_Lean_Parser_sepBy1Info(x_524, x_525); -x_527 = lean_ctor_get(x_506, 1); -lean_inc(x_527); -lean_dec(x_506); -x_528 = lean_ctor_get(x_523, 1); -lean_inc(x_528); -lean_dec(x_523); -x_529 = 0; -x_530 = lean_box(x_2); -x_531 = lean_box(x_529); -x_532 = lean_alloc_closure((void*)(l_Lean_Parser_sepBy1Fn___boxed), 7, 4); -lean_closure_set(x_532, 0, x_530); -lean_closure_set(x_532, 1, x_531); -lean_closure_set(x_532, 2, x_527); -lean_closure_set(x_532, 3, x_528); -x_533 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_533, 0, x_526); -lean_ctor_set(x_533, 1, x_532); -x_534 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_534, 0, x_533); -return x_534; +x_518 = lean_ctor_get(x_516, 0); +lean_inc(x_518); +x_519 = l_Lean_Parser_sepBy1Info(x_517, x_518); +x_520 = lean_ctor_get(x_499, 1); +lean_inc(x_520); +lean_dec(x_499); +x_521 = lean_ctor_get(x_516, 1); +lean_inc(x_521); +lean_dec(x_516); +x_522 = 0; +x_523 = lean_box(x_2); +x_524 = lean_box(x_522); +x_525 = lean_alloc_closure((void*)(l_Lean_Parser_sepBy1Fn___boxed), 7, 4); +lean_closure_set(x_525, 0, x_523); +lean_closure_set(x_525, 1, x_524); +lean_closure_set(x_525, 2, x_520); +lean_closure_set(x_525, 3, x_521); +x_526 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_526, 0, x_519); +lean_ctor_set(x_526, 1, x_525); +x_527 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_527, 0, x_526); +return x_527; } } } } case 9: { -lean_object* x_535; lean_object* x_536; lean_object* x_537; -x_535 = lean_ctor_get(x_3, 0); -lean_inc(x_535); -x_536 = lean_ctor_get(x_3, 1); -lean_inc(x_536); +lean_object* x_528; lean_object* x_529; lean_object* x_530; +x_528 = lean_ctor_get(x_3, 0); +lean_inc(x_528); +x_529 = lean_ctor_get(x_3, 1); +lean_inc(x_529); lean_dec(x_3); -x_537 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_536); -if (lean_obj_tag(x_537) == 0) +x_530 = l_Lean_Parser_compileParserDescr___main(x_1, x_2, x_529); +if (lean_obj_tag(x_530) == 0) { -uint8_t x_538; +uint8_t x_531; +lean_dec(x_528); +x_531 = !lean_is_exclusive(x_530); +if (x_531 == 0) +{ +return x_530; +} +else +{ +lean_object* x_532; lean_object* x_533; +x_532 = lean_ctor_get(x_530, 0); +lean_inc(x_532); +lean_dec(x_530); +x_533 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_533, 0, x_532); +return x_533; +} +} +else +{ +uint8_t x_534; +x_534 = !lean_is_exclusive(x_530); +if (x_534 == 0) +{ +lean_object* x_535; lean_object* x_536; lean_object* x_537; lean_object* x_538; lean_object* x_539; lean_object* x_540; +x_535 = lean_ctor_get(x_530, 0); +x_536 = lean_ctor_get(x_535, 0); +lean_inc(x_536); +lean_inc(x_528); +x_537 = l_Lean_Parser_nodeInfo(x_528, x_536); +x_538 = lean_ctor_get(x_535, 1); +lean_inc(x_538); lean_dec(x_535); -x_538 = !lean_is_exclusive(x_537); -if (x_538 == 0) -{ -return x_537; +x_539 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn___rarg), 5, 2); +lean_closure_set(x_539, 0, x_528); +lean_closure_set(x_539, 1, x_538); +x_540 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_540, 0, x_537); +lean_ctor_set(x_540, 1, x_539); +lean_ctor_set(x_530, 0, x_540); +return x_530; } else { -lean_object* x_539; lean_object* x_540; -x_539 = lean_ctor_get(x_537, 0); -lean_inc(x_539); -lean_dec(x_537); -x_540 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_540, 0, x_539); -return x_540; -} -} -else -{ -uint8_t x_541; -x_541 = !lean_is_exclusive(x_537); -if (x_541 == 0) -{ -lean_object* x_542; lean_object* x_543; lean_object* x_544; lean_object* x_545; lean_object* x_546; lean_object* x_547; -x_542 = lean_ctor_get(x_537, 0); -x_543 = lean_ctor_get(x_542, 0); -lean_inc(x_543); -lean_inc(x_535); -x_544 = l_Lean_Parser_nodeInfo(x_535, x_543); -x_545 = lean_ctor_get(x_542, 1); -lean_inc(x_545); -lean_dec(x_542); -x_546 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn___rarg), 5, 2); -lean_closure_set(x_546, 0, x_535); -lean_closure_set(x_546, 1, x_545); -x_547 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_547, 0, x_544); -lean_ctor_set(x_547, 1, x_546); -lean_ctor_set(x_537, 0, x_547); -return x_537; -} -else -{ -lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; lean_object* x_553; lean_object* x_554; -x_548 = lean_ctor_get(x_537, 0); -lean_inc(x_548); -lean_dec(x_537); -x_549 = lean_ctor_get(x_548, 0); -lean_inc(x_549); -lean_inc(x_535); -x_550 = l_Lean_Parser_nodeInfo(x_535, x_549); -x_551 = lean_ctor_get(x_548, 1); -lean_inc(x_551); -lean_dec(x_548); -x_552 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn___rarg), 5, 2); -lean_closure_set(x_552, 0, x_535); -lean_closure_set(x_552, 1, x_551); -x_553 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_553, 0, x_550); -lean_ctor_set(x_553, 1, x_552); -x_554 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_554, 0, x_553); -return x_554; +lean_object* x_541; lean_object* x_542; lean_object* x_543; lean_object* x_544; lean_object* x_545; lean_object* x_546; lean_object* x_547; +x_541 = lean_ctor_get(x_530, 0); +lean_inc(x_541); +lean_dec(x_530); +x_542 = lean_ctor_get(x_541, 0); +lean_inc(x_542); +lean_inc(x_528); +x_543 = l_Lean_Parser_nodeInfo(x_528, x_542); +x_544 = lean_ctor_get(x_541, 1); +lean_inc(x_544); +lean_dec(x_541); +x_545 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn___rarg), 5, 2); +lean_closure_set(x_545, 0, x_528); +lean_closure_set(x_545, 1, x_544); +x_546 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_546, 0, x_543); +lean_ctor_set(x_546, 1, x_545); +x_547 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_547, 0, x_546); +return x_547; } } } case 10: { -lean_object* x_555; lean_object* x_556; lean_object* x_557; lean_object* x_558; lean_object* x_559; lean_object* x_560; lean_object* x_561; lean_object* x_562; -x_555 = lean_ctor_get(x_3, 0); -lean_inc(x_555); -x_556 = lean_ctor_get(x_3, 1); -lean_inc(x_556); +lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; lean_object* x_553; lean_object* x_554; lean_object* x_555; +lean_dec(x_1); +x_548 = lean_ctor_get(x_3, 0); +lean_inc(x_548); +x_549 = lean_ctor_get(x_3, 1); +lean_inc(x_549); lean_dec(x_3); -x_557 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_557, 0, x_556); -x_558 = l_String_trim(x_555); -lean_dec(x_555); -lean_inc(x_558); -x_559 = l_Lean_Parser_symbolInfo(x_558, x_557); -x_560 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___rarg___boxed), 4, 1); -lean_closure_set(x_560, 0, x_558); -x_561 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_561, 0, x_559); -lean_ctor_set(x_561, 1, x_560); -x_562 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_562, 0, x_561); -return x_562; +x_550 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_550, 0, x_549); +x_551 = l_String_trim(x_548); +lean_dec(x_548); +lean_inc(x_551); +x_552 = l_Lean_Parser_symbolInfo(x_551, x_550); +x_553 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___rarg___boxed), 4, 1); +lean_closure_set(x_553, 0, x_551); +x_554 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_554, 0, x_552); +lean_ctor_set(x_554, 1, x_553); +x_555 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_555, 0, x_554); +return x_555; } case 11: { -lean_object* x_563; lean_object* x_564; lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; lean_object* x_569; lean_object* x_570; lean_object* x_571; lean_object* x_572; -x_563 = lean_ctor_get(x_3, 0); -lean_inc(x_563); -x_564 = lean_ctor_get(x_3, 1); -lean_inc(x_564); -x_565 = lean_ctor_get(x_3, 2); -lean_inc(x_565); +lean_object* x_556; lean_object* x_557; lean_object* x_558; lean_object* x_559; lean_object* x_560; lean_object* x_561; lean_object* x_562; lean_object* x_563; lean_object* x_564; lean_object* x_565; +lean_dec(x_1); +x_556 = lean_ctor_get(x_3, 0); +lean_inc(x_556); +x_557 = lean_ctor_get(x_3, 1); +lean_inc(x_557); +x_558 = lean_ctor_get(x_3, 2); +lean_inc(x_558); lean_dec(x_3); -x_566 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_566, 0, x_565); -x_567 = l_String_trim(x_563); -lean_dec(x_563); -x_568 = l_String_trim(x_564); -lean_dec(x_564); -lean_inc(x_568); -lean_inc(x_567); -x_569 = l_Lean_Parser_unicodeSymbolInfo(x_567, x_568, x_566); -x_570 = lean_alloc_closure((void*)(l_Lean_Parser_unicodeSymbolFn___rarg___boxed), 5, 2); -lean_closure_set(x_570, 0, x_567); -lean_closure_set(x_570, 1, x_568); -x_571 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_571, 0, x_569); -lean_ctor_set(x_571, 1, x_570); -x_572 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_572, 0, x_571); -return x_572; +x_559 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_559, 0, x_558); +x_560 = l_String_trim(x_556); +lean_dec(x_556); +x_561 = l_String_trim(x_557); +lean_dec(x_557); +lean_inc(x_561); +lean_inc(x_560); +x_562 = l_Lean_Parser_unicodeSymbolInfo(x_560, x_561, x_559); +x_563 = lean_alloc_closure((void*)(l_Lean_Parser_unicodeSymbolFn___rarg___boxed), 5, 2); +lean_closure_set(x_563, 0, x_560); +lean_closure_set(x_563, 1, x_561); +x_564 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_564, 0, x_562); +lean_ctor_set(x_564, 1, x_563); +x_565 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_565, 0, x_564); +return x_565; } default: { -lean_object* x_573; -x_573 = l_Lean_Parser_compileParserDescr___main___closed__2; -return x_573; -} -} -} -} -} -lean_object* l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_AssocList_find___main___at_Lean_Parser_compileParserDescr___main___spec__2(x_1, x_2); -lean_dec(x_2); +lean_object* x_566; lean_dec(x_1); -return x_3; +x_566 = l_Lean_Parser_compileParserDescr___main___closed__1; +return x_566; +} } } -lean_object* l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_HashMapImp_find_x3f___at_Lean_Parser_compileParserDescr___main___spec__1(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -return x_3; } } lean_object* l_Lean_Parser_compileParserDescr___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -32149,7 +29826,6 @@ uint8_t x_4; lean_object* x_5; x_4 = lean_unbox(x_2); lean_dec(x_2); x_5 = l_Lean_Parser_compileParserDescr___main(x_1, x_4, x_3); -lean_dec(x_1); return x_5; } } @@ -32168,7 +29844,6 @@ uint8_t x_4; lean_object* x_5; x_4 = lean_unbox(x_2); lean_dec(x_2); x_5 = l_Lean_Parser_compileParserDescr(x_1, x_4, x_3); -lean_dec(x_1); return x_5; } } @@ -32176,7 +29851,7 @@ lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__1() { _start: { lean_object* x_1; -x_1 = lean_mk_string("' (`ParserDescr`, `TrailingParserDescr`, `Parser` or `TrailingParser` expected"); +x_1 = lean_mk_string("unexpected parser type at '"); return x_1; } } @@ -32184,7 +29859,7 @@ lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__2() { _start: { lean_object* x_1; -x_1 = lean_mk_string("unknow constant '"); +x_1 = lean_mk_string("' (`ParserDescr`, `TrailingParserDescr`, `Parser` or `TrailingParser` expected"); return x_1; } } @@ -32192,7 +29867,7 @@ lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__3() { _start: { lean_object* x_1; -x_1 = lean_mk_string("ParserDescr"); +x_1 = lean_mk_string("unknow constant '"); return x_1; } } @@ -32200,10 +29875,42 @@ lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__4() { _start: { lean_object* x_1; +x_1 = lean_mk_string("ParserDescr"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__5() { +_start: +{ +lean_object* x_1; x_1 = lean_mk_string("TrailingParserDescr"); return x_1; } } +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("TrailingParser"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("ParserKind"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__8() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("leading"); +return x_1; +} +} lean_object* l_Lean_Parser_mkParserOfConstantUnsafe(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -32214,10 +29921,11 @@ x_13 = lean_environment_find(x_1, x_3); if (lean_obj_tag(x_13) == 0) { 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_dec(x_2); lean_dec(x_1); x_14 = l_Lean_Name_toString___closed__1; x_15 = l_Lean_Name_toStringWithSep___main(x_14, x_3); -x_16 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; +x_16 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; x_17 = lean_string_append(x_16, x_15); lean_dec(x_15); x_18 = l_Char_HasRepr___closed__1; @@ -32268,6 +29976,7 @@ if (x_29 == 0) { lean_object* x_30; lean_dec(x_26); +lean_dec(x_2); lean_dec(x_1); x_30 = lean_box(0); x_4 = x_30; @@ -32276,17 +29985,18 @@ goto block_12; else { lean_object* x_31; uint8_t x_32; -x_31 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; +x_31 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; x_32 = lean_string_dec_eq(x_26, x_31); if (x_32 == 0) { lean_object* x_33; uint8_t x_34; -x_33 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; +x_33 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__5; x_34 = lean_string_dec_eq(x_26, x_33); lean_dec(x_26); if (x_34 == 0) { lean_object* x_35; +lean_dec(x_2); lean_dec(x_1); x_35 = lean_box(0); x_4 = x_35; @@ -32301,6 +30011,7 @@ lean_dec(x_1); if (lean_obj_tag(x_36) == 0) { uint8_t x_37; +lean_dec(x_2); x_37 = !lean_is_exclusive(x_36); if (x_37 == 0) { @@ -32387,6 +30098,7 @@ lean_dec(x_1); if (lean_obj_tag(x_54) == 0) { uint8_t x_55; +lean_dec(x_2); x_55 = !lean_is_exclusive(x_54); if (x_55 == 0) { @@ -32467,6 +30179,7 @@ return x_71; case 1: { lean_object* x_72; +lean_dec(x_2); x_72 = lean_ctor_get(x_25, 0); lean_inc(x_72); if (lean_obj_tag(x_72) == 0) @@ -32512,7 +30225,7 @@ goto block_12; else { lean_object* x_82; uint8_t x_83; -x_82 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3; +x_82 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__6; x_83 = lean_string_dec_eq(x_73, x_82); lean_dec(x_73); if (x_83 == 0) @@ -32603,6 +30316,7 @@ lean_object* x_100; lean_dec(x_25); lean_dec(x_24); lean_dec(x_23); +lean_dec(x_2); lean_dec(x_1); x_100 = lean_box(0); x_4 = x_100; @@ -32615,6 +30329,7 @@ else lean_object* x_101; lean_dec(x_24); lean_dec(x_23); +lean_dec(x_2); lean_dec(x_1); x_101 = lean_box(0); x_4 = x_101; @@ -32625,6 +30340,7 @@ else { lean_object* x_102; lean_dec(x_23); +lean_dec(x_2); lean_dec(x_1); x_102 = lean_box(0); x_4 = x_102; @@ -32634,6 +30350,7 @@ goto block_12; case 5: { lean_object* x_103; +lean_dec(x_2); x_103 = lean_ctor_get(x_22, 0); lean_inc(x_103); if (lean_obj_tag(x_103) == 4) @@ -32766,7 +30483,7 @@ goto block_12; else { lean_object* x_129; uint8_t x_130; -x_129 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4; +x_129 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__7; x_130 = lean_string_dec_eq(x_125, x_129); lean_dec(x_125); if (x_130 == 0) @@ -32781,7 +30498,7 @@ goto block_12; else { lean_object* x_132; uint8_t x_133; -x_132 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5; +x_132 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__8; x_133 = lean_string_dec_eq(x_124, x_132); lean_dec(x_124); if (x_133 == 0) @@ -32977,6 +30694,7 @@ default: { lean_object* x_159; lean_dec(x_22); +lean_dec(x_2); lean_dec(x_1); x_159 = lean_box(0); x_4 = x_159; @@ -32990,10 +30708,10 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_obj lean_dec(x_4); x_5 = l_Lean_Name_toString___closed__1; x_6 = l_Lean_Name_toStringWithSep___main(x_5, x_3); -x_7 = l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1; +x_7 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; x_8 = lean_string_append(x_7, x_6); lean_dec(x_6); -x_9 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; +x_9 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__2; x_10 = lean_string_append(x_8, x_9); x_11 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_11, 0, x_10); @@ -33001,15 +30719,6 @@ return x_11; } } } -lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_2, x_3); -lean_dec(x_2); -return x_4; -} -} lean_object* _init_l_Lean_Parser_mkParserOfConstant___closed__1() { _start: { @@ -33039,400 +30748,108 @@ lean_dec(x_1); return x_4; } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { -_start: -{ -lean_object* x_8; uint8_t x_9; -x_8 = lean_array_get_size(x_4); -x_9 = lean_nat_dec_lt(x_5, x_8); -lean_dec(x_8); -if (x_9 == 0) -{ -lean_object* x_10; -lean_dec(x_5); -lean_dec(x_1); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_6); -lean_ctor_set(x_10, 1, x_7); -return x_10; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_11 = lean_array_fget(x_4, x_5); -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -lean_inc(x_11); -lean_inc(x_1); -x_14 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_2, x_11); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; -lean_dec(x_13); -lean_dec(x_11); -lean_dec(x_6); -lean_dec(x_1); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -lean_dec(x_14); -x_16 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_7); -return x_16; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; -x_17 = lean_ctor_get(x_14, 0); -lean_inc(x_17); -lean_dec(x_14); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_unbox(x_18); -lean_dec(x_18); -x_21 = l_Lean_Parser_addParser(x_20, x_6, x_11, x_19); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; lean_object* x_23; -lean_dec(x_13); -lean_dec(x_1); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -lean_dec(x_21); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_7); -return x_23; -} -else -{ -lean_object* x_24; -x_24 = lean_ctor_get(x_21, 0); -lean_inc(x_24); -lean_dec(x_21); -x_5 = x_13; -x_6 = x_24; -goto _start; -} -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { -_start: -{ -lean_object* x_8; uint8_t x_9; -x_8 = lean_array_get_size(x_4); -x_9 = lean_nat_dec_lt(x_5, x_8); -lean_dec(x_8); -if (x_9 == 0) -{ -lean_object* x_10; -lean_dec(x_5); -lean_dec(x_1); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_6); -lean_ctor_set(x_10, 1, x_7); -return x_10; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_11 = lean_array_fget(x_4, x_5); -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -x_14 = lean_unsigned_to_nat(0u); -lean_inc(x_1); -x_15 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__1(x_1, x_3, x_11, x_11, x_14, x_6, x_7); -lean_dec(x_11); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_5 = x_13; -x_6 = x_16; -x_7 = x_17; -goto _start; -} -else -{ -uint8_t x_19; -lean_dec(x_13); -lean_dec(x_1); -x_19 = !lean_is_exclusive(x_15); -if (x_19 == 0) -{ -return x_15; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_15, 0); -x_21 = lean_ctor_get(x_15, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_15); -x_22 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_21); -return x_22; -} -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { -_start: -{ -lean_object* x_8; uint8_t x_9; -x_8 = lean_array_get_size(x_4); -x_9 = lean_nat_dec_lt(x_5, x_8); -lean_dec(x_8); -if (x_9 == 0) -{ -lean_object* x_10; -lean_dec(x_5); -lean_dec(x_1); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_6); -lean_ctor_set(x_10, 1, x_7); -return x_10; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_11 = lean_array_fget(x_4, x_5); -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -lean_inc(x_11); -lean_inc(x_1); -x_14 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_2, x_11); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; -lean_dec(x_13); -lean_dec(x_11); -lean_dec(x_6); -lean_dec(x_1); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -lean_dec(x_14); -x_16 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_7); -return x_16; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; -x_17 = lean_ctor_get(x_14, 0); -lean_inc(x_17); -lean_dec(x_14); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_unbox(x_18); -lean_dec(x_18); -x_21 = l_Lean_Parser_addParser(x_20, x_6, x_11, x_19); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; lean_object* x_23; -lean_dec(x_13); -lean_dec(x_1); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -lean_dec(x_21); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_7); -return x_23; -} -else -{ -lean_object* x_24; -x_24 = lean_ctor_get(x_21, 0); -lean_inc(x_24); -lean_dec(x_21); -x_5 = x_13; -x_6 = x_24; -goto _start; -} -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { -_start: -{ -lean_object* x_8; uint8_t x_9; -x_8 = lean_array_get_size(x_4); -x_9 = lean_nat_dec_lt(x_5, x_8); -lean_dec(x_8); -if (x_9 == 0) -{ -lean_object* x_10; -lean_dec(x_5); -lean_dec(x_1); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_6); -lean_ctor_set(x_10, 1, x_7); -return x_10; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_11 = lean_array_fget(x_4, x_5); -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -x_14 = lean_unsigned_to_nat(0u); -lean_inc(x_1); -x_15 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__3(x_1, x_3, x_11, x_11, x_14, x_6, x_7); -lean_dec(x_11); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_5 = x_13; -x_6 = x_16; -x_7 = x_17; -goto _start; -} -else -{ -uint8_t x_19; -lean_dec(x_13); -lean_dec(x_1); -x_19 = !lean_is_exclusive(x_15); -if (x_19 == 0) -{ -return x_15; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_15, 0); -x_21 = lean_ctor_get(x_15, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_15); -x_22 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_21); -return x_22; -} -} -} -} -} -lean_object* l___private_Init_Lean_Parser_Parser_14__addImportedParsers(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) { -lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_5 = lean_box(0); -x_6 = l_Lean_Parser_parserAttributeTableRef; -x_7 = lean_io_ref_get(x_6, x_4); -if (lean_obj_tag(x_7) == 0) +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +return x_4; +} +else { -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -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_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_5); +lean_ctor_set(x_6, 1, x_2); +return x_6; +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__2(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_7; uint8_t x_8; +x_7 = lean_array_get_size(x_3); +x_8 = lean_nat_dec_lt(x_4, x_7); lean_dec(x_7); -x_10 = lean_unsigned_to_nat(0u); -x_11 = l_Lean_Parser_ParsingTables_inhabited___closed__1; -x_12 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__2(x_2, x_3, x_8, x_3, x_10, x_11, x_9); -lean_dec(x_8); -if (lean_obj_tag(x_12) == 0) +if (x_8 == 0) { -uint8_t x_13; -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_12, 0); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_5); -lean_ctor_set(x_15, 1, x_14); -lean_ctor_set(x_12, 0, x_15); -return x_12; +lean_object* x_9; +lean_dec(x_4); +lean_dec(x_1); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_5); +lean_ctor_set(x_9, 1, x_6); +return x_9; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_16 = lean_ctor_get(x_12, 0); -x_17 = lean_ctor_get(x_12, 1); -lean_inc(x_17); -lean_inc(x_16); -lean_dec(x_12); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_5); -lean_ctor_set(x_18, 1, x_16); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_18); -lean_ctor_set(x_19, 1, x_17); -return x_19; -} -} -else +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_array_fget(x_3, x_4); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_4, x_11); +lean_dec(x_4); +switch (lean_obj_tag(x_10)) { +case 0: { -uint8_t x_20; -x_20 = !lean_is_exclusive(x_12); -if (x_20 == 0) +lean_object* x_13; uint8_t x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +lean_dec(x_10); +x_14 = !lean_is_exclusive(x_5); +if (x_14 == 0) { -return x_12; -} -else +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_15 = lean_ctor_get(x_5, 0); +x_16 = lean_ctor_get(x_5, 1); +x_17 = lean_ctor_get(x_5, 2); +x_18 = lean_ctor_get(x_5, 3); +x_19 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig(x_15, x_13); +x_20 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1(x_19, x_6); +lean_dec(x_19); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_12, 0); -x_22 = lean_ctor_get(x_12, 1); -lean_inc(x_22); +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); -lean_dec(x_12); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_21); -lean_ctor_set(x_23, 1, x_22); -return x_23; -} -} +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +lean_ctor_set(x_5, 0, x_21); +x_4 = x_12; +x_6 = x_22; +goto _start; } else { uint8_t x_24; -lean_dec(x_2); -x_24 = !lean_is_exclusive(x_7); +lean_free_object(x_5); +lean_dec(x_18); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_12); +lean_dec(x_1); +x_24 = !lean_is_exclusive(x_20); if (x_24 == 0) { -return x_7; +return x_20; } else { lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_7, 0); -x_26 = lean_ctor_get(x_7, 1); +x_25 = lean_ctor_get(x_20, 0); +x_26 = lean_ctor_get(x_20, 1); lean_inc(x_26); lean_inc(x_25); -lean_dec(x_7); +lean_dec(x_20); x_27 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_27, 0, x_25); lean_ctor_set(x_27, 1, x_26); @@ -33442,948 +30859,551 @@ return x_27; } else { -lean_object* x_28; lean_object* x_29; -x_28 = lean_ctor_get(x_1, 0); -x_29 = lean_io_ref_get(x_28, x_4); -if (lean_obj_tag(x_29) == 0) -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_29, 1); +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_28 = lean_ctor_get(x_5, 0); +x_29 = lean_ctor_get(x_5, 1); +x_30 = lean_ctor_get(x_5, 2); +x_31 = lean_ctor_get(x_5, 3); lean_inc(x_31); -lean_dec(x_29); -x_32 = l_Lean_Parser_parserAttributeTableRef; -x_33 = lean_io_ref_get(x_32, x_31); +lean_inc(x_30); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_5); +x_32 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig(x_28, x_13); +x_33 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1(x_32, x_6); +lean_dec(x_32); if (lean_obj_tag(x_33) == 0) { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +lean_object* x_34; lean_object* x_35; lean_object* x_36; x_34 = lean_ctor_get(x_33, 0); lean_inc(x_34); x_35 = lean_ctor_get(x_33, 1); lean_inc(x_35); lean_dec(x_33); -x_36 = lean_unsigned_to_nat(0u); -x_37 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__4(x_2, x_3, x_34, x_3, x_36, x_30, x_35); -lean_dec(x_34); -if (lean_obj_tag(x_37) == 0) +x_36 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_29); +lean_ctor_set(x_36, 2, x_30); +lean_ctor_set(x_36, 3, x_31); +x_4 = x_12; +x_5 = x_36; +x_6 = x_35; +goto _start; +} +else { -uint8_t x_38; -x_38 = !lean_is_exclusive(x_37); -if (x_38 == 0) -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_37, 0); -x_40 = lean_box(0); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_40); +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +lean_dec(x_31); +lean_dec(x_30); +lean_dec(x_29); +lean_dec(x_12); +lean_dec(x_1); +x_38 = lean_ctor_get(x_33, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_33, 1); +lean_inc(x_39); +if (lean_is_exclusive(x_33)) { + lean_ctor_release(x_33, 0); + lean_ctor_release(x_33, 1); + x_40 = x_33; +} else { + lean_dec_ref(x_33); + x_40 = lean_box(0); +} +if (lean_is_scalar(x_40)) { + x_41 = lean_alloc_ctor(1, 2, 0); +} else { + x_41 = x_40; +} +lean_ctor_set(x_41, 0, x_38); lean_ctor_set(x_41, 1, x_39); -lean_ctor_set(x_37, 0, x_41); -return x_37; +return x_41; } -else +} +} +case 1: { -lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_42 = lean_ctor_get(x_37, 0); -x_43 = lean_ctor_get(x_37, 1); -lean_inc(x_43); +lean_object* x_42; uint8_t x_43; +x_42 = lean_ctor_get(x_10, 0); lean_inc(x_42); -lean_dec(x_37); -x_44 = lean_box(0); -x_45 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_45, 0, x_44); -lean_ctor_set(x_45, 1, x_42); -x_46 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_46, 0, x_45); -lean_ctor_set(x_46, 1, x_43); -return x_46; -} +lean_dec(x_10); +x_43 = !lean_is_exclusive(x_5); +if (x_43 == 0) +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_5, 1); +x_45 = lean_box(0); +x_46 = l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(x_44, x_42, x_45); +lean_ctor_set(x_5, 1, x_46); +x_4 = x_12; +goto _start; } else { -uint8_t x_47; -x_47 = !lean_is_exclusive(x_37); -if (x_47 == 0) -{ -return x_37; -} -else -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; -x_48 = lean_ctor_get(x_37, 0); -x_49 = lean_ctor_get(x_37, 1); +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_48 = lean_ctor_get(x_5, 0); +x_49 = lean_ctor_get(x_5, 1); +x_50 = lean_ctor_get(x_5, 2); +x_51 = lean_ctor_get(x_5, 3); +lean_inc(x_51); +lean_inc(x_50); lean_inc(x_49); lean_inc(x_48); -lean_dec(x_37); -x_50 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_50, 0, x_48); -lean_ctor_set(x_50, 1, x_49); -return x_50; -} -} -} -else -{ -uint8_t x_51; -lean_dec(x_30); -lean_dec(x_2); -x_51 = !lean_is_exclusive(x_33); -if (x_51 == 0) -{ -return x_33; -} -else -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_33, 0); -x_53 = lean_ctor_get(x_33, 1); -lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_33); -x_54 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_54, 0, x_52); +lean_dec(x_5); +x_52 = lean_box(0); +x_53 = l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(x_49, x_42, x_52); +x_54 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_54, 0, x_48); lean_ctor_set(x_54, 1, x_53); -return x_54; +lean_ctor_set(x_54, 2, x_50); +lean_ctor_set(x_54, 3, x_51); +x_4 = x_12; +x_5 = x_54; +goto _start; } } -} -else +case 2: { -uint8_t x_55; -lean_dec(x_2); -x_55 = !lean_is_exclusive(x_29); -if (x_55 == 0) -{ -return x_29; -} -else -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_29, 0); -x_57 = lean_ctor_get(x_29, 1); -lean_inc(x_57); +lean_object* x_56; uint8_t x_57; +x_56 = lean_ctor_get(x_10, 0); lean_inc(x_56); -lean_dec(x_29); -x_58 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_58, 0, x_56); -lean_ctor_set(x_58, 1, x_57); -return x_58; -} -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__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, lean_object* x_7) { -_start: +lean_dec(x_10); +x_57 = !lean_is_exclusive(x_5); +if (x_57 == 0) { -lean_object* x_8; -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_8; -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__2___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, lean_object* x_7) { -_start: +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_8__addParserCategory(x_60, x_56); +x_63 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory___spec__1(x_62, x_6); +lean_dec(x_62); +if (lean_obj_tag(x_63) == 0) { -lean_object* x_8; -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_8; +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_dec(x_63); +lean_ctor_set(x_5, 2, x_64); +x_4 = x_12; +x_6 = x_65; +goto _start; } -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__3___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, lean_object* x_7) { -_start: +else { -lean_object* x_8; -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_8; -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__4___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, lean_object* x_7) { -_start: -{ -lean_object* x_8; -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_14__addImportedParsers___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_8; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_14__addImportedParsers___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___private_Init_Lean_Parser_Parser_14__addImportedParsers(x_1, x_2, x_3, x_4); -lean_dec(x_3); +uint8_t x_67; +lean_free_object(x_5); +lean_dec(x_61); +lean_dec(x_59); +lean_dec(x_58); +lean_dec(x_12); lean_dec(x_1); -return x_5; +x_67 = !lean_is_exclusive(x_63); +if (x_67 == 0) +{ +return x_63; +} +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_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_object* l___private_Init_Lean_Parser_Parser_15__addParserAttributeEntry(lean_object* x_1, lean_object* x_2) { +} +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_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_8__addParserCategory(x_73, x_56); +x_76 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_9__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); +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); +x_4 = x_12; +x_5 = x_79; +x_6 = x_78; +goto _start; +} +else +{ +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +lean_dec(x_74); +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); +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; +} else { + lean_dec_ref(x_76); + x_83 = lean_box(0); +} +if (lean_is_scalar(x_83)) { + x_84 = lean_alloc_ctor(1, 2, 0); +} else { + x_84 = x_83; +} +lean_ctor_set(x_84, 0, x_81); +lean_ctor_set(x_84, 1, x_82); +return x_84; +} +} +} +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_inc(x_86); +lean_dec(x_10); +x_87 = !lean_is_exclusive(x_5); +if (x_87 == 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_inc(x_1); +x_92 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_90, x_86); +if (lean_obj_tag(x_92) == 0) +{ +lean_object* x_93; lean_object* x_94; +lean_free_object(x_5); +lean_dec(x_91); +lean_dec(x_90); +lean_dec(x_89); +lean_dec(x_88); +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(1, 2, 0); +lean_ctor_set(x_94, 0, x_93); +lean_ctor_set(x_94, 1, x_6); +return x_94; +} +else +{ +lean_object* x_95; lean_object* x_96; lean_object* x_97; uint8_t x_98; lean_object* x_99; +x_95 = lean_ctor_get(x_92, 0); +lean_inc(x_95); +lean_dec(x_92); +x_96 = lean_ctor_get(x_95, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_95, 1); +lean_inc(x_97); +lean_dec(x_95); +x_98 = lean_unbox(x_96); +lean_dec(x_96); +x_99 = l_Lean_Parser_addParser(x_98, x_90, x_85, x_86, x_97); +if (lean_obj_tag(x_99) == 0) +{ +lean_object* x_100; lean_object* x_101; +lean_free_object(x_5); +lean_dec(x_91); +lean_dec(x_89); +lean_dec(x_88); +lean_dec(x_12); +lean_dec(x_1); +x_100 = lean_ctor_get(x_99, 0); +lean_inc(x_100); +lean_dec(x_99); +x_101 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_101, 0, x_100); +lean_ctor_set(x_101, 1, x_6); +return x_101; +} +else +{ +lean_object* x_102; +x_102 = lean_ctor_get(x_99, 0); +lean_inc(x_102); +lean_dec(x_99); +lean_ctor_set(x_5, 2, x_102); +x_4 = x_12; +goto _start; +} +} +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +x_104 = lean_ctor_get(x_5, 0); +x_105 = lean_ctor_get(x_5, 1); +x_106 = lean_ctor_get(x_5, 2); +x_107 = lean_ctor_get(x_5, 3); +lean_inc(x_107); +lean_inc(x_106); +lean_inc(x_105); +lean_inc(x_104); +lean_dec(x_5); +lean_inc(x_86); +lean_inc(x_106); +lean_inc(x_1); +x_108 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_106, x_86); +if (lean_obj_tag(x_108) == 0) +{ +lean_object* x_109; lean_object* x_110; +lean_dec(x_107); +lean_dec(x_106); +lean_dec(x_105); +lean_dec(x_104); +lean_dec(x_86); +lean_dec(x_85); +lean_dec(x_12); +lean_dec(x_1); +x_109 = lean_ctor_get(x_108, 0); +lean_inc(x_109); +lean_dec(x_108); +x_110 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_110, 0, x_109); +lean_ctor_set(x_110, 1, x_6); +return x_110; +} +else +{ +lean_object* x_111; lean_object* x_112; lean_object* x_113; uint8_t x_114; lean_object* x_115; +x_111 = lean_ctor_get(x_108, 0); +lean_inc(x_111); +lean_dec(x_108); +x_112 = lean_ctor_get(x_111, 0); +lean_inc(x_112); +x_113 = lean_ctor_get(x_111, 1); +lean_inc(x_113); +lean_dec(x_111); +x_114 = lean_unbox(x_112); +lean_dec(x_112); +x_115 = l_Lean_Parser_addParser(x_114, x_106, x_85, x_86, x_113); +if (lean_obj_tag(x_115) == 0) +{ +lean_object* x_116; lean_object* x_117; +lean_dec(x_107); +lean_dec(x_105); +lean_dec(x_104); +lean_dec(x_12); +lean_dec(x_1); +x_116 = lean_ctor_get(x_115, 0); +lean_inc(x_116); +lean_dec(x_115); +x_117 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_117, 0, x_116); +lean_ctor_set(x_117, 1, x_6); +return x_117; +} +else +{ +lean_object* x_118; lean_object* x_119; +x_118 = lean_ctor_get(x_115, 0); +lean_inc(x_118); +lean_dec(x_115); +x_119 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_119, 0, x_104); +lean_ctor_set(x_119, 1, x_105); +lean_ctor_set(x_119, 2, x_118); +lean_ctor_set(x_119, 3, x_107); +x_4 = x_12; +x_5 = x_119; +goto _start; +} +} +} +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__3(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_3; uint8_t x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_3 = lean_ctor_get(x_2, 0); -lean_inc(x_3); -x_4 = lean_ctor_get_uint8(x_2, sizeof(void*)*2); -x_5 = lean_ctor_get(x_2, 1); -lean_inc(x_5); -lean_dec(x_2); -x_6 = lean_ctor_get(x_1, 1); -lean_inc(x_6); -lean_inc(x_3); -x_7 = l_Lean_Parser_addParser(x_4, x_6, x_3, x_5); -if (lean_obj_tag(x_7) == 0) -{ -lean_object* x_8; lean_object* x_9; +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_get_size(x_3); +x_8 = lean_nat_dec_lt(x_4, x_7); lean_dec(x_7); -lean_dec(x_3); +if (x_8 == 0) +{ +lean_object* x_9; +lean_dec(x_4); lean_dec(x_1); -x_8 = l_Lean_Parser_ParserAttributeExtensionState_inhabited; -x_9 = l_unreachable_x21___rarg(x_8); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_5); +lean_ctor_set(x_9, 1, x_6); return x_9; } else { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_10 = lean_ctor_get(x_7, 0); -lean_inc(x_10); -lean_dec(x_7); -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -lean_dec(x_1); -x_12 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_12, 0, x_3); -lean_ctor_set(x_12, 1, x_11); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_10); -return x_13; -} -} -} -lean_object* _init_l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("invalid parser '"); -return x_1; -} -} -lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -if (lean_obj_tag(x_3) == 0) -{ -lean_object* x_5; -lean_dec(x_1); -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_2); -lean_ctor_set(x_5, 1, x_4); -return x_5; -} -else -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_6 = lean_ctor_get(x_3, 0); -lean_inc(x_6); -x_7 = lean_ctor_get(x_3, 1); -lean_inc(x_7); -lean_dec(x_3); -x_8 = l_Lean_Parser_addToken(x_2, x_6); -if (lean_obj_tag(x_8) == 0) -{ -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; -lean_dec(x_7); -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -lean_dec(x_8); -x_10 = l_Lean_Name_toString___closed__1; -x_11 = l_Lean_Name_toStringWithSep___main(x_10, x_1); -x_12 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1___closed__1; -x_13 = lean_string_append(x_12, x_11); -lean_dec(x_11); -x_14 = l_Lean_registerTagAttribute___lambda__4___closed__3; -x_15 = lean_string_append(x_13, x_14); -x_16 = lean_string_append(x_15, x_9); -lean_dec(x_9); -x_17 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_4); -return x_17; -} -else -{ -lean_object* x_18; -x_18 = lean_ctor_get(x_8, 0); -lean_inc(x_18); -lean_dec(x_8); -x_2 = x_18; -x_3 = x_7; -goto _start; -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_array_get_size(x_2); -x_6 = lean_nat_dec_lt(x_3, x_5); -lean_dec(x_5); -if (x_6 == 0) -{ -lean_dec(x_3); -return x_4; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_7 = lean_array_fget(x_2, x_3); -x_8 = lean_unsigned_to_nat(1u); -x_9 = lean_nat_add(x_3, x_8); -lean_dec(x_3); -switch (lean_obj_tag(x_7)) { -case 0: -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_ctor_get(x_7, 0); -lean_inc(x_10); -lean_dec(x_7); -x_11 = l_Lean_Parser_syntaxNodeKindExtension; -x_12 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_11, x_4, x_10); -x_3 = x_9; -x_4 = x_12; -goto _start; -} -case 1: -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_7, 0); -lean_inc(x_14); -lean_dec(x_7); -x_15 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3(x_14, x_4); -lean_dec(x_14); -x_3 = x_9; -x_4 = x_15; -goto _start; -} -default: -{ -x_3 = x_9; -goto _start; -} -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_array_get_size(x_2); -x_6 = lean_nat_dec_lt(x_3, x_5); -lean_dec(x_5); -if (x_6 == 0) -{ -lean_dec(x_3); -return x_4; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_7 = lean_array_fget(x_2, x_3); -x_8 = l_Lean_Parser_syntaxNodeKindExtension; -x_9 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_8, x_4, x_7); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_3, x_10); -lean_dec(x_3); -x_3 = x_11; -x_4 = x_9; -goto _start; -} -} -} -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_ctor_get(x_1, 0); -x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__4(x_3, x_3, x_4, x_2); -return x_5; -} -else -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_6 = lean_ctor_get(x_1, 0); -x_7 = lean_unsigned_to_nat(0u); -x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__5(x_6, x_6, x_7, x_2); -return x_8; -} -} -} -lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; -x_3 = lean_ctor_get(x_1, 0); -x_4 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3(x_3, x_2); -return x_4; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_16__addParserAttribute(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; lean_object* x_7; -x_6 = l_Lean_Parser_parserAttributeTableRef; -x_7 = lean_io_ref_get(x_6, x_5); -if (lean_obj_tag(x_7) == 0) -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_7); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_7, 0); -x_10 = lean_ctor_get(x_7, 1); -lean_inc(x_3); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_10 = lean_array_fget(x_3, x_4); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_4, x_11); +lean_dec(x_4); +x_13 = lean_unsigned_to_nat(0u); lean_inc(x_1); -x_11 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_9, x_3); -lean_dec(x_9); -if (lean_obj_tag(x_11) == 0) +x_14 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__2(x_1, x_10, x_10, x_13, x_5, x_6); +lean_dec(x_10); +if (lean_obj_tag(x_14) == 0) { -lean_object* x_12; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -lean_dec(x_11); -lean_ctor_set_tag(x_7, 1); -lean_ctor_set(x_7, 0, x_12); -return x_7; -} -else -{ -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_free_object(x_7); -x_13 = lean_ctor_get(x_11, 0); -lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); +lean_object* x_15; lean_object* x_16; x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); -x_16 = lean_ctor_get(x_15, 0); +x_16 = lean_ctor_get(x_14, 1); lean_inc(x_16); -x_17 = lean_box(0); -x_18 = lean_apply_1(x_16, x_17); -lean_inc(x_3); -x_19 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1(x_3, x_1, x_18, x_10); -if (lean_obj_tag(x_19) == 0) -{ -uint8_t x_20; -x_20 = !lean_is_exclusive(x_19); -if (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; lean_object* x_27; uint8_t x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; lean_object* x_32; -x_21 = lean_ctor_get(x_19, 0); -x_22 = lean_ctor_get(x_15, 1); -lean_inc(x_22); -lean_dec(x_15); -x_23 = l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1; -x_24 = lean_apply_1(x_22, x_23); -x_25 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2(x_24, x_21); -lean_dec(x_24); -x_26 = lean_ctor_get(x_13, 0); -lean_inc(x_26); -lean_dec(x_13); -lean_inc(x_14); -lean_inc(x_3); -x_27 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_27, 0, x_3); -lean_ctor_set(x_27, 1, x_14); -x_28 = lean_unbox(x_26); -lean_ctor_set_uint8(x_27, sizeof(void*)*2, x_28); -x_29 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_25); -x_30 = lean_ctor_get(x_29, 1); -lean_inc(x_30); -lean_dec(x_29); -x_31 = lean_unbox(x_26); -lean_dec(x_26); -x_32 = l_Lean_Parser_addParser(x_31, x_30, x_3, x_14); -if (lean_obj_tag(x_32) == 0) -{ -lean_object* x_33; -lean_dec(x_27); -lean_dec(x_25); -lean_dec(x_2); -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -lean_dec(x_32); -lean_ctor_set_tag(x_19, 1); -lean_ctor_set(x_19, 0, x_33); -return x_19; -} -else -{ -lean_object* x_34; -lean_dec(x_32); -x_34 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_25, x_27); -lean_ctor_set(x_19, 0, x_34); -return x_19; -} -} -else -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; lean_object* x_47; -x_35 = lean_ctor_get(x_19, 0); -x_36 = lean_ctor_get(x_19, 1); -lean_inc(x_36); -lean_inc(x_35); -lean_dec(x_19); -x_37 = lean_ctor_get(x_15, 1); -lean_inc(x_37); -lean_dec(x_15); -x_38 = l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1; -x_39 = lean_apply_1(x_37, x_38); -x_40 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2(x_39, x_35); -lean_dec(x_39); -x_41 = lean_ctor_get(x_13, 0); -lean_inc(x_41); -lean_dec(x_13); -lean_inc(x_14); -lean_inc(x_3); -x_42 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_42, 0, x_3); -lean_ctor_set(x_42, 1, x_14); -x_43 = lean_unbox(x_41); -lean_ctor_set_uint8(x_42, sizeof(void*)*2, x_43); -x_44 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_40); -x_45 = lean_ctor_get(x_44, 1); -lean_inc(x_45); -lean_dec(x_44); -x_46 = lean_unbox(x_41); -lean_dec(x_41); -x_47 = l_Lean_Parser_addParser(x_46, x_45, x_3, x_14); -if (lean_obj_tag(x_47) == 0) -{ -lean_object* x_48; lean_object* x_49; -lean_dec(x_42); -lean_dec(x_40); -lean_dec(x_2); -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -lean_dec(x_47); -x_49 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_49, 0, x_48); -lean_ctor_set(x_49, 1, x_36); -return x_49; -} -else -{ -lean_object* x_50; lean_object* x_51; -lean_dec(x_47); -x_50 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_40, x_42); -x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_50); -lean_ctor_set(x_51, 1, x_36); -return x_51; -} -} -} -else -{ -uint8_t x_52; -lean_dec(x_15); lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_3); -lean_dec(x_2); -x_52 = !lean_is_exclusive(x_19); -if (x_52 == 0) -{ -return x_19; -} -else -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_53 = lean_ctor_get(x_19, 0); -x_54 = lean_ctor_get(x_19, 1); -lean_inc(x_54); -lean_inc(x_53); -lean_dec(x_19); -x_55 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_55, 0, x_53); -lean_ctor_set(x_55, 1, x_54); -return x_55; -} -} -} -} -else -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_7, 0); -x_57 = lean_ctor_get(x_7, 1); -lean_inc(x_57); -lean_inc(x_56); -lean_dec(x_7); -lean_inc(x_3); -lean_inc(x_1); -x_58 = l_Lean_Parser_mkParserOfConstantUnsafe(x_1, x_56, x_3); -lean_dec(x_56); -if (lean_obj_tag(x_58) == 0) -{ -lean_object* x_59; lean_object* x_60; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -lean_dec(x_58); -x_60 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_60, 0, x_59); -lean_ctor_set(x_60, 1, x_57); -return x_60; -} -else -{ -lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_61 = lean_ctor_get(x_58, 0); -lean_inc(x_61); -lean_dec(x_58); -x_62 = lean_ctor_get(x_61, 1); -lean_inc(x_62); -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_63, 0); -lean_inc(x_64); -x_65 = lean_box(0); -x_66 = lean_apply_1(x_64, x_65); -lean_inc(x_3); -x_67 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1(x_3, x_1, x_66, x_57); -if (lean_obj_tag(x_67) == 0) -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; lean_object* x_81; -x_68 = lean_ctor_get(x_67, 0); -lean_inc(x_68); -x_69 = lean_ctor_get(x_67, 1); -lean_inc(x_69); -if (lean_is_exclusive(x_67)) { - lean_ctor_release(x_67, 0); - lean_ctor_release(x_67, 1); - x_70 = x_67; -} else { - lean_dec_ref(x_67); - x_70 = lean_box(0); -} -x_71 = lean_ctor_get(x_63, 1); -lean_inc(x_71); -lean_dec(x_63); -x_72 = l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1; -x_73 = lean_apply_1(x_71, x_72); -x_74 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2(x_73, x_68); -lean_dec(x_73); -x_75 = lean_ctor_get(x_61, 0); -lean_inc(x_75); -lean_dec(x_61); -lean_inc(x_62); -lean_inc(x_3); -x_76 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_76, 0, x_3); -lean_ctor_set(x_76, 1, x_62); -x_77 = lean_unbox(x_75); -lean_ctor_set_uint8(x_76, sizeof(void*)*2, x_77); -x_78 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_74); -x_79 = lean_ctor_get(x_78, 1); -lean_inc(x_79); -lean_dec(x_78); -x_80 = lean_unbox(x_75); -lean_dec(x_75); -x_81 = l_Lean_Parser_addParser(x_80, x_79, x_3, x_62); -if (lean_obj_tag(x_81) == 0) -{ -lean_object* x_82; lean_object* x_83; -lean_dec(x_76); -lean_dec(x_74); -lean_dec(x_2); -x_82 = lean_ctor_get(x_81, 0); -lean_inc(x_82); -lean_dec(x_81); -if (lean_is_scalar(x_70)) { - x_83 = lean_alloc_ctor(1, 2, 0); -} else { - x_83 = x_70; - lean_ctor_set_tag(x_83, 1); -} -lean_ctor_set(x_83, 0, x_82); -lean_ctor_set(x_83, 1, x_69); -return x_83; -} -else -{ -lean_object* x_84; lean_object* x_85; -lean_dec(x_81); -x_84 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_2, x_74, x_76); -if (lean_is_scalar(x_70)) { - x_85 = lean_alloc_ctor(0, 2, 0); -} else { - x_85 = x_70; -} -lean_ctor_set(x_85, 0, x_84); -lean_ctor_set(x_85, 1, x_69); -return x_85; -} -} -else -{ -lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -lean_dec(x_63); -lean_dec(x_62); -lean_dec(x_61); -lean_dec(x_3); -lean_dec(x_2); -x_86 = lean_ctor_get(x_67, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_67, 1); -lean_inc(x_87); -if (lean_is_exclusive(x_67)) { - lean_ctor_release(x_67, 0); - lean_ctor_release(x_67, 1); - x_88 = x_67; -} else { - lean_dec_ref(x_67); - x_88 = lean_box(0); -} -if (lean_is_scalar(x_88)) { - x_89 = lean_alloc_ctor(1, 2, 0); -} else { - x_89 = x_88; -} -lean_ctor_set(x_89, 0, x_86); -lean_ctor_set(x_89, 1, x_87); -return x_89; -} -} -} -} -else -{ -uint8_t x_90; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_90 = !lean_is_exclusive(x_7); -if (x_90 == 0) -{ -return x_7; -} -else -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_91 = lean_ctor_get(x_7, 0); -x_92 = lean_ctor_get(x_7, 1); -lean_inc(x_92); -lean_inc(x_91); -lean_dec(x_7); -x_93 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_93, 0, x_91); -lean_ctor_set(x_93, 1, x_92); -return x_93; -} -} -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__4___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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__4(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__5___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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__5(x_1, x_2, x_3, x_4); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__3(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__2(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_16__addParserAttribute___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___private_Init_Lean_Parser_Parser_16__addParserAttribute(x_1, x_2, x_3, x_6, x_5); -return x_7; -} -} -lean_object* l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_3; lean_object* x_4; -x_3 = l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2; -x_4 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_4, 0, x_3); -lean_ctor_set(x_4, 1, x_2); -return x_4; -} -else -{ -lean_object* x_5; lean_object* x_6; -x_5 = lean_ctor_get(x_1, 0); -x_6 = lean_io_ref_get(x_5, x_2); -if (lean_obj_tag(x_6) == 0) -{ -uint8_t x_7; -x_7 = !lean_is_exclusive(x_6); -if (x_7 == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_8 = lean_ctor_get(x_6, 0); -x_9 = lean_box(0); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_9); -lean_ctor_set(x_10, 1, x_8); -lean_ctor_set(x_6, 0, x_10); -return x_6; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_11 = lean_ctor_get(x_6, 0); -x_12 = lean_ctor_get(x_6, 1); -lean_inc(x_12); -lean_inc(x_11); -lean_dec(x_6); -x_13 = lean_box(0); -x_14 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_14, 0, x_13); -lean_ctor_set(x_14, 1, x_11); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_14); -lean_ctor_set(x_15, 1, x_12); -return x_15; -} -} -else -{ -uint8_t x_16; -x_16 = !lean_is_exclusive(x_6); -if (x_16 == 0) -{ -return x_6; -} -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_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_object* l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -uint8_t l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -uint8_t x_3; -x_3 = 0; -return x_3; -} -else -{ -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_2, 0); -x_5 = lean_ctor_get(x_2, 2); -x_6 = lean_name_eq(x_4, x_1); -if (x_6 == 0) -{ -x_2 = x_5; +x_4 = x_12; +x_5 = x_15; +x_6 = x_16; goto _start; } else { -uint8_t x_8; -x_8 = 1; -return x_8; +uint8_t x_18; +lean_dec(x_12); +lean_dec(x_1); +x_18 = !lean_is_exclusive(x_14); +if (x_18 == 0) +{ +return x_14; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_14, 0); +x_20 = lean_ctor_get(x_14, 1); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_14); +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_19); +lean_ctor_set(x_21, 1, x_20); +return x_21; } } } } -uint8_t l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(lean_object* x_1, lean_object* x_2) { +} +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_3; lean_object* x_4; size_t x_5; size_t x_6; lean_object* x_7; uint8_t x_8; -x_3 = lean_ctor_get(x_1, 1); -x_4 = lean_array_get_size(x_3); -x_5 = l_Lean_Name_hash(x_2); -x_6 = lean_usize_modn(x_5, x_4); +lean_object* x_4; +x_4 = l___private_Init_Lean_Parser_Parser_10__ParserExtension_mkInitial(x_3); +if (lean_obj_tag(x_4) == 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_inc(x_6); lean_dec(x_4); -x_7 = lean_array_uget(x_3, x_6); -x_8 = l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(x_2, x_7); -lean_dec(x_7); +x_7 = lean_unsigned_to_nat(0u); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__3(x_1, x_2, x_2, x_7, x_5, x_6); return x_8; } +else +{ +uint8_t x_9; +lean_dec(x_1); +x_9 = !lean_is_exclusive(x_4); +if (x_9 == 0) +{ +return x_4; } -uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_4, 0); +x_11 = lean_ctor_get(x_4, 1); +lean_inc(x_11); +lean_inc(x_10); +lean_dec(x_4); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_10); +lean_ctor_set(x_12, 1, x_11); +return x_12; +} +} +} +} +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__1(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__2___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_7; +x_7 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__2(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_3); +lean_dec(x_2); +return x_7; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__3___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_7; +x_7 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___spec__3(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_3); +lean_dec(x_2); +return x_7; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2(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; @@ -34422,7 +31442,19 @@ return x_11; } } } -lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(lean_object* x_1, lean_object* x_2) { +lean_object* _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l_Lean_Parser_ParserExtensionState_inhabited___closed__1; +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* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; @@ -34480,7 +31512,7 @@ lean_inc(x_16); lean_dec(x_14); x_17 = lean_array_get_size(x_15); lean_dec(x_15); -x_18 = l_Lean_Parser_ParserAttribute_Inhabited___closed__1; +x_18 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1; x_19 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_19, 0, x_17); lean_ctor_set(x_19, 1, x_1); @@ -34653,7 +31685,7 @@ return x_52; } } } -lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; @@ -34670,7 +31702,7 @@ x_6 = lean_ctor_get(x_4, 0); x_7 = lean_ctor_get(x_4, 1); x_8 = lean_array_get_size(x_6); x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(x_1, x_6, x_6, x_8, x_9); +x_10 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2(x_1, x_6, x_6, x_8, x_9); lean_dec(x_8); lean_dec(x_6); if (x_10 == 0) @@ -34694,7 +31726,7 @@ x_17 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; x_18 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); lean_closure_set(x_18, 0, x_12); lean_closure_set(x_18, 1, x_17); -x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(x_18, x_7); +x_19 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3(x_18, x_7); if (lean_obj_tag(x_19) == 0) { lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; @@ -34884,7 +31916,7 @@ lean_inc(x_59); lean_dec(x_4); x_61 = lean_array_get_size(x_59); x_62 = lean_unsigned_to_nat(0u); -x_63 = l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(x_1, x_59, x_59, x_61, x_62); +x_63 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2(x_1, x_59, x_59, x_61, x_62); lean_dec(x_61); lean_dec(x_59); if (x_63 == 0) @@ -34907,7 +31939,7 @@ x_70 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; x_71 = lean_alloc_closure((void*)(l_EStateM_bind___rarg), 3, 2); lean_closure_set(x_71, 0, x_65); lean_closure_set(x_71, 1, x_70); -x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__5(x_71, x_60); +x_72 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3(x_71, x_60); if (lean_obj_tag(x_72) == 0) { lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; @@ -35120,292 +32152,11 @@ return x_115; } } } -lean_object* l_AssocList_foldlM___main___at_Lean_Parser_registerParserAttribute___spec__9(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_2) == 0) -{ -return x_1; -} -else -{ -uint8_t x_3; -x_3 = !lean_is_exclusive(x_2); -if (x_3 == 0) -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; size_t x_7; size_t x_8; lean_object* x_9; lean_object* x_10; -x_4 = lean_ctor_get(x_2, 0); -x_5 = lean_ctor_get(x_2, 2); -x_6 = lean_array_get_size(x_1); -x_7 = l_Lean_Name_hash(x_4); -x_8 = lean_usize_modn(x_7, x_6); -lean_dec(x_6); -x_9 = lean_array_uget(x_1, x_8); -lean_ctor_set(x_2, 2, x_9); -x_10 = lean_array_uset(x_1, x_8, x_2); -x_1 = x_10; -x_2 = x_5; -goto _start; -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_12 = lean_ctor_get(x_2, 0); -x_13 = lean_ctor_get(x_2, 1); -x_14 = lean_ctor_get(x_2, 2); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_dec(x_2); -x_15 = lean_array_get_size(x_1); -x_16 = l_Lean_Name_hash(x_12); -x_17 = lean_usize_modn(x_16, x_15); -lean_dec(x_15); -x_18 = lean_array_uget(x_1, x_17); -x_19 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_19, 0, x_12); -lean_ctor_set(x_19, 1, x_13); -lean_ctor_set(x_19, 2, x_18); -x_20 = lean_array_uset(x_1, x_17, x_19); -x_1 = x_20; -x_2 = x_14; -goto _start; -} -} -} -} -lean_object* l_HashMapImp_moveEntries___main___at_Lean_Parser_registerParserAttribute___spec__8(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; uint8_t x_5; -x_4 = lean_array_get_size(x_2); -x_5 = lean_nat_dec_lt(x_1, x_4); -lean_dec(x_4); -if (x_5 == 0) -{ -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -else -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_6 = lean_array_fget(x_2, x_1); -x_7 = lean_box(0); -x_8 = lean_array_fset(x_2, x_1, x_7); -x_9 = l_AssocList_foldlM___main___at_Lean_Parser_registerParserAttribute___spec__9(x_3, x_6); -x_10 = lean_unsigned_to_nat(1u); -x_11 = lean_nat_add(x_1, x_10); -lean_dec(x_1); -x_1 = x_11; -x_2 = x_8; -x_3 = x_9; -goto _start; -} -} -} -lean_object* l_HashMapImp_expand___at_Lean_Parser_registerParserAttribute___spec__7(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; lean_object* x_9; lean_object* x_10; -x_3 = lean_array_get_size(x_2); -x_4 = lean_unsigned_to_nat(2u); -x_5 = lean_nat_mul(x_3, x_4); -lean_dec(x_3); -x_6 = lean_box(0); -x_7 = lean_mk_array(x_5, x_6); -x_8 = lean_unsigned_to_nat(0u); -x_9 = l_HashMapImp_moveEntries___main___at_Lean_Parser_registerParserAttribute___spec__8(x_8, x_2, x_7); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_1); -lean_ctor_set(x_10, 1, x_9); -return x_10; -} -} -lean_object* l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_3) == 0) -{ -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -else -{ -uint8_t x_4; -x_4 = !lean_is_exclusive(x_3); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; -x_5 = lean_ctor_get(x_3, 0); -x_6 = lean_ctor_get(x_3, 1); -x_7 = lean_ctor_get(x_3, 2); -x_8 = lean_name_eq(x_5, x_1); -if (x_8 == 0) -{ -lean_object* x_9; -x_9 = l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(x_1, x_2, x_7); -lean_ctor_set(x_3, 2, x_9); -return x_3; -} -else -{ -lean_dec(x_6); -lean_dec(x_5); -lean_ctor_set(x_3, 1, x_2); -lean_ctor_set(x_3, 0, x_1); -return x_3; -} -} -else -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_10 = lean_ctor_get(x_3, 0); -x_11 = lean_ctor_get(x_3, 1); -x_12 = lean_ctor_get(x_3, 2); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_dec(x_3); -x_13 = lean_name_eq(x_10, x_1); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(x_1, x_2, x_12); -x_15 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_15, 0, x_10); -lean_ctor_set(x_15, 1, x_11); -lean_ctor_set(x_15, 2, x_14); -return x_15; -} -else -{ -lean_object* x_16; -lean_dec(x_11); -lean_dec(x_10); -x_16 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_16, 0, x_1); -lean_ctor_set(x_16, 1, x_2); -lean_ctor_set(x_16, 2, x_12); -return x_16; -} -} -} -} -} -lean_object* l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = !lean_is_exclusive(x_1); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; size_t x_8; size_t x_9; lean_object* x_10; uint8_t x_11; -x_5 = lean_ctor_get(x_1, 0); -x_6 = lean_ctor_get(x_1, 1); -x_7 = lean_array_get_size(x_6); -x_8 = l_Lean_Name_hash(x_2); -x_9 = lean_usize_modn(x_8, x_7); -x_10 = lean_array_uget(x_6, x_9); -x_11 = l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(x_2, x_10); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_add(x_5, x_12); -lean_dec(x_5); -x_14 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_14, 0, x_2); -lean_ctor_set(x_14, 1, x_3); -lean_ctor_set(x_14, 2, x_10); -x_15 = lean_array_uset(x_6, x_9, x_14); -x_16 = lean_nat_dec_le(x_13, x_7); -lean_dec(x_7); -if (x_16 == 0) -{ -lean_object* x_17; -lean_free_object(x_1); -x_17 = l_HashMapImp_expand___at_Lean_Parser_registerParserAttribute___spec__7(x_13, x_15); -return x_17; -} -else -{ -lean_ctor_set(x_1, 1, x_15); -lean_ctor_set(x_1, 0, x_13); -return x_1; -} -} -else -{ -lean_object* x_18; lean_object* x_19; -lean_dec(x_7); -x_18 = l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(x_2, x_3, x_10); -x_19 = lean_array_uset(x_6, x_9, x_18); -lean_ctor_set(x_1, 1, x_19); -return x_1; -} -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; size_t x_23; size_t x_24; lean_object* x_25; uint8_t x_26; -x_20 = lean_ctor_get(x_1, 0); -x_21 = lean_ctor_get(x_1, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_1); -x_22 = lean_array_get_size(x_21); -x_23 = l_Lean_Name_hash(x_2); -x_24 = lean_usize_modn(x_23, x_22); -x_25 = lean_array_uget(x_21, x_24); -x_26 = l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(x_2, x_25); -if (x_26 == 0) -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_27 = lean_unsigned_to_nat(1u); -x_28 = lean_nat_add(x_20, x_27); -lean_dec(x_20); -x_29 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_29, 0, x_2); -lean_ctor_set(x_29, 1, x_3); -lean_ctor_set(x_29, 2, x_25); -x_30 = lean_array_uset(x_21, x_24, x_29); -x_31 = lean_nat_dec_le(x_28, x_22); -lean_dec(x_22); -if (x_31 == 0) -{ -lean_object* x_32; -x_32 = l_HashMapImp_expand___at_Lean_Parser_registerParserAttribute___spec__7(x_28, x_30); -return x_32; -} -else -{ -lean_object* x_33; -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_28); -lean_ctor_set(x_33, 1, x_30); -return x_33; -} -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; -lean_dec(x_22); -x_34 = l_AssocList_replace___main___at_Lean_Parser_registerParserAttribute___spec__10(x_2, x_3, x_25); -x_35 = lean_array_uset(x_21, x_24, x_34); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_20); -lean_ctor_set(x_36, 1, x_35); -return x_36; -} -} -} -} -lean_object* l_Lean_Parser_registerParserAttribute___lambda__1(lean_object* x_1) { +lean_object* l_Lean_Parser_mkParserExtension___lambda__1(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; -x_2 = lean_ctor_get(x_1, 0); +x_2 = lean_ctor_get(x_1, 3); lean_inc(x_2); lean_dec(x_1); x_3 = l_List_reverse___rarg(x_2); @@ -35416,11 +32167,11 @@ x_6 = l_List_toArrayAux___main___rarg(x_3, x_5); return x_6; } } -lean_object* l_Lean_Parser_registerParserAttribute___lambda__2(lean_object* x_1) { +lean_object* l_Lean_Parser_mkParserExtension___lambda__2(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; uint8_t x_7; lean_object* x_8; lean_object* x_9; -x_2 = lean_ctor_get(x_1, 0); +x_2 = lean_ctor_get(x_1, 3); x_3 = lean_unsigned_to_nat(0u); x_4 = l_List_lengthAux___main___rarg(x_2, x_3); x_5 = l_Nat_repr(x_4); @@ -35435,627 +32186,98 @@ lean_ctor_set_uint8(x_9, sizeof(void*)*2, x_7); return x_9; } } -lean_object* l_Lean_Parser_registerParserAttribute___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6) { +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__1() { _start: { -lean_object* x_7; -x_7 = l___private_Init_Lean_Parser_Parser_16__addParserAttribute(x_2, x_1, x_3, x_5, x_6); +lean_object* x_1; +x_1 = lean_mk_string("parserExt"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___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_mkParserExtension___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_10__ParserExtension_mkInitial), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_16__ParserExtension_addImported___boxed), 3, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_15__ParserExtension_addEntry), 2, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkParserExtension___lambda__1), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_mkParserExtension___lambda__2___boxed), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_mkParserExtension___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_1 = l_Lean_Parser_mkParserExtension___closed__2; +x_2 = l_Lean_Parser_mkParserExtension___closed__3; +x_3 = l_Lean_Parser_mkParserExtension___closed__4; +x_4 = l_Lean_Parser_mkParserExtension___closed__5; +x_5 = l_Lean_Parser_mkParserExtension___closed__6; +x_6 = l_Lean_Parser_mkParserExtension___closed__7; +x_7 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_7, 0, x_1); +lean_ctor_set(x_7, 1, x_2); +lean_ctor_set(x_7, 2, x_3); +lean_ctor_set(x_7, 3, x_4); +lean_ctor_set(x_7, 4, x_5); +lean_ctor_set(x_7, 5, x_6); return x_7; } } -lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__1() { +lean_object* l_Lean_Parser_mkParserExtension(lean_object* x_1) { _start: { -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_15__addParserAttributeEntry), 2, 0); -return x_1; +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Parser_mkParserExtension___closed__8; +x_3 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__1(x_2, x_1); +return x_3; } } -lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__1), 1, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__2___boxed), 1, 0); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("parser attribute '"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("' has already been defined"); -return x_1; -} -} -lean_object* l_Lean_Parser_registerParserAttribute(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_6 = lean_box(0); -lean_inc(x_2); -x_7 = lean_name_mk_string(x_6, x_2); -x_8 = l_Lean_Parser_parserAttributeTableRef; -x_9 = lean_io_ref_get(x_8, x_5); -if (lean_obj_tag(x_9) == 0) -{ -uint8_t x_10; -x_10 = !lean_is_exclusive(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_9, 0); -x_12 = lean_ctor_get(x_9, 1); -x_13 = l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(x_11, x_7); -lean_dec(x_11); -if (x_13 == 0) -{ -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_free_object(x_9); -lean_inc(x_4); -x_14 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial___boxed), 2, 1); -lean_closure_set(x_14, 0, x_4); -x_15 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_14__addImportedParsers___boxed), 4, 1); -lean_closure_set(x_15, 0, x_4); -x_16 = l_Lean_Parser_registerParserAttribute___closed__1; -x_17 = l_Lean_Parser_registerParserAttribute___closed__2; -x_18 = l_Lean_Parser_registerParserAttribute___closed__3; -lean_inc(x_1); -x_19 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_19, 0, x_1); -lean_ctor_set(x_19, 1, x_14); -lean_ctor_set(x_19, 2, x_15); -lean_ctor_set(x_19, 3, x_16); -lean_ctor_set(x_19, 4, x_17); -lean_ctor_set(x_19, 5, x_18); -x_20 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(x_19, x_12); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -lean_inc(x_21); -x_23 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__3___boxed), 6, 1); -lean_closure_set(x_23, 0, x_21); -x_24 = 1; -x_25 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_25, 0, x_1); -lean_ctor_set(x_25, 1, x_3); -lean_ctor_set(x_25, 2, x_23); -lean_ctor_set_uint8(x_25, sizeof(void*)*3, x_24); -lean_inc(x_25); -x_26 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_26, 0, x_25); -lean_ctor_set(x_26, 1, x_21); -lean_ctor_set(x_26, 2, x_2); -x_27 = lean_io_ref_get(x_8, x_22); -if (lean_obj_tag(x_27) == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_27, 0); -lean_inc(x_28); -x_29 = lean_ctor_get(x_27, 1); -lean_inc(x_29); -lean_dec(x_27); -x_30 = lean_io_ref_reset(x_8, x_29); -if (lean_obj_tag(x_30) == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_30, 1); -lean_inc(x_31); -lean_dec(x_30); -lean_inc(x_26); -x_32 = l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(x_28, x_7, x_26); -x_33 = lean_io_ref_set(x_8, x_32, x_31); -if (lean_obj_tag(x_33) == 0) -{ -lean_object* x_34; lean_object* x_35; -x_34 = lean_ctor_get(x_33, 1); -lean_inc(x_34); -lean_dec(x_33); -x_35 = l_Lean_registerAttribute(x_25, x_34); -if (lean_obj_tag(x_35) == 0) -{ -uint8_t x_36; -x_36 = !lean_is_exclusive(x_35); -if (x_36 == 0) -{ -lean_object* x_37; -x_37 = lean_ctor_get(x_35, 0); -lean_dec(x_37); -lean_ctor_set(x_35, 0, x_26); -return x_35; -} -else -{ -lean_object* x_38; lean_object* x_39; -x_38 = lean_ctor_get(x_35, 1); -lean_inc(x_38); -lean_dec(x_35); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_26); -lean_ctor_set(x_39, 1, x_38); -return x_39; -} -} -else -{ -uint8_t x_40; -lean_dec(x_26); -x_40 = !lean_is_exclusive(x_35); -if (x_40 == 0) -{ -return x_35; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_35, 0); -x_42 = lean_ctor_get(x_35, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_35); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; -} -} -} -else -{ -uint8_t x_44; -lean_dec(x_26); -lean_dec(x_25); -x_44 = !lean_is_exclusive(x_33); -if (x_44 == 0) -{ -return x_33; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_33, 0); -x_46 = lean_ctor_get(x_33, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_33); -x_47 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_47, 0, x_45); -lean_ctor_set(x_47, 1, x_46); -return x_47; -} -} -} -else -{ -uint8_t x_48; -lean_dec(x_28); -lean_dec(x_26); -lean_dec(x_25); -lean_dec(x_7); -x_48 = !lean_is_exclusive(x_30); -if (x_48 == 0) -{ -return x_30; -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_30, 0); -x_50 = lean_ctor_get(x_30, 1); -lean_inc(x_50); -lean_inc(x_49); -lean_dec(x_30); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -return x_51; -} -} -} -else -{ -uint8_t x_52; -lean_dec(x_26); -lean_dec(x_25); -lean_dec(x_7); -x_52 = !lean_is_exclusive(x_27); -if (x_52 == 0) -{ -return x_27; -} -else -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_53 = lean_ctor_get(x_27, 0); -x_54 = lean_ctor_get(x_27, 1); -lean_inc(x_54); -lean_inc(x_53); -lean_dec(x_27); -x_55 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_55, 0, x_53); -lean_ctor_set(x_55, 1, x_54); -return x_55; -} -} -} -else -{ -uint8_t x_56; -lean_dec(x_7); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_56 = !lean_is_exclusive(x_20); -if (x_56 == 0) -{ -return x_20; -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_20, 0); -x_58 = lean_ctor_get(x_20, 1); -lean_inc(x_58); -lean_inc(x_57); -lean_dec(x_20); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_57); -lean_ctor_set(x_59, 1, x_58); -return x_59; -} -} -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_1); -x_60 = l_Lean_Parser_registerParserAttribute___closed__4; -x_61 = lean_string_append(x_60, x_2); -lean_dec(x_2); -x_62 = l_Lean_Parser_registerParserAttribute___closed__5; -x_63 = lean_string_append(x_61, x_62); -lean_ctor_set_tag(x_9, 1); -lean_ctor_set(x_9, 0, x_63); -return x_9; -} -} -else -{ -lean_object* x_64; lean_object* x_65; uint8_t x_66; -x_64 = lean_ctor_get(x_9, 0); -x_65 = lean_ctor_get(x_9, 1); -lean_inc(x_65); -lean_inc(x_64); -lean_dec(x_9); -x_66 = l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(x_64, x_7); -lean_dec(x_64); -if (x_66 == 0) -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; -lean_inc(x_4); -x_67 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_17__ParserAttribute_mkInitial___boxed), 2, 1); -lean_closure_set(x_67, 0, x_4); -x_68 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_14__addImportedParsers___boxed), 4, 1); -lean_closure_set(x_68, 0, x_4); -x_69 = l_Lean_Parser_registerParserAttribute___closed__1; -x_70 = l_Lean_Parser_registerParserAttribute___closed__2; -x_71 = l_Lean_Parser_registerParserAttribute___closed__3; -lean_inc(x_1); -x_72 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_72, 0, x_1); -lean_ctor_set(x_72, 1, x_67); -lean_ctor_set(x_72, 2, x_68); -lean_ctor_set(x_72, 3, x_69); -lean_ctor_set(x_72, 4, x_70); -lean_ctor_set(x_72, 5, x_71); -x_73 = l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Parser_registerParserAttribute___spec__3(x_72, x_65); -if (lean_obj_tag(x_73) == 0) -{ -lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; -x_74 = lean_ctor_get(x_73, 0); -lean_inc(x_74); -x_75 = lean_ctor_get(x_73, 1); -lean_inc(x_75); -lean_dec(x_73); -lean_inc(x_74); -x_76 = lean_alloc_closure((void*)(l_Lean_Parser_registerParserAttribute___lambda__3___boxed), 6, 1); -lean_closure_set(x_76, 0, x_74); -x_77 = 1; -x_78 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_78, 0, x_1); -lean_ctor_set(x_78, 1, x_3); -lean_ctor_set(x_78, 2, x_76); -lean_ctor_set_uint8(x_78, sizeof(void*)*3, x_77); -lean_inc(x_78); -x_79 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_79, 0, x_78); -lean_ctor_set(x_79, 1, x_74); -lean_ctor_set(x_79, 2, x_2); -x_80 = lean_io_ref_get(x_8, x_75); -if (lean_obj_tag(x_80) == 0) -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; -x_81 = lean_ctor_get(x_80, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_80, 1); -lean_inc(x_82); -lean_dec(x_80); -x_83 = lean_io_ref_reset(x_8, x_82); -if (lean_obj_tag(x_83) == 0) -{ -lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_84 = lean_ctor_get(x_83, 1); -lean_inc(x_84); -lean_dec(x_83); -lean_inc(x_79); -x_85 = l_HashMapImp_insert___at_Lean_Parser_registerParserAttribute___spec__6(x_81, x_7, x_79); -x_86 = lean_io_ref_set(x_8, x_85, x_84); -if (lean_obj_tag(x_86) == 0) -{ -lean_object* x_87; lean_object* x_88; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -lean_dec(x_86); -x_88 = l_Lean_registerAttribute(x_78, x_87); -if (lean_obj_tag(x_88) == 0) -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; -x_89 = lean_ctor_get(x_88, 1); -lean_inc(x_89); -if (lean_is_exclusive(x_88)) { - lean_ctor_release(x_88, 0); - lean_ctor_release(x_88, 1); - x_90 = x_88; -} else { - lean_dec_ref(x_88); - x_90 = lean_box(0); -} -if (lean_is_scalar(x_90)) { - x_91 = lean_alloc_ctor(0, 2, 0); -} else { - x_91 = x_90; -} -lean_ctor_set(x_91, 0, x_79); -lean_ctor_set(x_91, 1, x_89); -return x_91; -} -else -{ -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; -lean_dec(x_79); -x_92 = lean_ctor_get(x_88, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_88, 1); -lean_inc(x_93); -if (lean_is_exclusive(x_88)) { - lean_ctor_release(x_88, 0); - lean_ctor_release(x_88, 1); - x_94 = x_88; -} else { - lean_dec_ref(x_88); - x_94 = lean_box(0); -} -if (lean_is_scalar(x_94)) { - x_95 = lean_alloc_ctor(1, 2, 0); -} else { - x_95 = x_94; -} -lean_ctor_set(x_95, 0, x_92); -lean_ctor_set(x_95, 1, x_93); -return x_95; -} -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -lean_dec(x_79); -lean_dec(x_78); -x_96 = lean_ctor_get(x_86, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_86, 1); -lean_inc(x_97); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_98 = x_86; -} else { - lean_dec_ref(x_86); - x_98 = lean_box(0); -} -if (lean_is_scalar(x_98)) { - x_99 = lean_alloc_ctor(1, 2, 0); -} else { - x_99 = x_98; -} -lean_ctor_set(x_99, 0, x_96); -lean_ctor_set(x_99, 1, x_97); -return x_99; -} -} -else -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; -lean_dec(x_81); -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_7); -x_100 = lean_ctor_get(x_83, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_83, 1); -lean_inc(x_101); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - x_102 = x_83; -} else { - lean_dec_ref(x_83); - x_102 = lean_box(0); -} -if (lean_is_scalar(x_102)) { - x_103 = lean_alloc_ctor(1, 2, 0); -} else { - x_103 = x_102; -} -lean_ctor_set(x_103, 0, x_100); -lean_ctor_set(x_103, 1, x_101); -return x_103; -} -} -else -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_7); -x_104 = lean_ctor_get(x_80, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_80, 1); -lean_inc(x_105); -if (lean_is_exclusive(x_80)) { - lean_ctor_release(x_80, 0); - lean_ctor_release(x_80, 1); - x_106 = x_80; -} else { - lean_dec_ref(x_80); - x_106 = lean_box(0); -} -if (lean_is_scalar(x_106)) { - x_107 = lean_alloc_ctor(1, 2, 0); -} else { - x_107 = x_106; -} -lean_ctor_set(x_107, 0, x_104); -lean_ctor_set(x_107, 1, x_105); -return x_107; -} -} -else -{ -lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; -lean_dec(x_7); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_108 = lean_ctor_get(x_73, 0); -lean_inc(x_108); -x_109 = lean_ctor_get(x_73, 1); -lean_inc(x_109); -if (lean_is_exclusive(x_73)) { - lean_ctor_release(x_73, 0); - lean_ctor_release(x_73, 1); - x_110 = x_73; -} else { - lean_dec_ref(x_73); - x_110 = lean_box(0); -} -if (lean_is_scalar(x_110)) { - x_111 = lean_alloc_ctor(1, 2, 0); -} else { - x_111 = x_110; -} -lean_ctor_set(x_111, 0, x_108); -lean_ctor_set(x_111, 1, x_109); -return x_111; -} -} -else -{ -lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_1); -x_112 = l_Lean_Parser_registerParserAttribute___closed__4; -x_113 = lean_string_append(x_112, x_2); -lean_dec(x_2); -x_114 = l_Lean_Parser_registerParserAttribute___closed__5; -x_115 = lean_string_append(x_113, x_114); -x_116 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_116, 0, x_115); -lean_ctor_set(x_116, 1, x_65); -return x_116; -} -} -} -else -{ -uint8_t x_117; -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_117 = !lean_is_exclusive(x_9); -if (x_117 == 0) -{ -return x_9; -} -else -{ -lean_object* x_118; lean_object* x_119; lean_object* x_120; -x_118 = lean_ctor_get(x_9, 0); -x_119 = lean_ctor_get(x_9, 1); -lean_inc(x_119); -lean_inc(x_118); -lean_dec(x_9); -x_120 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_120, 0, x_118); -lean_ctor_set(x_120, 1, x_119); -return x_120; -} -} -} -} -lean_object* l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_AssocList_contains___main___at_Lean_Parser_registerParserAttribute___spec__2(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -lean_object* l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_HashMapImp_contains___at_Lean_Parser_registerParserAttribute___spec__1(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2___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 = l_Array_anyRangeMAux___main___at_Lean_Parser_registerParserAttribute___spec__4(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2(x_1, x_2, x_3, x_4, x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); @@ -36064,23 +32286,2100 @@ x_7 = lean_box(x_6); return x_7; } } -lean_object* l_Lean_Parser_registerParserAttribute___lambda__2___boxed(lean_object* x_1) { +lean_object* l_Lean_Parser_mkParserExtension___lambda__2___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Parser_registerParserAttribute___lambda__2(x_1); +x_2 = l_Lean_Parser_mkParserExtension___lambda__2(x_1); lean_dec(x_1); return x_2; } } -lean_object* l_Lean_Parser_registerParserAttribute___lambda__3___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) { +lean_object* l_Lean_Parser_parserExtension___elambda__1(lean_object* x_1) { _start: { -uint8_t x_7; lean_object* x_8; -x_7 = lean_unbox(x_5); +lean_object* x_2; +x_2 = lean_box(0); +return x_2; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Array_empty___closed__1; +return x_2; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__3(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_inc(x_1); +return x_1; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__4___rarg(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_String_splitAux___main___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* l_Lean_Parser_parserExtension___elambda__4(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Parser_parserExtension___elambda__4___rarg), 1, 0); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_parserExtension___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_EnvExtension_Inhabited___rarg___closed__1; +x_3 = l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1; +x_4 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_parserExtension___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_parserExtension___elambda__4___boxed), 2, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_parserExtension___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_parserExtension___elambda__3___boxed), 2, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_parserExtension___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_parserExtension___elambda__2___boxed), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_parserExtension___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_parserExtension___elambda__1___boxed), 1, 0); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_parserExtension___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_1 = l_Lean_Parser_parserExtension___closed__1; +x_2 = lean_box(0); +x_3 = l_Lean_Parser_parserExtension___closed__2; +x_4 = l_Lean_Parser_parserExtension___closed__3; +x_5 = l_Lean_Parser_parserExtension___closed__4; +x_6 = l_Lean_Parser_parserExtension___closed__5; +x_7 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_7, 0, x_1); +lean_ctor_set(x_7, 1, x_2); +lean_ctor_set(x_7, 2, x_3); +lean_ctor_set(x_7, 3, x_4); +lean_ctor_set(x_7, 4, x_5); +lean_ctor_set(x_7, 5, x_6); +return x_7; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__1___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_parserExtension___elambda__1(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__2___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_parserExtension___elambda__2(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__3___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Parser_parserExtension___elambda__3(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_Lean_Parser_parserExtension___elambda__4___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Parser_parserExtension___elambda__4(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_Lean_Parser_categoryParserFnImpl(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; lean_object* x_9; +x_5 = lean_ctor_get(x_3, 1); +lean_inc(x_5); +x_6 = l_Lean_Parser_parserExtension; +x_7 = l_Lean_PersistentEnvExtension_getState___rarg(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Parser_registerParserAttribute___lambda__3(x_1, x_2, x_3, x_4, x_7, x_6); +x_8 = lean_ctor_get(x_7, 2); +lean_inc(x_8); +lean_dec(x_7); +x_9 = l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(x_8, x_1); +if (lean_obj_tag(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; lean_object* x_16; +lean_dec(x_3); +lean_dec(x_2); +x_10 = l_Lean_Name_toString___closed__1; +x_11 = l_Lean_Name_toStringWithSep___main(x_10, x_1); +x_12 = l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1; +x_13 = lean_string_append(x_12, x_11); +lean_dec(x_11); +x_14 = l_Char_HasRepr___closed__1; +x_15 = lean_string_append(x_13, x_14); +x_16 = l_Lean_Parser_ParserState_mkUnexpectedError(x_4, x_15); +return x_16; +} +else +{ +lean_object* x_17; lean_object* x_18; +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; +} +} +} +lean_object* _init_l_Lean_Parser_setCategoryParserFnRef___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParserFnImpl), 4, 0); +return x_1; +} +} +lean_object* l_Lean_Parser_setCategoryParserFnRef(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = l_Lean_Parser_categoryParserFnRef; +x_3 = l_Lean_Parser_setCategoryParserFnRef___closed__1; +x_4 = lean_io_ref_set(x_2, x_3, x_1); +return x_4; +} +} +lean_object* l_Lean_Parser_addToken(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; +x_3 = l_Lean_Parser_parserExtension; +x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_3, x_1); +x_5 = lean_ctor_get(x_4, 0); +lean_inc(x_5); lean_dec(x_4); +lean_inc(x_2); +x_6 = l___private_Init_Lean_Parser_Parser_12__addTokenConfig(x_5, x_2); +if (lean_obj_tag(x_6) == 0) +{ +uint8_t x_7; +lean_dec(x_2); +lean_dec(x_1); +x_7 = !lean_is_exclusive(x_6); +if (x_7 == 0) +{ +return x_6; +} +else +{ +lean_object* x_8; lean_object* x_9; +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_9, 0, x_8); +return x_9; +} +} +else +{ +uint8_t x_10; +x_10 = !lean_is_exclusive(x_6); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_6, 0); +lean_dec(x_11); +x_12 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_12, 0, x_2); +x_13 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_1, x_12); +lean_ctor_set(x_6, 0, x_13); +return x_6; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_6); +x_14 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_14, 0, x_2); +x_15 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_3, x_1, x_14); +x_16 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_16, 0, x_15); +return x_16; +} +} +} +} +lean_object* l_Lean_Parser_addSyntaxNodeKind(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_3, 0, x_2); +x_4 = l_Lean_Parser_parserExtension; +x_5 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_4, x_1, x_3); +return x_5; +} +} +uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = lean_array_get_size(x_1); +x_5 = lean_nat_dec_lt(x_2, x_4); +lean_dec(x_4); +if (x_5 == 0) +{ +uint8_t x_6; +lean_dec(x_2); +x_6 = 0; +return x_6; +} +else +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_fget(x_1, x_2); +x_8 = lean_name_eq(x_3, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; +x_9 = lean_unsigned_to_nat(1u); +x_10 = lean_nat_add(x_2, x_9); +lean_dec(x_2); +x_2 = x_10; +goto _start; +} +else +{ +uint8_t x_12; +lean_dec(x_2); +x_12 = 1; +return x_12; +} +} +} +} +uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = 5; +x_6 = l_PersistentHashMap_insertAux___main___rarg___closed__2; +x_7 = x_2 & x_6; +x_8 = lean_usize_to_nat(x_7); +x_9 = lean_box(2); +x_10 = lean_array_get(x_9, x_4, x_8); +lean_dec(x_8); +lean_dec(x_4); +switch (lean_obj_tag(x_10)) { +case 0: +{ +lean_object* x_11; uint8_t x_12; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_name_eq(x_3, x_11); +lean_dec(x_11); +return x_12; +} +case 1: +{ +lean_object* x_13; size_t x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +lean_dec(x_10); +x_14 = x_2 >> x_5; +x_1 = x_13; +x_2 = x_14; +goto _start; +} +default: +{ +uint8_t x_16; +x_16 = 0; +return x_16; +} +} +} +else +{ +lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_17 = lean_ctor_get(x_1, 0); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_unsigned_to_nat(0u); +x_19 = l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(x_17, x_18, x_3); +lean_dec(x_17); +return x_19; +} +} +} +uint8_t l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; size_t x_4; uint8_t x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = l_Lean_Name_hash(x_2); +x_5 = l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(x_3, x_4, x_2); +return x_5; +} +} +uint8_t l_Lean_Parser_isValidSyntaxNodeKind(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; +x_3 = l_Lean_Parser_parserExtension; +x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_3, x_1); +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +lean_dec(x_4); +x_6 = l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_5, x_2); +if (x_6 == 0) +{ +lean_object* x_7; uint8_t x_8; +x_7 = l_Lean_choiceKind___closed__2; +x_8 = lean_name_eq(x_2, x_7); +return x_8; +} +else +{ +uint8_t x_9; +x_9 = 1; +return x_9; +} +} +} +lean_object* l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(x_1, x_2, x_3); +lean_dec(x_3); +lean_dec(x_1); +x_5 = lean_box(x_4); +return x_5; +} +} +lean_object* l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; uint8_t x_5; lean_object* x_6; +x_4 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_5 = l_PersistentHashMap_containsAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__2(x_1, x_4, x_3); +lean_dec(x_3); +x_6 = lean_box(x_5); +return x_6; +} +} +lean_object* l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_1, x_2); +lean_dec(x_2); +x_4 = lean_box(x_3); +return x_4; +} +} +lean_object* l_Lean_Parser_isValidSyntaxNodeKind___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Lean_Parser_isValidSyntaxNodeKind(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_2); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_dec(x_3); +return x_4; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = lean_array_fget(x_2, x_3); +x_8 = lean_unsigned_to_nat(1u); +x_9 = lean_nat_add(x_3, x_8); +lean_dec(x_3); +switch (lean_obj_tag(x_7)) { +case 0: +{ +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_7, 0); +lean_inc(x_10); +lean_dec(x_7); +x_11 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_4); +x_3 = x_9; +x_4 = x_11; +goto _start; +} +case 1: +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_7, 0); +lean_inc(x_13); +lean_dec(x_7); +x_14 = l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_13, x_4); +lean_dec(x_13); +x_3 = x_9; +x_4 = x_14; +goto _start; +} +default: +{ +x_3 = x_9; +goto _start; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_2); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_dec(x_3); +return x_4; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_7 = lean_array_fget(x_2, x_3); +x_8 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_8, 0, x_7); +lean_ctor_set(x_8, 1, x_4); +x_9 = lean_unsigned_to_nat(1u); +x_10 = lean_nat_add(x_3, x_9); +lean_dec(x_3); +x_3 = x_10; +x_4 = x_8; +goto _start; +} +} +} +lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_unsigned_to_nat(0u); +x_5 = l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(x_3, x_3, x_4, x_2); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_6 = lean_ctor_get(x_1, 0); +x_7 = lean_unsigned_to_nat(0u); +x_8 = l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(x_6, x_6, x_7, x_2); +return x_8; +} +} +} +lean_object* l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +x_4 = l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_3, x_2); +return x_4; +} +} +lean_object* l_Lean_Parser_getSyntaxNodeKinds(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; +x_2 = l_Lean_Parser_parserExtension; +x_3 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); +x_4 = lean_ctor_get(x_3, 1); +lean_inc(x_4); +lean_dec(x_3); +x_5 = lean_box(0); +x_6 = l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(x_4, x_5); +lean_dec(x_4); +return x_6; +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3___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_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__3(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4___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_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__4(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_PersistentHashMap_foldlM___at_Lean_Parser_getSyntaxNodeKinds___spec__1(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_Lean_Parser_getSyntaxNodeKinds___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_getSyntaxNodeKinds(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_getTokenTable(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = l_Lean_Parser_parserExtension; +x_3 = l_Lean_PersistentEnvExtension_getState___rarg(x_2, x_1); +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +lean_dec(x_3); +return x_4; +} +} +lean_object* l_Lean_Parser_getTokenTable___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_getTokenTable(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_mkInputContext(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +lean_inc(x_1); +x_3 = l_Lean_FileMap_ofString(x_1); +x_4 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 2, x_3); +return x_4; +} +} +lean_object* l_Lean_Parser_mkParserContext(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +x_3 = l_Lean_Parser_getTokenTable(x_1); +x_4 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_4, 0, x_2); +lean_ctor_set(x_4, 1, x_1); +lean_ctor_set(x_4, 2, x_3); +return x_4; +} +} +lean_object* l_Lean_Parser_mkParserState(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; +x_2 = l_Lean_Parser_initCacheForInput(x_1); +x_3 = lean_box(0); +x_4 = l_Array_empty___closed__1; +x_5 = lean_unsigned_to_nat(0u); +x_6 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_6, 0, x_4); +lean_ctor_set(x_6, 1, x_5); +lean_ctor_set(x_6, 2, x_2); +lean_ctor_set(x_6, 3, x_3); +return x_6; +} +} +lean_object* l_Lean_Parser_mkParserState___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_mkParserState(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_Lean_Parser_runParserCategory(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_Lean_Parser_parserExtension; +x_6 = l_Lean_PersistentEnvExtension_getState___rarg(x_5, x_1); +x_7 = lean_ctor_get(x_6, 2); +lean_inc(x_7); +lean_dec(x_6); +x_8 = l_PersistentHashMap_find_x3f___at_Lean_Parser_addLeadingParser___spec__1(x_7, x_2); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_9 = l_Lean_Parser_throwUnknownParserCategory___rarg(x_2); +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; +x_10 = lean_ctor_get(x_8, 0); +lean_inc(x_10); +lean_dec(x_8); +lean_inc(x_3); +x_11 = l_Lean_Parser_mkInputContext(x_3, x_4); +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); +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) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +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); +lean_dec(x_18); +x_20 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_20, 0, x_19); +return x_20; +} +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* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_4, 0, x_3); +lean_ctor_set(x_4, 1, x_2); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_5); +lean_ctor_set(x_6, 1, x_2); +return x_6; +} +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_regBuiltinParser"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___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_declareBuiltinParser___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l___private_Init_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_declareBuiltinParser___closed__3; +x_3 = l_Lean_mkConst(x_2, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l___private_Init_Lean_Compiler_InitAttr_2__isUnitType___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Parser_declareBuiltinParser___closed__5; +x_3 = l_Lean_mkConst(x_2, x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_declareBuiltinParser___closed__4; +x_2 = l_Lean_Parser_declareBuiltinParser___closed__6; +x_3 = l_Lean_mkApp(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(3u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__9() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("failed to emit registration code for builtin parser '"); +return x_1; +} +} +lean_object* l_Lean_Parser_declareBuiltinParser(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_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; 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; uint8_t x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_6 = l_Lean_Parser_declareBuiltinParser___closed__2; +lean_inc(x_4); +x_7 = l_Lean_Name_append___main(x_6, x_4); +x_8 = lean_box(0); +x_9 = l_Lean_mkConst(x_2, x_8); +x_10 = l_Lean_nameToExprAux___main(x_3); +lean_inc(x_4); +x_11 = l_Lean_nameToExprAux___main(x_4); +lean_inc(x_4); +x_12 = l_Lean_mkConst(x_4, x_8); +x_13 = l_Lean_Parser_declareBuiltinParser___closed__8; +x_14 = lean_array_push(x_13, x_10); +x_15 = lean_array_push(x_14, x_11); +x_16 = lean_array_push(x_15, x_12); +x_17 = lean_unsigned_to_nat(0u); +x_18 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_16, x_16, x_17, x_9); +lean_dec(x_16); +x_19 = l_Lean_Parser_declareBuiltinParser___closed__7; +lean_inc(x_7); +x_20 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_20, 0, x_7); +lean_ctor_set(x_20, 1, x_8); +lean_ctor_set(x_20, 2, x_19); +x_21 = lean_box(0); +x_22 = 0; +x_23 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_23, 0, x_20); +lean_ctor_set(x_23, 1, x_18); +lean_ctor_set(x_23, 2, x_21); +lean_ctor_set_uint8(x_23, sizeof(void*)*3, x_22); +x_24 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_24, 0, x_23); +x_25 = l_Lean_Options_empty; +x_26 = l_Lean_Environment_addAndCompile(x_1, x_25, x_24); +lean_dec(x_24); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* 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; +lean_dec(x_26); +lean_dec(x_7); +x_27 = l_Lean_Name_toString___closed__1; +x_28 = l_Lean_Name_toStringWithSep___main(x_27, x_4); +x_29 = l_Lean_Parser_declareBuiltinParser___closed__9; +x_30 = lean_string_append(x_29, x_28); +lean_dec(x_28); +x_31 = l_Char_HasRepr___closed__1; +x_32 = lean_string_append(x_30, x_31); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_5); +return x_33; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_4); +x_34 = lean_ctor_get(x_26, 0); +lean_inc(x_34); +lean_dec(x_26); +x_35 = l_Lean_initAttr; +x_36 = lean_box(0); +x_37 = l_Lean_ParametricAttribute_setParam___rarg(x_35, x_34, x_7, x_36); +x_38 = l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(x_37, x_5); +lean_dec(x_37); +return x_38; +} +} +} +lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_nameToExprAux___main___closed__4; +x_2 = l_Lean_Syntax_formatStxAux___main___closed__5; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("addBuiltinLeadingParserNew"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__3() { +_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_declareLeadingBuiltinParser___closed__2; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_declareLeadingBuiltinParser(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; +x_5 = l_Lean_Parser_declareLeadingBuiltinParser___closed__3; +x_6 = l_Lean_Parser_declareBuiltinParser(x_1, x_5, x_2, x_3, x_4); +return x_6; +} +} +lean_object* _init_l_Lean_Parser_declareTrailingBuiltinParser___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("addBuiltinTrailingParserNew"); +return x_1; +} +} +lean_object* _init_l_Lean_Parser_declareTrailingBuiltinParser___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_declareTrailingBuiltinParser___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_declareTrailingBuiltinParser(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; +x_5 = l_Lean_Parser_declareTrailingBuiltinParser___closed__2; +x_6 = l_Lean_Parser_declareBuiltinParser(x_1, x_5, x_2, x_3, x_4); +return x_6; +} +} +lean_object* _init_l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("' (`Parser` or `TrailingParser` expected"); +return x_1; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7) { +_start: +{ +uint8_t x_8; +x_8 = l_Lean_Syntax_hasArgs(x_5); +if (x_8 == 0) +{ +if (x_6 == 0) +{ +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_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_9 = l_Lean_Name_toString___closed__1; +x_10 = l_Lean_Name_toStringWithSep___main(x_9, x_1); +x_11 = l_Lean_registerTagAttribute___lambda__4___closed__1; +x_12 = lean_string_append(x_11, x_10); +lean_dec(x_10); +x_13 = l_Lean_registerTagAttribute___lambda__4___closed__2; +x_14 = lean_string_append(x_12, x_13); +x_15 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_7); +return x_15; +} +else +{ +lean_object* x_16; lean_object* x_25; +lean_dec(x_1); +lean_inc(x_4); +lean_inc(x_3); +x_25 = lean_environment_find(x_3, x_4); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_26 = l_Lean_mkInitAttr___lambda__1___closed__1; +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_7); +return x_27; +} +else +{ +lean_object* x_28; lean_object* x_29; +x_28 = lean_ctor_get(x_25, 0); +lean_inc(x_28); +lean_dec(x_25); +x_29 = l_Lean_ConstantInfo_type(x_28); +lean_dec(x_28); +switch (lean_obj_tag(x_29)) { +case 4: +{ +lean_object* x_30; +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +lean_dec(x_29); +if (lean_obj_tag(x_30) == 1) +{ +lean_object* x_31; +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +if (lean_obj_tag(x_31) == 1) +{ +lean_object* x_32; +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +if (lean_obj_tag(x_32) == 1) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +if (lean_obj_tag(x_33) == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; +x_34 = lean_ctor_get(x_30, 1); +lean_inc(x_34); +lean_dec(x_30); +x_35 = lean_ctor_get(x_31, 1); +lean_inc(x_35); +lean_dec(x_31); +x_36 = lean_ctor_get(x_32, 1); +lean_inc(x_36); +lean_dec(x_32); +x_37 = l_Lean_nameToExprAux___main___closed__1; +x_38 = lean_string_dec_eq(x_36, x_37); +lean_dec(x_36); +if (x_38 == 0) +{ +lean_object* x_39; +lean_dec(x_35); +lean_dec(x_34); +lean_dec(x_3); +lean_dec(x_2); +x_39 = lean_box(0); +x_16 = x_39; +goto block_24; +} +else +{ +lean_object* x_40; uint8_t x_41; +x_40 = l_Lean_Syntax_formatStxAux___main___closed__5; +x_41 = lean_string_dec_eq(x_35, x_40); +lean_dec(x_35); +if (x_41 == 0) +{ +lean_object* x_42; +lean_dec(x_34); +lean_dec(x_3); +lean_dec(x_2); +x_42 = lean_box(0); +x_16 = x_42; +goto block_24; +} +else +{ +lean_object* x_43; uint8_t x_44; +x_43 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__6; +x_44 = lean_string_dec_eq(x_34, x_43); +lean_dec(x_34); +if (x_44 == 0) +{ +lean_object* x_45; +lean_dec(x_3); +lean_dec(x_2); +x_45 = lean_box(0); +x_16 = x_45; +goto block_24; +} +else +{ +lean_object* x_46; +x_46 = l_Lean_Parser_declareTrailingBuiltinParser(x_3, x_2, x_4, x_7); +return x_46; +} +} +} +} +else +{ +lean_object* x_47; +lean_dec(x_33); +lean_dec(x_32); +lean_dec(x_31); +lean_dec(x_30); +lean_dec(x_3); +lean_dec(x_2); +x_47 = lean_box(0); +x_16 = x_47; +goto block_24; +} +} +else +{ +lean_object* x_48; +lean_dec(x_32); +lean_dec(x_31); +lean_dec(x_30); +lean_dec(x_3); +lean_dec(x_2); +x_48 = lean_box(0); +x_16 = x_48; +goto block_24; +} +} +else +{ +lean_object* x_49; +lean_dec(x_31); +lean_dec(x_30); +lean_dec(x_3); +lean_dec(x_2); +x_49 = lean_box(0); +x_16 = x_49; +goto block_24; +} +} +else +{ +lean_object* x_50; +lean_dec(x_30); +lean_dec(x_3); +lean_dec(x_2); +x_50 = lean_box(0); +x_16 = x_50; +goto block_24; +} +} +case 5: +{ +lean_object* x_51; +x_51 = lean_ctor_get(x_29, 0); +lean_inc(x_51); +if (lean_obj_tag(x_51) == 4) +{ +lean_object* x_52; +x_52 = lean_ctor_get(x_51, 0); +lean_inc(x_52); +lean_dec(x_51); +if (lean_obj_tag(x_52) == 1) +{ +lean_object* x_53; +x_53 = lean_ctor_get(x_52, 0); +lean_inc(x_53); +if (lean_obj_tag(x_53) == 1) +{ +lean_object* x_54; +x_54 = lean_ctor_get(x_53, 0); +lean_inc(x_54); +if (lean_obj_tag(x_54) == 1) +{ +lean_object* x_55; +x_55 = lean_ctor_get(x_54, 0); +lean_inc(x_55); +if (lean_obj_tag(x_55) == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; +x_56 = lean_ctor_get(x_29, 1); +lean_inc(x_56); +lean_dec(x_29); +x_57 = lean_ctor_get(x_52, 1); +lean_inc(x_57); +lean_dec(x_52); +x_58 = lean_ctor_get(x_53, 1); +lean_inc(x_58); +lean_dec(x_53); +x_59 = lean_ctor_get(x_54, 1); +lean_inc(x_59); +lean_dec(x_54); +x_60 = l_Lean_nameToExprAux___main___closed__1; +x_61 = lean_string_dec_eq(x_59, x_60); +lean_dec(x_59); +if (x_61 == 0) +{ +lean_object* x_62; +lean_dec(x_58); +lean_dec(x_57); +lean_dec(x_56); +lean_dec(x_3); +lean_dec(x_2); +x_62 = lean_box(0); +x_16 = x_62; +goto block_24; +} +else +{ +lean_object* x_63; uint8_t x_64; +x_63 = l_Lean_Syntax_formatStxAux___main___closed__5; +x_64 = lean_string_dec_eq(x_58, x_63); +lean_dec(x_58); +if (x_64 == 0) +{ +lean_object* x_65; +lean_dec(x_57); +lean_dec(x_56); +lean_dec(x_3); +lean_dec(x_2); +x_65 = lean_box(0); +x_16 = x_65; +goto block_24; +} +else +{ +uint8_t x_66; +x_66 = lean_string_dec_eq(x_57, x_63); +lean_dec(x_57); +if (x_66 == 0) +{ +lean_object* x_67; +lean_dec(x_56); +lean_dec(x_3); +lean_dec(x_2); +x_67 = lean_box(0); +x_16 = x_67; +goto block_24; +} +else +{ +if (lean_obj_tag(x_56) == 4) +{ +lean_object* x_68; +x_68 = lean_ctor_get(x_56, 0); +lean_inc(x_68); +lean_dec(x_56); +if (lean_obj_tag(x_68) == 1) +{ +lean_object* x_69; +x_69 = lean_ctor_get(x_68, 0); +lean_inc(x_69); +if (lean_obj_tag(x_69) == 1) +{ +lean_object* x_70; +x_70 = lean_ctor_get(x_69, 0); +lean_inc(x_70); +if (lean_obj_tag(x_70) == 1) +{ +lean_object* x_71; +x_71 = lean_ctor_get(x_70, 0); +lean_inc(x_71); +if (lean_obj_tag(x_71) == 0) +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; uint8_t x_75; +x_72 = lean_ctor_get(x_68, 1); +lean_inc(x_72); +lean_dec(x_68); +x_73 = lean_ctor_get(x_69, 1); +lean_inc(x_73); +lean_dec(x_69); +x_74 = lean_ctor_get(x_70, 1); +lean_inc(x_74); +lean_dec(x_70); +x_75 = lean_string_dec_eq(x_74, x_60); +lean_dec(x_74); +if (x_75 == 0) +{ +lean_object* x_76; +lean_dec(x_73); +lean_dec(x_72); +lean_dec(x_3); +lean_dec(x_2); +x_76 = lean_box(0); +x_16 = x_76; +goto block_24; +} +else +{ +lean_object* x_77; uint8_t x_78; +x_77 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__7; +x_78 = lean_string_dec_eq(x_73, x_77); +lean_dec(x_73); +if (x_78 == 0) +{ +lean_object* x_79; +lean_dec(x_72); +lean_dec(x_3); +lean_dec(x_2); +x_79 = lean_box(0); +x_16 = x_79; +goto block_24; +} +else +{ +lean_object* x_80; uint8_t x_81; +x_80 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__8; +x_81 = lean_string_dec_eq(x_72, x_80); +lean_dec(x_72); +if (x_81 == 0) +{ +lean_object* x_82; +lean_dec(x_3); +lean_dec(x_2); +x_82 = lean_box(0); +x_16 = x_82; +goto block_24; +} +else +{ +lean_object* x_83; +x_83 = l_Lean_Parser_declareLeadingBuiltinParser(x_3, x_2, x_4, x_7); +return x_83; +} +} +} +} +else +{ +lean_object* x_84; +lean_dec(x_71); +lean_dec(x_70); +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_3); +lean_dec(x_2); +x_84 = lean_box(0); +x_16 = x_84; +goto block_24; +} +} +else +{ +lean_object* x_85; +lean_dec(x_70); +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_3); +lean_dec(x_2); +x_85 = lean_box(0); +x_16 = x_85; +goto block_24; +} +} +else +{ +lean_object* x_86; +lean_dec(x_69); +lean_dec(x_68); +lean_dec(x_3); +lean_dec(x_2); +x_86 = lean_box(0); +x_16 = x_86; +goto block_24; +} +} +else +{ +lean_object* x_87; +lean_dec(x_68); +lean_dec(x_3); +lean_dec(x_2); +x_87 = lean_box(0); +x_16 = x_87; +goto block_24; +} +} +else +{ +lean_object* x_88; +lean_dec(x_56); +lean_dec(x_3); +lean_dec(x_2); +x_88 = lean_box(0); +x_16 = x_88; +goto block_24; +} +} +} +} +} +else +{ +lean_object* x_89; +lean_dec(x_55); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_52); +lean_dec(x_29); +lean_dec(x_3); +lean_dec(x_2); +x_89 = lean_box(0); +x_16 = x_89; +goto block_24; +} +} +else +{ +lean_object* x_90; +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_52); +lean_dec(x_29); +lean_dec(x_3); +lean_dec(x_2); +x_90 = lean_box(0); +x_16 = x_90; +goto block_24; +} +} +else +{ +lean_object* x_91; +lean_dec(x_53); +lean_dec(x_52); +lean_dec(x_29); +lean_dec(x_3); +lean_dec(x_2); +x_91 = lean_box(0); +x_16 = x_91; +goto block_24; +} +} +else +{ +lean_object* x_92; +lean_dec(x_52); +lean_dec(x_29); +lean_dec(x_3); +lean_dec(x_2); +x_92 = lean_box(0); +x_16 = x_92; +goto block_24; +} +} +else +{ +lean_object* x_93; +lean_dec(x_51); +lean_dec(x_29); +lean_dec(x_3); +lean_dec(x_2); +x_93 = lean_box(0); +x_16 = x_93; +goto block_24; +} +} +default: +{ +lean_object* x_94; +lean_dec(x_29); +lean_dec(x_3); +lean_dec(x_2); +x_94 = lean_box(0); +x_16 = x_94; +goto block_24; +} +} +} +block_24: +{ +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_23; +lean_dec(x_16); +x_17 = l_Lean_Name_toString___closed__1; +x_18 = l_Lean_Name_toStringWithSep___main(x_17, x_4); +x_19 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; +x_20 = lean_string_append(x_19, x_18); +lean_dec(x_18); +x_21 = l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___closed__1; +x_22 = lean_string_append(x_20, x_21); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_7); +return x_23; +} +} +} +else +{ +lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_95 = l_Lean_Name_toString___closed__1; +x_96 = l_Lean_Name_toStringWithSep___main(x_95, x_1); +x_97 = l_Lean_registerTagAttribute___lambda__4___closed__1; +x_98 = lean_string_append(x_97, x_96); +lean_dec(x_96); +x_99 = l_Lean_registerTagAttribute___lambda__4___closed__5; +x_100 = lean_string_append(x_98, x_99); +x_101 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_101, 0, x_100); +lean_ctor_set(x_101, 1, x_7); +return x_101; +} +} +} +lean_object* l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___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, lean_object* x_7) { +_start: +{ +uint8_t x_8; lean_object* x_9; +x_8 = lean_unbox(x_6); +lean_dec(x_6); +x_9 = l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_8, x_7); +lean_dec(x_5); +return x_9; +} +} +lean_object* _init_l_Lean_Parser_registerBuiltinParserAttribute___closed__1() { +_start: +{ +lean_object* x_1; +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) { +_start: +{ +lean_object* x_4; +lean_inc(x_2); +x_4 = l___private_Init_Lean_Parser_Parser_9__addBuiltinParserCategory(x_2, x_3); +if (lean_obj_tag(x_4) == 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_inc(x_1); +x_6 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_17__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_registerAttribute(x_9, x_5); +return x_10; +} +else +{ +uint8_t x_11; +lean_dec(x_2); +lean_dec(x_1); +x_11 = !lean_is_exclusive(x_4); +if (x_11 == 0) +{ +return x_4; +} +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_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_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_5; +lean_dec(x_1); +x_5 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_6 = lean_ctor_get(x_3, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_3, 1); +lean_inc(x_7); +lean_dec(x_3); +x_8 = l_Lean_Parser_addToken(x_2, x_6); +if (lean_obj_tag(x_8) == 0) +{ +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; +lean_dec(x_7); +x_9 = lean_ctor_get(x_8, 0); +lean_inc(x_9); +lean_dec(x_8); +x_10 = l_Lean_Name_toString___closed__1; +x_11 = l_Lean_Name_toStringWithSep___main(x_10, x_1); +x_12 = l_Lean_Parser_addLeadingParser___closed__1; +x_13 = lean_string_append(x_12, x_11); +lean_dec(x_11); +x_14 = l_Lean_registerTagAttribute___lambda__4___closed__3; +x_15 = lean_string_append(x_13, x_14); +x_16 = lean_string_append(x_15, x_9); +lean_dec(x_9); +x_17 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_4); +return x_17; +} +else +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_8, 0); +lean_inc(x_18); +lean_dec(x_8); +x_2 = x_18; +x_3 = x_7; +goto _start; +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_2); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_dec(x_3); +return x_4; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = lean_array_fget(x_2, x_3); +x_8 = lean_unsigned_to_nat(1u); +x_9 = lean_nat_add(x_3, x_8); +lean_dec(x_3); +switch (lean_obj_tag(x_7)) { +case 0: +{ +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_7, 0); +lean_inc(x_10); +lean_dec(x_7); +x_11 = l_Lean_Parser_addSyntaxNodeKind(x_4, x_10); +x_3 = x_9; +x_4 = x_11; +goto _start; +} +case 1: +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_7, 0); +lean_inc(x_13); +lean_dec(x_7); +x_14 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3(x_13, x_4); +lean_dec(x_13); +x_3 = x_9; +x_4 = x_14; +goto _start; +} +default: +{ +x_3 = x_9; +goto _start; +} +} +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_array_get_size(x_2); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(x_5); +if (x_6 == 0) +{ +lean_dec(x_3); +return x_4; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_7 = lean_array_fget(x_2, x_3); +x_8 = l_Lean_Parser_addSyntaxNodeKind(x_4, x_7); +x_9 = lean_unsigned_to_nat(1u); +x_10 = lean_nat_add(x_3, x_9); +lean_dec(x_3); +x_3 = x_10; +x_4 = x_8; +goto _start; +} +} +} +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_unsigned_to_nat(0u); +x_5 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__4(x_3, x_3, x_4, x_2); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_6 = lean_ctor_get(x_1, 0); +x_7 = lean_unsigned_to_nat(0u); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__5(x_6, x_6, x_7, x_2); +return x_8; +} +} +} +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; +x_3 = lean_ctor_get(x_1, 0); +x_4 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3(x_3, x_2); +return x_4; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_18__ParserAttribute_add(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7) { +_start: +{ +uint8_t x_8; +x_8 = l_Lean_Syntax_hasArgs(x_5); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_1); +x_9 = l_Lean_Parser_parserExtension; +x_10 = l_Lean_PersistentEnvExtension_getState___rarg(x_9, x_3); +x_11 = lean_ctor_get(x_10, 2); +lean_inc(x_11); +lean_dec(x_10); +lean_inc(x_4); +lean_inc(x_11); +lean_inc(x_3); +x_12 = l_Lean_Parser_mkParserOfConstantUnsafe(x_3, x_11, x_4); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_11); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_14, 0, x_13); +lean_ctor_set(x_14, 1, x_7); +return x_14; +} +else +{ +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; +x_15 = lean_ctor_get(x_12, 0); +lean_inc(x_15); +lean_dec(x_12); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_box(0); +x_21 = lean_apply_1(x_19, x_20); +lean_inc(x_4); +x_22 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__1(x_4, x_3, x_21, x_7); +if (lean_obj_tag(x_22) == 0) +{ +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; +x_24 = lean_ctor_get(x_22, 0); +x_25 = lean_ctor_get(x_18, 1); +lean_inc(x_25); +lean_dec(x_18); +x_26 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; +x_27 = lean_apply_1(x_25, x_26); +x_28 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2(x_27, x_24); +lean_dec(x_27); +x_29 = lean_unbox(x_16); +lean_inc(x_17); +lean_inc(x_4); +lean_inc(x_2); +x_30 = l_Lean_Parser_addParser(x_29, x_11, x_2, x_4, x_17); +if (lean_obj_tag(x_30) == 0) +{ +lean_object* x_31; +lean_dec(x_28); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_4); +lean_dec(x_2); +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +lean_dec(x_30); +lean_ctor_set_tag(x_22, 1); +lean_ctor_set(x_22, 0, x_31); +return x_22; +} +else +{ +lean_object* x_32; uint8_t x_33; lean_object* x_34; +lean_dec(x_30); +x_32 = lean_alloc_ctor(3, 3, 1); +lean_ctor_set(x_32, 0, x_2); +lean_ctor_set(x_32, 1, x_4); +lean_ctor_set(x_32, 2, x_17); +x_33 = lean_unbox(x_16); +lean_dec(x_16); +lean_ctor_set_uint8(x_32, sizeof(void*)*3, x_33); +x_34 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_9, x_28, x_32); +lean_ctor_set(x_22, 0, x_34); +return x_22; +} +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; lean_object* x_42; +x_35 = lean_ctor_get(x_22, 0); +x_36 = lean_ctor_get(x_22, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_22); +x_37 = lean_ctor_get(x_18, 1); +lean_inc(x_37); +lean_dec(x_18); +x_38 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; +x_39 = lean_apply_1(x_37, x_38); +x_40 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2(x_39, x_35); +lean_dec(x_39); +x_41 = lean_unbox(x_16); +lean_inc(x_17); +lean_inc(x_4); +lean_inc(x_2); +x_42 = l_Lean_Parser_addParser(x_41, x_11, x_2, x_4, x_17); +if (lean_obj_tag(x_42) == 0) +{ +lean_object* x_43; lean_object* x_44; +lean_dec(x_40); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_4); +lean_dec(x_2); +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +lean_dec(x_42); +x_44 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_44, 0, x_43); +lean_ctor_set(x_44, 1, x_36); +return x_44; +} +else +{ +lean_object* x_45; uint8_t x_46; lean_object* x_47; lean_object* x_48; +lean_dec(x_42); +x_45 = lean_alloc_ctor(3, 3, 1); +lean_ctor_set(x_45, 0, x_2); +lean_ctor_set(x_45, 1, x_4); +lean_ctor_set(x_45, 2, x_17); +x_46 = lean_unbox(x_16); +lean_dec(x_16); +lean_ctor_set_uint8(x_45, sizeof(void*)*3, x_46); +x_47 = l_Lean_PersistentEnvExtension_addEntry___rarg(x_9, x_40, x_45); +x_48 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_48, 1, x_36); +return x_48; +} +} +} +else +{ +uint8_t x_49; +lean_dec(x_18); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_11); +lean_dec(x_4); +lean_dec(x_2); +x_49 = !lean_is_exclusive(x_22); +if (x_49 == 0) +{ +return x_22; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_22, 0); +x_51 = lean_ctor_get(x_22, 1); +lean_inc(x_51); +lean_inc(x_50); +lean_dec(x_22); +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; +} +} +} +} +else +{ +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; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_53 = l_Lean_Name_toString___closed__1; +x_54 = l_Lean_Name_toStringWithSep___main(x_53, x_1); +x_55 = l_Lean_registerTagAttribute___lambda__4___closed__1; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean_registerTagAttribute___lambda__4___closed__5; +x_58 = lean_string_append(x_56, x_57); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_58); +lean_ctor_set(x_59, 1, x_7); +return x_59; +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__4___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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__4(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__5___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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__5(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__3(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___spec__2(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___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, lean_object* x_7) { +_start: +{ +uint8_t x_8; lean_object* x_9; +x_8 = lean_unbox(x_6); +lean_dec(x_6); +x_9 = l___private_Init_Lean_Parser_Parser_18__ParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_8, x_7); +lean_dec(x_5); +return x_9; +} +} +lean_object* _init_l_Lean_Parser_registerParserAttribute___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("parser"); +return x_1; +} +} +lean_object* l_Lean_Parser_registerParserAttribute(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; lean_object* x_8; +lean_inc(x_1); +x_4 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__ParserAttribute_add___boxed), 7, 2); +lean_closure_set(x_4, 0, x_1); +lean_closure_set(x_4, 1, x_2); +x_5 = l_Lean_Parser_registerParserAttribute___closed__1; +x_6 = 1; +x_7 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_7, 0, x_1); +lean_ctor_set(x_7, 1, x_5); +lean_ctor_set(x_7, 2, x_4); +lean_ctor_set_uint8(x_7, sizeof(void*)*3, x_6); +x_8 = l_Lean_registerAttribute(x_7, x_3); return x_8; } } @@ -36102,35 +34401,17 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("builtinTermParsingTable"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__4() { -_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_regBuiltinTermParserAttr___closed__3; -x_3 = lean_name_mk_string(x_1, x_2); -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; x_2 = l_Lean_Parser_regBuiltinTermParserAttr___closed__2; -x_3 = l_Lean_Parser_regBuiltinTermParserAttr___closed__4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_4 = l_Lean_Parser_registerBuiltinParserAttribute(x_2, x_3, x_1); return x_4; } } -lean_object* _init_l_Lean_Parser_mkTermParserAttribute___closed__1() { +lean_object* _init_l_Lean_Parser_regTermParserAttribute___closed__1() { _start: { lean_object* x_1; @@ -36138,83 +34419,33 @@ x_1 = lean_mk_string("termParser"); return x_1; } } -lean_object* _init_l_Lean_Parser_mkTermParserAttribute___closed__2() { +lean_object* _init_l_Lean_Parser_regTermParserAttribute___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_mkTermParserAttribute___closed__1; +x_2 = l_Lean_Parser_regTermParserAttribute___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_mkTermParserAttribute___closed__3() { +lean_object* l_Lean_Parser_regTermParserAttribute(lean_object* x_1) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_builtinTermParsingTable; -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_mkTermParserAttribute___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("term"); -return x_1; -} -} -lean_object* _init_l_Lean_Parser_mkTermParserAttribute___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("term parser"); -return x_1; -} -} -lean_object* l_Lean_Parser_mkTermParserAttribute(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; -x_2 = l_Lean_Parser_mkTermParserAttribute___closed__2; -x_3 = l_Lean_Parser_mkTermParserAttribute___closed__4; -x_4 = l_Lean_Parser_mkTermParserAttribute___closed__5; -x_5 = l_Lean_Parser_mkTermParserAttribute___closed__3; -x_6 = l_Lean_Parser_registerParserAttribute(x_2, x_3, x_4, x_5, x_1); -return x_6; -} -} -lean_object* l_Lean_Parser_termParser___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; -x_5 = l_Lean_Parser_termParserAttribute; -x_6 = l_Lean_Parser_ParserAttribute_runParserFn(x_5, x_1, x_3, x_4); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = l_Lean_Parser_regTermParserAttribute___closed__2; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_4 = l_Lean_Parser_registerParserAttribute(x_2, x_3, x_1); +return x_4; } } lean_object* l_Lean_Parser_termParser(uint8_t x_1, lean_object* x_2) { _start: { -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_termParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_3, 0, x_2); -x_4 = l_Lean_Parser_Parser_inhabited___closed__1; -x_5 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -lean_object* l_Lean_Parser_termParser___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_termParser___lambda__1(x_1, x_2, x_3, x_4); -lean_dec(x_2); -return x_5; +lean_object* x_3; lean_object* x_4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_4 = l_Lean_Parser_categoryParser(x_1, x_3, x_2); +return x_4; } } lean_object* l_Lean_Parser_termParser___boxed(lean_object* x_1, lean_object* x_2) { @@ -36396,7 +34627,7 @@ x_3 = l_Lean_Parser_dollarSymbol(x_2); return x_3; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___closed__1() { _start: { lean_object* x_1; @@ -36404,7 +34635,7 @@ x_1 = lean_mk_string("unexpected ':'"); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; uint8_t x_5; @@ -36440,7 +34671,7 @@ return x_2; else { lean_object* x_13; lean_object* x_14; -x_13 = l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___closed__1; +x_13 = l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___closed__1; x_14 = l_Lean_Parser_ParserState_mkUnexpectedError(x_2, x_13); return x_14; } @@ -36453,20 +34684,20 @@ return x_2; } } } -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1(uint8_t x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___boxed), 2, 0); +x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___boxed), 2, 0); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon(uint8_t x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon(uint8_t x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_2 = lean_box(x_1); -x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___boxed), 2, 1); +x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___boxed), 2, 1); lean_closure_set(x_3, 0, x_2); x_4 = l_Lean_Parser_Parser_inhabited___closed__1; x_5 = lean_alloc_ctor(0, 2, 0); @@ -36475,37 +34706,37 @@ lean_ctor_set(x_5, 1, x_3); return x_5; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg(x_1, x_2); +x_3 = l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___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___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1(x_3, x_2); +x_4 = l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1(x_3, x_2); lean_dec(x_2); return x_4; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__noImmediateColon___boxed(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_19__noImmediateColon___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___private_Init_Lean_Parser_Parser_18__noImmediateColon(x_2); +x_3 = l___private_Init_Lean_Parser_Parser_19__noImmediateColon(x_2); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___rarg(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___rarg(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -36514,20 +34745,20 @@ x_3 = l_Lean_Parser_ParserState_pushSyntax(x_1, x_2); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1(uint8_t x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1(uint8_t x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___rarg), 1, 0); +x_4 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___rarg), 1, 0); return x_4; } } -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone(uint8_t x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone(uint8_t x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_2 = lean_box(x_1); -x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___boxed), 3, 1); +x_3 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___boxed), 3, 1); lean_closure_set(x_3, 0, x_2); x_4 = l_Lean_Parser_Parser_inhabited___closed__1; x_5 = lean_alloc_ctor(0, 2, 0); @@ -36536,25 +34767,25 @@ lean_ctor_set(x_5, 1, x_3); return x_5; } } -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___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_1); lean_dec(x_1); -x_5 = l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1(x_4, x_2, x_3); +x_5 = l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1(x_4, x_2, x_3); lean_dec(x_3); lean_dec(x_2); return x_5; } } -lean_object* l___private_Init_Lean_Parser_Parser_19__pushNone___boxed(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_20__pushNone___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___private_Init_Lean_Parser_Parser_19__pushNone(x_2); +x_3 = l___private_Init_Lean_Parser_Parser_20__pushNone(x_2); return x_3; } } @@ -36639,38 +34870,38 @@ return x_3; lean_object* _init_l_Lean_Parser_mkAntiquot___closed__5() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_mkAntiquot___closed__4; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_mkAntiquot___closed__6() { -_start: -{ lean_object* x_1; x_1 = lean_mk_string("*"); return x_1; } } -lean_object* _init_l_Lean_Parser_mkAntiquot___closed__7() { +lean_object* _init_l_Lean_Parser_mkAntiquot___closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_mkAntiquot___closed__6; +x_1 = l_Lean_Parser_mkAntiquot___closed__5; x_2 = l_String_trim(x_1); return x_2; } } +lean_object* _init_l_Lean_Parser_mkAntiquot___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_mkAntiquot___closed__6; +x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); +return x_3; +} +} lean_object* _init_l_Lean_Parser_mkAntiquot___closed__8() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Parser_mkAntiquot___closed__7; -x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_mkAntiquot___closed__6; +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_mkAntiquot___closed__9() { @@ -36678,8 +34909,7 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_mkAntiquot___closed__7; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___rarg___boxed), 4, 1); -lean_closure_set(x_2, 0, x_1); +x_2 = l_Lean_Parser_optionaInfo(x_1); return x_2; } } @@ -36688,18 +34918,21 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_mkAntiquot___closed__8; -x_2 = l_Lean_Parser_optionaInfo(x_1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_optionalFn___rarg), 4, 1); +lean_closure_set(x_2, 0, x_1); return x_2; } } lean_object* _init_l_Lean_Parser_mkAntiquot___closed__11() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_mkAntiquot___closed__9; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_optionalFn___rarg), 4, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_2 = l_Lean_Parser_mkAntiquot___closed__4; +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* _init_l_Lean_Parser_mkAntiquot___closed__12() { @@ -36723,7 +34956,7 @@ return x_2; lean_object* l_Lean_Parser_mkAntiquot(uint8_t 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; 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; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +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; 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; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; x_5 = l___private_Init_Util_1__mkPanicMessage___closed__2; x_6 = lean_string_append(x_5, x_2); x_7 = l_Lean_Parser_mkAntiquot___closed__3; @@ -36745,127 +34978,131 @@ x_18 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); lean_closure_set(x_18, 0, x_17); lean_closure_set(x_18, 1, x_14); x_19 = l_Lean_Parser_dollarSymbol(x_1); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); +x_20 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_21 = l_Lean_Parser_mkAntiquot___closed__4; +x_22 = l_Lean_Parser_categoryParser(x_1, x_20, x_21); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +lean_dec(x_22); +x_24 = lean_ctor_get(x_19, 0); +lean_inc(x_24); lean_dec(x_19); -x_21 = lean_box(x_1); -x_22 = lean_alloc_closure((void*)(l_Lean_Parser_dollarSymbol___elambda__1___boxed), 2, 1); -lean_closure_set(x_22, 0, x_21); +x_25 = lean_box(x_1); +x_26 = lean_alloc_closure((void*)(l_Lean_Parser_dollarSymbol___elambda__1___boxed), 2, 1); +lean_closure_set(x_26, 0, x_25); if (lean_obj_tag(x_3) == 0) { -lean_object* x_73; -x_73 = lean_box(0); -x_23 = x_73; -goto block_72; +lean_object* x_75; +x_75 = lean_box(0); +x_27 = x_75; +goto block_74; } else { -lean_object* x_74; -x_74 = lean_ctor_get(x_3, 0); -lean_inc(x_74); +lean_object* x_76; +x_76 = lean_ctor_get(x_3, 0); +lean_inc(x_76); lean_dec(x_3); -x_23 = x_74; -goto block_72; +x_27 = x_76; +goto block_74; } -block_72: +block_74: { -lean_object* x_24; lean_object* x_25; -x_24 = l_Lean_Parser_mkAntiquot___closed__2; -x_25 = l_Lean_Name_append___main(x_23, x_24); -lean_dec(x_23); +lean_object* x_28; lean_object* x_29; +x_28 = l_Lean_Parser_mkAntiquot___closed__2; +x_29 = l_Lean_Name_append___main(x_27, x_28); +lean_dec(x_27); if (x_4 == 0) { -lean_object* x_26; lean_object* 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; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_26 = l_Lean_Parser_mkAntiquot___closed__10; -x_27 = l_Lean_Parser_andthenInfo(x_16, x_26); -x_28 = l_Lean_Parser_mkAntiquot___closed__11; -x_29 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_29, 0, x_18); -lean_closure_set(x_29, 1, x_28); -x_30 = l_Lean_Parser_Parser_inhabited___closed__1; -x_31 = l_Lean_Parser_andthenInfo(x_30, x_27); -x_32 = l_Lean_Parser_mkAntiquot___closed__5; +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; 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_30 = l_Lean_Parser_mkAntiquot___closed__9; +x_31 = l_Lean_Parser_andthenInfo(x_16, x_30); +x_32 = l_Lean_Parser_mkAntiquot___closed__10; x_33 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_33, 0, x_32); -lean_closure_set(x_33, 1, x_29); -x_34 = l_Lean_Parser_andthenInfo(x_15, x_31); -x_35 = l_Lean_Parser_mkAntiquot___closed__13; +lean_closure_set(x_33, 0, x_18); +lean_closure_set(x_33, 1, x_32); +x_34 = l_Lean_Parser_andthenInfo(x_23, x_31); +x_35 = l_Lean_Parser_mkAntiquot___closed__11; x_36 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); lean_closure_set(x_36, 0, x_35); lean_closure_set(x_36, 1, x_33); -x_37 = l_Lean_Parser_andthenInfo(x_20, x_34); -x_38 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_38, 0, x_22); -lean_closure_set(x_38, 1, x_36); -x_39 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); +x_37 = l_Lean_Parser_andthenInfo(x_15, x_34); +x_38 = l_Lean_Parser_mkAntiquot___closed__13; +x_39 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); lean_closure_set(x_39, 0, x_38); -lean_inc(x_25); -x_40 = l_Lean_Parser_nodeInfo(x_25, x_37); -x_41 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot___elambda__1___rarg), 5, 2); -lean_closure_set(x_41, 0, x_25); +lean_closure_set(x_39, 1, x_36); +x_40 = l_Lean_Parser_andthenInfo(x_24, x_37); +x_41 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_41, 0, x_26); lean_closure_set(x_41, 1, x_39); -x_42 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_42, 0, x_40); -lean_ctor_set(x_42, 1, x_41); -return x_42; +x_42 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); +lean_closure_set(x_42, 0, x_41); +lean_inc(x_29); +x_43 = l_Lean_Parser_nodeInfo(x_29, x_40); +x_44 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot___elambda__1___rarg), 5, 2); +lean_closure_set(x_44, 0, x_29); +lean_closure_set(x_44, 1, x_42); +x_45 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_45, 0, x_43); +lean_ctor_set(x_45, 1, x_44); +return x_45; } else { -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; 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; lean_object* x_58; lean_object* x_59; 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_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_43 = l___private_Init_Lean_Parser_Parser_18__noImmediateColon(x_1); -x_44 = l___private_Init_Lean_Parser_Parser_19__pushNone(x_1); -x_45 = lean_ctor_get(x_43, 0); -lean_inc(x_45); -lean_dec(x_43); -x_46 = lean_ctor_get(x_44, 0); -lean_inc(x_46); -lean_dec(x_44); -x_47 = l_Lean_Parser_andthenInfo(x_45, x_46); -x_48 = lean_box(x_1); -x_49 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___boxed), 2, 1); -lean_closure_set(x_49, 0, x_48); -x_50 = lean_box(x_1); -x_51 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__pushNone___elambda__1___boxed), 3, 1); -lean_closure_set(x_51, 0, x_50); -x_52 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_52, 0, x_49); -lean_closure_set(x_52, 1, x_51); -x_53 = l_Lean_Parser_orelseInfo(x_16, x_47); -x_54 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn___rarg), 5, 2); -lean_closure_set(x_54, 0, x_18); -lean_closure_set(x_54, 1, x_52); -x_55 = l_Lean_Parser_mkAntiquot___closed__10; -x_56 = l_Lean_Parser_andthenInfo(x_53, x_55); -x_57 = l_Lean_Parser_mkAntiquot___closed__11; -x_58 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_58, 0, x_54); -lean_closure_set(x_58, 1, x_57); -x_59 = l_Lean_Parser_Parser_inhabited___closed__1; -x_60 = l_Lean_Parser_andthenInfo(x_59, x_56); -x_61 = l_Lean_Parser_mkAntiquot___closed__5; -x_62 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_62, 0, x_61); -lean_closure_set(x_62, 1, x_58); -x_63 = l_Lean_Parser_andthenInfo(x_15, x_60); -x_64 = l_Lean_Parser_mkAntiquot___closed__13; -x_65 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_65, 0, x_64); -lean_closure_set(x_65, 1, x_62); -x_66 = l_Lean_Parser_andthenInfo(x_20, x_63); +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; 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; lean_object* x_58; lean_object* x_59; 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_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_46 = l___private_Init_Lean_Parser_Parser_19__noImmediateColon(x_1); +x_47 = l___private_Init_Lean_Parser_Parser_20__pushNone(x_1); +x_48 = lean_ctor_get(x_46, 0); +lean_inc(x_48); +lean_dec(x_46); +x_49 = lean_ctor_get(x_47, 0); +lean_inc(x_49); +lean_dec(x_47); +x_50 = l_Lean_Parser_andthenInfo(x_48, x_49); +x_51 = lean_box(x_1); +x_52 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___boxed), 2, 1); +lean_closure_set(x_52, 0, x_51); +x_53 = lean_box(x_1); +x_54 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_20__pushNone___elambda__1___boxed), 3, 1); +lean_closure_set(x_54, 0, x_53); +x_55 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_55, 0, x_52); +lean_closure_set(x_55, 1, x_54); +x_56 = l_Lean_Parser_orelseInfo(x_16, x_50); +x_57 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn___rarg), 5, 2); +lean_closure_set(x_57, 0, x_18); +lean_closure_set(x_57, 1, x_55); +x_58 = l_Lean_Parser_mkAntiquot___closed__9; +x_59 = l_Lean_Parser_andthenInfo(x_56, x_58); +x_60 = l_Lean_Parser_mkAntiquot___closed__10; +x_61 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_61, 0, x_57); +lean_closure_set(x_61, 1, x_60); +x_62 = l_Lean_Parser_andthenInfo(x_23, x_59); +x_63 = l_Lean_Parser_mkAntiquot___closed__11; +x_64 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_64, 0, x_63); +lean_closure_set(x_64, 1, x_61); +x_65 = l_Lean_Parser_andthenInfo(x_15, x_62); +x_66 = l_Lean_Parser_mkAntiquot___closed__13; x_67 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_67, 0, x_22); -lean_closure_set(x_67, 1, x_65); -x_68 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); -lean_closure_set(x_68, 0, x_67); -lean_inc(x_25); -x_69 = l_Lean_Parser_nodeInfo(x_25, x_66); -x_70 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot___elambda__2___rarg), 5, 2); -lean_closure_set(x_70, 0, x_25); -lean_closure_set(x_70, 1, x_68); -x_71 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_71, 0, x_69); -lean_ctor_set(x_71, 1, x_70); -return x_71; +lean_closure_set(x_67, 0, x_66); +lean_closure_set(x_67, 1, x_64); +x_68 = l_Lean_Parser_andthenInfo(x_24, x_65); +x_69 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +lean_closure_set(x_69, 0, x_26); +lean_closure_set(x_69, 1, x_67); +x_70 = lean_alloc_closure((void*)(l_Lean_Parser_tryFn___rarg), 4, 1); +lean_closure_set(x_70, 0, x_69); +lean_inc(x_29); +x_71 = l_Lean_Parser_nodeInfo(x_29, x_68); +x_72 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot___elambda__2___rarg), 5, 2); +lean_closure_set(x_72, 0, x_29); +lean_closure_set(x_72, 1, x_70); +x_73 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_73, 0, x_71); +lean_ctor_set(x_73, 1, x_72); +return x_73; } } } @@ -38397,117 +36634,162 @@ l_Lean_Parser_ParsingTables_inhabited___closed__1 = _init_l_Lean_Parser_ParsingT lean_mark_persistent(l_Lean_Parser_ParsingTables_inhabited___closed__1); l_Lean_Parser_ParsingTables_inhabited = _init_l_Lean_Parser_ParsingTables_inhabited(); lean_mark_persistent(l_Lean_Parser_ParsingTables_inhabited); +l_Lean_Parser_mkCategoryParserFnRef___closed__1 = _init_l_Lean_Parser_mkCategoryParserFnRef___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkCategoryParserFnRef___closed__1); +res = l_Lean_Parser_mkCategoryParserFnRef(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +l_Lean_Parser_categoryParserFnRef = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_categoryParserFnRef); +lean_dec_ref(res); +l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1 = _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1(); +lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1); +l_Lean_Parser_mkCategoryParserFnExtension___closed__1 = _init_l_Lean_Parser_mkCategoryParserFnExtension___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkCategoryParserFnExtension___closed__1); +l_Lean_Parser_categoryParserFnExtension___closed__1 = _init_l_Lean_Parser_categoryParserFnExtension___closed__1(); +lean_mark_persistent(l_Lean_Parser_categoryParserFnExtension___closed__1); +l_Lean_Parser_categoryParserFnExtension___closed__2 = _init_l_Lean_Parser_categoryParserFnExtension___closed__2(); +lean_mark_persistent(l_Lean_Parser_categoryParserFnExtension___closed__2); +l_Lean_Parser_categoryParserFnExtension___closed__3 = _init_l_Lean_Parser_categoryParserFnExtension___closed__3(); +lean_mark_persistent(l_Lean_Parser_categoryParserFnExtension___closed__3); +res = l_Lean_Parser_mkCategoryParserFnExtension(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +l_Lean_Parser_categoryParserFnExtension = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_categoryParserFnExtension); +lean_dec_ref(res); res = l_Lean_Parser_mkBuiltinTokenTable(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Parser_builtinTokenTable = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Parser_builtinTokenTable); lean_dec_ref(res); -l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__1 = _init_l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__1); -l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__2 = _init_l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__2); -l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__3 = _init_l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__3(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_8__mergePrecendences___closed__3); -l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1 = _init_l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__1); -l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__2 = _init_l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__2); -l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__3 = _init_l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__3(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_9__addTokenConfig___closed__3); -l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1 = _init_l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__1); -l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__2 = _init_l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_11__addTokenTableEntry___closed__2); -l_Lean_Parser_TokenTableAttribute_inhabited___closed__1 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__1(); -lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__1); -l_Lean_Parser_TokenTableAttribute_inhabited___closed__2 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__2(); -lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__2); -l_Lean_Parser_TokenTableAttribute_inhabited___closed__3 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__3(); -lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__3); -l_Lean_Parser_TokenTableAttribute_inhabited___closed__4 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__4(); -lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__4); -l_Lean_Parser_TokenTableAttribute_inhabited___closed__5 = _init_l_Lean_Parser_TokenTableAttribute_inhabited___closed__5(); -lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited___closed__5); -l_Lean_Parser_TokenTableAttribute_inhabited = _init_l_Lean_Parser_TokenTableAttribute_inhabited(); -lean_mark_persistent(l_Lean_Parser_TokenTableAttribute_inhabited); -l_Lean_Parser_mkTokenTableAttribute___closed__1 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__1); -l_Lean_Parser_mkTokenTableAttribute___closed__2 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__2(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__2); -l_Lean_Parser_mkTokenTableAttribute___closed__3 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__3(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__3); -l_Lean_Parser_mkTokenTableAttribute___closed__4 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__4(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__4); -l_Lean_Parser_mkTokenTableAttribute___closed__5 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__5(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__5); -l_Lean_Parser_mkTokenTableAttribute___closed__6 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__6(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__6); -l_Lean_Parser_mkTokenTableAttribute___closed__7 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__7(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__7); -l_Lean_Parser_mkTokenTableAttribute___closed__8 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__8(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__8); -l_Lean_Parser_mkTokenTableAttribute___closed__9 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__9(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__9); -l_Lean_Parser_mkTokenTableAttribute___closed__10 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__10(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__10); -l_Lean_Parser_mkTokenTableAttribute___closed__11 = _init_l_Lean_Parser_mkTokenTableAttribute___closed__11(); -lean_mark_persistent(l_Lean_Parser_mkTokenTableAttribute___closed__11); -res = l_Lean_Parser_mkTokenTableAttribute(lean_io_mk_world()); +l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1 = _init_l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1(); +lean_mark_persistent(l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1); +res = l_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_tokenTableAttribute = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_tokenTableAttribute); +l_Lean_Parser_builtinSyntaxNodeKindSetRef = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_builtinSyntaxNodeKindSetRef); lean_dec_ref(res); -l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1 = _init_l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1(); -lean_mark_persistent(l_PersistentHashMap_empty___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1); -res = l_Lean_Parser_mkSyntaxNodeKindSetRef(lean_io_mk_world()); +l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1 = _init_l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1(); +lean_mark_persistent(l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinParserCategories___spec__1); +res = l_Lean_Parser_mkBuiltinParserCategories(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_syntaxNodeKindSetRef = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindSetRef); -lean_dec_ref(res); -l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__1 = _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__1(); -lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__1); -l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2 = _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2(); -lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkSyntaxNodeKindExtension___spec__6___closed__2); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__1 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__1); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__2 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__2(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__2); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__3 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__3(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__3); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__4 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__4(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__4); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__5 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__5(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__5); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__6 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__6(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__6); -l_Lean_Parser_mkSyntaxNodeKindExtension___closed__7 = _init_l_Lean_Parser_mkSyntaxNodeKindExtension___closed__7(); -lean_mark_persistent(l_Lean_Parser_mkSyntaxNodeKindExtension___closed__7); -l_Lean_Parser_syntaxNodeKindExtension___closed__1 = _init_l_Lean_Parser_syntaxNodeKindExtension___closed__1(); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension___closed__1); -l_Lean_Parser_syntaxNodeKindExtension___closed__2 = _init_l_Lean_Parser_syntaxNodeKindExtension___closed__2(); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension___closed__2); -l_Lean_Parser_syntaxNodeKindExtension___closed__3 = _init_l_Lean_Parser_syntaxNodeKindExtension___closed__3(); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension___closed__3); -l_Lean_Parser_syntaxNodeKindExtension___closed__4 = _init_l_Lean_Parser_syntaxNodeKindExtension___closed__4(); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension___closed__4); -l_Lean_Parser_syntaxNodeKindExtension___closed__5 = _init_l_Lean_Parser_syntaxNodeKindExtension___closed__5(); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension___closed__5); -l_Lean_Parser_syntaxNodeKindExtension___closed__6 = _init_l_Lean_Parser_syntaxNodeKindExtension___closed__6(); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension___closed__6); -res = l_Lean_Parser_mkSyntaxNodeKindExtension(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_syntaxNodeKindExtension = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_syntaxNodeKindExtension); +l_Lean_Parser_builtinParserCategoriesRef = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_builtinParserCategoriesRef); lean_dec_ref(res); +l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__1 = _init_l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__1); +l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2 = _init_l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_8__addParserCategory___closed__2); +l_Lean_Parser_ParserExtensionState_inhabited___closed__1 = _init_l_Lean_Parser_ParserExtensionState_inhabited___closed__1(); +lean_mark_persistent(l_Lean_Parser_ParserExtensionState_inhabited___closed__1); +l_Lean_Parser_ParserExtensionState_inhabited = _init_l_Lean_Parser_ParserExtensionState_inhabited(); +lean_mark_persistent(l_Lean_Parser_ParserExtensionState_inhabited); +l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__1 = _init_l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__1); +l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__2 = _init_l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__2); +l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__3 = _init_l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_11__mergePrecendences___closed__3); +l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1 = _init_l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__1); +l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__2 = _init_l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__2); +l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__3 = _init_l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_12__addTokenConfig___closed__3); +l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1 = _init_l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1(); +lean_mark_persistent(l_Lean_Parser_throwUnknownParserCategory___rarg___closed__1); +l_Lean_Parser_addLeadingParser___closed__1 = _init_l_Lean_Parser_addLeadingParser___closed__1(); +lean_mark_persistent(l_Lean_Parser_addLeadingParser___closed__1); +l_Lean_Parser_addLeadingParser___closed__2 = _init_l_Lean_Parser_addLeadingParser___closed__2(); +lean_mark_persistent(l_Lean_Parser_addLeadingParser___closed__2); +l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1 = _init_l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_14__updateBuiltinTokens___closed__1); res = l_Lean_Parser_mkBuiltinParsingTablesRef(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Parser_builtinTermParsingTable = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Parser_builtinTermParsingTable); lean_dec_ref(res); -l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1 = _init_l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_13__updateBuiltinTokens___closed__1); -l_Lean_Parser_addLeadingParser___closed__1 = _init_l_Lean_Parser_addLeadingParser___closed__1(); -lean_mark_persistent(l_Lean_Parser_addLeadingParser___closed__1); +res = l_Lean_Parser_mkBuiltinParsingTablesRef(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +l_Lean_Parser_builtinLevelParsingTable = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_builtinLevelParsingTable); +lean_dec_ref(res); +res = l_Lean_Parser_mkBuiltinParsingTablesRef(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +l_Lean_Parser_builtinCommandParsingTable = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_builtinCommandParsingTable); +lean_dec_ref(res); +l_Lean_Parser_addBuiltinLeadingParser___closed__1 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__1(); +lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__1); +l_Lean_Parser_addBuiltinLeadingParser___closed__2 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__2(); +lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__2); +l_Lean_Parser_addBuiltinLeadingParser___closed__3 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__3(); +lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__3); +l_Lean_Parser_addBuiltinLeadingParser___closed__4 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__4(); +lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__4); +l_Lean_Parser_addBuiltinLeadingParser___closed__5 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__5(); +lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__5); +l_Lean_Parser_addBuiltinLeadingParser___closed__6 = _init_l_Lean_Parser_addBuiltinLeadingParser___closed__6(); +lean_mark_persistent(l_Lean_Parser_addBuiltinLeadingParser___closed__6); +l_Lean_Parser_compileParserDescr___main___closed__1 = _init_l_Lean_Parser_compileParserDescr___main___closed__1(); +lean_mark_persistent(l_Lean_Parser_compileParserDescr___main___closed__1); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__1 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__1); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__2 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__2(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__2); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__3 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__3(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__3); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__4 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__4(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__4); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__5 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__5(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__5); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__6 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__6(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__6); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__7 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__7(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__7); +l_Lean_Parser_mkParserOfConstantUnsafe___closed__8 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__8(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__8); +l_Lean_Parser_mkParserOfConstant___closed__1 = _init_l_Lean_Parser_mkParserOfConstant___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkParserOfConstant___closed__1); +l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1 = _init_l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1(); +lean_mark_persistent(l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1); +l_Lean_Parser_mkParserExtension___closed__1 = _init_l_Lean_Parser_mkParserExtension___closed__1(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__1); +l_Lean_Parser_mkParserExtension___closed__2 = _init_l_Lean_Parser_mkParserExtension___closed__2(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__2); +l_Lean_Parser_mkParserExtension___closed__3 = _init_l_Lean_Parser_mkParserExtension___closed__3(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__3); +l_Lean_Parser_mkParserExtension___closed__4 = _init_l_Lean_Parser_mkParserExtension___closed__4(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__4); +l_Lean_Parser_mkParserExtension___closed__5 = _init_l_Lean_Parser_mkParserExtension___closed__5(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__5); +l_Lean_Parser_mkParserExtension___closed__6 = _init_l_Lean_Parser_mkParserExtension___closed__6(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__6); +l_Lean_Parser_mkParserExtension___closed__7 = _init_l_Lean_Parser_mkParserExtension___closed__7(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__7); +l_Lean_Parser_mkParserExtension___closed__8 = _init_l_Lean_Parser_mkParserExtension___closed__8(); +lean_mark_persistent(l_Lean_Parser_mkParserExtension___closed__8); +l_Lean_Parser_parserExtension___closed__1 = _init_l_Lean_Parser_parserExtension___closed__1(); +lean_mark_persistent(l_Lean_Parser_parserExtension___closed__1); +l_Lean_Parser_parserExtension___closed__2 = _init_l_Lean_Parser_parserExtension___closed__2(); +lean_mark_persistent(l_Lean_Parser_parserExtension___closed__2); +l_Lean_Parser_parserExtension___closed__3 = _init_l_Lean_Parser_parserExtension___closed__3(); +lean_mark_persistent(l_Lean_Parser_parserExtension___closed__3); +l_Lean_Parser_parserExtension___closed__4 = _init_l_Lean_Parser_parserExtension___closed__4(); +lean_mark_persistent(l_Lean_Parser_parserExtension___closed__4); +l_Lean_Parser_parserExtension___closed__5 = _init_l_Lean_Parser_parserExtension___closed__5(); +lean_mark_persistent(l_Lean_Parser_parserExtension___closed__5); +l_Lean_Parser_parserExtension___closed__6 = _init_l_Lean_Parser_parserExtension___closed__6(); +lean_mark_persistent(l_Lean_Parser_parserExtension___closed__6); +res = l_Lean_Parser_mkParserExtension(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +l_Lean_Parser_parserExtension = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Parser_parserExtension); +lean_dec_ref(res); +l_Lean_Parser_setCategoryParserFnRef___closed__1 = _init_l_Lean_Parser_setCategoryParserFnRef___closed__1(); +lean_mark_persistent(l_Lean_Parser_setCategoryParserFnRef___closed__1); +res = l_Lean_Parser_setCategoryParserFnRef(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); l_Lean_Parser_declareBuiltinParser___closed__1 = _init_l_Lean_Parser_declareBuiltinParser___closed__1(); lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__1); l_Lean_Parser_declareBuiltinParser___closed__2 = _init_l_Lean_Parser_declareBuiltinParser___closed__2(); @@ -38536,94 +36818,25 @@ l_Lean_Parser_declareTrailingBuiltinParser___closed__1 = _init_l_Lean_Parser_dec lean_mark_persistent(l_Lean_Parser_declareTrailingBuiltinParser___closed__1); l_Lean_Parser_declareTrailingBuiltinParser___closed__2 = _init_l_Lean_Parser_declareTrailingBuiltinParser___closed__2(); lean_mark_persistent(l_Lean_Parser_declareTrailingBuiltinParser___closed__2); -l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1 = _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1); -l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2 = _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__2); -l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3 = _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3(); -lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3); -l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4 = _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4(); -lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__4); -l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5 = _init_l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5(); -lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5); +l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___closed__1 = _init_l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_17__BuiltinParserAttribute_add___closed__1); l_Lean_Parser_registerBuiltinParserAttribute___closed__1 = _init_l_Lean_Parser_registerBuiltinParserAttribute___closed__1(); lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___closed__1); -l_Lean_Parser_runBuiltinParserUnsafe___closed__1 = _init_l_Lean_Parser_runBuiltinParserUnsafe___closed__1(); -lean_mark_persistent(l_Lean_Parser_runBuiltinParserUnsafe___closed__1); -l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1 = _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1(); -lean_mark_persistent(l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__1); -l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2 = _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2(); -lean_mark_persistent(l_Lean_Parser_ParserAttributeExtensionState_inhabited___closed__2); -l_Lean_Parser_ParserAttributeExtensionState_inhabited = _init_l_Lean_Parser_ParserAttributeExtensionState_inhabited(); -lean_mark_persistent(l_Lean_Parser_ParserAttributeExtensionState_inhabited); -l_Lean_Parser_ParserAttribute_Inhabited___closed__1 = _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__1(); -lean_mark_persistent(l_Lean_Parser_ParserAttribute_Inhabited___closed__1); -l_Lean_Parser_ParserAttribute_Inhabited___closed__2 = _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__2(); -lean_mark_persistent(l_Lean_Parser_ParserAttribute_Inhabited___closed__2); -l_Lean_Parser_ParserAttribute_Inhabited___closed__3 = _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__3(); -lean_mark_persistent(l_Lean_Parser_ParserAttribute_Inhabited___closed__3); -l_Lean_Parser_ParserAttribute_Inhabited___closed__4 = _init_l_Lean_Parser_ParserAttribute_Inhabited___closed__4(); -lean_mark_persistent(l_Lean_Parser_ParserAttribute_Inhabited___closed__4); -l_Lean_Parser_ParserAttribute_Inhabited = _init_l_Lean_Parser_ParserAttribute_Inhabited(); -lean_mark_persistent(l_Lean_Parser_ParserAttribute_Inhabited); -l_Lean_Parser_mkParserAttributeTable___closed__1 = _init_l_Lean_Parser_mkParserAttributeTable___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkParserAttributeTable___closed__1); -res = l_Lean_Parser_mkParserAttributeTable(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_parserAttributeTableRef = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_parserAttributeTableRef); -lean_dec_ref(res); -l_Lean_Parser_compileParserDescr___main___closed__1 = _init_l_Lean_Parser_compileParserDescr___main___closed__1(); -lean_mark_persistent(l_Lean_Parser_compileParserDescr___main___closed__1); -l_Lean_Parser_compileParserDescr___main___closed__2 = _init_l_Lean_Parser_compileParserDescr___main___closed__2(); -lean_mark_persistent(l_Lean_Parser_compileParserDescr___main___closed__2); -l_Lean_Parser_mkParserOfConstantUnsafe___closed__1 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__1); -l_Lean_Parser_mkParserOfConstantUnsafe___closed__2 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__2(); -lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__2); -l_Lean_Parser_mkParserOfConstantUnsafe___closed__3 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__3(); -lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__3); -l_Lean_Parser_mkParserOfConstantUnsafe___closed__4 = _init_l_Lean_Parser_mkParserOfConstantUnsafe___closed__4(); -lean_mark_persistent(l_Lean_Parser_mkParserOfConstantUnsafe___closed__4); -l_Lean_Parser_mkParserOfConstant___closed__1 = _init_l_Lean_Parser_mkParserOfConstant___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkParserOfConstant___closed__1); -l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1___closed__1 = _init_l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1___closed__1(); -lean_mark_persistent(l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_16__addParserAttribute___spec__1___closed__1); l_Lean_Parser_registerParserAttribute___closed__1 = _init_l_Lean_Parser_registerParserAttribute___closed__1(); lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__1); -l_Lean_Parser_registerParserAttribute___closed__2 = _init_l_Lean_Parser_registerParserAttribute___closed__2(); -lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__2); -l_Lean_Parser_registerParserAttribute___closed__3 = _init_l_Lean_Parser_registerParserAttribute___closed__3(); -lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__3); -l_Lean_Parser_registerParserAttribute___closed__4 = _init_l_Lean_Parser_registerParserAttribute___closed__4(); -lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__4); -l_Lean_Parser_registerParserAttribute___closed__5 = _init_l_Lean_Parser_registerParserAttribute___closed__5(); -lean_mark_persistent(l_Lean_Parser_registerParserAttribute___closed__5); l_Lean_Parser_regBuiltinTermParserAttr___closed__1 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__1(); lean_mark_persistent(l_Lean_Parser_regBuiltinTermParserAttr___closed__1); l_Lean_Parser_regBuiltinTermParserAttr___closed__2 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__2(); lean_mark_persistent(l_Lean_Parser_regBuiltinTermParserAttr___closed__2); -l_Lean_Parser_regBuiltinTermParserAttr___closed__3 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__3(); -lean_mark_persistent(l_Lean_Parser_regBuiltinTermParserAttr___closed__3); -l_Lean_Parser_regBuiltinTermParserAttr___closed__4 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__4(); -lean_mark_persistent(l_Lean_Parser_regBuiltinTermParserAttr___closed__4); res = l_Lean_Parser_regBuiltinTermParserAttr(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Parser_mkTermParserAttribute___closed__1 = _init_l_Lean_Parser_mkTermParserAttribute___closed__1(); -lean_mark_persistent(l_Lean_Parser_mkTermParserAttribute___closed__1); -l_Lean_Parser_mkTermParserAttribute___closed__2 = _init_l_Lean_Parser_mkTermParserAttribute___closed__2(); -lean_mark_persistent(l_Lean_Parser_mkTermParserAttribute___closed__2); -l_Lean_Parser_mkTermParserAttribute___closed__3 = _init_l_Lean_Parser_mkTermParserAttribute___closed__3(); -lean_mark_persistent(l_Lean_Parser_mkTermParserAttribute___closed__3); -l_Lean_Parser_mkTermParserAttribute___closed__4 = _init_l_Lean_Parser_mkTermParserAttribute___closed__4(); -lean_mark_persistent(l_Lean_Parser_mkTermParserAttribute___closed__4); -l_Lean_Parser_mkTermParserAttribute___closed__5 = _init_l_Lean_Parser_mkTermParserAttribute___closed__5(); -lean_mark_persistent(l_Lean_Parser_mkTermParserAttribute___closed__5); -res = l_Lean_Parser_mkTermParserAttribute(lean_io_mk_world()); +l_Lean_Parser_regTermParserAttribute___closed__1 = _init_l_Lean_Parser_regTermParserAttribute___closed__1(); +lean_mark_persistent(l_Lean_Parser_regTermParserAttribute___closed__1); +l_Lean_Parser_regTermParserAttribute___closed__2 = _init_l_Lean_Parser_regTermParserAttribute___closed__2(); +lean_mark_persistent(l_Lean_Parser_regTermParserAttribute___closed__2); +res = l_Lean_Parser_regTermParserAttribute(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; -l_Lean_Parser_termParserAttribute = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Parser_termParserAttribute); lean_dec_ref(res); l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__1 = _init_l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__1(); lean_mark_persistent(l_Lean_Parser_dollarSymbol___elambda__1___rarg___closed__1); @@ -38639,8 +36852,8 @@ l_Lean_Parser_dollarSymbol___closed__1 = _init_l_Lean_Parser_dollarSymbol___clos lean_mark_persistent(l_Lean_Parser_dollarSymbol___closed__1); l_Lean_Parser_dollarSymbol___closed__2 = _init_l_Lean_Parser_dollarSymbol___closed__2(); lean_mark_persistent(l_Lean_Parser_dollarSymbol___closed__2); -l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___closed__1 = _init_l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_18__noImmediateColon___elambda__1___rarg___closed__1); +l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___closed__1 = _init_l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_19__noImmediateColon___elambda__1___rarg___closed__1); l_Lean_Parser_mkAntiquot___closed__1 = _init_l_Lean_Parser_mkAntiquot___closed__1(); lean_mark_persistent(l_Lean_Parser_mkAntiquot___closed__1); l_Lean_Parser_mkAntiquot___closed__2 = _init_l_Lean_Parser_mkAntiquot___closed__2(); diff --git a/stage0/stdlib/Init/Lean/Parser/Term.c b/stage0/stdlib/Init/Lean/Parser/Term.c index 69283a3b0d..c9a1e15e37 100644 --- a/stage0/stdlib/Init/Lean/Parser/Term.c +++ b/stage0/stdlib/Init/Lean/Parser/Term.c @@ -133,6 +133,7 @@ lean_object* l_Lean_Parser_Term_not___closed__6; 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; +lean_object* l_Lean_Parser_Term_namedArgument___closed__7; lean_object* l_Lean_Parser_Term_bne___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_suffices___closed__2; lean_object* l_Lean_Parser_Term_doExpr___closed__2; @@ -192,6 +193,7 @@ lean_object* l_Lean_Parser_Term_inaccessible___closed__4; lean_object* l_Lean_Parser_Term_arrayLit___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_show___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_match__syntax___closed__7; +lean_object* l_Lean_Parser_Term_matchAlt___closed__8; lean_object* l_Lean_Parser_Term_prod___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_eq___elambda__1___closed__1; lean_object* l_Lean_Parser_sepByFn___at_Lean_Parser_Term_anonymousCtor___elambda__1___spec__1(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*); @@ -200,7 +202,6 @@ lean_object* l_Lean_Parser_Term_and___elambda__1(lean_object*, lean_object*, lea lean_object* l_Lean_Parser_Term_doSeq___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_div; -extern lean_object* l_Lean_Parser_levelParserAttribute; lean_object* l_Lean_Parser_Term_simpleBinder___closed__1; lean_object* l_Lean_Parser_Term_do___closed__3; lean_object* l_Lean_Parser_Term_div___elambda__1(lean_object*, lean_object*, lean_object*); @@ -353,8 +354,6 @@ lean_object* l_Lean_Parser_Term_let___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_not___closed__3; extern lean_object* l_Lean_Parser_mkAntiquot___closed__4; lean_object* l_Lean_Parser_Term_quotedName___closed__6; -lean_object* l_Lean_Parser_ParserAttribute_runParserFn(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_addBuiltinParser(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letEqns___closed__3; lean_object* l_Lean_Parser_Term_optIdent___closed__4; lean_object* lean_array_push(lean_object*, lean_object*); @@ -380,6 +379,7 @@ lean_object* l_Lean_Parser_Term_num___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_checkIsSort___closed__1; lean_object* l___regBuiltinParser_Lean_Parser_Term_map(lean_object*); lean_object* l_Lean_Parser_Term_letEqns___elambda__1___closed__2; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__4; lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Term_let(lean_object*); lean_object* l_Lean_Parser_Term_doPat___closed__8; @@ -434,6 +434,7 @@ lean_object* l_Lean_Parser_Term_parser_x21___closed__5; lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_bnot___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_instBinder___closed__7; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__6; lean_object* lean_string_utf8_byte_size(lean_object*); lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_if; @@ -474,6 +475,7 @@ lean_object* l_Array_iterateMAux___main___at_Lean_mkAppStx___spec__1___closed__1 lean_object* l_Lean_Parser_Term_lt___elambda__1___closed__2; extern lean_object* l_Lean_Parser_strLit___closed__1; lean_object* l_Lean_Parser_Term_pow___elambda__1___closed__4; +lean_object* l_Lean_Parser_Term_uminus___closed__7; lean_object* l_Lean_Parser_Term_suffices___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__8; lean_object* l_Lean_Parser_symbolFn___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -481,9 +483,7 @@ lean_object* l_Lean_Parser_Term_borrowed; lean_object* l_Lean_Parser_Term_and___closed__1; lean_object* l_Lean_Parser_Term_paren___closed__7; lean_object* l_Array_iterateMAux___main___at_Lean_mkAppStx___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_termParser___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__17; -extern lean_object* l_Lean_Parser_termParserAttribute; lean_object* l_Lean_Parser_Term_anonymousCtor___closed__2; lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_explicit___closed__4; @@ -667,6 +667,7 @@ lean_object* l_Lean_Parser_Term_tupleTail___closed__1; lean_object* l_Lean_Parser_Term_not___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__17; lean_object* l_Lean_Parser_Term_le___elambda__1___closed__5; +lean_object* l_Lean_Parser_Term_sortApp___closed__6; lean_object* l_Lean_Parser_Term_structInstSource___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_str___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_bracketedDoSeq___closed__5; @@ -728,6 +729,7 @@ lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_sorry___elambda__1___closed__8; extern lean_object* l_Lean_Parser_checkLeadingFn___closed__1; lean_object* l_Lean_Parser_Term_explicitUniv___closed__6; +lean_object* l_Lean_Parser_Term_arrayRef___closed__7; lean_object* l_Lean_Parser_Term_equiv; lean_object* l_Lean_Parser_Term_doId___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_sort; @@ -989,7 +991,6 @@ lean_object* l_Lean_Parser_Term_structInstField___closed__1; lean_object* l_Lean_Parser_Term_le___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_iff___elambda__1___closed__2; -extern lean_object* l_Lean_Parser_mkTermParserAttribute___closed__4; lean_object* l_Lean_Parser_Term_match__syntax; lean_object* l_Lean_Parser_Term_if___closed__1; lean_object* l_Lean_Parser_Term_id___elambda__1___closed__4; @@ -1157,6 +1158,7 @@ extern lean_object* l_Lean_Parser_Level_paren___closed__4; lean_object* l_Lean_Parser_Term_have___closed__10; lean_object* l_Lean_Parser_Term_arrayRef___closed__6; lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__15; +lean_object* l_Lean_Parser_Term_borrowed___closed__7; lean_object* l_Lean_Parser_Term_doLet___closed__5; lean_object* l___regBuiltinParser_Lean_Parser_Term_prod(lean_object*); lean_object* l_Lean_Parser_Term_arrow___elambda__1___closed__3; @@ -1174,6 +1176,7 @@ lean_object* l_Lean_Parser_Term_doElem___elambda__1(lean_object*, lean_object*, lean_object* l_Lean_Parser_Term_id___closed__5; lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3; +lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_prop___closed__3; lean_object* l_Lean_Parser_Term_proj___closed__1; lean_object* l_Lean_Parser_Term_letIdLhs___closed__1; @@ -1203,6 +1206,7 @@ lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_have___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_letIdLhs___closed__2; +lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_doPat___closed__1; lean_object* l_Lean_Parser_Term_show___closed__3; lean_object* l_Lean_Parser_Term_le___elambda__1___closed__1; @@ -1220,6 +1224,7 @@ lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_fun___closed__9; lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__8; +lean_object* l_Lean_Parser_Term_typeAscription___closed__7; lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_nomatch___closed__1; lean_object* l_Lean_Parser_Term_cdot___elambda__1___closed__1; @@ -1257,6 +1262,7 @@ lean_object* l_Lean_Parser_Term_haveAssign___closed__6; lean_object* l_Lean_Parser_Term_arrayRef___closed__2; extern lean_object* l_Lean_Parser_appPrec; lean_object* l_Lean_Parser_Term_bnot___elambda__1___closed__1; +lean_object* l_Lean_Parser_Term_namedArgument___closed__8; lean_object* l_Lean_Parser_Term_arrayRef___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_do___elambda__1___closed__7; @@ -1283,6 +1289,7 @@ lean_object* l_Lean_Parser_Term_uminus___closed__2; lean_object* l_Lean_Parser_Term_str___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_explicit___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_fromTerm___closed__4; +lean_object* l_Lean_Parser_Term_matchAlt___closed__9; lean_object* l_Lean_Parser_Term_arrayLit; lean_object* l_Lean_Parser_Term_mul___closed__2; lean_object* l_Lean_Parser_Term_mod___closed__2; @@ -1381,12 +1388,14 @@ lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_ lean_object* l_Lean_Parser_Term_explicitBinder___elambda__1___closed__1; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match___elambda__1___spec__2(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_paren___elambda__1___closed__2; +lean_object* l_Lean_Parser_categoryParser(uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letIdLhs___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_forall___closed__2; lean_object* l_Lean_Parser_Term_matchAlt___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_num; lean_object* l_Lean_Parser_Term_bracketedDoSeq___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_listLit___closed__10; +lean_object* l_Lean_Parser_Term_inaccessible___closed__7; 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; @@ -1560,6 +1569,7 @@ lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_typeSpec___closed__4; lean_object* l_Lean_Parser_Term_mapRev___elambda__1___closed__1; uint8_t l_Lean_Syntax_isNone(lean_object*); +lean_object* l_Lean_Parser_Term_app___closed__6; lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1; lean_object* l_Lean_Parser_Term_dollarProj___closed__6; lean_object* l_Lean_Parser_Term_hole; @@ -1586,6 +1596,7 @@ lean_object* l_Lean_Parser_Term_explicitBinder___closed__9; lean_object* l_Lean_Parser_Term_letEqns___closed__4; extern lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_pow___closed__3; +lean_object* l_Lean_Parser_Term_not___closed__8; lean_object* l_Lean_Parser_Term_match___closed__11; lean_object* l_Lean_Parser_Term_implicitBinder___boxed(lean_object*); lean_object* l_Lean_Parser_Term_mapConst___elambda__1___closed__2; @@ -1593,6 +1604,7 @@ lean_object* l_Lean_Parser_Term_if___closed__9; lean_object* l_Lean_Parser_Term_doLet___closed__1; lean_object* l___regBuiltinParser_Lean_Parser_Term_modN(lean_object*); lean_object* l_Lean_Parser_Term_typeSpec___closed__1; +lean_object* l_Lean_Parser_Term_namedPattern___closed__8; lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_namedArgument___closed__6; @@ -1653,6 +1665,7 @@ lean_object* l_Lean_Parser_Term_pow; lean_object* l_Lean_Parser_Term_letIdDecl___closed__4; lean_object* l_Lean_Parser_Term_leftArrow___closed__1; lean_object* l_Lean_Parser_Term_match__syntax___closed__6; +lean_object* l_Lean_Parser_addBuiltinTrailingParser(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_where___closed__2; lean_object* l_Lean_Parser_Term_do___elambda__1___closed__6; @@ -1699,6 +1712,7 @@ lean_object* l_Lean_Parser_Term_gt___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_typeSpec___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_doPat___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_map___elambda__1___closed__4; +extern lean_object* l_Lean_Parser_addBuiltinLeadingParser___closed__5; lean_object* l_Lean_Parser_Term_listLit___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_namedPattern___closed__2; lean_object* l_Lean_Parser_Term_letEqns___closed__2; @@ -1810,6 +1824,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Term_or(lean_object*); lean_object* l_Lean_Parser_Term_iff___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_antiquot___closed__1; lean_object* l_Lean_Parser_Term_doPat___closed__5; +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_forall___elambda__1___closed__4; lean_object* l_Lean_Parser_numLitFn___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_binderDefault___closed__3; @@ -1943,7 +1958,7 @@ return x_5; lean_object* l_Lean_Parser_Term_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; 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_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; lean_inc(x_3); x_4 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_4, 0, x_3); @@ -1958,21 +1973,28 @@ lean_closure_set(x_8, 1, x_6); x_9 = lean_unsigned_to_nat(1u); x_10 = lean_nat_sub(x_3, x_9); lean_dec(x_3); -x_11 = lean_alloc_closure((void*)(l_Lean_Parser_termParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_11, 0, x_10); -x_12 = l_Lean_Parser_Parser_inhabited___closed__1; -x_13 = l_Lean_Parser_andthenInfo(x_7, x_12); -x_14 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_14, 0, x_8); -lean_closure_set(x_14, 1, x_11); -x_15 = l_Lean_Parser_epsilonInfo; -x_16 = l_Lean_Parser_andthenInfo(x_15, x_13); -x_17 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixR___elambda__1), 4, 1); -lean_closure_set(x_17, 0, x_14); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_16); -lean_ctor_set(x_18, 1, x_17); -return x_18; +x_11 = 1; +x_12 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +lean_inc(x_10); +x_13 = l_Lean_Parser_categoryParser(x_11, x_12, x_10); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +lean_dec(x_13); +x_15 = l_Lean_Parser_andthenInfo(x_7, x_14); +x_16 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 2); +lean_closure_set(x_16, 0, x_12); +lean_closure_set(x_16, 1, x_10); +x_17 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +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); +lean_closure_set(x_20, 0, x_17); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_19); +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) { @@ -2014,7 +2036,7 @@ return x_5; lean_object* l_Lean_Parser_Term_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; 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_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; lean_inc(x_2); x_3 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_3, 0, x_2); @@ -2026,21 +2048,28 @@ lean_closure_set(x_6, 0, x_4); x_7 = lean_unsigned_to_nat(1u); x_8 = lean_nat_sub(x_2, x_7); lean_dec(x_2); -x_9 = lean_alloc_closure((void*)(l_Lean_Parser_termParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_9, 0, x_8); -x_10 = l_Lean_Parser_Parser_inhabited___closed__1; -x_11 = l_Lean_Parser_andthenInfo(x_5, x_10); -x_12 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_12, 0, x_6); -lean_closure_set(x_12, 1, x_9); -x_13 = l_Lean_Parser_epsilonInfo; -x_14 = l_Lean_Parser_andthenInfo(x_13, x_11); -x_15 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR___elambda__1), 4, 1); -lean_closure_set(x_15, 0, x_12); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_14); -lean_ctor_set(x_16, 1, x_15); -return x_16; +x_9 = 1; +x_10 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +lean_inc(x_8); +x_11 = l_Lean_Parser_categoryParser(x_9, x_10, x_8); +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +lean_dec(x_11); +x_13 = l_Lean_Parser_andthenInfo(x_5, x_12); +x_14 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 2); +lean_closure_set(x_14, 0, x_10); +lean_closure_set(x_14, 1, x_8); +x_15 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +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); +lean_closure_set(x_18, 0, x_15); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_17); +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) { @@ -2081,7 +2110,7 @@ return x_5; lean_object* l_Lean_Parser_Term_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; 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_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; lean_inc(x_3); x_4 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_4, 0, x_3); @@ -2093,21 +2122,28 @@ x_7 = l_Lean_Parser_unicodeSymbolInfo(x_5, x_6, x_4); x_8 = lean_alloc_closure((void*)(l_Lean_Parser_unicodeSymbolFn___rarg___boxed), 5, 2); lean_closure_set(x_8, 0, x_5); lean_closure_set(x_8, 1, x_6); -x_9 = lean_alloc_closure((void*)(l_Lean_Parser_termParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_9, 0, x_3); -x_10 = l_Lean_Parser_Parser_inhabited___closed__1; -x_11 = l_Lean_Parser_andthenInfo(x_7, x_10); -x_12 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_12, 0, x_8); -lean_closure_set(x_12, 1, x_9); -x_13 = l_Lean_Parser_epsilonInfo; -x_14 = l_Lean_Parser_andthenInfo(x_13, x_11); -x_15 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixL___elambda__1), 4, 1); -lean_closure_set(x_15, 0, x_12); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_14); -lean_ctor_set(x_16, 1, x_15); -return x_16; +x_9 = 1; +x_10 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +lean_inc(x_3); +x_11 = l_Lean_Parser_categoryParser(x_9, x_10, x_3); +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +lean_dec(x_11); +x_13 = l_Lean_Parser_andthenInfo(x_7, x_12); +x_14 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 2); +lean_closure_set(x_14, 0, x_10); +lean_closure_set(x_14, 1, x_3); +x_15 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +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); +lean_closure_set(x_18, 0, x_15); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_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) { @@ -2149,7 +2185,7 @@ return x_5; lean_object* l_Lean_Parser_Term_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; 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_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; lean_inc(x_2); x_3 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_3, 0, x_2); @@ -2158,21 +2194,28 @@ lean_inc(x_4); x_5 = l_Lean_Parser_symbolInfo(x_4, x_3); x_6 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___rarg___boxed), 4, 1); lean_closure_set(x_6, 0, x_4); -x_7 = lean_alloc_closure((void*)(l_Lean_Parser_termParser___lambda__1___boxed), 4, 1); -lean_closure_set(x_7, 0, x_2); -x_8 = l_Lean_Parser_Parser_inhabited___closed__1; -x_9 = l_Lean_Parser_andthenInfo(x_5, x_8); -x_10 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); -lean_closure_set(x_10, 0, x_6); -lean_closure_set(x_10, 1, x_7); -x_11 = l_Lean_Parser_epsilonInfo; -x_12 = l_Lean_Parser_andthenInfo(x_11, x_9); -x_13 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL___elambda__1), 4, 1); -lean_closure_set(x_13, 0, x_10); -x_14 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_14, 0, x_12); -lean_ctor_set(x_14, 1, x_13); -return x_14; +x_7 = 1; +x_8 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +lean_inc(x_2); +x_9 = l_Lean_Parser_categoryParser(x_7, x_8, x_2); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +lean_dec(x_9); +x_11 = l_Lean_Parser_andthenInfo(x_5, x_10); +x_12 = lean_alloc_closure((void*)(l_Lean_Parser_categoryParser___elambda__1___rarg___boxed), 5, 2); +lean_closure_set(x_12, 0, x_8); +lean_closure_set(x_12, 1, x_2); +x_13 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn___rarg), 5, 2); +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); +lean_closure_set(x_16, 0, x_13); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_15); +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) { @@ -2235,10 +2278,10 @@ x_9 = lean_array_get_size(x_8); lean_dec(x_8); x_10 = lean_ctor_get(x_7, 1); lean_inc(x_10); -x_11 = l_Lean_Parser_levelParserAttribute; +x_11 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_12 = lean_unsigned_to_nat(0u); lean_inc(x_6); -x_13 = l_Lean_Parser_ParserAttribute_runParserFn(x_11, x_12, x_6, x_7); +x_13 = l_Lean_Parser_categoryParserFn(x_11, x_12, x_6, x_7); x_14 = lean_ctor_get(x_13, 3); lean_inc(x_14); if (lean_obj_tag(x_14) == 0) @@ -2800,11 +2843,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_explicitUniv___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_explicitUniv___closed__2; -x_3 = l_Lean_Parser_sepBy1Info(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Level_paren___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_explicitUniv___closed__2; +x_4 = l_Lean_Parser_sepBy1Info(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_explicitUniv___closed__4() { @@ -3145,9 +3190,9 @@ lean_inc(x_21); if (lean_obj_tag(x_21) == 0) { lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_22 = l_Lean_Parser_termParserAttribute; +x_22 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_23 = l_Lean_Parser_appPrec; -x_24 = l_Lean_Parser_ParserAttribute_runParserFn(x_22, x_23, x_2, x_20); +x_24 = l_Lean_Parser_categoryParserFn(x_22, x_23, x_2, x_20); x_25 = l_Lean_Parser_Term_namedPattern___elambda__1___closed__2; x_26 = l_Lean_Parser_ParserState_mkNode(x_24, x_25, x_19); x_27 = l_Lean_Parser_mergeOrElseErrors(x_26, x_14, x_11); @@ -3192,46 +3237,59 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_namedPattern___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = l_Lean_Parser_appPrec; +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__3() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_namedPattern___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_namedPattern___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_namedPattern___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_namedPattern___closed__2; +x_2 = l_Lean_Parser_Term_namedPattern___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__4() { +lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_namedPattern___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_namedPattern___closed__3; +x_3 = l_Lean_Parser_Term_namedPattern___closed__4; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__5() { +lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_epsilonInfo; -x_2 = l_Lean_Parser_Term_namedPattern___closed__4; +x_2 = l_Lean_Parser_Term_namedPattern___closed__5; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__6() { +lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__7() { _start: { lean_object* x_1; @@ -3239,12 +3297,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_namedPattern___elambda__1), return x_1; } } -lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__7() { +lean_object* _init_l_Lean_Parser_Term_namedPattern___closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_namedPattern___closed__5; -x_2 = l_Lean_Parser_Term_namedPattern___closed__6; +x_1 = l_Lean_Parser_Term_namedPattern___closed__6; +x_2 = l_Lean_Parser_Term_namedPattern___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); @@ -3255,7 +3313,7 @@ lean_object* _init_l_Lean_Parser_Term_namedPattern() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_namedPattern___closed__7; +x_1 = l_Lean_Parser_Term_namedPattern___closed__8; return x_1; } } @@ -3578,13 +3636,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_id(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_id___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_id; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_id___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_id; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_num___elambda__1___closed__1() { @@ -3734,13 +3791,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_num(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_num___elambda__1___closed__1; -x_5 = l_Lean_Parser_Term_num; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_num___elambda__1___closed__1; +x_4 = l_Lean_Parser_Term_num; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_str___elambda__1___closed__1() { @@ -3898,13 +3954,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_str(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_str___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_str; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_str___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_str; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_char___elambda__1___closed__1() { @@ -4062,13 +4117,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_char(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_char___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_char; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_char___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_char; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_type___elambda__1___closed__1() { @@ -4347,13 +4401,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_type(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_type___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_type; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_type___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_type; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__1() { @@ -4632,13 +4685,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sort(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_sort___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_sort; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_sort; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_prop___elambda__1___closed__1() { @@ -4917,13 +4969,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_prop(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_prop___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_prop; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_prop___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_prop; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_hole___elambda__1___closed__1() { @@ -5145,13 +5196,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_hole(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_hole___elambda__1___closed__1; -x_5 = l_Lean_Parser_Term_hole; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_hole___elambda__1___closed__1; +x_4 = l_Lean_Parser_Term_hole; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_sorry___elambda__1___closed__1() { @@ -5422,13 +5472,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sorry(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_sorry___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_sorry; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_sorry___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_sorry; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_cdot___elambda__1___closed__1() { @@ -5707,13 +5756,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_cdot(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_cdot___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_cdot; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_cdot___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_cdot; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_emptyC___elambda__1___closed__1() { @@ -5992,13 +6040,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_emptyC(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_emptyC___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_emptyC; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_emptyC___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_emptyC; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_typeAscription___elambda__1___closed__1() { @@ -6206,9 +6253,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_typeAscription___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -6244,36 +6291,49 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_typeAscription___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__3() { _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_Term_typeAscription___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_typeAscription___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_typeAscription___closed__2; +x_2 = l_Lean_Parser_Term_typeAscription___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__4() { +lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_typeAscription___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_typeAscription___closed__3; +x_3 = l_Lean_Parser_Term_typeAscription___closed__4; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__5() { +lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__6() { _start: { lean_object* x_1; @@ -6281,12 +6341,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_typeAscription___elambda__1) return x_1; } } -lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__6() { +lean_object* _init_l_Lean_Parser_Term_typeAscription___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_typeAscription___closed__4; -x_2 = l_Lean_Parser_Term_typeAscription___closed__5; +x_1 = l_Lean_Parser_Term_typeAscription___closed__5; +x_2 = l_Lean_Parser_Term_typeAscription___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); @@ -6297,7 +6357,7 @@ lean_object* _init_l_Lean_Parser_Term_typeAscription() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_typeAscription___closed__6; +x_1 = l_Lean_Parser_Term_typeAscription___closed__7; return x_1; } } @@ -6311,10 +6371,10 @@ x_9 = lean_array_get_size(x_8); lean_dec(x_8); x_10 = lean_ctor_get(x_7, 1); lean_inc(x_10); -x_11 = l_Lean_Parser_termParserAttribute; +x_11 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_12 = lean_unsigned_to_nat(0u); lean_inc(x_6); -x_13 = l_Lean_Parser_ParserAttribute_runParserFn(x_11, x_12, x_6, x_7); +x_13 = l_Lean_Parser_categoryParserFn(x_11, x_12, x_6, x_7); x_14 = lean_ctor_get(x_13, 3); lean_inc(x_14); if (lean_obj_tag(x_14) == 0) @@ -6643,11 +6703,13 @@ return x_27; lean_object* _init_l_Lean_Parser_Term_tupleTail___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_explicitUniv___closed__2; -x_3 = l_Lean_Parser_sepBy1Info(x_1, x_2); -return x_3; +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_Term_explicitUniv___closed__2; +x_4 = l_Lean_Parser_sepBy1Info(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_tupleTail___closed__2() { @@ -7127,10 +7189,10 @@ x_52 = lean_array_get_size(x_51); lean_dec(x_51); x_53 = lean_ctor_get(x_49, 1); lean_inc(x_53); -x_54 = l_Lean_Parser_termParserAttribute; +x_54 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_55 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_56 = l_Lean_Parser_ParserAttribute_runParserFn(x_54, x_55, x_2, x_49); +x_56 = l_Lean_Parser_categoryParserFn(x_54, x_55, x_2, x_49); x_57 = lean_ctor_get(x_56, 3); lean_inc(x_57); if (lean_obj_tag(x_57) == 0) @@ -7226,13 +7288,15 @@ return x_78; lean_object* _init_l_Lean_Parser_Term_paren___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_parenSpecial; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +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_Parser_inhabited___closed__1; -x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); -return x_4; +x_3 = l_Lean_Parser_Term_parenSpecial; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_andthenInfo(x_2, x_4); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_paren___closed__2() { @@ -7249,7 +7313,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_paren___closed__2; -x_2 = l_Lean_Parser_Level_paren___closed__3; +x_2 = l_Lean_Parser_Level_paren___closed__4; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -7317,13 +7381,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_paren(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_paren___elambda__1___closed__1; -x_5 = l_Lean_Parser_Term_paren; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_paren___elambda__1___closed__1; +x_4 = l_Lean_Parser_Term_paren; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_sepByFn___at_Lean_Parser_Term_anonymousCtor___elambda__1___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { @@ -7701,11 +7764,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_anonymousCtor___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_explicitUniv___closed__2; -x_3 = l_Lean_Parser_sepByInfo(x_1, x_2); -return x_3; +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_Term_explicitUniv___closed__2; +x_4 = l_Lean_Parser_sepByInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_anonymousCtor___closed__3() { @@ -7804,13 +7869,12 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_anonymousCtor(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_anonymousCtor; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_anonymousCtor; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_Term_optIdent___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -8385,10 +8449,10 @@ 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; -x_19 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = lean_ctor_get(x_21, 3); lean_inc(x_22); if (lean_obj_tag(x_22) == 0) @@ -8432,7 +8496,7 @@ else { lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_23); -x_36 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_24); +x_36 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_24); x_37 = l_Lean_Parser_Term_if___elambda__1___closed__2; x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_16); x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_11, x_8); @@ -8507,10 +8571,10 @@ lean_inc(x_60); if (lean_obj_tag(x_60) == 0) { lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; -x_61 = l_Lean_Parser_termParserAttribute; +x_61 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_62 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_63 = l_Lean_Parser_ParserAttribute_runParserFn(x_61, x_62, x_2, x_59); +x_63 = l_Lean_Parser_categoryParserFn(x_61, x_62, x_2, x_59); x_64 = lean_ctor_get(x_63, 3); lean_inc(x_64); if (lean_obj_tag(x_64) == 0) @@ -8651,21 +8715,25 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_if___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_if___closed__3; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_if___closed__3; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_if___closed__5() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_if___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_if___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_if___closed__6() { @@ -8681,11 +8749,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_if___closed__7() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_if___closed__6; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_if___closed__6; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_if___closed__8() { @@ -8763,13 +8833,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_if(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_if___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_if; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_if___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_if; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_fromTerm___elambda__1___closed__1() { @@ -8977,9 +9046,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_fromTerm___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -9015,11 +9084,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_fromTerm___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_fromTerm___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_fromTerm___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_fromTerm___closed__3() { @@ -9269,9 +9340,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_haveAssign___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -9307,11 +9378,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_haveAssign___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_haveAssign___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_haveAssign___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_haveAssign___closed__3() { @@ -9651,9 +9724,9 @@ else { lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_dec(x_19); -x_32 = l_Lean_Parser_termParserAttribute; +x_32 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_33 = lean_unsigned_to_nat(0u); -x_34 = l_Lean_Parser_ParserAttribute_runParserFn(x_32, x_33, x_2, x_20); +x_34 = l_Lean_Parser_categoryParserFn(x_32, x_33, x_2, x_20); x_35 = l_Lean_Parser_Term_have___elambda__1___closed__2; x_36 = l_Lean_Parser_ParserState_mkNode(x_34, x_35, x_16); x_37 = l_Lean_Parser_mergeOrElseErrors(x_36, x_11, x_8); @@ -9717,10 +9790,10 @@ lean_inc(x_55); if (lean_obj_tag(x_55) == 0) { lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_56 = l_Lean_Parser_termParserAttribute; +x_56 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_57 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_58 = l_Lean_Parser_ParserAttribute_runParserFn(x_56, x_57, x_2, x_54); +x_58 = l_Lean_Parser_categoryParserFn(x_56, x_57, x_2, x_54); x_59 = lean_ctor_get(x_58, 3); lean_inc(x_59); if (lean_obj_tag(x_59) == 0) @@ -9781,7 +9854,7 @@ else { lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_dec(x_65); -x_78 = l_Lean_Parser_ParserAttribute_runParserFn(x_56, x_57, x_2, x_66); +x_78 = l_Lean_Parser_categoryParserFn(x_56, x_57, x_2, x_66); x_79 = l_Lean_Parser_Term_have___elambda__1___closed__2; x_80 = l_Lean_Parser_ParserState_mkNode(x_78, x_79, x_16); x_81 = l_Lean_Parser_mergeOrElseErrors(x_80, x_11, x_8); @@ -9931,11 +10004,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_have___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_have___closed__3; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_have___closed__3; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_have___closed__5() { @@ -9951,11 +10026,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_have___closed__6() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_have___closed__5; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_have___closed__5; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_have___closed__7() { @@ -10033,13 +10110,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_have(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_have___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_have; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_have___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_have; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_suffices___elambda__1___closed__1() { @@ -10258,10 +10334,10 @@ 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; -x_21 = l_Lean_Parser_termParserAttribute; +x_21 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_22 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_23 = l_Lean_Parser_ParserAttribute_runParserFn(x_21, x_22, x_2, x_19); +x_23 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_19); x_24 = lean_ctor_get(x_23, 3); lean_inc(x_24); if (lean_obj_tag(x_24) == 0) @@ -10312,7 +10388,7 @@ else { lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_dec(x_27); -x_40 = l_Lean_Parser_ParserAttribute_runParserFn(x_21, x_22, x_2, x_28); +x_40 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_28); x_41 = l_Lean_Parser_Term_suffices___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); @@ -10428,11 +10504,13 @@ return x_4; lean_object* _init_l_Lean_Parser_Term_suffices___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_suffices___closed__2; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_suffices___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_suffices___closed__4() { @@ -10510,13 +10588,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_suffices(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_suffices___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_suffices; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_suffices___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_suffices; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_show___elambda__1___closed__1() { @@ -10727,10 +10804,10 @@ 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; -x_19 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = lean_ctor_get(x_21, 3); lean_inc(x_22); if (lean_obj_tag(x_22) == 0) @@ -10786,13 +10863,15 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_show___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_fromTerm; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +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_Parser_inhabited___closed__1; -x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); -return x_4; +x_3 = l_Lean_Parser_Term_fromTerm; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_andthenInfo(x_2, x_4); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_show___closed__3() { @@ -10858,13 +10937,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_show(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_show___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_show; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_show___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_show; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_fun___elambda__1___spec__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -10877,10 +10955,10 @@ x_6 = lean_array_get_size(x_5); lean_dec(x_5); x_7 = lean_ctor_get(x_4, 1); lean_inc(x_7); -x_8 = l_Lean_Parser_termParserAttribute; +x_8 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_9 = l_Lean_Parser_appPrec; lean_inc(x_3); -x_10 = l_Lean_Parser_ParserAttribute_runParserFn(x_8, x_9, x_3, x_4); +x_10 = l_Lean_Parser_categoryParserFn(x_8, x_9, x_3, x_4); x_11 = lean_ctor_get(x_10, 3); lean_inc(x_11); if (lean_obj_tag(x_11) == 0) @@ -11204,10 +11282,10 @@ x_22 = lean_ctor_get(x_20, 0); lean_inc(x_22); x_23 = lean_array_get_size(x_22); lean_dec(x_22); -x_24 = l_Lean_Parser_termParserAttribute; +x_24 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_25 = l_Lean_Parser_appPrec; lean_inc(x_2); -x_26 = l_Lean_Parser_ParserAttribute_runParserFn(x_24, x_25, x_2, x_20); +x_26 = l_Lean_Parser_categoryParserFn(x_24, x_25, x_2, x_20); x_27 = lean_ctor_get(x_26, 3); lean_inc(x_27); if (lean_obj_tag(x_27) == 0) @@ -11235,7 +11313,7 @@ if (lean_obj_tag(x_37) == 0) { lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; x_38 = lean_unsigned_to_nat(0u); -x_39 = l_Lean_Parser_ParserAttribute_runParserFn(x_24, x_38, x_2, x_36); +x_39 = l_Lean_Parser_categoryParserFn(x_24, x_38, x_2, x_36); x_40 = l_Lean_Parser_Term_fun___elambda__1___closed__2; x_41 = l_Lean_Parser_ParserState_mkNode(x_39, x_40, x_16); x_42 = l_Lean_Parser_mergeOrElseErrors(x_41, x_11, x_8); @@ -11289,7 +11367,7 @@ if (lean_obj_tag(x_56) == 0) { lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; x_57 = lean_unsigned_to_nat(0u); -x_58 = l_Lean_Parser_ParserAttribute_runParserFn(x_24, x_57, x_2, x_55); +x_58 = l_Lean_Parser_categoryParserFn(x_24, x_57, x_2, x_55); x_59 = l_Lean_Parser_Term_fun___elambda__1___closed__2; x_60 = l_Lean_Parser_ParserState_mkNode(x_58, x_59, x_16); x_61 = l_Lean_Parser_mergeOrElseErrors(x_60, x_11, x_8); @@ -11362,21 +11440,25 @@ return x_4; lean_object* _init_l_Lean_Parser_Term_fun___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_fun___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_fun___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_fun___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_fun___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_namedPattern___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_fun___closed__3; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_fun___closed__5() { @@ -11453,13 +11535,12 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Term_fun(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_fun___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_fun; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_fun___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_fun; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_structInstField___elambda__1___closed__1() { @@ -11607,9 +11688,9 @@ else { lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_21); -x_34 = l_Lean_Parser_termParserAttribute; +x_34 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_35 = lean_unsigned_to_nat(0u); -x_36 = l_Lean_Parser_ParserAttribute_runParserFn(x_34, x_35, x_2, x_22); +x_36 = l_Lean_Parser_categoryParserFn(x_34, x_35, x_2, x_22); x_37 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; 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); @@ -11925,9 +12006,9 @@ x_20 = lean_array_get_size(x_19); lean_dec(x_19); x_21 = lean_ctor_get(x_17, 1); lean_inc(x_21); -x_22 = l_Lean_Parser_termParserAttribute; +x_22 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_23 = lean_unsigned_to_nat(0u); -x_24 = l_Lean_Parser_ParserAttribute_runParserFn(x_22, x_23, x_2, x_17); +x_24 = l_Lean_Parser_categoryParserFn(x_22, x_23, x_2, x_17); x_25 = lean_ctor_get(x_24, 3); lean_inc(x_25); if (lean_obj_tag(x_25) == 0) @@ -12005,10 +12086,12 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_structInstSource___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_optionaInfo(x_1); -return x_2; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +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_optionaInfo(x_2); +return x_3; } } lean_object* _init_l_Lean_Parser_Term_structInstSource___closed__3() { @@ -13025,13 +13108,12 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_structInst(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_structInst___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_structInst; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_structInst___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_structInst; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_typeSpec___elambda__1___closed__1() { @@ -13190,9 +13272,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_typeSpec___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -13220,7 +13302,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_typeSpec___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_typeAscription___closed__2; +x_2 = l_Lean_Parser_Term_typeAscription___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } @@ -13565,10 +13647,10 @@ 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; -x_21 = l_Lean_Parser_termParserAttribute; +x_21 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_22 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_23 = l_Lean_Parser_ParserAttribute_runParserFn(x_21, x_22, x_2, x_19); +x_23 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_19); x_24 = lean_ctor_get(x_23, 3); lean_inc(x_24); if (lean_obj_tag(x_24) == 0) @@ -13813,11 +13895,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_subtype___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_explicitUniv___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_explicitUniv___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_subtype___closed__4() { @@ -13917,13 +14001,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_subtype(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_subtype___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_subtype; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_subtype___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_subtype; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_listLit___elambda__1___spec__2___closed__1() { @@ -13977,10 +14060,10 @@ x_9 = lean_array_get_size(x_8); lean_dec(x_8); x_10 = lean_ctor_get(x_7, 1); lean_inc(x_10); -x_11 = l_Lean_Parser_termParserAttribute; +x_11 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_12 = lean_unsigned_to_nat(0u); lean_inc(x_6); -x_13 = l_Lean_Parser_ParserAttribute_runParserFn(x_11, x_12, x_6, x_7); +x_13 = l_Lean_Parser_categoryParserFn(x_11, x_12, x_6, x_7); x_14 = lean_ctor_get(x_13, 3); lean_inc(x_14); if (lean_obj_tag(x_14) == 0) @@ -14492,11 +14575,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_listLit___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_listLit___closed__2; -x_3 = l_Lean_Parser_sepByInfo(x_1, x_2); -return x_3; +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_Term_listLit___closed__2; +x_4 = l_Lean_Parser_sepByInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_listLit___closed__4() { @@ -14610,13 +14695,12 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_listLit(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_listLit___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_listLit; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_listLit___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_listLit; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_arrayLit___elambda__1___closed__1() { @@ -15000,13 +15084,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_arrayLit(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_arrayLit___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_arrayLit; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_arrayLit___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_arrayLit; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_explicit___elambda__1___closed__1() { @@ -15267,13 +15350,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_explicit(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_explicit___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_explicit; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_explicit___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_explicit; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_inaccessible___elambda__1___closed__1() { @@ -15481,10 +15563,10 @@ 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; -x_19 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = lean_ctor_get(x_21, 3); lean_inc(x_22); if (lean_obj_tag(x_22) == 0) @@ -15600,36 +15682,48 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_inaccessible___closed__1; -x_2 = l_Lean_Parser_Level_paren___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Level_paren___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; +x_1 = l_Lean_Parser_Term_inaccessible___closed__1; x_2 = l_Lean_Parser_Term_inaccessible___closed__2; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__4() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_inaccessible___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__5() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_inaccessible___closed__3; +x_3 = l_Lean_Parser_Term_inaccessible___closed__4; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__5() { +lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__6() { _start: { lean_object* x_1; @@ -15637,12 +15731,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_inaccessible___elambda__1), return x_1; } } -lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__6() { +lean_object* _init_l_Lean_Parser_Term_inaccessible___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_inaccessible___closed__4; -x_2 = l_Lean_Parser_Term_inaccessible___closed__5; +x_1 = l_Lean_Parser_Term_inaccessible___closed__5; +x_2 = l_Lean_Parser_Term_inaccessible___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); @@ -15653,20 +15747,19 @@ lean_object* _init_l_Lean_Parser_Term_inaccessible() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_inaccessible___closed__6; +x_1 = l_Lean_Parser_Term_inaccessible___closed__7; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_inaccessible(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_inaccessible; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_inaccessible; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_Term_binderIdent___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -15844,9 +15937,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_8 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_9 = lean_unsigned_to_nat(0u); -x_10 = l_Lean_Parser_ParserAttribute_runParserFn(x_8, x_9, x_1, x_6); +x_10 = l_Lean_Parser_categoryParserFn(x_8, x_9, x_1, x_6); x_11 = lean_ctor_get(x_10, 3); lean_inc(x_11); if (lean_obj_tag(x_11) == 0) @@ -15992,9 +16085,9 @@ lean_inc(x_6); 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; -x_7 = l_Lean_Parser_termParserAttribute; +x_7 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_8 = lean_unsigned_to_nat(0u); -x_9 = l_Lean_Parser_ParserAttribute_runParserFn(x_7, x_8, x_1, x_5); +x_9 = l_Lean_Parser_categoryParserFn(x_7, x_8, x_1, x_5); x_10 = l_Lean_nullKind; x_11 = l_Lean_Parser_ParserState_mkNode(x_9, x_10, x_4); return x_11; @@ -16023,7 +16116,7 @@ lean_object* _init_l_Lean_Parser_Term_binderType___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_typeAscription___closed__2; +x_1 = l_Lean_Parser_Term_typeAscription___closed__3; x_2 = l_Lean_Parser_optionaInfo(x_1); return x_2; } @@ -16053,7 +16146,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_nullKind; -x_2 = l_Lean_Parser_Term_typeAscription___closed__2; +x_2 = l_Lean_Parser_Term_typeAscription___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } @@ -16279,9 +16372,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_binderDefault___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -16510,9 +16603,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_binderTactic___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -16538,11 +16631,13 @@ return x_27; lean_object* _init_l_Lean_Parser_Term_binderTactic___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_structInst___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_structInst___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_binderTactic___closed__2() { @@ -16792,7 +16887,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_explicitBinder___closed__6; -x_2 = l_Lean_Parser_Level_paren___closed__3; +x_2 = l_Lean_Parser_Level_paren___closed__4; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -17210,10 +17305,10 @@ 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; -x_21 = l_Lean_Parser_termParserAttribute; +x_21 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_22 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_23 = l_Lean_Parser_ParserAttribute_runParserFn(x_21, x_22, x_2, x_19); +x_23 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_19); x_24 = lean_ctor_get(x_23, 3); lean_inc(x_24); if (lean_obj_tag(x_24) == 0) @@ -17342,11 +17437,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_instBinder___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_listLit___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_listLit___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_instBinder___closed__3() { @@ -17771,9 +17868,9 @@ 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_object* x_33; -x_28 = l_Lean_Parser_termParserAttribute; +x_28 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_29 = lean_unsigned_to_nat(0u); -x_30 = l_Lean_Parser_ParserAttribute_runParserFn(x_28, x_29, x_2, x_26); +x_30 = l_Lean_Parser_categoryParserFn(x_28, x_29, x_2, x_26); x_31 = l_Lean_Parser_Term_depArrow___elambda__1___closed__2; x_32 = l_Lean_Parser_ParserState_mkNode(x_30, x_31, x_18); x_33 = l_Lean_Parser_mergeOrElseErrors(x_32, x_13, x_10); @@ -17832,11 +17929,13 @@ return x_4; lean_object* _init_l_Lean_Parser_Term_depArrow___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_depArrow___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_depArrow___closed__4() { @@ -17904,13 +18003,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_depArrow(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_depArrow___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_depArrow; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_depArrow___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_depArrow; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_simpleBinder___elambda__1___spec__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -18556,9 +18654,9 @@ else { lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_dec(x_69); -x_82 = l_Lean_Parser_termParserAttribute; +x_82 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_83 = lean_unsigned_to_nat(0u); -x_84 = l_Lean_Parser_ParserAttribute_runParserFn(x_82, x_83, x_2, x_70); +x_84 = l_Lean_Parser_categoryParserFn(x_82, x_83, x_2, x_70); x_85 = l_Lean_Parser_Term_forall___elambda__1___closed__2; x_86 = l_Lean_Parser_ParserState_mkNode(x_84, x_85, x_18); x_87 = l_Lean_Parser_mergeOrElseErrors(x_86, x_13, x_10); @@ -18668,9 +18766,9 @@ else { lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_dec(x_107); -x_120 = l_Lean_Parser_termParserAttribute; +x_120 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_121 = lean_unsigned_to_nat(0u); -x_122 = l_Lean_Parser_ParserAttribute_runParserFn(x_120, x_121, x_2, x_108); +x_122 = l_Lean_Parser_categoryParserFn(x_120, x_121, x_2, x_108); x_123 = l_Lean_Parser_Term_forall___elambda__1___closed__2; x_124 = l_Lean_Parser_ParserState_mkNode(x_122, x_123, x_18); x_125 = l_Lean_Parser_mergeOrElseErrors(x_124, x_13, x_10); @@ -18813,9 +18911,9 @@ else { lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_21); -x_34 = l_Lean_Parser_termParserAttribute; +x_34 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_35 = lean_unsigned_to_nat(0u); -x_36 = l_Lean_Parser_ParserAttribute_runParserFn(x_34, x_35, x_2, x_22); +x_36 = l_Lean_Parser_categoryParserFn(x_34, x_35, x_2, x_22); x_37 = l_Lean_Parser_Term_forall___elambda__1___closed__2; 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); @@ -18895,11 +18993,13 @@ return x_5; lean_object* _init_l_Lean_Parser_Term_forall___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_explicitUniv___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_explicitUniv___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_forall___closed__4() { @@ -18985,13 +19085,12 @@ return x_6; lean_object* l___regBuiltinParser_Lean_Parser_Term_forall(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_forall___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_forall; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_forall___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_forall; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_matchAlt___elambda__1___closed__1() { @@ -19234,9 +19333,9 @@ 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_object* x_33; -x_28 = l_Lean_Parser_termParserAttribute; +x_28 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_29 = lean_unsigned_to_nat(0u); -x_30 = l_Lean_Parser_ParserAttribute_runParserFn(x_28, x_29, x_2, x_26); +x_30 = l_Lean_Parser_categoryParserFn(x_28, x_29, x_2, x_26); x_31 = l_Lean_Parser_Term_matchAlt___elambda__1___closed__2; 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); @@ -19297,46 +19396,70 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_explicitUniv___closed__3; -x_2 = l_Lean_Parser_Term_fun___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_explicitUniv___closed__2; +x_4 = l_Lean_Parser_sepBy1Info(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_matchAlt___closed__1; -x_2 = l_Lean_Parser_Term_matchAlt___closed__2; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_fun___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_matchAlt___elambda__1___closed__2; +x_1 = l_Lean_Parser_Term_matchAlt___closed__2; x_2 = l_Lean_Parser_Term_matchAlt___closed__3; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__5() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_matchAlt___closed__1; +x_2 = l_Lean_Parser_Term_matchAlt___closed__4; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_matchAlt___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_matchAlt___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_matchAlt___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_matchAlt___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_matchAlt___closed__4; +x_3 = l_Lean_Parser_Term_matchAlt___closed__6; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__6() { +lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__8() { _start: { lean_object* x_1; @@ -19344,12 +19467,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_matchAlt___elambda__1), 3, 0 return x_1; } } -lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__7() { +lean_object* _init_l_Lean_Parser_Term_matchAlt___closed__9() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_matchAlt___closed__5; -x_2 = l_Lean_Parser_Term_matchAlt___closed__6; +x_1 = l_Lean_Parser_Term_matchAlt___closed__7; +x_2 = l_Lean_Parser_Term_matchAlt___closed__8; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -19360,7 +19483,7 @@ lean_object* _init_l_Lean_Parser_Term_matchAlt() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_matchAlt___closed__7; +x_1 = l_Lean_Parser_Term_matchAlt___closed__9; return x_1; } } @@ -20394,7 +20517,7 @@ lean_object* _init_l_Lean_Parser_Term_match___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_explicitUniv___closed__3; +x_1 = l_Lean_Parser_Term_matchAlt___closed__2; x_2 = l_Lean_Parser_Term_match___closed__5; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; @@ -20507,13 +20630,12 @@ return x_7; lean_object* l___regBuiltinParser_Lean_Parser_Term_match(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_match___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_match; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_match___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_match; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_nomatch___elambda__1___closed__1() { @@ -20721,9 +20843,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_nomatch___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -20759,11 +20881,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_nomatch___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_nomatch___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_nomatch___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_nomatch___closed__3() { @@ -20819,13 +20943,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_nomatch(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_nomatch___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_nomatch; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_nomatch___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_nomatch; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__1() { @@ -21033,9 +21156,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -21071,11 +21194,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_parser_x21___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__3() { @@ -21131,13 +21256,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_parser_x21(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_parser_x21; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_parser_x21; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1() { @@ -21345,9 +21469,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -21383,11 +21507,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_tparser_x21___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__3() { @@ -21443,13 +21569,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_tparser_x21(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_tparser_x21; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_tparser_x21; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_borrowed___elambda__1___closed__1() { @@ -21667,9 +21792,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = l_Lean_Parser_Term_borrowed___elambda__1___closed__7; -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_borrowed___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -21705,36 +21830,49 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_borrowed___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_borrowed___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = l_Lean_Parser_Term_borrowed___elambda__1___closed__7; +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_borrowed___closed__3() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_borrowed___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_borrowed___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_borrowed___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_borrowed___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_borrowed___closed__2; +x_2 = l_Lean_Parser_Term_borrowed___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_borrowed___closed__4() { +lean_object* _init_l_Lean_Parser_Term_borrowed___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_borrowed___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_borrowed___closed__3; +x_3 = l_Lean_Parser_Term_borrowed___closed__4; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_borrowed___closed__5() { +lean_object* _init_l_Lean_Parser_Term_borrowed___closed__6() { _start: { lean_object* x_1; @@ -21742,12 +21880,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_borrowed___elambda__1), 3, 0 return x_1; } } -lean_object* _init_l_Lean_Parser_Term_borrowed___closed__6() { +lean_object* _init_l_Lean_Parser_Term_borrowed___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_borrowed___closed__4; -x_2 = l_Lean_Parser_Term_borrowed___closed__5; +x_1 = l_Lean_Parser_Term_borrowed___closed__5; +x_2 = l_Lean_Parser_Term_borrowed___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); @@ -21758,20 +21896,19 @@ lean_object* _init_l_Lean_Parser_Term_borrowed() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_borrowed___closed__6; +x_1 = l_Lean_Parser_Term_borrowed___closed__7; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_borrowed(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_borrowed___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_borrowed; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_borrowed___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_borrowed; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_quotedName___elambda__1___closed__1() { @@ -22068,13 +22205,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_quotedName(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_quotedName; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_quotedName___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_quotedName; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_antiquot___closed__1() { @@ -22083,7 +22219,7 @@ _start: lean_object* x_1; uint8_t x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; x_1 = lean_box(0); x_2 = 0; -x_3 = l_Lean_Parser_mkTermParserAttribute___closed__4; +x_3 = l_Lean_Parser_addBuiltinLeadingParser___closed__5; x_4 = 1; x_5 = l_Lean_Parser_mkAntiquot(x_2, x_3, x_1, x_4); return x_5; @@ -22110,13 +22246,12 @@ return x_3; lean_object* l___regBuiltinParser_Lean_Parser_Term_antiquot(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_builtinTermParsingTable; -x_4 = l___regBuiltinParser_Lean_Parser_Term_antiquot___closed__1; -x_5 = l_Lean_Parser_Term_antiquot; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l___regBuiltinParser_Lean_Parser_Term_antiquot___closed__1; +x_4 = l_Lean_Parser_Term_antiquot; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match__syntax___elambda__1___spec__1___closed__1() { @@ -22669,10 +22804,10 @@ lean_inc(x_53); if (lean_obj_tag(x_53) == 0) { lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_54 = l_Lean_Parser_termParserAttribute; +x_54 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_55 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_56 = l_Lean_Parser_ParserAttribute_runParserFn(x_54, x_55, x_2, x_52); +x_56 = l_Lean_Parser_categoryParserFn(x_54, x_55, x_2, x_52); x_57 = lean_ctor_get(x_56, 3); lean_inc(x_57); if (lean_obj_tag(x_57) == 0) @@ -23026,11 +23161,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_match__syntax___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_match___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_match___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_match__syntax___closed__3() { @@ -23140,13 +23277,12 @@ return x_7; lean_object* l___regBuiltinParser_Lean_Parser_Term_match__syntax(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_match__syntax___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_match__syntax; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_match__syntax___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_match__syntax; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_letIdLhs___elambda__1___closed__1() { @@ -23538,9 +23674,9 @@ 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; lean_object* x_28; -x_23 = l_Lean_Parser_termParserAttribute; +x_23 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_24 = lean_unsigned_to_nat(0u); -x_25 = l_Lean_Parser_ParserAttribute_runParserFn(x_23, x_24, x_2, x_18); +x_25 = l_Lean_Parser_categoryParserFn(x_23, x_24, x_2, x_18); x_26 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2; x_27 = l_Lean_Parser_ParserState_mkNode(x_25, x_26, x_17); x_28 = l_Lean_Parser_mergeOrElseErrors(x_27, x_12, x_7); @@ -23601,11 +23737,13 @@ return x_4; lean_object* _init_l_Lean_Parser_Term_letIdDecl___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_letIdDecl___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_letIdDecl___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_letIdDecl___closed__3() { @@ -24735,10 +24873,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_termParserAttribute; +x_17 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_18 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_19 = l_Lean_Parser_ParserAttribute_runParserFn(x_17, x_18, x_2, x_14); +x_19 = l_Lean_Parser_categoryParserFn(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) @@ -24789,7 +24927,7 @@ else { lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_23); -x_36 = l_Lean_Parser_ParserAttribute_runParserFn(x_17, x_18, x_2, x_24); +x_36 = l_Lean_Parser_categoryParserFn(x_17, x_18, x_2, x_24); x_37 = l_Lean_Parser_Term_letPatDecl___elambda__1___closed__2; x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_16); x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_11, x_8); @@ -24856,11 +24994,13 @@ return x_55; lean_object* _init_l_Lean_Parser_Term_letPatDecl___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_haveAssign___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_haveAssign___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_letPatDecl___closed__2() { @@ -24878,11 +25018,13 @@ return x_4; lean_object* _init_l_Lean_Parser_Term_letPatDecl___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_letPatDecl___closed__2; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_letPatDecl___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_letPatDecl___closed__4() { @@ -25396,9 +25538,9 @@ else { lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_dec(x_21); -x_34 = l_Lean_Parser_termParserAttribute; +x_34 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_35 = lean_unsigned_to_nat(0u); -x_36 = l_Lean_Parser_ParserAttribute_runParserFn(x_34, x_35, x_2, x_22); +x_36 = l_Lean_Parser_categoryParserFn(x_34, x_35, x_2, x_22); x_37 = l_Lean_Parser_Term_let___elambda__1___closed__2; x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_16); x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_11, x_8); @@ -25476,11 +25618,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_let___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_have___closed__3; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_have___closed__3; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_let___closed__3() { @@ -25558,13 +25702,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_let(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_let___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_let; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_let___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_let; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1() { @@ -26154,9 +26297,9 @@ lean_inc(x_24); if (lean_obj_tag(x_24) == 0) { lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_25 = l_Lean_Parser_termParserAttribute; +x_25 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_26 = lean_unsigned_to_nat(0u); -x_27 = l_Lean_Parser_ParserAttribute_runParserFn(x_25, x_26, x_2, x_20); +x_27 = l_Lean_Parser_categoryParserFn(x_25, x_26, x_2, x_20); x_28 = l_Lean_Parser_Term_doId___elambda__1___closed__2; x_29 = l_Lean_Parser_ParserState_mkNode(x_27, x_28, x_19); x_30 = l_Lean_Parser_mergeOrElseErrors(x_29, x_14, x_9); @@ -26231,11 +26374,13 @@ return x_4; lean_object* _init_l_Lean_Parser_Term_doId___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_doId___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_doId___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_doId___closed__4() { @@ -26380,10 +26525,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_82 = l_Lean_Parser_termParserAttribute; +x_82 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_83 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_84 = l_Lean_Parser_ParserAttribute_runParserFn(x_82, x_83, x_2, x_14); +x_84 = l_Lean_Parser_categoryParserFn(x_82, x_83, x_2, x_14); x_85 = lean_ctor_get(x_84, 3); lean_inc(x_85); if (lean_obj_tag(x_85) == 0) @@ -26495,10 +26640,10 @@ 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; -x_19 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = lean_ctor_get(x_21, 3); lean_inc(x_22); if (lean_obj_tag(x_22) == 0) @@ -26574,7 +26719,7 @@ lean_inc(x_27); if (lean_obj_tag(x_27) == 0) { lean_object* x_28; lean_object* x_29; -x_28 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_26); +x_28 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_26); x_29 = lean_ctor_get(x_28, 3); lean_inc(x_29); if (lean_obj_tag(x_29) == 0) @@ -26690,23 +26835,27 @@ return x_80; lean_object* _init_l_Lean_Parser_Term_doPat___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_leftArrow; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +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_Parser_inhabited___closed__1; -x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); -return x_4; +x_3 = l_Lean_Parser_Term_leftArrow; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_andthenInfo(x_2, x_4); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_doPat___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_matchAlt___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_matchAlt___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_doPat___closed__3() { @@ -26721,11 +26870,13 @@ return x_2; lean_object* _init_l_Lean_Parser_Term_doPat___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_Term_doPat___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +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_Term_doPat___closed__3; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_doPat___closed__5() { @@ -26880,9 +27031,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_termParserAttribute; +x_17 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_18 = lean_unsigned_to_nat(0u); -x_19 = l_Lean_Parser_ParserAttribute_runParserFn(x_17, x_18, x_2, x_14); +x_19 = l_Lean_Parser_categoryParserFn(x_17, x_18, x_2, x_14); x_20 = l_Lean_Parser_Term_doExpr___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); @@ -26895,11 +27046,13 @@ return x_22; lean_object* _init_l_Lean_Parser_Term_doExpr___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_doExpr___elambda__1___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); -return x_3; +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_Term_doExpr___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_doExpr___closed__2() { @@ -28226,13 +28379,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_do(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_do___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_do; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_do___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_do; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_not___elambda__1___closed__1() { @@ -28440,9 +28592,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(40u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_not___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -28488,36 +28640,49 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_not___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_not___closed__2; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = lean_unsigned_to_nat(40u); +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_not___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_not___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_not___closed__2; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_not___closed__5() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_not___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_not___closed__3; +x_2 = l_Lean_Parser_Term_not___closed__4; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_not___closed__5() { +lean_object* _init_l_Lean_Parser_Term_not___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_not___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_not___closed__4; +x_3 = l_Lean_Parser_Term_not___closed__5; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_not___closed__6() { +lean_object* _init_l_Lean_Parser_Term_not___closed__7() { _start: { lean_object* x_1; @@ -28525,12 +28690,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_not___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Term_not___closed__7() { +lean_object* _init_l_Lean_Parser_Term_not___closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_not___closed__5; -x_2 = l_Lean_Parser_Term_not___closed__6; +x_1 = l_Lean_Parser_Term_not___closed__6; +x_2 = l_Lean_Parser_Term_not___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); @@ -28541,20 +28706,19 @@ lean_object* _init_l_Lean_Parser_Term_not() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_not___closed__7; +x_1 = l_Lean_Parser_Term_not___closed__8; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_not(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_not___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_not; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_not___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_not; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_bnot___elambda__1___closed__1() { @@ -28762,9 +28926,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(40u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_bnot___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -28800,11 +28964,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_bnot___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_bnot___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_not___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_bnot___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_bnot___closed__3() { @@ -28860,13 +29026,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bnot(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_bnot___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_bnot; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_bnot___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_bnot; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_uminus___elambda__1___closed__1() { @@ -29066,9 +29231,9 @@ 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 = l_Lean_Parser_termParserAttribute; +x_19 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_20 = lean_unsigned_to_nat(100u); -x_21 = l_Lean_Parser_ParserAttribute_runParserFn(x_19, x_20, x_2, x_17); +x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17); x_22 = l_Lean_Parser_Term_uminus___elambda__1___closed__2; x_23 = l_Lean_Parser_ParserState_mkNode(x_21, x_22, x_16); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_11, x_8); @@ -29104,36 +29269,49 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_uminus___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_uminus___closed__1; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 0; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = lean_unsigned_to_nat(100u); +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_uminus___closed__3() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_uminus___closed__2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_uminus___closed__1; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_uminus___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_uminus___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_uminus___closed__2; +x_2 = l_Lean_Parser_Term_uminus___closed__3; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_uminus___closed__4() { +lean_object* _init_l_Lean_Parser_Term_uminus___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_uminus___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_uminus___closed__3; +x_3 = l_Lean_Parser_Term_uminus___closed__4; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_uminus___closed__5() { +lean_object* _init_l_Lean_Parser_Term_uminus___closed__6() { _start: { lean_object* x_1; @@ -29141,12 +29319,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_uminus___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Term_uminus___closed__6() { +lean_object* _init_l_Lean_Parser_Term_uminus___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_uminus___closed__4; -x_2 = l_Lean_Parser_Term_uminus___closed__5; +x_1 = l_Lean_Parser_Term_uminus___closed__5; +x_2 = l_Lean_Parser_Term_uminus___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); @@ -29157,20 +29335,19 @@ lean_object* _init_l_Lean_Parser_Term_uminus() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_uminus___closed__6; +x_1 = l_Lean_Parser_Term_uminus___closed__7; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_uminus(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_uminus___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_uminus; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_uminus___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_uminus; +x_5 = l_Lean_Parser_addBuiltinLeadingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_namedArgument___elambda__1___closed__1() { @@ -29277,10 +29454,10 @@ lean_inc(x_10); if (lean_obj_tag(x_10) == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_11 = l_Lean_Parser_termParserAttribute; +x_11 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_12 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_13 = l_Lean_Parser_ParserAttribute_runParserFn(x_11, x_12, x_2, x_9); +x_13 = l_Lean_Parser_categoryParserFn(x_11, x_12, x_2, x_9); x_14 = lean_ctor_get(x_13, 3); lean_inc(x_14); if (lean_obj_tag(x_14) == 0) @@ -29563,24 +29740,47 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_namedArgument___closed__2; -x_2 = l_Lean_Parser_Level_paren___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 1; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_namedArgument___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_namedArgument___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Level_paren___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_namedArgument___closed__2; +x_2 = l_Lean_Parser_Term_namedArgument___closed__4; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__6() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_namedArgument___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_namedArgument___closed__3; +x_2 = l_Lean_Parser_Term_namedArgument___closed__5; x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__5() { +lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__7() { _start: { lean_object* x_1; @@ -29588,12 +29788,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_namedArgument___elambda__1), return x_1; } } -lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__6() { +lean_object* _init_l_Lean_Parser_Term_namedArgument___closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_namedArgument___closed__4; -x_2 = l_Lean_Parser_Term_namedArgument___closed__5; +x_1 = l_Lean_Parser_Term_namedArgument___closed__6; +x_2 = l_Lean_Parser_Term_namedArgument___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); @@ -29604,7 +29804,7 @@ lean_object* _init_l_Lean_Parser_Term_namedArgument() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_namedArgument___closed__6; +x_1 = l_Lean_Parser_Term_namedArgument___closed__8; return x_1; } } @@ -29690,9 +29890,9 @@ lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean lean_inc(x_10); x_20 = l_Lean_Parser_ParserState_restore(x_11, x_9, x_10); lean_dec(x_9); -x_21 = l_Lean_Parser_termParserAttribute; +x_21 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_22 = l_Lean_Parser_appPrec; -x_23 = l_Lean_Parser_ParserAttribute_runParserFn(x_21, x_22, x_2, x_20); +x_23 = l_Lean_Parser_categoryParserFn(x_21, x_22, x_2, x_20); x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_15, x_10); lean_dec(x_10); x_25 = l_Lean_Parser_Term_app___elambda__1___closed__2; @@ -29717,49 +29917,62 @@ return x_28; lean_object* _init_l_Lean_Parser_Term_app___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_namedArgument; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -x_3 = l_Lean_Parser_Parser_inhabited___closed__1; -x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 1; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; +x_3 = l_Lean_Parser_appPrec; +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); return x_4; } } lean_object* _init_l_Lean_Parser_Term_app___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; -x_2 = l_Lean_Parser_Term_app___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = l_Lean_Parser_Term_namedArgument; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_app___closed__1; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_orelseInfo(x_2, x_4); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_app___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_app___elambda__1___closed__2; +x_1 = l_Lean_Parser_epsilonInfo; x_2 = l_Lean_Parser_Term_app___closed__2; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Term_app___closed__4() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_app___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_app___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_app___closed__5() { +_start: +{ lean_object* x_1; x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_app___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Term_app___closed__5() { +lean_object* _init_l_Lean_Parser_Term_app___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_app___closed__3; -x_2 = l_Lean_Parser_Term_app___closed__4; +x_1 = l_Lean_Parser_Term_app___closed__4; +x_2 = l_Lean_Parser_Term_app___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); @@ -29770,20 +29983,19 @@ lean_object* _init_l_Lean_Parser_Term_app() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_app___closed__5; +x_1 = l_Lean_Parser_Term_app___closed__6; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_app(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_app___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_app; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_app___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_app; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* l_Lean_Parser_Term_checkIsSort___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -29888,9 +30100,9 @@ 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; x_8 = l_Lean_Parser_ParserState_pushSyntax(x_6, x_1); -x_9 = l_Lean_Parser_levelParserAttribute; +x_9 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; x_10 = l_Lean_Parser_appPrec; -x_11 = l_Lean_Parser_ParserAttribute_runParserFn(x_9, x_10, x_2, x_8); +x_11 = l_Lean_Parser_categoryParserFn(x_9, x_10, x_2, x_8); x_12 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; x_13 = l_Lean_Parser_ParserState_mkNode(x_11, x_12, x_5); return x_13; @@ -29910,47 +30122,60 @@ return x_15; lean_object* _init_l_Lean_Parser_Term_sortApp___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = 1; +x_2 = l_Lean_Parser_addBuiltinLeadingParser___closed__4; +x_3 = l_Lean_Parser_appPrec; +x_4 = l_Lean_Parser_categoryParser(x_1, x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_sortApp___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; -x_2 = l_Lean_Parser_Term_sortApp___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_sortApp___closed__1; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_epsilonInfo; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_sortApp___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; +x_1 = l_Lean_Parser_epsilonInfo; x_2 = l_Lean_Parser_Term_sortApp___closed__2; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Term_sortApp___closed__4() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_sortApp___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_sortApp___closed__5() { +_start: +{ lean_object* x_1; x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_sortApp___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Term_sortApp___closed__5() { +lean_object* _init_l_Lean_Parser_Term_sortApp___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_sortApp___closed__3; -x_2 = l_Lean_Parser_Term_sortApp___closed__4; +x_1 = l_Lean_Parser_Term_sortApp___closed__4; +x_2 = l_Lean_Parser_Term_sortApp___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); @@ -29961,20 +30186,19 @@ lean_object* _init_l_Lean_Parser_Term_sortApp() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_sortApp___closed__5; +x_1 = l_Lean_Parser_Term_sortApp___closed__6; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_sortApp(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_sortApp; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_sortApp; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__1() { @@ -30371,13 +30595,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_proj(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_proj___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_proj; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_proj; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_arrow___elambda__1___closed__1() { @@ -30469,13 +30692,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_arrow(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_arrow___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_arrow; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_arrow___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_arrow; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_arrayRef___elambda__1___closed__1() { @@ -30615,10 +30837,10 @@ lean_inc(x_9); if (lean_obj_tag(x_9) == 0) { lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_10 = l_Lean_Parser_termParserAttribute; +x_10 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_11 = lean_unsigned_to_nat(0u); lean_inc(x_2); -x_12 = l_Lean_Parser_ParserAttribute_runParserFn(x_10, x_11, x_2, x_8); +x_12 = l_Lean_Parser_categoryParserFn(x_10, x_11, x_2, x_8); x_13 = lean_ctor_get(x_12, 3); lean_inc(x_13); if (lean_obj_tag(x_13) == 0) @@ -30720,18 +30942,20 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_arrayRef___closed__1; -x_2 = l_Lean_Parser_Term_instBinder___closed__2; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_namedArgument___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_listLit___closed__4; +x_4 = l_Lean_Parser_andthenInfo(x_2, x_3); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; +x_1 = l_Lean_Parser_Term_arrayRef___closed__1; x_2 = l_Lean_Parser_Term_arrayRef___closed__2; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; @@ -30741,26 +30965,36 @@ lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_arrayRef___elambda__1___closed__2; +x_1 = l_Lean_Parser_epsilonInfo; x_2 = l_Lean_Parser_Term_arrayRef___closed__3; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__5() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_arrayRef___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_arrayRef___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__6() { +_start: +{ lean_object* x_1; x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_arrayRef___elambda__1), 3, 0); return x_1; } } -lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__6() { +lean_object* _init_l_Lean_Parser_Term_arrayRef___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_arrayRef___closed__4; -x_2 = l_Lean_Parser_Term_arrayRef___closed__5; +x_1 = l_Lean_Parser_Term_arrayRef___closed__5; +x_2 = l_Lean_Parser_Term_arrayRef___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); @@ -30771,20 +31005,19 @@ lean_object* _init_l_Lean_Parser_Term_arrayRef() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_arrayRef___closed__6; +x_1 = l_Lean_Parser_Term_arrayRef___closed__7; return x_1; } } lean_object* l___regBuiltinParser_Lean_Parser_Term_arrayRef(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_arrayRef___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_arrayRef; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_arrayRef___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_arrayRef; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_dollar___elambda__1___closed__1() { @@ -30896,9 +31129,9 @@ lean_inc(x_12); if (lean_obj_tag(x_12) == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_13 = l_Lean_Parser_termParserAttribute; +x_13 = l_Lean_Parser_addBuiltinLeadingParser___closed__6; x_14 = lean_unsigned_to_nat(0u); -x_15 = l_Lean_Parser_ParserAttribute_runParserFn(x_13, x_14, x_2, x_8); +x_15 = l_Lean_Parser_categoryParserFn(x_13, x_14, x_2, x_8); x_16 = l_Lean_Parser_Term_dollar___elambda__1___closed__2; x_17 = l_Lean_Parser_ParserState_mkNode(x_15, x_16, x_7); return x_17; @@ -30965,11 +31198,13 @@ return x_3; lean_object* _init_l_Lean_Parser_Term_dollar___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_dollar___closed__3; -x_2 = l_Lean_Parser_Parser_inhabited___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_namedArgument___closed__3; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_dollar___closed__3; +x_4 = l_Lean_Parser_andthenInfo(x_3, x_2); +return x_4; } } lean_object* _init_l_Lean_Parser_Term_dollar___closed__5() { @@ -31013,13 +31248,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_dollar(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_dollar___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_dollar; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_dollar___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_dollar; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_dollarProj___elambda__1___closed__1() { @@ -31375,13 +31609,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_dollarProj(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_dollarProj; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_dollarProj; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Term_where___elambda__1___spec__2___closed__1() { @@ -31920,13 +32153,12 @@ return x_8; lean_object* l___regBuiltinParser_Lean_Parser_Term_where(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_where___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_where; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_where___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_where; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_fcomp___elambda__1___closed__1() { @@ -32025,13 +32257,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_fcomp(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_fcomp___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_fcomp; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_fcomp___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_fcomp; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_prod___elambda__1___closed__1() { @@ -32130,13 +32361,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_prod(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_prod___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_prod; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_prod___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_prod; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_add___elambda__1___closed__1() { @@ -32235,13 +32465,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_add(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_add___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_add; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_add___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_add; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_sub___elambda__1___closed__1() { @@ -32340,13 +32569,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_sub(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_sub___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_sub; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_sub___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_sub; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_mul___elambda__1___closed__1() { @@ -32445,13 +32673,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mul(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_mul___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_mul; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_mul___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_mul; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_div___elambda__1___closed__1() { @@ -32550,13 +32777,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_div(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_div___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_div; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_div___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_div; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_mod___elambda__1___closed__1() { @@ -32655,13 +32881,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mod(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_mod___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_mod; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_mod___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_mod; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_modN___elambda__1___closed__1() { @@ -32760,13 +32985,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_modN(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_modN___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_modN; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_modN___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_modN; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_pow___elambda__1___closed__1() { @@ -32865,13 +33089,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_pow(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_pow___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_pow; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_pow___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_pow; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_le___elambda__1___closed__1() { @@ -32979,13 +33202,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_le(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_le___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_le; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_le___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_le; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_ge___elambda__1___closed__1() { @@ -33093,13 +33315,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_ge(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_ge___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_ge; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_ge___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_ge; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_lt___elambda__1___closed__1() { @@ -33198,13 +33419,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_lt(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_lt___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_lt; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_lt___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_lt; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_gt___elambda__1___closed__1() { @@ -33303,13 +33523,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_gt(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_gt___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_gt; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_gt___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_gt; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_eq___elambda__1___closed__1() { @@ -33408,13 +33627,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_eq(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_eq___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_eq; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_eq___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_eq; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_ne___elambda__1___closed__1() { @@ -33513,13 +33731,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_ne(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_ne___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_ne; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_ne___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_ne; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_beq___elambda__1___closed__1() { @@ -33618,13 +33835,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_beq(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_beq___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_beq; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_beq___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_beq; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_bne___elambda__1___closed__1() { @@ -33723,13 +33939,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bne(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_bne___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_bne; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_bne___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_bne; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_heq___elambda__1___closed__1() { @@ -33837,13 +34052,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_heq(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_heq___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_heq; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_heq___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_heq; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_equiv___elambda__1___closed__1() { @@ -33942,13 +34156,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_equiv(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_equiv___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_equiv; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_equiv___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_equiv; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_subst___elambda__1___closed__1() { @@ -34047,13 +34260,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_subst(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_subst___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_subst; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_subst___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_subst; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_and___elambda__1___closed__1() { @@ -34161,13 +34373,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_and(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_and___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_and; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_and___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_and; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_or___elambda__1___closed__1() { @@ -34275,13 +34486,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_or(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_or___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_or; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_or___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_or; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_iff___elambda__1___closed__1() { @@ -34389,13 +34599,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_iff(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_iff___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_iff; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_iff___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_iff; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_band___elambda__1___closed__1() { @@ -34494,13 +34703,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_band(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_band___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_band; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_band___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_band; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_bor___elambda__1___closed__1() { @@ -34599,13 +34807,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bor(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_bor___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_bor; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_bor___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_bor; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_append___elambda__1___closed__1() { @@ -34704,13 +34911,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_append(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_append___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_append; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_append___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_append; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_cons___elambda__1___closed__1() { @@ -34809,13 +35015,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_cons(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_cons___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_cons; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_cons___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_cons; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_orelse___elambda__1___closed__1() { @@ -34914,13 +35119,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_orelse___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_orelse; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_orelse___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_orelse; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_orM___elambda__1___closed__1() { @@ -35019,13 +35223,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_orM(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_orM___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_orM; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_orM___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_orM; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_andM___elambda__1___closed__1() { @@ -35124,13 +35327,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_andM(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_andM___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_andM; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_andM___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_andM; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_andthen___elambda__1___closed__1() { @@ -35229,13 +35431,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_andthen(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_andthen___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_andthen; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_andthen___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_andthen; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_bindOp___elambda__1___closed__1() { @@ -35334,13 +35535,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_bindOp(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_bindOp___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_bindOp; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_bindOp___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_bindOp; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_mapRev___elambda__1___closed__1() { @@ -35439,13 +35639,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mapRev(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_mapRev___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_mapRev; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_mapRev___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_mapRev; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_seq___elambda__1___closed__1() { @@ -35544,13 +35743,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_seq(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_seq___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_seq; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_seq___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_seq; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_seqLeft___elambda__1___closed__1() { @@ -35649,13 +35847,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_seqLeft(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_seqLeft; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_seqLeft; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_seqRight___elambda__1___closed__1() { @@ -35754,13 +35951,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_seqRight(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_seqRight___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_seqRight; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_seqRight___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_seqRight; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_map___elambda__1___closed__1() { @@ -35859,13 +36055,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_map(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_map___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_map; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_map___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_map; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_mapConst___elambda__1___closed__1() { @@ -35964,13 +36159,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mapConst(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_mapConst___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_mapConst; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_mapConst___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_mapConst; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Lean_Parser_Term_mapConstRev___elambda__1___closed__1() { @@ -36069,13 +36263,12 @@ return x_1; lean_object* l___regBuiltinParser_Lean_Parser_Term_mapConstRev(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_builtinTermParsingTable; -x_4 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__2; -x_5 = l_Lean_Parser_Term_mapConstRev; -x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); -return x_6; +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Parser_builtinTermParsingTable; +x_3 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__2; +x_4 = l_Lean_Parser_Term_mapConstRev; +x_5 = l_Lean_Parser_addBuiltinTrailingParser(x_2, x_3, x_4, x_1); +return x_5; } } lean_object* _init_l_Array_iterateMAux___main___at_Lean_mkAppStx___spec__1___closed__1() { @@ -36393,6 +36586,8 @@ l_Lean_Parser_Term_namedPattern___closed__6 = _init_l_Lean_Parser_Term_namedPatt lean_mark_persistent(l_Lean_Parser_Term_namedPattern___closed__6); l_Lean_Parser_Term_namedPattern___closed__7 = _init_l_Lean_Parser_Term_namedPattern___closed__7(); lean_mark_persistent(l_Lean_Parser_Term_namedPattern___closed__7); +l_Lean_Parser_Term_namedPattern___closed__8 = _init_l_Lean_Parser_Term_namedPattern___closed__8(); +lean_mark_persistent(l_Lean_Parser_Term_namedPattern___closed__8); l_Lean_Parser_Term_namedPattern = _init_l_Lean_Parser_Term_namedPattern(); lean_mark_persistent(l_Lean_Parser_Term_namedPattern); l_Lean_Parser_Term_id___elambda__1___closed__1 = _init_l_Lean_Parser_Term_id___elambda__1___closed__1(); @@ -36730,6 +36925,8 @@ l_Lean_Parser_Term_typeAscription___closed__5 = _init_l_Lean_Parser_Term_typeAsc lean_mark_persistent(l_Lean_Parser_Term_typeAscription___closed__5); l_Lean_Parser_Term_typeAscription___closed__6 = _init_l_Lean_Parser_Term_typeAscription___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_typeAscription___closed__6); +l_Lean_Parser_Term_typeAscription___closed__7 = _init_l_Lean_Parser_Term_typeAscription___closed__7(); +lean_mark_persistent(l_Lean_Parser_Term_typeAscription___closed__7); l_Lean_Parser_Term_typeAscription = _init_l_Lean_Parser_Term_typeAscription(); lean_mark_persistent(l_Lean_Parser_Term_typeAscription); l_Lean_Parser_Term_tupleTail___elambda__1___closed__1 = _init_l_Lean_Parser_Term_tupleTail___elambda__1___closed__1(); @@ -37504,6 +37701,8 @@ l_Lean_Parser_Term_inaccessible___closed__5 = _init_l_Lean_Parser_Term_inaccessi lean_mark_persistent(l_Lean_Parser_Term_inaccessible___closed__5); l_Lean_Parser_Term_inaccessible___closed__6 = _init_l_Lean_Parser_Term_inaccessible___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_inaccessible___closed__6); +l_Lean_Parser_Term_inaccessible___closed__7 = _init_l_Lean_Parser_Term_inaccessible___closed__7(); +lean_mark_persistent(l_Lean_Parser_Term_inaccessible___closed__7); l_Lean_Parser_Term_inaccessible = _init_l_Lean_Parser_Term_inaccessible(); lean_mark_persistent(l_Lean_Parser_Term_inaccessible); res = l___regBuiltinParser_Lean_Parser_Term_inaccessible(lean_io_mk_world()); @@ -37791,6 +37990,10 @@ l_Lean_Parser_Term_matchAlt___closed__6 = _init_l_Lean_Parser_Term_matchAlt___cl lean_mark_persistent(l_Lean_Parser_Term_matchAlt___closed__6); l_Lean_Parser_Term_matchAlt___closed__7 = _init_l_Lean_Parser_Term_matchAlt___closed__7(); lean_mark_persistent(l_Lean_Parser_Term_matchAlt___closed__7); +l_Lean_Parser_Term_matchAlt___closed__8 = _init_l_Lean_Parser_Term_matchAlt___closed__8(); +lean_mark_persistent(l_Lean_Parser_Term_matchAlt___closed__8); +l_Lean_Parser_Term_matchAlt___closed__9 = _init_l_Lean_Parser_Term_matchAlt___closed__9(); +lean_mark_persistent(l_Lean_Parser_Term_matchAlt___closed__9); l_Lean_Parser_Term_matchAlt = _init_l_Lean_Parser_Term_matchAlt(); lean_mark_persistent(l_Lean_Parser_Term_matchAlt); l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match___elambda__1___spec__1___closed__1 = _init_l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match___elambda__1___spec__1___closed__1(); @@ -37987,6 +38190,8 @@ l_Lean_Parser_Term_borrowed___closed__5 = _init_l_Lean_Parser_Term_borrowed___cl lean_mark_persistent(l_Lean_Parser_Term_borrowed___closed__5); l_Lean_Parser_Term_borrowed___closed__6 = _init_l_Lean_Parser_Term_borrowed___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_borrowed___closed__6); +l_Lean_Parser_Term_borrowed___closed__7 = _init_l_Lean_Parser_Term_borrowed___closed__7(); +lean_mark_persistent(l_Lean_Parser_Term_borrowed___closed__7); l_Lean_Parser_Term_borrowed = _init_l_Lean_Parser_Term_borrowed(); lean_mark_persistent(l_Lean_Parser_Term_borrowed); res = l___regBuiltinParser_Lean_Parser_Term_borrowed(lean_io_mk_world()); @@ -38449,6 +38654,8 @@ l_Lean_Parser_Term_not___closed__6 = _init_l_Lean_Parser_Term_not___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_not___closed__6); l_Lean_Parser_Term_not___closed__7 = _init_l_Lean_Parser_Term_not___closed__7(); lean_mark_persistent(l_Lean_Parser_Term_not___closed__7); +l_Lean_Parser_Term_not___closed__8 = _init_l_Lean_Parser_Term_not___closed__8(); +lean_mark_persistent(l_Lean_Parser_Term_not___closed__8); l_Lean_Parser_Term_not = _init_l_Lean_Parser_Term_not(); lean_mark_persistent(l_Lean_Parser_Term_not); res = l___regBuiltinParser_Lean_Parser_Term_not(lean_io_mk_world()); @@ -38517,6 +38724,8 @@ l_Lean_Parser_Term_uminus___closed__5 = _init_l_Lean_Parser_Term_uminus___closed lean_mark_persistent(l_Lean_Parser_Term_uminus___closed__5); l_Lean_Parser_Term_uminus___closed__6 = _init_l_Lean_Parser_Term_uminus___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_uminus___closed__6); +l_Lean_Parser_Term_uminus___closed__7 = _init_l_Lean_Parser_Term_uminus___closed__7(); +lean_mark_persistent(l_Lean_Parser_Term_uminus___closed__7); l_Lean_Parser_Term_uminus = _init_l_Lean_Parser_Term_uminus(); lean_mark_persistent(l_Lean_Parser_Term_uminus); res = l___regBuiltinParser_Lean_Parser_Term_uminus(lean_io_mk_world()); @@ -38540,6 +38749,10 @@ l_Lean_Parser_Term_namedArgument___closed__5 = _init_l_Lean_Parser_Term_namedArg lean_mark_persistent(l_Lean_Parser_Term_namedArgument___closed__5); l_Lean_Parser_Term_namedArgument___closed__6 = _init_l_Lean_Parser_Term_namedArgument___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_namedArgument___closed__6); +l_Lean_Parser_Term_namedArgument___closed__7 = _init_l_Lean_Parser_Term_namedArgument___closed__7(); +lean_mark_persistent(l_Lean_Parser_Term_namedArgument___closed__7); +l_Lean_Parser_Term_namedArgument___closed__8 = _init_l_Lean_Parser_Term_namedArgument___closed__8(); +lean_mark_persistent(l_Lean_Parser_Term_namedArgument___closed__8); l_Lean_Parser_Term_namedArgument = _init_l_Lean_Parser_Term_namedArgument(); lean_mark_persistent(l_Lean_Parser_Term_namedArgument); l_Lean_Parser_Term_app___elambda__1___closed__1 = _init_l_Lean_Parser_Term_app___elambda__1___closed__1(); @@ -38556,6 +38769,8 @@ l_Lean_Parser_Term_app___closed__4 = _init_l_Lean_Parser_Term_app___closed__4(); lean_mark_persistent(l_Lean_Parser_Term_app___closed__4); l_Lean_Parser_Term_app___closed__5 = _init_l_Lean_Parser_Term_app___closed__5(); lean_mark_persistent(l_Lean_Parser_Term_app___closed__5); +l_Lean_Parser_Term_app___closed__6 = _init_l_Lean_Parser_Term_app___closed__6(); +lean_mark_persistent(l_Lean_Parser_Term_app___closed__6); l_Lean_Parser_Term_app = _init_l_Lean_Parser_Term_app(); lean_mark_persistent(l_Lean_Parser_Term_app); res = l___regBuiltinParser_Lean_Parser_Term_app(lean_io_mk_world()); @@ -38581,6 +38796,8 @@ l_Lean_Parser_Term_sortApp___closed__4 = _init_l_Lean_Parser_Term_sortApp___clos lean_mark_persistent(l_Lean_Parser_Term_sortApp___closed__4); l_Lean_Parser_Term_sortApp___closed__5 = _init_l_Lean_Parser_Term_sortApp___closed__5(); lean_mark_persistent(l_Lean_Parser_Term_sortApp___closed__5); +l_Lean_Parser_Term_sortApp___closed__6 = _init_l_Lean_Parser_Term_sortApp___closed__6(); +lean_mark_persistent(l_Lean_Parser_Term_sortApp___closed__6); l_Lean_Parser_Term_sortApp = _init_l_Lean_Parser_Term_sortApp(); lean_mark_persistent(l_Lean_Parser_Term_sortApp); res = l___regBuiltinParser_Lean_Parser_Term_sortApp(lean_io_mk_world()); @@ -38660,6 +38877,8 @@ l_Lean_Parser_Term_arrayRef___closed__5 = _init_l_Lean_Parser_Term_arrayRef___cl lean_mark_persistent(l_Lean_Parser_Term_arrayRef___closed__5); l_Lean_Parser_Term_arrayRef___closed__6 = _init_l_Lean_Parser_Term_arrayRef___closed__6(); lean_mark_persistent(l_Lean_Parser_Term_arrayRef___closed__6); +l_Lean_Parser_Term_arrayRef___closed__7 = _init_l_Lean_Parser_Term_arrayRef___closed__7(); +lean_mark_persistent(l_Lean_Parser_Term_arrayRef___closed__7); l_Lean_Parser_Term_arrayRef = _init_l_Lean_Parser_Term_arrayRef(); lean_mark_persistent(l_Lean_Parser_Term_arrayRef); res = l___regBuiltinParser_Lean_Parser_Term_arrayRef(lean_io_mk_world()); diff --git a/stage0/stdlib/Init/System/IO.c b/stage0/stdlib/Init/System/IO.c index 26e6739011..506aee98ac 100644 --- a/stage0/stdlib/Init/System/IO.c +++ b/stage0/stdlib/Init/System/IO.c @@ -36,6 +36,7 @@ lean_object* l_IO_Prim_readTextFile___boxed(lean_object*, lean_object*); lean_object* l_IO_getEnv___rarg(lean_object*, lean_object*); lean_object* l_IO_FS_handle_close___rarg(lean_object*, lean_object*); lean_object* l_IO_FS_handle_flush___boxed(lean_object*, lean_object*); +lean_object* l_IO_Ref_ptrEq___boxed(lean_object*, lean_object*); lean_object* l_IO_readTextFile___boxed(lean_object*, lean_object*); lean_object* lean_io_mk_ref(lean_object*, lean_object*); lean_object* l_unsafeIO___rarg(lean_object*); @@ -140,6 +141,7 @@ lean_object* l_IO_print___at_Lean_HasRepr_HasEval___spec__2(lean_object*, lean_o lean_object* l_IO_lazyPure(lean_object*); lean_object* l_EStateM_Monad(lean_object*, lean_object*); lean_object* l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* lean_io_ref_ptr_eq(lean_object*, lean_object*, lean_object*); lean_object* l_IO_println___at_Lean_HasRepr_HasEval___spec__1___boxed(lean_object*, lean_object*); lean_object* lean_io_prim_handle_is_eof(lean_object*, lean_object*); lean_object* lean_io_prim_handle_mk(lean_object*, uint8_t, uint8_t, lean_object*); @@ -155,6 +157,7 @@ lean_object* l_IO_FS_handle_isEof(lean_object*, lean_object*); lean_object* l_IO_print___boxed(lean_object*, lean_object*); lean_object* l_IO_print___at_Lean_HasRepr_HasEval___spec__2___boxed(lean_object*, lean_object*); lean_object* l_IO_Ref_swap(lean_object*, lean_object*); +lean_object* l_IO_Ref_ptrEq(lean_object*, lean_object*); lean_object* l_IO_Prim_Ref_swap___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_io_ref_set(lean_object*, lean_object*, lean_object*); lean_object* l_IO_appDir___rarg___lambda__1(lean_object*, lean_object*); @@ -172,7 +175,9 @@ lean_object* l_IO_Error_HasToString___closed__1; lean_object* l_IO_FS_readFile(lean_object*); lean_object* l_IO_mkRef(lean_object*, lean_object*); lean_object* l_IO_Prim_iterate___at_IO_FS_handle_readToEnd___spec__3(lean_object*, lean_object*, lean_object*); +lean_object* l_IO_Prim_Ref_ptrEq___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1(lean_object*, lean_object*); +lean_object* l_IO_Ref_ptrEq___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_EIO_Monad(lean_object*); lean_object* l_IO_FS_handle_getLine(lean_object*, lean_object*); lean_object* l___private_Init_System_IO_1__putStr___boxed(lean_object*, lean_object*); @@ -1631,6 +1636,16 @@ lean_dec(x_2); return x_4; } } +lean_object* l_IO_Prim_Ref_ptrEq___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = lean_io_ref_ptr_eq(x_2, x_3, x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_5; +} +} lean_object* l_IO_mkRef___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -1778,6 +1793,36 @@ lean_dec(x_1); return x_3; } } +lean_object* l_IO_Ref_ptrEq___rarg(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; +x_5 = lean_alloc_closure((void*)(l_IO_Prim_Ref_ptrEq___boxed), 4, 3); +lean_closure_set(x_5, 0, lean_box(0)); +lean_closure_set(x_5, 1, x_3); +lean_closure_set(x_5, 2, x_4); +x_6 = lean_apply_2(x_1, lean_box(0), x_5); +return x_6; +} +} +lean_object* l_IO_Ref_ptrEq(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_IO_Ref_ptrEq___rarg), 4, 0); +return x_3; +} +} +lean_object* l_IO_Ref_ptrEq___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_IO_Ref_ptrEq(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} lean_object* l_IO_Ref_modify___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: {