From 9ccb511a99e8496b42dee4bc5cb5b7eabc7c162c Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Thu, 6 Feb 2020 08:20:48 -0800 Subject: [PATCH] chore: update stage0 --- stage0/src/Init/Data/HashMap/Basic.lean | 6 + stage0/src/Init/Lean/Elab/StructInst.lean | 226 +- stage0/src/Init/Lean/Parser/Parser.lean | 76 +- stage0/src/Init/Lean/Parser/Term.lean | 2 +- stage0/src/Init/LeanInit.lean | 7 + stage0/src/frontends/lean/builtin_exprs.cpp | 2 +- stage0/stdlib/Init/Data/HashMap/Basic.c | 274 ++ stage0/stdlib/Init/Lean/Elab/Command.c | 10 +- stage0/stdlib/Init/Lean/Elab/StructInst.c | 3779 ++++++++++++++++++- stage0/stdlib/Init/Lean/Elab/Tactic/Basic.c | 10 +- stage0/stdlib/Init/Lean/Elab/Term.c | 10 +- stage0/stdlib/Init/Lean/Elab/Util.c | 4 +- stage0/stdlib/Init/Lean/Parser/Parser.c | 3079 +++++++++++---- stage0/stdlib/Init/Lean/Parser/Term.c | 1028 +++-- stage0/stdlib/Init/LeanInit.c | 80 + 15 files changed, 7294 insertions(+), 1299 deletions(-) diff --git a/stage0/src/Init/Data/HashMap/Basic.lean b/stage0/src/Init/Data/HashMap/Basic.lean index 04a9c17bdc..339f31de24 100644 --- a/stage0/src/Init/Data/HashMap/Basic.lean +++ b/stage0/src/Init/Data/HashMap/Basic.lean @@ -179,6 +179,12 @@ m.size = 0 @[inline] def empty : HashMap α β := mkHashMap +def toList (m : HashMap α β) : List (α × β) := +m.fold (fun r k v => (k, v)::r) [] + +def toArray (m : HashMap α β) : Array (α × β) := +m.fold (fun r k v => r.push (k, v)) #[] + def numBuckets (m : HashMap α β) : Nat := m.val.buckets.val.size diff --git a/stage0/src/Init/Lean/Elab/StructInst.lean b/stage0/src/Init/Lean/Elab/StructInst.lean index 24b424cc56..73496529f2 100644 --- a/stage0/src/Init/Lean/Elab/StructInst.lean +++ b/stage0/src/Init/Lean/Elab/StructInst.lean @@ -154,12 +154,236 @@ else do | Expr.const constName _ _ => pure constName | _ => useSource () +/- +Recall that `structInstField` elements have the form +``` + def structInstField := parser! structInstLVal >> " := " >> termParser + def structInstLVal := (ident <|> numLit <|> structInstArrayRef) >> many (("." >> (ident <|> numLit)) <|> structInstArrayRef) +-/ + +/- Given a structure instance element `structInstElem`, prepend the new fields. -/ +private def prependFields (structInstElem : Syntax) (newFields : List Name) : Syntax := +match newFields with +| [] => structInstElem +| first :: rest => + let currFirst := structInstElem.getArg 0; + let currFirst := if currFirst.isIdent then mkNullNode #[mkAtomFrom currFirst ".", currFirst] else currFirst; + let restStx := rest.toArray.map $ fun fieldName => mkNullNode #[mkAtomFrom structInstElem ".", mkIdentFrom structInstElem fieldName]; + let newManyArgs := restStx.push currFirst ++ (structInstElem.getArg 1).getArgs; + let structInstElem := structInstElem.setArg 1 (mkNullNode newManyArgs); + structInstElem.setArg 0 (mkIdentFrom structInstElem first) + +@[inline] private def modifyStructInstFieldsM {m : Type → Type} [Monad m] (stx : Syntax) (f : Syntax → m Syntax) : m Syntax := do +let args := (stx.getArg 2).getArgs; +args ← args.mapM $ fun arg => + if arg.getKind == `Lean.Parser.Term.structInstField then + f arg + else + pure arg; +pure $ stx.setArg 2 (mkNullNode args) + +@[inline] private def modifyStructInstFields (stx : Syntax) (f : Syntax → Syntax) : Syntax := +Id.run $ modifyStructInstFieldsM stx f + +/- Given a structure instance `stx`, expand the first field of each element if it is a composite name. + Example: + ``` + (Term.structInstField `x.y (null) ":=" (Term.num (numLit "1"))) + ``` + is expanded into + ``` + (Term.structInstField `x (null (null "." `y)) ":=" (Term.num (numLit "1"))) + ``` -/ +private def expandCompositeFields (stx : Syntax) : Syntax := +modifyStructInstFields stx $ fun arg => + let field := arg.getArg 0; + if field.isIdent then + match field.getId with + | Name.str Name.anonymous _ _ => arg -- atomic field + | Name.str pre s _ => + -- update first with `s` + let arg := arg.setArg 0 (mkIdentFrom field (mkNameSimple s)); + prependFields arg pre.components + | _ => unreachable! + else + arg + +/- Example `{ Prod . 1 := 10, 2 := true }` => `{ Prod . fst := 10, snd := true }` -/ +private def expandNumLitFields (stx : Syntax) (structName : Name) : TermElabM Syntax := do +env ← getEnv; +let fieldNames := getStructureFields env structName; +modifyStructInstFieldsM stx $ fun arg => + let field := arg.getArg 0; + match field.isNatLit? with + | none => pure arg + | some idx => + if idx == 0 then throwError arg "invalid field index, index must be greater than 0" + else if idx > fieldNames.size then throwError arg ("invalid field index, structure has only #" ++ toString fieldNames.size ++ " fields") + else + let newField := mkIdentFrom field (fieldNames.get! idx); + pure $ arg.setArg 0 newField + +/- For example, consider the following structures: + ``` + structure A := (x : Nat) + structure B extends A := (y : Nat) + structure C extends B := (z : Bool) + ``` + This method expands parent structure fields using the path to the parent structure. + For example, + ``` + { C . x := 0, y := 0, z := true } + ``` + is expanded into + ``` + { C . toB.toA.x := 0, toB.y := 0, z := true } + ``` -/ +private def expandParentFields (stx : Syntax) (structName : Name) : TermElabM Syntax := do +env ← getEnv; +modifyStructInstFieldsM stx $ fun arg => + let field := arg.getArg 0; + if field.isIdent then + let fieldName := field.getId; + match findField? env structName fieldName with + | none => throwError arg ("'" ++ fieldName ++ "' is not a field of structure '" ++ structName ++ "'") + | some baseStructName => + if baseStructName == structName then pure arg + else match getPathToBaseStructure? env baseStructName structName with + | some path => do + let path := path.map $ fun funName => match funName with + | Name.str _ s _ => mkNameSimple s + | _ => unreachable!; + pure $ prependFields arg path + | _ => throwError arg ("failed to access field '" ++ fieldName ++ "' in parent structure") + else + pure arg + +/- We say a `structInstField` is simple if the suffix is empty. + That is, the `many` component `many (("." >> (ident <|> numLit)) <|> structInstArrayRef)` is empty. -/ +private def isSimpleStructInstField (stx : Syntax) : Bool := +(stx.getArg 1).getArgs.isEmpty + +private def getStructInstFields (stx : Syntax) : Array Syntax := +(stx.getArg 2).getArgs.filter $ fun elem => elem.getKind == `Lean.Parser.Term.structInstField + +private def getFieldName (structInstField : Syntax) : Name := +(structInstField.getArg 0).getId + +private abbrev FieldMap := HashMap Name (List Syntax) + +private def groupFields (instFields : Array Syntax) : TermElabM FieldMap := +instFields.foldlM + (fun fieldMap instField => + let fieldName := getFieldName instField; + match fieldMap.find? fieldName with + | some (prevInstField::restInstFields) => + if isSimpleStructInstField prevInstField || isSimpleStructInstField instField then + throwError instField ("field '" ++ fieldName ++ "' has already beed specified") + else + pure $ fieldMap.insert fieldName (instField::prevInstField::restInstFields) + | _ => pure $ fieldMap.insert fieldName [instField]) + {} + +private def isSimpleStructInstFieldSingleton? : List Syntax → Option Syntax +| [instField] => if isSimpleStructInstField instField then some instField else none +| _ => none + +-- def structInstSource := parser! ".." >> optional termParser +private def mkStructInstSource (ref : Syntax) (optTermParser : Syntax) : Syntax := +Syntax.node `Lean.Parser.Term.structInstSource #[mkAtomFrom ref "..", optTermParser] + +private def mkProjStx (s : Syntax) (fieldName : Name) : Syntax := +Syntax.node `Lean.Parser.Term.proj #[s, mkAtomFrom s ".", mkIdentFrom s fieldName] + +structure FieldView := +(ref : Syntax) +(fieldName : Name) +(val: Syntax) + +private def getFieldViews (stx : Syntax) (sourceView : SourceView) : TermElabM (List FieldView) := do +let instFields := getStructInstFields stx; +fieldMap ← groupFields instFields; +pure $ fieldMap.toList.map $ fun ⟨fieldName, instFields⟩ => + match isSimpleStructInstFieldSingleton? instFields with + | some instField => { ref := instField, fieldName := fieldName, val := instField.getArg 3 } + | none => + let newArgs := instFields.toArray.map $ fun instField => + let suffixElems := (instField.getArg 1).getArgs; + let newField := suffixElems.get! 0; + let newField := if newField.getKind == `Lean.Parser.Term.structInstArrayRef then newField else newField.getArg 1; + let newSuffixElems := suffixElems.eraseIdx 0; + let instField := instField.setArg 0 newField; + let instField := instField.setArg 1 (mkNullNode newSuffixElems); + instField; + let newArgs := match sourceView with + | SourceView.none => newArgs + | SourceView.implicit => newArgs.push $ mkStructInstSource stx mkNullNode + | SourceView.explicit src => newArgs.push $ mkStructInstSource stx (mkNullNode #[mkProjStx src fieldName]); + let newStruct := stx.setArg 1 mkNullNode; -- erase explicit struct name + let newStruct := stx.setArg 2 (mkSepStx newArgs (mkAtomFrom stx ",")); + { ref := instFields.head!, fieldName := fieldName, val := newStruct } + +structure CtorHeaderResult := +(ctorFn : Expr) +(ctorFnType : Expr) +(instMVars : Array Expr) + +private def mkCtorHeaderAux (ref : Syntax) : Nat → Expr → Expr → Array Expr → TermElabM CtorHeaderResult +| 0, type, ctorFn, instMVars => pure { ctorFn := ctorFn, ctorFnType := type, instMVars := instMVars } +| n+1, type, ctorFn, instMVars => do + type ← whnfForall ref type; + match type with + | Expr.forallE _ d b c => + match c.binderInfo with + | BinderInfo.instImplicit => do + a ← mkFreshExprMVar ref d MetavarKind.synthetic; + mkCtorHeaderAux n (b.instantiate1 a) (mkApp ctorFn a) (instMVars.push a) + | _ => do + a ← mkFreshExprMVar ref d; + mkCtorHeaderAux n (b.instantiate1 a) (mkApp ctorFn a) instMVars + | _ => throwError ref "unexpected constructor type" + +private partial def getForallBody : Nat → Expr → Option Expr +| i+1, Expr.forallE _ _ b _ => getForallBody i b +| i+1, _ => none +| 0, type => type + +private def propagateExpectedType (ref : Syntax) (type : Expr) (numFields : Nat) (expectedType? : Option Expr) : TermElabM Unit := +match expectedType? with +| none => pure () +| some expectedType => + match getForallBody numFields type with + | none => pure () + | some typeBody => + unless typeBody.hasLooseBVars $ do + isDefEq ref expectedType typeBody; + pure () + +/- + Create structure ctor, with fresh metavariable for universe levels and parameters, and then propagate expected (if available). + Note that the expected type propagate is slightly different from the one in regular applications. -/ +private def mkCtorHeader (ref : Syntax) (ctorVal : ConstructorVal) (expectedType? : Option Expr) : TermElabM CtorHeaderResult := do +lvls ← ctorVal.lparams.mapM $ fun _ => mkFreshLevelMVar ref; +let val := Lean.mkConst ctorVal.name lvls; +let type := (ConstantInfo.ctorInfo ctorVal).instantiateTypeLevelParams lvls; +r ← mkCtorHeaderAux ref ctorVal.nparams type val #[]; +propagateExpectedType ref r.ctorFnType ctorVal.nfields expectedType?; +pure r + private def elabStructInstAux (stx : Syntax) (expectedType? : Option Expr) (sourceView : SourceView) : TermElabM Expr := do structName ← getStructName stx expectedType? sourceView; env ← getEnv; unless (isStructureLike env structName) $ throwError stx ("invalid {...} notation, '" ++ structName ++ "' is not a structure"); -throwError stx ("WIP " ++ toString structName ++ toString stx) +let stx := expandCompositeFields stx; +stx ← expandNumLitFields stx structName; +stx ← expandParentFields stx structName; +fieldViews ← getFieldViews stx sourceView; +let ctorVal := getStructureCtor env structName; +ctorHeader ← mkCtorHeader stx ctorVal expectedType?; +-- fieldViews.forM $ fun v => dbgTrace (toString v.fieldName ++ " := " ++ toString v.val); +-- dbgTrace (">> " ++ toString ctorHeader.ctorFn); +throwError stx ("WIP") @[builtinTermElab structInst] def elabStructInst : TermElab := fun stx expectedType? => do diff --git a/stage0/src/Init/Lean/Parser/Parser.lean b/stage0/src/Init/Lean/Parser/Parser.lean index 6b7e4f2cd7..b3beea3b13 100644 --- a/stage0/src/Init/Lean/Parser/Parser.lean +++ b/stage0/src/Init/Lean/Parser/Parser.lean @@ -1442,31 +1442,44 @@ let nameP := if anonymous then nameP <|> noImmediateColon >> pushNone >> pushNon -- antiquotations are not part of the "standard" syntax, so hide "expected '$'" on error node kind $ try $ setExpected [] dollarSymbol >> checkNoWsBefore "no space before" >> antiquotExpr >> nameP >> optional (checkNoWsBefore "" >> "*") +@[inline] def withAntiquotFn (antiquotP p : ParserFn) : ParserFn := +fun c s => + let (s, stx?) := peekToken c s; + let tryAnti := match stx? with + | some stx@(Syntax.atom _ sym) => sym == "$" + | _ => false; + (if tryAnti then orelseFn antiquotP p else p) c s + +/-- Optimized version of `mkAntiquot ... <|> p`. -/ +@[inline] def withAntiquot (antiquotP p : Parser) : Parser := +{ fn := withAntiquotFn antiquotP.fn p.fn, + info := orelseInfo antiquotP.info p.info } + /- ===================== -/ /- End of Antiquotations -/ /- ===================== -/ def nodeWithAntiquot (name : String) (kind : SyntaxNodeKind) (p : Parser) : Parser := -mkAntiquot name kind false <|> node kind p +withAntiquot (mkAntiquot name kind false) $ node kind p def ident : Parser := -mkAntiquot "ident" identKind <|> identNoAntiquot +withAntiquot (mkAntiquot "ident" identKind) identNoAntiquot -- `ident` and `rawIdent` produce the same syntax tree, so we reuse the antiquotation kind name def rawIdent : Parser := -mkAntiquot "ident" identKind <|> rawIdentNoAntiquot +withAntiquot (mkAntiquot "ident" identKind) rawIdentNoAntiquot def numLit : Parser := -mkAntiquot "numLit" numLitKind <|> numLitNoAntiquot +withAntiquot (mkAntiquot "numLit" numLitKind) numLitNoAntiquot def strLit : Parser := -mkAntiquot "strLit" strLitKind <|> strLitNoAntiquot +withAntiquot (mkAntiquot "strLit" strLitKind) strLitNoAntiquot def charLit : Parser := -mkAntiquot "charLit" charLitKind <|> charLitNoAntiquot +withAntiquot (mkAntiquot "charLit" charLitKind) charLitNoAntiquot def nameLit : Parser := -mkAntiquot "nameLit" nameLitKind <|> nameLitNoAntiquot +withAntiquot (mkAntiquot "nameLit" nameLitKind) nameLitNoAntiquot def categoryParserOfStackFn (offset : Nat) : ParserFn := fun ctx s => @@ -1496,29 +1509,8 @@ fun c s => let s := longestMatchFn ps c s; mkResult s iniSz -private def catNameToString : Name → String -| Name.str Name.anonymous s _ => s -| n => n.toString - -@[inline] def leadingParserAntiquot (kind : Name) : ParserFn := --- allow "anonymous" antiquotations `$x` for the `term` category only --- TODO: make customizable --- one good example for a category that should not be anonymous is --- `index` in `tests/lean/run/bigop.lean`. -let anonAntiquot := kind == `term; -(mkAntiquot (catNameToString kind) none anonAntiquot).fn - -private def isDollar (c : ParserContext) (s : ParserState) : Bool := -match peekToken c s with -| (_, some (Syntax.atom _ val)) => val == "$" -| _ => false - -def leadingParser (kind : Name) (tables : PrattParsingTables) (leadingIdentAsSymbol : Bool) (antiquotParser : Bool) : ParserFn := -fun c s => - if antiquotParser && isDollar c s then - orelseFn (leadingParserAntiquot kind) (leadingParserAux kind tables leadingIdentAsSymbol) c s - else - leadingParserAux kind tables leadingIdentAsSymbol c s +@[inline] def leadingParser (kind : Name) (tables : PrattParsingTables) (leadingIdentAsSymbol : Bool) (antiquotParser : ParserFn) : ParserFn := +withAntiquotFn antiquotParser (leadingParserAux kind tables leadingIdentAsSymbol) def trailingLoopStep (tables : PrattParsingTables) (ps : List Parser) : ParserFn := fun c s => @@ -1553,10 +1545,10 @@ partial def trailingLoop (tables : PrattParsingTables) (c : ParserContext) : Par /-- Implements a recursive precedence parser according to Pratt's algorithm. - If `antiquotParser == true`, we inject the antiquotation parser into syntax categories. + `antiquotParser` should be a `mkAntiquot` parser (or always fail) and is tried before all other parsers. It should not be added to the regular leading parsers because it would heavily overlap with antiquotation parsers nested inside them. -/ -def prattParser (kind : Name) (tables : PrattParsingTables) (leadingIdentAsSymbol : Bool) (antiquotParser : Bool) : ParserFn := +@[inline] def prattParser (kind : Name) (tables : PrattParsingTables) (leadingIdentAsSymbol : Bool) (antiquotParser : ParserFn) : ParserFn := fun c s => let left := s.stxStack.back; let (s, lbp) := currLbp left c s; @@ -1819,12 +1811,24 @@ match (parserExtension.getState env).categories.find? catName with | none => false | some cat => cat.leadingIdentAsSymbol +private def catNameToString : Name → String +| Name.str Name.anonymous s _ => s +| n => n.toString + +@[inline] def mkCategoryAntiquotParser (kind : Name) : ParserFn := +-- allow "anonymous" antiquotations `$x` for the `term` category only +-- TODO: make customizable +-- one good example for a category that should not be anonymous is +-- `index` in `tests/lean/run/bigop.lean`. +let anonAntiquot := kind == `term; +(mkAntiquot (catNameToString kind) none anonAntiquot).fn + def categoryParserFnImpl (catName : Name) : ParserFn := fun ctx s => let categories := (parserExtension.getState ctx.env).categories; match categories.find? catName with | some cat => - prattParser catName cat.tables cat.leadingIdentAsSymbol true ctx s + prattParser catName cat.tables cat.leadingIdentAsSymbol (mkCategoryAntiquotParser catName) ctx s | none => s.mkUnexpectedError ("unknown parser category '" ++ toString catName ++ "'") @[init] def setCategoryParserFnRef : IO Unit := @@ -1978,9 +1982,9 @@ fun c s => s.mkErrorAt "field index" iniPos @[inline] def fieldIdx : Parser := -mkAntiquot "fieldIdx" `fieldIdx <|> -{ fn := fieldIdxFn, - info := mkAtomicInfo "fieldIdx" } +withAntiquot (mkAntiquot "fieldIdx" `fieldIdx) + { fn := fieldIdxFn, + info := mkAtomicInfo "fieldIdx" } end Parser diff --git a/stage0/src/Init/Lean/Parser/Term.lean b/stage0/src/Init/Lean/Parser/Term.lean index 957e44d8c3..5738e12bb6 100644 --- a/stage0/src/Init/Lean/Parser/Term.lean +++ b/stage0/src/Init/Lean/Parser/Term.lean @@ -61,7 +61,7 @@ def haveAssign := parser! " := " >> termParser @[builtinTermParser] def «show» := parser! symbol "show " leadPrec >> termParser >> fromTerm @[builtinTermParser] def «fun» := parser! unicodeSymbol "λ" "fun" leadPrec >> many1 (termParser appPrec) >> darrow >> termParser def structInstArrayRef := parser! "[" >> termParser >>"]" -def structInstLVal := (ident <|> structInstArrayRef) >> many (("." >> (ident <|> numLit)) <|> structInstArrayRef) +def structInstLVal := (ident <|> numLit <|> structInstArrayRef) >> many (group ("." >> (ident <|> numLit)) <|> structInstArrayRef) def structInstField := parser! structInstLVal >> " := " >> termParser def structInstSource := parser! ".." >> optional termParser @[builtinTermParser] def structInst := parser! symbol "{" appPrec >> optional (try (ident >> " . ")) >> sepBy (structInstField <|> structInstSource) ", " true >> "}" diff --git a/stage0/src/Init/LeanInit.lean b/stage0/src/Init/LeanInit.lean index 33323c98c6..7d3f728069 100644 --- a/stage0/src/Init/LeanInit.lean +++ b/stage0/src/Init/LeanInit.lean @@ -434,6 +434,13 @@ Syntax.ident none (toString val).toSubstring val [] @[inline] def mkNullNode (args : Array Syntax := #[]) : Syntax := Syntax.node nullKind args +def mkSepStx (a : Array Syntax) (sep : Syntax) : Syntax := +mkNullNode $ a.iterate #[] $ fun i a r => + if i.val > 0 then + (r.push sep).push a + else + r.push a + def mkOptionalNode (arg : Option Syntax) : Syntax := match arg with | some arg => Syntax.node nullKind #[arg] diff --git a/stage0/src/frontends/lean/builtin_exprs.cpp b/stage0/src/frontends/lean/builtin_exprs.cpp index f439ef7b6f..e481a01450 100644 --- a/stage0/src/frontends/lean/builtin_exprs.cpp +++ b/stage0/src/frontends/lean/builtin_exprs.cpp @@ -797,7 +797,7 @@ static expr parse_parser(parser & p, bool leading, pos_info const & pos) { name n = leading ? get_lean_parser_leading_node_name() : get_lean_parser_trailing_node_name(); expr r = mk_app(mk_constant(n), quote(kind), e); if (leading && kind.is_string()) { - r = mk_app(mk_constant({"HasOrelse", "orelse"}), + r = mk_app(mk_constant({"Lean", "Parser", "withAntiquot"}), mk_app(mk_constant({"Lean", "Parser", "mkAntiquot"}), quote(kind.get_string().data()), quote(kind)), diff --git a/stage0/stdlib/Init/Data/HashMap/Basic.c b/stage0/stdlib/Init/Data/HashMap/Basic.c index 454999c6b2..e735e1e221 100644 --- a/stage0/stdlib/Init/Data/HashMap/Basic.c +++ b/stage0/stdlib/Init/Data/HashMap/Basic.c @@ -13,13 +13,16 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_AssocList_foldlM___main___at_HashMap_toArray___spec__1(lean_object*, lean_object*); lean_object* l_HashMap_foldM___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_size___rarg___boxed(lean_object*); lean_object* l_mkHashMap(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_erase___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_HashMap_toList___rarg(lean_object*); lean_object* l_HashMap_find_x21___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_mkHashMapImp___rarg___closed__2; lean_object* lean_array_uget(lean_object*, size_t); +lean_object* l_HashMap_toArray___rarg___boxed(lean_object*); lean_object* l_mkHashMapImp___rarg___closed__1; lean_object* l_HashMap_size(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_HasEmptyc(lean_object*, lean_object*, lean_object*, lean_object*); @@ -27,6 +30,7 @@ lean_object* l_HashMap_fold___rarg___boxed(lean_object*, lean_object*, lean_obje lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldM___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_foldBuckets(lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); +extern lean_object* l_Array_empty___closed__1; lean_object* l_HashMapImp_moveEntries(lean_object*, lean_object*); lean_object* l___private_Init_Util_1__mkPanicMessage(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_numBuckets(lean_object*, lean_object*, lean_object*, lean_object*); @@ -34,14 +38,18 @@ lean_object* l_HashMap_getOp(lean_object*, lean_object*); lean_object* l_HashMap_HasEmptyc___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_fold(lean_object*, lean_object*, lean_object*); +lean_object* l_HashMap_toArray___rarg(lean_object*); lean_object* l_HashMapImp_find_x3f___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_erase(lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_HashMapImp_fold___spec__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_HashMap_find_x3f___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_foldM(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_insert___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_HashMap_toArray___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_expand(lean_object*, lean_object*); +lean_object* l_HashMap_toList(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_HashMap_fold(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_fold___rarg(lean_object*, lean_object*, lean_object*); @@ -49,13 +57,16 @@ lean_object* l_Array_iterateMAux___main___at_HashMap_fold___spec__2___rarg___box lean_object* l_HashMapImp_moveEntries___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_find___main___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldBucketsM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg(lean_object*, lean_object*); lean_object* l_HashMap_find_x21(lean_object*, lean_object*); lean_object* l_HashMap_findD___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_HashMap_toList___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_HashMapImp_insert(lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldBuckets___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_HashMapImp_fold___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l_HashMap_toList___rarg___boxed(lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_HashMapImp_reinsertAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMap_foldM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); @@ -63,21 +74,27 @@ lean_object* l_HashMapImp_expand___rarg(lean_object*, lean_object*, lean_object* lean_object* l_HashMapImp_contains(lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_HashMapImp_moveEntries___main___spec__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg___boxed(lean_object*, lean_object*); lean_object* l_HashMap_erase(lean_object*, lean_object*); lean_object* l_HashMapImp_erase___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_find_x3f___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_HashMap_toArray___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_HashMap_fold___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_HashMapImp_foldBuckets___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_Inhabited(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_HashMap_toArray(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldBuckets___spec__2(lean_object*, lean_object*, lean_object*); uint8_t l_AssocList_contains___main___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_isEmpty(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_AssocList_foldlM___main___at_HashMapImp_foldBuckets___spec__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_getOp___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_HashMap_toList___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); +lean_object* l_HashMap_toList___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapBucket_update(lean_object*, lean_object*); lean_object* l_HashMap_find_x3f___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_mkHashMapImp___rarg(lean_object*); +lean_object* l_Array_iterateMAux___main___at_HashMap_toArray___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_numBuckets___rarg___boxed(lean_object*); lean_object* l_HashMap_numBuckets___rarg(lean_object*); lean_object* l_mkHashMapImp(lean_object*, lean_object*); @@ -98,14 +115,18 @@ lean_object* l_HashMap_contains(lean_object*, lean_object*); lean_object* l_mkHashMap___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_size___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_HashMap_toArray___spec__2(lean_object*, lean_object*); lean_object* l_HashMapImp_reinsertAux(lean_object*, lean_object*); lean_object* l_HashMapImp_find_x3f(lean_object*, lean_object*); lean_object* l_HashMap_size___rarg(lean_object*); lean_object* l_HashMap_findD___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_AssocList_foldlM___main___at_HashMap_toList___spec__1(lean_object*, lean_object*); +lean_object* l_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapBucket_update___rarg(lean_object*, size_t, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMap_fold___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_HashMap_toList___spec__2(lean_object*, lean_object*); lean_object* l_HashMapBucket_update___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_HashMapImp_contains___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_getOp___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -113,6 +134,7 @@ lean_object* l_Array_iterateMAux___main___at_HashMapImp_foldBuckets___spec__2___ lean_object* l_Array_iterateMAux___main___at_HashMap_foldM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_HashMapImp_fold___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMap_find_x3f(lean_object*, lean_object*); +lean_object* l_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg___boxed(lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); uint8_t l_HashMap_contains___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_HashMapImp_foldBucketsM(lean_object*, lean_object*, lean_object*, lean_object*); @@ -1663,6 +1685,258 @@ lean_dec(x_3); return x_5; } } +lean_object* l_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +lean_inc(x_4); +lean_inc(x_3); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_3); +lean_ctor_set(x_6, 1, x_4); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_1); +x_1 = x_7; +x_2 = x_5; +goto _start; +} +} +} +lean_object* l_AssocList_foldlM___main___at_HashMap_toList___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg___boxed), 2, 0); +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at_HashMap_toList___spec__2___rarg(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_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg(x_4, x_7); +lean_dec(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_Array_iterateMAux___main___at_HashMap_toList___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Array_iterateMAux___main___at_HashMap_toList___spec__2___rarg___boxed), 4, 0); +return x_3; +} +} +lean_object* l_HashMap_toList___rarg(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = lean_box(0); +x_3 = lean_ctor_get(x_1, 1); +x_4 = lean_unsigned_to_nat(0u); +x_5 = l_Array_iterateMAux___main___at_HashMap_toList___spec__2___rarg(x_1, x_3, x_4, x_2); +return x_5; +} +} +lean_object* l_HashMap_toList(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_HashMap_toList___rarg___boxed), 1, 0); +return x_5; +} +} +lean_object* l_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_AssocList_foldlM___main___at_HashMap_toList___spec__1___rarg(x_1, x_2); +lean_dec(x_2); +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at_HashMap_toList___spec__2___rarg___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_HashMap_toList___spec__2___rarg(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_HashMap_toList___rarg___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_HashMap_toList___rarg(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_HashMap_toList___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_HashMap_toList(x_1, x_2, x_3, x_4); +lean_dec(x_4); +lean_dec(x_3); +return x_5; +} +} +lean_object* l_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +lean_inc(x_4); +lean_inc(x_3); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_3); +lean_ctor_set(x_6, 1, x_4); +x_7 = lean_array_push(x_1, x_6); +x_1 = x_7; +x_2 = x_5; +goto _start; +} +} +} +lean_object* l_AssocList_foldlM___main___at_HashMap_toArray___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg___boxed), 2, 0); +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at_HashMap_toArray___spec__2___rarg(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_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg(x_4, x_7); +lean_dec(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_Array_iterateMAux___main___at_HashMap_toArray___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Array_iterateMAux___main___at_HashMap_toArray___spec__2___rarg___boxed), 4, 0); +return x_3; +} +} +lean_object* l_HashMap_toArray___rarg(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = lean_ctor_get(x_1, 1); +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_Array_empty___closed__1; +x_5 = l_Array_iterateMAux___main___at_HashMap_toArray___spec__2___rarg(x_1, x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_HashMap_toArray(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_HashMap_toArray___rarg___boxed), 1, 0); +return x_5; +} +} +lean_object* l_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_AssocList_foldlM___main___at_HashMap_toArray___spec__1___rarg(x_1, x_2); +lean_dec(x_2); +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at_HashMap_toArray___spec__2___rarg___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_HashMap_toArray___spec__2___rarg(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_HashMap_toArray___rarg___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_HashMap_toArray___rarg(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_HashMap_toArray___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_HashMap_toArray(x_1, x_2, x_3, x_4); +lean_dec(x_4); +lean_dec(x_3); +return x_5; +} +} lean_object* l_HashMap_numBuckets___rarg(lean_object* x_1) { _start: { diff --git a/stage0/stdlib/Init/Lean/Elab/Command.c b/stage0/stdlib/Init/Lean/Elab/Command.c index b7200dd19b..8e4e0423ea 100644 --- a/stage0/stdlib/Init/Lean/Elab/Command.c +++ b/stage0/stdlib/Init/Lean/Elab/Command.c @@ -31,6 +31,7 @@ lean_object* l_PersistentHashMap_findAux___main___at_Lean_Elab_Command_elabComma extern lean_object* l_Lean_Meta_check___closed__1; lean_object* l_Lean_Syntax_isNatLitAux(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_getOptions(lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; extern lean_object* l_Lean_Elab_Tactic_evalTactic___main___closed__3; extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__8; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabNamespace___closed__3; @@ -329,6 +330,7 @@ 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; lean_object* l_Lean_Elab_mkElabAttribute___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l_Lean_Elab_Command_elabEnd___closed__2; lean_object* l_Lean_Elab_Command_elabCommand(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_liftIO___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -487,7 +489,6 @@ lean_object* l___private_Init_Lean_Elab_Command_4__modifyGetState___rarg(lean_ob uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_declareBuiltinCommandElab___closed__7; -extern lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l_Lean_Elab_Command_elabVariable___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Command_12__addScopes(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_Lean_Elab_MonadMacroAdapter___closed__7; @@ -543,7 +544,6 @@ lean_object* l_Lean_Elab_mkMessageAt___at_Lean_Elab_Command_throwError___spec__3 lean_object* lean_usize_to_nat(size_t); lean_object* l___private_Init_Lean_Elab_Command_12__addScopes___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Command_12__addScopes___main___closed__1; -extern lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; extern lean_object* l_Lean_addClass___closed__1; lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabVariable___closed__1; lean_object* l_Lean_Elab_Command_commandElabAttribute___closed__1; @@ -3408,7 +3408,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___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_30 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; x_31 = lean_string_append(x_29, x_30); x_32 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_32, 0, x_31); @@ -3513,7 +3513,7 @@ x_52 = l_Lean_Name_toStringWithSep___main(x_51, x_1); x_53 = l_Lean_Elab_Command_addBuiltinCommandElab___closed__1; x_54 = lean_string_append(x_53, x_52); lean_dec(x_52); -x_55 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_55 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; x_56 = lean_string_append(x_54, x_55); x_57 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_57, 0, x_56); @@ -3840,7 +3840,7 @@ lean_dec(x_13); lean_dec(x_11); lean_dec(x_2); lean_dec(x_1); -x_25 = l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; +x_25 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; x_26 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_26, 0, x_25); lean_ctor_set(x_26, 1, x_12); diff --git a/stage0/stdlib/Init/Lean/Elab/StructInst.c b/stage0/stdlib/Init/Lean/Elab/StructInst.c index 89c56509cd..26e3b91b74 100644 --- a/stage0/stdlib/Init/Lean/Elab/StructInst.c +++ b/stage0/stdlib/Init/Lean/Elab/StructInst.c @@ -13,115 +13,265 @@ #ifdef __cplusplus extern "C" { #endif -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__2; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_getEnv___rarg(lean_object*); extern lean_object* l_Lean_Name_toString___closed__1; +lean_object* l___private_Init_Lean_Elab_StructInst_15__groupFields(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__1(lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_1__getStructSource(lean_object*, lean_object*, lean_object*); +lean_object* l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__3(lean_object*, lean_object*); +lean_object* l_Lean_Syntax_isNatLitAux(lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__8; +lean_object* lean_mk_empty_array_with_capacity(lean_object*); +lean_object* l_Lean_Elab_Term_mkFreshExprMVar(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_unreachable_x21___rarg(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__7; extern lean_object* l_Lean_nullKind; +lean_object* l___private_Init_Lean_Elab_StructInst_23__mkCtorHeader(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6; +lean_object* l_Array_eraseIdx___rarg(lean_object*, lean_object*); +lean_object* lean_array_uget(lean_object*, size_t); lean_object* l_Lean_Elab_Term_inferType(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Format_pretty(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_List_format___rarg___closed__2; uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___closed__5; extern lean_object* l_Option_get_x21___rarg___closed__3; lean_object* l_Lean_Syntax_getIdAt(lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___closed__3; lean_object* l_Lean_Elab_Term_expandNonAtomicExplicitSource(lean_object*, lean_object*, lean_object*); +lean_object* lean_array_uset(lean_object*, size_t, lean_object*); extern lean_object* l_Lean_Parser_Term_structInstArrayRef___elambda__1___closed__2; +lean_object* lean_array_fswap(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__7; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3; lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabStructInst___closed__3; extern lean_object* l_Array_empty___closed__1; +lean_object* l___private_Init_Lean_Elab_StructInst_10__expandParentFields(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_1__getStructSource___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabStructInst(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM(lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_SourceView_isNone___boxed(lean_object*); +lean_object* l_Lean_mkIdentFrom(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__3; +lean_object* l_HashMapImp_find_x3f___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__2___boxed(lean_object*, lean_object*); +lean_object* lean_expr_instantiate1(lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); extern lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__1; lean_object* lean_array_get_size(lean_object*); +lean_object* l_mkHashMap___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__1(lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___closed__6; lean_object* l_Lean_Expr_getAppFn___main(lean_object*); +extern lean_object* l_Lean_Name_inhabited; +lean_object* l___private_Init_Lean_Elab_StructInst_8__expandCompositeFields(lean_object*); +lean_object* l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__3___boxed(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_5__prependFields___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__1; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6; lean_object* lean_string_utf8_byte_size(lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__1; lean_object* l_Lean_Elab_Term_getMainModule___rarg(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__5; +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__2; lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__5; lean_object* lean_nat_add(lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_whnf(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__2; +lean_object* l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField___boxed(lean_object*); extern lean_object* l_Lean_mkTermIdFromIdent___closed__2; lean_object* l_Lean_Elab_Term_expandNonAtomicExplicitSource___closed__1; +extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__2; +lean_object* l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(lean_object*, lean_object*); +lean_object* l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__3(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_12__getStructInstFields(lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__1; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__6; lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_22__propagateExpectedType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__8; lean_object* lean_array_fget(lean_object*, lean_object*); extern lean_object* l_Lean_Elab_Term_declareBuiltinTermElab___closed__3; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__5; +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__4; +uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__1; +lean_object* l___private_Init_Lean_Elab_StructInst_18__mkProjStx(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__9; +lean_object* l___private_Init_Lean_Elab_StructInst_7__modifyStructInstFields(lean_object*, lean_object*); +extern lean_object* l_Lean_numLitKind; lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__4; +lean_object* l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__3___boxed(lean_object*, lean_object*); +lean_object* lean_nat_sub(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_5__prependFields___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_3__elabModifyOp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f___boxed(lean_object*); +lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_getBuiltinSearchPath___closed__1; +lean_object* l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource___boxed(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg___lambda__1(lean_object*, 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_Elab_Term_ExpandNonAtomicExplicitSource_main(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__2; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Elab_Term_mkConst___closed__4; lean_object* l___private_Init_Lean_Elab_StructInst_1__getStructSource___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_AssocList_replace___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__9(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabStructInst(lean_object*); +lean_object* l_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2(lean_object*); +lean_object* lean_instantiate_type_lparams(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__3; lean_object* l_Lean_Elab_Term_elabStructInst___closed__2; extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2; +size_t l_Lean_Name_hash(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_7__modifyStructInstFields___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabTermAux___main(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); +lean_object* l_Nat_repr(lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f(lean_object*); +lean_object* l_Lean_Syntax_getId(lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_throwError___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_getStructureFields(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_8__expandCompositeFields___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_getCurrMacroScope(lean_object*, lean_object*); extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4; lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Options_empty; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__9; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__8; +lean_object* l_Lean_getPathToBaseStructure_x3f(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__6; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__4; +size_t lean_usize_modn(size_t, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__4; +lean_object* l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Array_isEmpty___rarg(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__4; extern lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__2; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__9; extern lean_object* l_Lean_Parser_Term_let___elambda__1___closed__2; +lean_object* l_List_redLength___main___rarg(lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_3__elabModifyOp___closed__1; +lean_object* l_mkHashMapImp___rarg(lean_object*); +lean_object* l_HashMapImp_expand___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__6(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__8; +lean_object* l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Expr_Data_binderInfo(uint64_t); +lean_object* l_HashMapImp_insert___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__4(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__2; lean_object* l_Lean_addMacroScope(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__5; +extern lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +lean_object* l___private_Init_Lean_Elab_StructInst_5__prependFields(lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_21__getForallBody(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__1; +lean_object* l_AssocList_contains___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5___boxed(lean_object*, lean_object*); +lean_object* l_Lean_mkSepStx(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__1; lean_object* l_Lean_Elab_Term_elabStructInst___closed__1; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__2; +lean_object* l_Lean_mkAtomFrom(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_9__expandNumLitFields(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_isDefEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__2; +extern lean_object* l_Lean_Syntax_inhabited; lean_object* l___private_Init_Lean_Elab_StructInst_3__elabModifyOp___closed__2; +lean_object* l___private_Init_Lean_Elab_StructInst_19__getFieldViews(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__1; +lean_object* l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__8(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__5(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__4; lean_object* l_Lean_Syntax_setArg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_head_x21___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__1(lean_object*); lean_object* l_Lean_Elab_Term_elabStructInst___closed__3; lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_22__propagateExpectedType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_1__getStructSource___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t lean_nat_dec_le(lean_object*, lean_object*); +lean_object* l_Lean_mkApp(lean_object*, lean_object*); +lean_object* l_HashMapImp_find_x3f___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__2(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__1(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getArgs(lean_object*); lean_object* l_Lean_Syntax_getKind(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_3__elabModifyOp___closed__3; lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__3; lean_object* lean_panic_fn(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_15__groupFields___boxed(lean_object*, lean_object*, lean_object*); +uint8_t l_AssocList_contains___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__3; lean_object* l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__6; +lean_object* l___private_Init_Lean_Elab_StructInst_15__groupFields___closed__1; extern lean_object* l_Lean_getBuiltinSearchPath___closed__2; lean_object* l___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__5; +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__5; lean_object* l_Lean_Elab_Term_tryPostponeIfMVar(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__3; +lean_object* l_Lean_getStructureCtor(lean_object*, lean_object*); +lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabStructInst___closed__1; extern lean_object* l_Lean_Parser_Term_letIdDecl___closed__2; +lean_object* l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___rarg___lambda__1(lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_mkAppStx___closed__9; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__3; +lean_object* l_Lean_Elab_Term_whnfForall(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); +lean_object* l_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2___boxed(lean_object*); extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10; +extern lean_object* l_Lean_mkOptionalNode___closed__1; +uint8_t l_Lean_Expr_hasLooseBVars(lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_21__getForallBody___main(lean_object*, lean_object*); extern lean_object* l_Lean_Expr_Inhabited; lean_object* l_Lean_Elab_Term_addBuiltinTermElab(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabStructInst___closed__2; +lean_object* lean_mk_array(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_13__getFieldName(lean_object*); +lean_object* l_Lean_Elab_Term_mkFreshLevelMVar(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Elab_Term_SourceView_isNone(lean_object*); -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__1; +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__2; +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__7; +uint8_t l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField(lean_object*); +extern lean_object* l_Lean_mkOptionalNode___closed__2; extern lean_object* l___private_Init_Lean_Elab_Term_5__expandCDot___main___closed__4; lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___closed__1; extern lean_object* l_Lean_Parser_Term_structInstSource___elambda__1___closed__2; -lean_object* l_Lean_Syntax_formatStxAux___main(lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__6; +lean_object* l_List_toArrayAux___main___rarg(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__4; -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_StructInst_3__elabModifyOp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_isStructureLike(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__5; lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_indentExpr(lean_object*); lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___closed__4; lean_object* l_Array_foldlStepMAux___main___at___private_Init_Lean_Elab_StructInst_2__isModifyOp_x3f___spec__1___closed__2; lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__6; +lean_object* l_Lean_mkConst(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_13__getFieldName___boxed(lean_object*); +lean_object* l_Lean_findField_x3f___main(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Elab_StructInst_12__getStructInstFields___boxed(lean_object*); +lean_object* l_Lean_Name_components(lean_object*); +lean_object* l_HashMapImp_moveEntries___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__7(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +lean_object* l_Array_filterAux___main___at___private_Init_Lean_Elab_StructInst_12__getStructInstFields___spec__1(lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Syntax_isIdent(lean_object*); lean_object* _init_l_Array_umapMAux___main___at_Lean_Elab_Term_ExpandNonAtomicExplicitSource_main___spec__1___closed__1() { _start: { @@ -7424,7 +7574,3258 @@ lean_dec(x_1); return x_6; } } -lean_object* _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__1() { +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_5__prependFields___spec__1(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_3); +x_5 = lean_nat_dec_lt(x_2, x_4); +lean_dec(x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = l_Array_empty___closed__1; +x_7 = x_3; +return x_7; +} +else +{ +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; +x_8 = lean_array_fget(x_3, x_2); +x_9 = lean_box(0); +x_10 = x_9; +x_11 = lean_array_fset(x_3, x_2, x_10); +x_12 = l_Lean_Name_toString___closed__1; +x_13 = l_Lean_mkAtomFrom(x_1, x_12); +lean_inc(x_8); +x_14 = l_Lean_mkIdentFrom(x_1, x_8); +x_15 = l_Lean_mkAppStx___closed__9; +x_16 = lean_array_push(x_15, x_13); +x_17 = lean_array_push(x_16, x_14); +x_18 = l_Lean_nullKind; +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +x_20 = lean_unsigned_to_nat(1u); +x_21 = lean_nat_add(x_2, x_20); +x_22 = x_19; +lean_dec(x_8); +x_23 = lean_array_fset(x_11, x_2, x_22); +lean_dec(x_2); +x_2 = x_21; +x_3 = x_23; +goto _start; +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_5__prependFields(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +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; +x_3 = lean_ctor_get(x_2, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_2, 1); +lean_inc(x_4); +lean_dec(x_2); +x_5 = lean_unsigned_to_nat(0u); +x_6 = l_Lean_Syntax_getArg(x_1, x_5); +x_7 = l_Lean_Syntax_isIdent(x_6); +x_8 = l_List_redLength___main___rarg(x_4); +x_9 = lean_mk_empty_array_with_capacity(x_8); +lean_dec(x_8); +x_10 = l_List_toArrayAux___main___rarg(x_4, x_9); +x_11 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_5__prependFields___spec__1(x_1, x_5, x_10); +x_12 = lean_unsigned_to_nat(1u); +x_13 = l_Lean_Syntax_getArg(x_1, x_12); +x_14 = l_Lean_Syntax_getArgs(x_13); +lean_dec(x_13); +if (x_7 == 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; lean_object* x_21; +x_15 = lean_array_push(x_11, x_6); +x_16 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_14, x_14, x_5, x_15); +lean_dec(x_14); +x_17 = l_Lean_nullKind; +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_16); +x_19 = l_Lean_Syntax_setArg(x_1, x_12, x_18); +x_20 = l_Lean_mkIdentFrom(x_19, x_3); +x_21 = l_Lean_Syntax_setArg(x_19, x_5, x_20); +return x_21; +} +else +{ +lean_object* x_22; lean_object* x_23; 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; lean_object* x_33; lean_object* x_34; +x_22 = l_Lean_Name_toString___closed__1; +x_23 = l_Lean_mkAtomFrom(x_6, x_22); +x_24 = l_Lean_mkAppStx___closed__9; +x_25 = lean_array_push(x_24, x_23); +x_26 = lean_array_push(x_25, x_6); +x_27 = l_Lean_nullKind; +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +x_29 = lean_array_push(x_11, x_28); +x_30 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_14, x_14, x_5, x_29); +lean_dec(x_14); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_27); +lean_ctor_set(x_31, 1, x_30); +x_32 = l_Lean_Syntax_setArg(x_1, x_12, x_31); +x_33 = l_Lean_mkIdentFrom(x_32, x_3); +x_34 = l_Lean_Syntax_setArg(x_32, x_5, x_33); +return x_34; +} +} +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_5__prependFields___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_5__prependFields___spec__1(x_1, x_2, x_3); +lean_dec(x_1); +return x_4; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg___lambda__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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_7 = lean_unsigned_to_nat(1u); +x_8 = lean_nat_add(x_1, x_7); +x_9 = x_6; +x_10 = lean_array_fset(x_3, x_1, x_9); +x_11 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg(x_4, x_5, x_8, x_10); +return x_11; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg(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_4); +x_6 = lean_nat_dec_lt(x_3, x_5); +lean_dec(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; +lean_dec(x_3); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = l_Array_empty___closed__1; +x_10 = x_4; +x_11 = lean_apply_2(x_8, lean_box(0), x_10); +return x_11; +} +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; uint8_t x_19; lean_object* x_20; +x_12 = lean_array_fget(x_4, x_3); +x_13 = lean_box(0); +x_14 = x_13; +x_15 = lean_array_fset(x_4, x_3, x_14); +x_16 = lean_ctor_get(x_1, 1); +lean_inc(x_16); +lean_inc(x_12); +x_17 = l_Lean_Syntax_getKind(x_12); +x_18 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +x_19 = lean_name_eq(x_17, x_18); +lean_dec(x_17); +lean_inc(x_2); +lean_inc(x_1); +lean_inc(x_12); +x_20 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg___lambda__1___boxed), 6, 5); +lean_closure_set(x_20, 0, x_3); +lean_closure_set(x_20, 1, x_12); +lean_closure_set(x_20, 2, x_15); +lean_closure_set(x_20, 3, x_1); +lean_closure_set(x_20, 4, x_2); +if (x_19 == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_dec(x_2); +x_21 = lean_ctor_get(x_1, 0); +lean_inc(x_21); +lean_dec(x_1); +x_22 = lean_ctor_get(x_21, 1); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_apply_2(x_22, lean_box(0), x_12); +x_24 = lean_apply_4(x_16, lean_box(0), lean_box(0), x_23, x_20); +return x_24; +} +else +{ +lean_object* x_25; lean_object* x_26; +lean_dec(x_1); +x_25 = lean_apply_1(x_2, x_12); +x_26 = lean_apply_4(x_16, lean_box(0), lean_box(0), x_25, x_20); +return x_26; +} +} +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg), 4, 0); +return x_2; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +lean_dec(x_4); +x_6 = l_Lean_nullKind; +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +x_8 = lean_unsigned_to_nat(2u); +x_9 = l_Lean_Syntax_setArg(x_2, x_8, x_7); +x_10 = lean_apply_2(x_5, lean_box(0), x_9); +return x_10; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___rarg(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; +x_4 = lean_unsigned_to_nat(2u); +x_5 = l_Lean_Syntax_getArg(x_2, x_4); +x_6 = l_Lean_Syntax_getArgs(x_5); +lean_dec(x_5); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +x_8 = lean_unsigned_to_nat(0u); +lean_inc(x_1); +x_9 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg(x_1, x_3, x_8, x_6); +x_10 = lean_alloc_closure((void*)(l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___rarg___lambda__1), 3, 2); +lean_closure_set(x_10, 0, x_1); +lean_closure_set(x_10, 1, x_2); +x_11 = lean_apply_4(x_7, lean_box(0), lean_box(0), x_9, x_10); +return x_11; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_6__modifyStructInstFieldsM___spec__1___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_7__modifyStructInstFields___spec__1(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_3); +x_5 = lean_nat_dec_lt(x_2, x_4); +lean_dec(x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = l_Array_empty___closed__1; +x_7 = x_3; +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; +x_8 = lean_array_fget(x_3, x_2); +x_9 = lean_box(0); +x_10 = x_9; +x_11 = lean_array_fset(x_3, x_2, x_10); +lean_inc(x_8); +x_12 = l_Lean_Syntax_getKind(x_8); +x_13 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +x_14 = lean_name_eq(x_12, x_13); +lean_dec(x_12); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_add(x_2, x_15); +if (x_14 == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_inc(x_8); +x_17 = x_8; +lean_dec(x_8); +x_18 = lean_array_fset(x_11, x_2, x_17); +lean_dec(x_2); +x_2 = x_16; +x_3 = x_18; +goto _start; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_inc(x_1); +lean_inc(x_8); +x_20 = lean_apply_1(x_1, x_8); +x_21 = x_20; +lean_dec(x_8); +x_22 = lean_array_fset(x_11, x_2, x_21); +lean_dec(x_2); +x_2 = x_16; +x_3 = x_22; +goto _start; +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_7__modifyStructInstFields(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_unsigned_to_nat(2u); +x_4 = l_Lean_Syntax_getArg(x_1, x_3); +x_5 = l_Lean_Syntax_getArgs(x_4); +lean_dec(x_4); +x_6 = lean_unsigned_to_nat(0u); +x_7 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_7__modifyStructInstFields___spec__1(x_2, x_6, x_5); +x_8 = l_Lean_nullKind; +x_9 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_9, 0, x_8); +lean_ctor_set(x_9, 1, x_7); +x_10 = l_Lean_Syntax_setArg(x_1, x_3, x_9); +return x_10; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_8__expandCompositeFields___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint8_t x_4; +x_3 = lean_array_get_size(x_2); +x_4 = lean_nat_dec_lt(x_1, x_3); +lean_dec(x_3); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; +lean_dec(x_1); +x_5 = l_Array_empty___closed__1; +x_6 = x_2; +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; uint8_t x_13; lean_object* x_14; lean_object* x_15; +x_7 = lean_array_fget(x_2, x_1); +x_8 = lean_box(0); +x_9 = x_8; +x_10 = lean_array_fset(x_2, x_1, x_9); +lean_inc(x_7); +x_11 = l_Lean_Syntax_getKind(x_7); +x_12 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +x_13 = lean_name_eq(x_11, x_12); +lean_dec(x_11); +x_14 = lean_unsigned_to_nat(1u); +x_15 = lean_nat_add(x_1, x_14); +if (x_13 == 0) +{ +lean_object* x_16; lean_object* x_17; +lean_inc(x_7); +x_16 = x_7; +lean_dec(x_7); +x_17 = lean_array_fset(x_10, x_1, x_16); +lean_dec(x_1); +x_1 = x_15; +x_2 = x_17; +goto _start; +} +else +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_19 = lean_unsigned_to_nat(0u); +x_20 = l_Lean_Syntax_getArg(x_7, x_19); +x_21 = l_Lean_Syntax_isIdent(x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_inc(x_7); +x_22 = x_7; +lean_dec(x_7); +x_23 = lean_array_fset(x_10, x_1, x_22); +lean_dec(x_1); +x_1 = x_15; +x_2 = x_23; +goto _start; +} +else +{ +lean_object* x_25; +x_25 = l_Lean_Syntax_getId(x_20); +if (lean_obj_tag(x_25) == 1) +{ +lean_object* x_26; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_inc(x_7); +x_27 = x_7; +lean_dec(x_7); +x_28 = lean_array_fset(x_10, x_1, x_27); +lean_dec(x_1); +x_1 = x_15; +x_2 = x_28; +goto _start; +} +else +{ +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; +x_30 = lean_ctor_get(x_25, 1); +lean_inc(x_30); +lean_dec(x_25); +x_31 = lean_box(0); +x_32 = lean_name_mk_string(x_31, x_30); +x_33 = l_Lean_mkIdentFrom(x_20, x_32); +lean_dec(x_20); +lean_inc(x_7); +x_34 = l_Lean_Syntax_setArg(x_7, x_19, x_33); +x_35 = l_Lean_Name_components(x_26); +x_36 = l___private_Init_Lean_Elab_StructInst_5__prependFields(x_34, x_35); +x_37 = x_36; +lean_dec(x_7); +x_38 = lean_array_fset(x_10, x_1, x_37); +lean_dec(x_1); +x_1 = x_15; +x_2 = x_38; +goto _start; +} +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_25); +lean_dec(x_20); +x_40 = l_Lean_Syntax_inhabited; +x_41 = l_unreachable_x21___rarg(x_40); +x_42 = x_41; +lean_dec(x_7); +x_43 = lean_array_fset(x_10, x_1, x_42); +lean_dec(x_1); +x_1 = x_15; +x_2 = x_43; +goto _start; +} +} +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_8__expandCompositeFields(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_2 = lean_unsigned_to_nat(2u); +x_3 = l_Lean_Syntax_getArg(x_1, x_2); +x_4 = l_Lean_Syntax_getArgs(x_3); +lean_dec(x_3); +x_5 = lean_unsigned_to_nat(0u); +x_6 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_8__expandCompositeFields___spec__1(x_5, x_4); +x_7 = l_Lean_nullKind; +x_8 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_8, 0, x_7); +lean_ctor_set(x_8, 1, x_6); +x_9 = l_Lean_Syntax_setArg(x_1, x_2, x_8); +return x_9; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("invalid field index, structure has only #"); +return x_1; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__1; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__2; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string(" fields"); +return x_1; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__4; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__5; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("invalid field index, index must be greater than 0"); +return x_1; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__7; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__8; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__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; uint8_t x_7; +x_6 = lean_array_get_size(x_3); +x_7 = lean_nat_dec_lt(x_2, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_4); +lean_dec(x_2); +x_8 = l_Array_empty___closed__1; +x_9 = x_3; +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_5); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_11 = lean_array_fget(x_3, x_2); +x_12 = lean_box(0); +x_13 = x_12; +x_14 = lean_array_fset(x_3, x_2, x_13); +lean_inc(x_11); +x_15 = l_Lean_Syntax_getKind(x_11); +x_16 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +x_17 = lean_name_eq(x_15, x_16); +lean_dec(x_15); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_18 = lean_unsigned_to_nat(1u); +x_19 = lean_nat_add(x_2, x_18); +lean_inc(x_11); +x_20 = x_11; +lean_dec(x_11); +x_21 = lean_array_fset(x_14, x_2, x_20); +lean_dec(x_2); +x_2 = x_19; +x_3 = x_21; +goto _start; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_unsigned_to_nat(0u); +x_24 = l_Lean_Syntax_getArg(x_11, x_23); +x_25 = l_Lean_numLitKind; +x_26 = l_Lean_Syntax_isNatLitAux(x_25, 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_dec(x_24); +x_27 = lean_unsigned_to_nat(1u); +x_28 = lean_nat_add(x_2, x_27); +lean_inc(x_11); +x_29 = x_11; +lean_dec(x_11); +x_30 = lean_array_fset(x_14, x_2, x_29); +lean_dec(x_2); +x_2 = x_28; +x_3 = x_30; +goto _start; +} +else +{ +lean_object* x_32; uint8_t x_33; +x_32 = lean_ctor_get(x_26, 0); +lean_inc(x_32); +lean_dec(x_26); +x_33 = lean_nat_dec_eq(x_32, x_23); +if (x_33 == 0) +{ +lean_object* x_34; uint8_t x_35; +x_34 = lean_array_get_size(x_1); +x_35 = lean_nat_dec_lt(x_34, x_32); +if (x_35 == 0) +{ +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_dec(x_34); +x_36 = l_Lean_Name_inhabited; +x_37 = lean_array_get(x_36, x_1, x_32); +lean_dec(x_32); +x_38 = l_Lean_mkIdentFrom(x_24, x_37); +lean_dec(x_24); +lean_inc(x_11); +x_39 = l_Lean_Syntax_setArg(x_11, x_23, x_38); +x_40 = lean_unsigned_to_nat(1u); +x_41 = lean_nat_add(x_2, x_40); +x_42 = x_39; +lean_dec(x_11); +x_43 = lean_array_fset(x_14, x_2, x_42); +lean_dec(x_2); +x_2 = x_41; +x_3 = x_43; +goto _start; +} +else +{ +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; uint8_t x_53; +lean_dec(x_32); +lean_dec(x_24); +lean_dec(x_14); +lean_dec(x_2); +x_45 = l_Nat_repr(x_34); +x_46 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_46, 0, x_45); +x_47 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_47, 0, x_46); +x_48 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__3; +x_49 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_49, 0, x_48); +lean_ctor_set(x_49, 1, x_47); +x_50 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6; +x_51 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +x_52 = l_Lean_Elab_Term_throwError___rarg(x_11, x_51, x_4, x_5); +lean_dec(x_11); +x_53 = !lean_is_exclusive(x_52); +if (x_53 == 0) +{ +return x_52; +} +else +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_54 = lean_ctor_get(x_52, 0); +x_55 = lean_ctor_get(x_52, 1); +lean_inc(x_55); +lean_inc(x_54); +lean_dec(x_52); +x_56 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_56, 0, x_54); +lean_ctor_set(x_56, 1, x_55); +return x_56; +} +} +} +else +{ +lean_object* x_57; lean_object* x_58; uint8_t x_59; +lean_dec(x_32); +lean_dec(x_24); +lean_dec(x_14); +lean_dec(x_2); +x_57 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__9; +x_58 = l_Lean_Elab_Term_throwError___rarg(x_11, x_57, x_4, x_5); +lean_dec(x_11); +x_59 = !lean_is_exclusive(x_58); +if (x_59 == 0) +{ +return x_58; +} +else +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_58, 0); +x_61 = lean_ctor_get(x_58, 1); +lean_inc(x_61); +lean_inc(x_60); +lean_dec(x_58); +x_62 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_62, 0, x_60); +lean_ctor_set(x_62, 1, x_61); +return x_62; +} +} +} +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_9__expandNumLitFields(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; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_5 = l_Lean_Elab_Term_getEnv___rarg(x_4); +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 = l_Lean_getStructureFields(x_6, x_2); +x_9 = lean_unsigned_to_nat(2u); +x_10 = l_Lean_Syntax_getArg(x_1, x_9); +x_11 = l_Lean_Syntax_getArgs(x_10); +lean_dec(x_10); +x_12 = lean_unsigned_to_nat(0u); +x_13 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1(x_8, x_12, x_11, x_3, x_7); +lean_dec(x_8); +if (lean_obj_tag(x_13) == 0) +{ +uint8_t x_14; +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_13, 0); +x_16 = l_Lean_nullKind; +x_17 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_15); +x_18 = l_Lean_Syntax_setArg(x_1, x_9, x_17); +lean_ctor_set(x_13, 0, x_18); +return x_13; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_19 = lean_ctor_get(x_13, 0); +x_20 = lean_ctor_get(x_13, 1); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_13); +x_21 = l_Lean_nullKind; +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_19); +x_23 = l_Lean_Syntax_setArg(x_1, x_9, x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_20); +return x_24; +} +} +else +{ +uint8_t x_25; +lean_dec(x_1); +x_25 = !lean_is_exclusive(x_13); +if (x_25 == 0) +{ +return x_13; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_13, 0); +x_27 = lean_ctor_get(x_13, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_13); +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; +} +} +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__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_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_1); +return x_6; +} +} +lean_object* l_List_map___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__1(lean_object* x_1) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_2; +x_2 = lean_box(0); +return x_2; +} +else +{ +uint8_t x_3; +x_3 = !lean_is_exclusive(x_1); +if (x_3 == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_4 = lean_ctor_get(x_1, 0); +x_5 = lean_ctor_get(x_1, 1); +x_6 = l_List_map___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__1(x_5); +if (lean_obj_tag(x_4) == 1) +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = lean_ctor_get(x_4, 1); +lean_inc(x_7); +lean_dec(x_4); +x_8 = lean_box(0); +x_9 = lean_name_mk_string(x_8, x_7); +lean_ctor_set(x_1, 1, x_6); +lean_ctor_set(x_1, 0, x_9); +return x_1; +} +else +{ +lean_object* x_10; lean_object* x_11; +lean_dec(x_4); +x_10 = l_Lean_Name_inhabited; +x_11 = l_unreachable_x21___rarg(x_10); +lean_ctor_set(x_1, 1, x_6); +lean_ctor_set(x_1, 0, x_11); +return x_1; +} +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +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_List_map___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__1(x_13); +if (lean_obj_tag(x_12) == 1) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_12, 1); +lean_inc(x_15); +lean_dec(x_12); +x_16 = lean_box(0); +x_17 = lean_name_mk_string(x_16, x_15); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_14); +return x_18; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_12); +x_19 = l_Lean_Name_inhabited; +x_20 = l_unreachable_x21___rarg(x_19); +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_14); +return x_21; +} +} +} +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("' is not a field of structure '"); +return x_1; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__1; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__2; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("failed to access field '"); +return x_1; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__4; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__5; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("' in parent structure"); +return x_1; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__7; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__8; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___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_4); +x_8 = lean_nat_dec_lt(x_3, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_9 = l_Array_empty___closed__1; +x_10 = x_4; +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_6); +return x_11; +} +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; uint8_t x_18; +x_12 = lean_array_fget(x_4, x_3); +x_13 = lean_box(0); +x_14 = x_13; +x_15 = lean_array_fset(x_4, x_3, x_14); +lean_inc(x_12); +x_16 = l_Lean_Syntax_getKind(x_12); +x_17 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +x_18 = lean_name_eq(x_16, x_17); +lean_dec(x_16); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_3, x_19); +lean_inc(x_12); +x_21 = x_12; +lean_dec(x_12); +x_22 = lean_array_fset(x_15, x_3, x_21); +lean_dec(x_3); +x_3 = x_20; +x_4 = x_22; +goto _start; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(0u); +x_25 = l_Lean_Syntax_getArg(x_12, x_24); +x_26 = l_Lean_Syntax_isIdent(x_25); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +lean_dec(x_25); +x_27 = lean_unsigned_to_nat(1u); +x_28 = lean_nat_add(x_3, x_27); +lean_inc(x_12); +x_29 = x_12; +lean_dec(x_12); +x_30 = lean_array_fset(x_15, x_3, x_29); +lean_dec(x_3); +x_3 = x_28; +x_4 = x_30; +goto _start; +} +else +{ +lean_object* x_32; lean_object* x_33; +x_32 = l_Lean_Syntax_getId(x_25); +lean_dec(x_25); +lean_inc(x_1); +lean_inc(x_2); +x_33 = l_Lean_findField_x3f___main(x_2, x_1, 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_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; +lean_dec(x_15); +lean_dec(x_3); +lean_dec(x_2); +x_34 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_34, 0, x_32); +x_35 = l_Lean_Elab_Term_mkConst___closed__4; +x_36 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_34); +x_37 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__3; +x_38 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +x_39 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_39, 0, x_1); +x_40 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +x_41 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_35); +x_42 = l_Lean_Elab_Term_throwError___rarg(x_12, x_41, x_5, x_6); +lean_dec(x_12); +x_43 = !lean_is_exclusive(x_42); +if (x_43 == 0) +{ +return x_42; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_42, 0); +x_45 = lean_ctor_get(x_42, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_42); +x_46 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_46, 0, x_44); +lean_ctor_set(x_46, 1, x_45); +return x_46; +} +} +else +{ +lean_object* x_47; uint8_t x_48; +x_47 = lean_ctor_get(x_33, 0); +lean_inc(x_47); +lean_dec(x_33); +x_48 = lean_name_eq(x_47, x_1); +if (x_48 == 0) +{ +lean_object* x_49; +lean_inc(x_1); +lean_inc(x_2); +x_49 = l_Lean_getPathToBaseStructure_x3f(x_2, x_47, x_1); +lean_dec(x_47); +if (lean_obj_tag(x_49) == 0) +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; +lean_dec(x_15); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_50 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_50, 0, x_32); +x_51 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__6; +x_52 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_52, 0, x_51); +lean_ctor_set(x_52, 1, x_50); +x_53 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__9; +x_54 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_54, 0, x_52); +lean_ctor_set(x_54, 1, x_53); +x_55 = l_Lean_Elab_Term_throwError___rarg(x_12, x_54, x_5, x_6); +lean_dec(x_12); +x_56 = !lean_is_exclusive(x_55); +if (x_56 == 0) +{ +return x_55; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_55, 0); +x_58 = lean_ctor_get(x_55, 1); +lean_inc(x_58); +lean_inc(x_57); +lean_dec(x_55); +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_object* x_64; lean_object* x_65; lean_object* x_66; +lean_dec(x_32); +x_60 = lean_ctor_get(x_49, 0); +lean_inc(x_60); +lean_dec(x_49); +x_61 = l_List_map___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__1(x_60); +lean_inc(x_12); +x_62 = l___private_Init_Lean_Elab_StructInst_5__prependFields(x_12, x_61); +x_63 = lean_unsigned_to_nat(1u); +x_64 = lean_nat_add(x_3, x_63); +x_65 = x_62; +lean_dec(x_12); +x_66 = lean_array_fset(x_15, x_3, x_65); +lean_dec(x_3); +x_3 = x_64; +x_4 = x_66; +goto _start; +} +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; +lean_dec(x_47); +lean_dec(x_32); +x_68 = lean_unsigned_to_nat(1u); +x_69 = lean_nat_add(x_3, x_68); +lean_inc(x_12); +x_70 = x_12; +lean_dec(x_12); +x_71 = lean_array_fset(x_15, x_3, x_70); +lean_dec(x_3); +x_3 = x_69; +x_4 = x_71; +goto _start; +} +} +} +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_10__expandParentFields(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; lean_object* x_11; lean_object* x_12; +x_5 = l_Lean_Elab_Term_getEnv___rarg(x_4); +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_unsigned_to_nat(2u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +x_10 = l_Lean_Syntax_getArgs(x_9); +lean_dec(x_9); +x_11 = lean_unsigned_to_nat(0u); +x_12 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2(x_2, x_6, x_11, x_10, x_3, x_7); +if (lean_obj_tag(x_12) == 0) +{ +uint8_t x_13; +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_12, 0); +x_15 = l_Lean_nullKind; +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_15); +lean_ctor_set(x_16, 1, x_14); +x_17 = l_Lean_Syntax_setArg(x_1, x_8, x_16); +lean_ctor_set(x_12, 0, x_17); +return x_12; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_18 = lean_ctor_get(x_12, 0); +x_19 = lean_ctor_get(x_12, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_12); +x_20 = l_Lean_nullKind; +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_18); +x_22 = l_Lean_Syntax_setArg(x_1, x_8, x_21); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_19); +return x_23; +} +} +else +{ +uint8_t x_24; +lean_dec(x_1); +x_24 = !lean_is_exclusive(x_12); +if (x_24 == 0) +{ +return x_12; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_12, 0); +x_26 = lean_ctor_get(x_12, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_12); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +} +uint8_t l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; uint8_t x_5; +x_2 = lean_unsigned_to_nat(1u); +x_3 = l_Lean_Syntax_getArg(x_1, x_2); +x_4 = l_Lean_Syntax_getArgs(x_3); +lean_dec(x_3); +x_5 = l_Array_isEmpty___rarg(x_4); +lean_dec(x_4); +return x_5; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField___boxed(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; +x_2 = l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField(x_1); +lean_dec(x_1); +x_3 = lean_box(x_2); +return x_3; +} +} +lean_object* l_Array_filterAux___main___at___private_Init_Lean_Elab_StructInst_12__getStructInstFields___spec__1(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) +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = l_Array_shrink___main___rarg(x_1, x_3); +lean_dec(x_3); +return x_6; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_7 = lean_array_fget(x_1, x_2); +x_8 = l_Lean_Syntax_getKind(x_7); +x_9 = l_Lean_Parser_Term_structInstField___elambda__1___closed__2; +x_10 = lean_name_eq(x_8, x_9); +lean_dec(x_8); +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_2, x_11); +lean_dec(x_2); +x_2 = x_12; +goto _start; +} +else +{ +uint8_t x_14; +x_14 = lean_nat_dec_lt(x_3, x_2); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_add(x_2, x_15); +lean_dec(x_2); +x_17 = lean_nat_add(x_3, x_15); +lean_dec(x_3); +x_2 = x_16; +x_3 = x_17; +goto _start; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_19 = lean_array_fswap(x_1, x_2, x_3); +x_20 = lean_unsigned_to_nat(1u); +x_21 = lean_nat_add(x_2, x_20); +lean_dec(x_2); +x_22 = lean_nat_add(x_3, x_20); +lean_dec(x_3); +x_1 = x_19; +x_2 = x_21; +x_3 = x_22; +goto _start; +} +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_12__getStructInstFields(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_unsigned_to_nat(2u); +x_3 = l_Lean_Syntax_getArg(x_1, x_2); +x_4 = l_Lean_Syntax_getArgs(x_3); +lean_dec(x_3); +x_5 = lean_unsigned_to_nat(0u); +x_6 = l_Array_filterAux___main___at___private_Init_Lean_Elab_StructInst_12__getStructInstFields___spec__1(x_4, x_5, x_5); +return x_6; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_12__getStructInstFields___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l___private_Init_Lean_Elab_StructInst_12__getStructInstFields(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_13__getFieldName(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_2 = lean_unsigned_to_nat(0u); +x_3 = l_Lean_Syntax_getArg(x_1, x_2); +x_4 = l_Lean_Syntax_getId(x_3); +lean_dec(x_3); +return x_4; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_13__getFieldName___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l___private_Init_Lean_Elab_StructInst_13__getFieldName(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l_mkHashMap___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_mkHashMapImp___rarg(x_1); +return x_2; +} +} +lean_object* l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__3(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__2(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__3(x_2, x_7); +lean_dec(x_7); +return x_8; +} +} +uint8_t l_AssocList_contains___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5(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; +goto _start; +} +else +{ +uint8_t x_8; +x_8 = 1; +return x_8; +} +} +} +} +lean_object* l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__8(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__7(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__8(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__6(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__7(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__9(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__9(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__9(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__4(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__6(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__9(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__6(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__9(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* _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("field '"); +return x_1; +} +} +lean_object* _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__1; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__2; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("' has already beed specified"); +return x_1; +} +} +lean_object* _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__4; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__5; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10(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_2); +x_8 = lean_nat_dec_lt(x_3, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_3); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_4); +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; lean_object* x_14; +x_10 = lean_array_fget(x_2, x_3); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_3, x_11); +lean_dec(x_3); +x_13 = l___private_Init_Lean_Elab_StructInst_13__getFieldName(x_10); +x_14 = l_HashMapImp_find_x3f___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__2(x_4, x_13); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_box(0); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_10); +lean_ctor_set(x_16, 1, x_15); +x_17 = l_HashMapImp_insert___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__4(x_4, x_13, x_16); +x_3 = x_12; +x_4 = x_17; +goto _start; +} +else +{ +lean_object* x_19; +x_19 = lean_ctor_get(x_14, 0); +lean_inc(x_19); +lean_dec(x_14); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_10); +lean_ctor_set(x_20, 1, x_19); +x_21 = l_HashMapImp_insert___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__4(x_4, x_13, x_20); +x_3 = x_12; +x_4 = x_21; +goto _start; +} +else +{ +lean_object* x_23; uint8_t x_24; +x_23 = lean_ctor_get(x_19, 0); +lean_inc(x_23); +x_24 = l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField(x_23); +lean_dec(x_23); +if (x_24 == 0) +{ +uint8_t x_25; +x_25 = l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField(x_10); +if (x_25 == 0) +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_10); +lean_ctor_set(x_26, 1, x_19); +x_27 = l_HashMapImp_insert___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__4(x_4, x_13, x_26); +x_3 = x_12; +x_4 = x_27; +goto _start; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +lean_dec(x_19); +lean_dec(x_12); +lean_dec(x_4); +x_29 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_29, 0, x_13); +x_30 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3; +x_31 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_31, 0, x_30); +lean_ctor_set(x_31, 1, x_29); +x_32 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6; +x_33 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +x_34 = l_Lean_Elab_Term_throwError___rarg(x_10, x_33, x_5, x_6); +lean_dec(x_10); +x_35 = !lean_is_exclusive(x_34); +if (x_35 == 0) +{ +return x_34; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_34, 0); +x_37 = lean_ctor_get(x_34, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_34); +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; +} +} +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; +lean_dec(x_19); +lean_dec(x_12); +lean_dec(x_4); +x_39 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_39, 0, x_13); +x_40 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3; +x_41 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_39); +x_42 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6; +x_43 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +x_44 = l_Lean_Elab_Term_throwError___rarg(x_10, x_43, x_5, x_6); +lean_dec(x_10); +x_45 = !lean_is_exclusive(x_44); +if (x_45 == 0) +{ +return x_44; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_44, 0); +x_47 = lean_ctor_get(x_44, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_44); +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; +} +} +} +} +} +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_15__groupFields___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___private_Init_Lean_Elab_StructInst_15__groupFields(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 = lean_unsigned_to_nat(0u); +x_5 = l___private_Init_Lean_Elab_StructInst_15__groupFields___closed__1; +x_6 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10(x_1, x_1, x_4, x_5, x_2, x_3); +return x_6; +} +} +lean_object* l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__3(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_HashMapImp_find_x3f___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_HashMapImp_find_x3f___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__2(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_AssocList_contains___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5___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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__5(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___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___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_Elab_StructInst_15__groupFields___spec__10(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_15__groupFields___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Init_Lean_Elab_StructInst_15__groupFields(x_1, x_2, x_3); +lean_dec(x_1); +return x_4; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f(lean_object* x_1) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_2; +x_2 = lean_box(0); +return x_2; +} +else +{ +lean_object* x_3; +x_3 = lean_ctor_get(x_1, 1); +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_4; uint8_t x_5; +x_4 = lean_ctor_get(x_1, 0); +x_5 = l___private_Init_Lean_Elab_StructInst_11__isSimpleStructInstField(x_4); +if (x_5 == 0) +{ +lean_object* x_6; +x_6 = lean_box(0); +return x_6; +} +else +{ +lean_object* x_7; +lean_inc(x_4); +x_7 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_7, 0, x_4); +return x_7; +} +} +else +{ +lean_object* x_8; +x_8 = lean_box(0); +return x_8; +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(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; +x_3 = l_Lean_getBuiltinSearchPath___closed__1; +x_4 = l_Lean_mkAtomFrom(x_1, x_3); +x_5 = l_Lean_mkAppStx___closed__9; +x_6 = lean_array_push(x_5, x_4); +x_7 = lean_array_push(x_6, x_2); +x_8 = l_Lean_Parser_Term_structInstSource___elambda__1___closed__2; +x_9 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_9, 0, x_8); +lean_ctor_set(x_9, 1, x_7); +return x_9; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_18__mkProjStx(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; +x_3 = l_Lean_Name_toString___closed__1; +x_4 = l_Lean_mkAtomFrom(x_1, x_3); +x_5 = l_Lean_mkIdentFrom(x_1, x_2); +x_6 = l_Lean_Parser_declareBuiltinParser___closed__8; +x_7 = lean_array_push(x_6, x_1); +x_8 = lean_array_push(x_7, x_4); +x_9 = lean_array_push(x_8, x_5); +x_10 = l_Lean_Parser_Term_proj___elambda__1___closed__2; +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; +} +} +lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint8_t x_4; +x_3 = lean_array_get_size(x_2); +x_4 = lean_nat_dec_lt(x_1, x_3); +lean_dec(x_3); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; +lean_dec(x_1); +x_5 = l_Array_empty___closed__1; +x_6 = x_2; +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_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_7 = lean_array_fget(x_2, x_1); +x_8 = lean_box(0); +x_9 = x_8; +x_10 = lean_array_fset(x_2, x_1, x_9); +x_11 = lean_unsigned_to_nat(1u); +x_12 = l_Lean_Syntax_getArg(x_7, x_11); +x_13 = l_Lean_Syntax_getArgs(x_12); +lean_dec(x_12); +x_14 = l_Lean_Syntax_inhabited; +x_15 = lean_unsigned_to_nat(0u); +x_16 = lean_array_get(x_14, x_13, x_15); +lean_inc(x_16); +x_17 = l_Lean_Syntax_getKind(x_16); +x_18 = l_Lean_Parser_Term_structInstArrayRef___elambda__1___closed__2; +x_19 = lean_name_eq(x_17, x_18); +lean_dec(x_17); +x_20 = l_Array_eraseIdx___rarg(x_13, x_15); +x_21 = l_Lean_nullKind; +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_20); +x_23 = lean_nat_add(x_1, x_11); +if (x_19 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_24 = l_Lean_Syntax_getArg(x_16, x_11); +lean_dec(x_16); +lean_inc(x_7); +x_25 = l_Lean_Syntax_setArg(x_7, x_15, x_24); +x_26 = l_Lean_Syntax_setArg(x_25, x_11, x_22); +x_27 = x_26; +lean_dec(x_7); +x_28 = lean_array_fset(x_10, x_1, x_27); +lean_dec(x_1); +x_1 = x_23; +x_2 = x_28; +goto _start; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; +lean_inc(x_7); +x_30 = l_Lean_Syntax_setArg(x_7, x_15, x_16); +x_31 = l_Lean_Syntax_setArg(x_30, x_11, x_22); +x_32 = x_31; +lean_dec(x_7); +x_33 = lean_array_fset(x_10, x_1, x_32); +lean_dec(x_1); +x_1 = x_23; +x_2 = x_33; +goto _start; +} +} +} +} +lean_object* l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__3(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_3 = lean_ctor_get(x_2, 0); +x_4 = lean_ctor_get(x_2, 1); +x_5 = lean_ctor_get(x_2, 2); +lean_inc(x_4); +lean_inc(x_3); +x_6 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_6, 0, x_3); +lean_ctor_set(x_6, 1, x_4); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_1); +x_1 = x_7; +x_2 = x_5; +goto _start; +} +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___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 = l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__3(x_4, x_7); +lean_dec(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_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = lean_box(0); +x_3 = lean_ctor_get(x_1, 1); +x_4 = lean_unsigned_to_nat(0u); +x_5 = l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__4(x_1, x_3, x_4, x_2); +return x_5; +} +} +lean_object* l_List_map___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(0); +return x_4; +} +else +{ +uint8_t x_5; +x_5 = !lean_is_exclusive(x_3); +if (x_5 == 0) +{ +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_ctor_get(x_3, 0); +x_7 = lean_ctor_get(x_3, 1); +lean_inc(x_2); +lean_inc(x_1); +x_8 = l_List_map___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__5(x_1, x_2, x_7); +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_6, 1); +lean_inc(x_10); +lean_dec(x_6); +x_11 = l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f(x_10); +if (lean_obj_tag(x_11) == 0) +{ +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; +x_12 = l_List_redLength___main___rarg(x_10); +x_13 = lean_mk_empty_array_with_capacity(x_12); +lean_dec(x_12); +lean_inc(x_10); +x_14 = l_List_toArrayAux___main___rarg(x_10, x_13); +x_15 = lean_unsigned_to_nat(0u); +x_16 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__1(x_15, x_14); +x_17 = l_Lean_List_format___rarg___closed__2; +x_18 = l_Lean_mkAtomFrom(x_1, x_17); +x_19 = l_List_head_x21___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__1(x_10); +lean_dec(x_10); +switch (lean_obj_tag(x_2)) { +case 0: +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = l_Lean_mkSepStx(x_16, x_18); +lean_dec(x_16); +x_21 = lean_unsigned_to_nat(2u); +x_22 = l_Lean_Syntax_setArg(x_1, x_21, x_20); +x_23 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_23, 0, x_19); +lean_ctor_set(x_23, 1, x_9); +lean_ctor_set(x_23, 2, x_22); +lean_ctor_set(x_3, 1, x_8); +lean_ctor_set(x_3, 0, x_23); +return x_3; +} +case 1: +{ +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; +x_24 = l_Lean_mkOptionalNode___closed__1; +x_25 = l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(x_1, x_24); +x_26 = lean_array_push(x_16, x_25); +x_27 = l_Lean_mkSepStx(x_26, x_18); +lean_dec(x_26); +x_28 = lean_unsigned_to_nat(2u); +x_29 = l_Lean_Syntax_setArg(x_1, x_28, x_27); +x_30 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_30, 0, x_19); +lean_ctor_set(x_30, 1, x_9); +lean_ctor_set(x_30, 2, x_29); +lean_ctor_set(x_3, 1, x_8); +lean_ctor_set(x_3, 0, x_30); +return x_3; +} +default: +{ +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_31 = lean_ctor_get(x_2, 0); +lean_inc(x_31); +lean_dec(x_2); +lean_inc(x_9); +x_32 = l___private_Init_Lean_Elab_StructInst_18__mkProjStx(x_31, x_9); +x_33 = l_Lean_mkOptionalNode___closed__2; +x_34 = lean_array_push(x_33, x_32); +x_35 = l_Lean_nullKind; +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_34); +x_37 = l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(x_1, x_36); +x_38 = lean_array_push(x_16, x_37); +x_39 = l_Lean_mkSepStx(x_38, x_18); +lean_dec(x_38); +x_40 = lean_unsigned_to_nat(2u); +x_41 = l_Lean_Syntax_setArg(x_1, x_40, x_39); +x_42 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_42, 0, x_19); +lean_ctor_set(x_42, 1, x_9); +lean_ctor_set(x_42, 2, x_41); +lean_ctor_set(x_3, 1, x_8); +lean_ctor_set(x_3, 0, x_42); +return x_3; +} +} +} +else +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_10); +lean_dec(x_2); +lean_dec(x_1); +x_43 = lean_ctor_get(x_11, 0); +lean_inc(x_43); +lean_dec(x_11); +x_44 = lean_unsigned_to_nat(3u); +x_45 = l_Lean_Syntax_getArg(x_43, x_44); +x_46 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_46, 0, x_43); +lean_ctor_set(x_46, 1, x_9); +lean_ctor_set(x_46, 2, x_45); +lean_ctor_set(x_3, 1, x_8); +lean_ctor_set(x_3, 0, x_46); +return x_3; +} +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_47 = lean_ctor_get(x_3, 0); +x_48 = lean_ctor_get(x_3, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_3); +lean_inc(x_2); +lean_inc(x_1); +x_49 = l_List_map___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__5(x_1, x_2, x_48); +x_50 = lean_ctor_get(x_47, 0); +lean_inc(x_50); +x_51 = lean_ctor_get(x_47, 1); +lean_inc(x_51); +lean_dec(x_47); +x_52 = l___private_Init_Lean_Elab_StructInst_16__isSimpleStructInstFieldSingleton_x3f(x_51); +if (lean_obj_tag(x_52) == 0) +{ +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; +x_53 = l_List_redLength___main___rarg(x_51); +x_54 = lean_mk_empty_array_with_capacity(x_53); +lean_dec(x_53); +lean_inc(x_51); +x_55 = l_List_toArrayAux___main___rarg(x_51, x_54); +x_56 = lean_unsigned_to_nat(0u); +x_57 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__1(x_56, x_55); +x_58 = l_Lean_List_format___rarg___closed__2; +x_59 = l_Lean_mkAtomFrom(x_1, x_58); +x_60 = l_List_head_x21___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__1(x_51); +lean_dec(x_51); +switch (lean_obj_tag(x_2)) { +case 0: +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; +x_61 = l_Lean_mkSepStx(x_57, x_59); +lean_dec(x_57); +x_62 = lean_unsigned_to_nat(2u); +x_63 = l_Lean_Syntax_setArg(x_1, x_62, x_61); +x_64 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_64, 0, x_60); +lean_ctor_set(x_64, 1, x_50); +lean_ctor_set(x_64, 2, x_63); +x_65 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_65, 0, x_64); +lean_ctor_set(x_65, 1, x_49); +return x_65; +} +case 1: +{ +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_66 = l_Lean_mkOptionalNode___closed__1; +x_67 = l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(x_1, x_66); +x_68 = lean_array_push(x_57, x_67); +x_69 = l_Lean_mkSepStx(x_68, x_59); +lean_dec(x_68); +x_70 = lean_unsigned_to_nat(2u); +x_71 = l_Lean_Syntax_setArg(x_1, x_70, x_69); +x_72 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_72, 0, x_60); +lean_ctor_set(x_72, 1, x_50); +lean_ctor_set(x_72, 2, x_71); +x_73 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_73, 0, x_72); +lean_ctor_set(x_73, 1, x_49); +return x_73; +} +default: +{ +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; +x_74 = lean_ctor_get(x_2, 0); +lean_inc(x_74); +lean_dec(x_2); +lean_inc(x_50); +x_75 = l___private_Init_Lean_Elab_StructInst_18__mkProjStx(x_74, x_50); +x_76 = l_Lean_mkOptionalNode___closed__2; +x_77 = lean_array_push(x_76, x_75); +x_78 = l_Lean_nullKind; +x_79 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set(x_79, 1, x_77); +x_80 = l___private_Init_Lean_Elab_StructInst_17__mkStructInstSource(x_1, x_79); +x_81 = lean_array_push(x_57, x_80); +x_82 = l_Lean_mkSepStx(x_81, x_59); +lean_dec(x_81); +x_83 = lean_unsigned_to_nat(2u); +x_84 = l_Lean_Syntax_setArg(x_1, x_83, x_82); +x_85 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_85, 0, x_60); +lean_ctor_set(x_85, 1, x_50); +lean_ctor_set(x_85, 2, x_84); +x_86 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_86, 0, x_85); +lean_ctor_set(x_86, 1, x_49); +return x_86; +} +} +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_51); +lean_dec(x_2); +lean_dec(x_1); +x_87 = lean_ctor_get(x_52, 0); +lean_inc(x_87); +lean_dec(x_52); +x_88 = lean_unsigned_to_nat(3u); +x_89 = l_Lean_Syntax_getArg(x_87, x_88); +x_90 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_90, 0, x_87); +lean_ctor_set(x_90, 1, x_50); +lean_ctor_set(x_90, 2, x_89); +x_91 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_91, 0, x_90); +lean_ctor_set(x_91, 1, x_49); +return x_91; +} +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_19__getFieldViews(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_StructInst_12__getStructInstFields(x_1); +x_6 = l___private_Init_Lean_Elab_StructInst_15__groupFields(x_5, x_3, x_4); +lean_dec(x_5); +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 = l_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2(x_8); +lean_dec(x_8); +x_10 = l_List_map___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__5(x_1, x_2, x_9); +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 = l_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2(x_11); +lean_dec(x_11); +x_14 = l_List_map___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__5(x_1, x_2, x_13); +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; +lean_dec(x_2); +lean_dec(x_1); +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_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_AssocList_foldlM___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__3(x_1, x_2); +lean_dec(x_2); +return x_3; +} +} +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___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_Elab_StructInst_19__getFieldViews___spec__4(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_HashMap_toList___at___private_Init_Lean_Elab_StructInst_19__getFieldViews___spec__2(x_1); +lean_dec(x_1); +return x_2; +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("unexpected constructor type"); +return x_1; +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__1; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___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_Elab_StructInst_20__mkCtorHeaderAux___main(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_unsigned_to_nat(0u); +x_9 = lean_nat_dec_eq(x_2, x_8); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_unsigned_to_nat(1u); +x_11 = lean_nat_sub(x_2, x_10); +lean_dec(x_2); +lean_inc(x_6); +x_12 = l_Lean_Elab_Term_whnfForall(x_1, x_3, x_6, x_7); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +if (lean_obj_tag(x_13) == 7) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint64_t x_17; lean_object* x_18; uint8_t x_29; lean_object* x_30; +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +x_16 = lean_ctor_get(x_13, 2); +lean_inc(x_16); +x_17 = lean_ctor_get_uint64(x_13, sizeof(void*)*3); +lean_dec(x_13); +x_29 = (uint8_t)((x_17 << 24) >> 61); +x_30 = lean_box(x_29); +if (lean_obj_tag(x_30) == 3) +{ +lean_object* x_31; uint8_t 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; +x_31 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_31, 0, x_15); +x_32 = 1; +x_33 = lean_box(0); +lean_inc(x_6); +x_34 = l_Lean_Elab_Term_mkFreshExprMVar(x_1, x_31, x_32, x_33, x_6, x_14); +x_35 = lean_ctor_get(x_34, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_34, 1); +lean_inc(x_36); +lean_dec(x_34); +x_37 = lean_expr_instantiate1(x_16, x_35); +lean_dec(x_16); +lean_inc(x_35); +x_38 = l_Lean_mkApp(x_4, x_35); +x_39 = lean_array_push(x_5, x_35); +x_2 = x_11; +x_3 = x_37; +x_4 = x_38; +x_5 = x_39; +x_7 = x_36; +goto _start; +} +else +{ +lean_object* x_41; +lean_dec(x_30); +x_41 = lean_box(0); +x_18 = x_41; +goto block_28; +} +block_28: +{ +lean_object* x_19; uint8_t 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_dec(x_18); +x_19 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_19, 0, x_15); +x_20 = 0; +x_21 = lean_box(0); +lean_inc(x_6); +x_22 = l_Lean_Elab_Term_mkFreshExprMVar(x_1, x_19, x_20, x_21, x_6, x_14); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +x_25 = lean_expr_instantiate1(x_16, x_23); +lean_dec(x_16); +x_26 = l_Lean_mkApp(x_4, x_23); +x_2 = x_11; +x_3 = x_25; +x_4 = x_26; +x_7 = x_24; +goto _start; +} +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +lean_dec(x_13); +lean_dec(x_11); +lean_dec(x_5); +lean_dec(x_4); +x_42 = lean_ctor_get(x_12, 1); +lean_inc(x_42); +lean_dec(x_12); +x_43 = l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; +x_44 = l_Lean_Elab_Term_throwError___rarg(x_1, x_43, x_6, x_42); +return x_44; +} +} +else +{ +uint8_t x_45; +lean_dec(x_11); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_45 = !lean_is_exclusive(x_12); +if (x_45 == 0) +{ +return x_12; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_12, 0); +x_47 = lean_ctor_get(x_12, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_12); +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 +{ +lean_object* x_49; lean_object* x_50; +lean_dec(x_6); +lean_dec(x_2); +x_49 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_49, 0, x_4); +lean_ctor_set(x_49, 1, x_3); +lean_ctor_set(x_49, 2, x_5); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_7); +return x_50; +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___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___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_1); +return x_8; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux(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___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +return x_8; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___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___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_1); +return x_8; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_21__getForallBody___main(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint8_t x_4; +x_3 = lean_unsigned_to_nat(0u); +x_4 = lean_nat_dec_eq(x_1, x_3); +if (x_4 == 0) +{ +if (lean_obj_tag(x_2) == 7) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_5 = lean_ctor_get(x_2, 2); +lean_inc(x_5); +lean_dec(x_2); +x_6 = lean_unsigned_to_nat(1u); +x_7 = lean_nat_sub(x_1, x_6); +lean_dec(x_1); +x_1 = x_7; +x_2 = x_5; +goto _start; +} +else +{ +lean_object* x_9; +lean_dec(x_2); +lean_dec(x_1); +x_9 = lean_box(0); +return x_9; +} +} +else +{ +lean_object* x_10; +lean_dec(x_1); +x_10 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_10, 0, x_2); +return x_10; +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_21__getForallBody(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l___private_Init_Lean_Elab_StructInst_21__getForallBody___main(x_1, x_2); +return x_3; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_22__propagateExpectedType(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: +{ +if (lean_obj_tag(x_4) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_7 = lean_box(0); +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_7); +lean_ctor_set(x_8, 1, x_6); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; +x_9 = lean_ctor_get(x_4, 0); +lean_inc(x_9); +lean_dec(x_4); +x_10 = l___private_Init_Lean_Elab_StructInst_21__getForallBody___main(x_3, x_2); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_9); +lean_dec(x_5); +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_6); +return x_12; +} +else +{ +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 = l_Lean_Expr_hasLooseBVars(x_13); +if (x_14 == 0) +{ +lean_object* x_15; +x_15 = l_Lean_Elab_Term_isDefEq(x_1, x_9, x_13, x_5, x_6); +if (lean_obj_tag(x_15) == 0) +{ +uint8_t x_16; +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +x_17 = lean_ctor_get(x_15, 0); +lean_dec(x_17); +x_18 = lean_box(0); +lean_ctor_set(x_15, 0, x_18); +return x_15; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_15, 1); +lean_inc(x_19); +lean_dec(x_15); +x_20 = lean_box(0); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_19); +return x_21; +} +} +else +{ +uint8_t x_22; +x_22 = !lean_is_exclusive(x_15); +if (x_22 == 0) +{ +return x_15; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_15, 0); +x_24 = lean_ctor_get(x_15, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_15); +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; lean_object* x_27; +lean_dec(x_13); +lean_dec(x_9); +lean_dec(x_5); +x_26 = lean_box(0); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_6); +return x_27; +} +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_22__propagateExpectedType___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___private_Init_Lean_Elab_StructInst_22__propagateExpectedType(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_1); +return x_7; +} +} +lean_object* l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_5; lean_object* x_6; +lean_dec(x_3); +x_5 = lean_box(0); +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; +} +else +{ +uint8_t x_7; +x_7 = !lean_is_exclusive(x_2); +if (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; uint8_t x_14; +x_8 = lean_ctor_get(x_2, 1); +x_9 = lean_ctor_get(x_2, 0); +lean_dec(x_9); +lean_inc(x_3); +x_10 = l_Lean_Elab_Term_mkFreshLevelMVar(x_1, x_3, x_4); +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_13 = l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1(x_1, x_8, x_3, x_12); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) +{ +lean_object* x_15; +x_15 = lean_ctor_get(x_13, 0); +lean_ctor_set(x_2, 1, x_15); +lean_ctor_set(x_2, 0, x_11); +lean_ctor_set(x_13, 0, x_2); +return x_13; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_13, 0); +x_17 = lean_ctor_get(x_13, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_13); +lean_ctor_set(x_2, 1, x_16); +lean_ctor_set(x_2, 0, x_11); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_2); +lean_ctor_set(x_18, 1, x_17); +return x_18; +} +} +else +{ +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; lean_object* x_28; +x_19 = lean_ctor_get(x_2, 1); +lean_inc(x_19); +lean_dec(x_2); +lean_inc(x_3); +x_20 = l_Lean_Elab_Term_mkFreshLevelMVar(x_1, x_3, x_4); +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 = l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1(x_1, x_19, x_3, x_22); +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +if (lean_is_exclusive(x_23)) { + lean_ctor_release(x_23, 0); + lean_ctor_release(x_23, 1); + x_26 = x_23; +} else { + lean_dec_ref(x_23); + x_26 = lean_box(0); +} +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_24); +if (lean_is_scalar(x_26)) { + x_28 = lean_alloc_ctor(0, 2, 0); +} else { + x_28 = x_26; +} +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_25); +return x_28; +} +} +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_23__mkCtorHeader(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; +x_6 = lean_ctor_get(x_2, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +lean_inc(x_4); +x_8 = l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1(x_1, x_7, x_4, x_5); +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_ctor_get(x_6, 0); +lean_inc(x_11); +lean_dec(x_6); +lean_inc(x_9); +x_12 = l_Lean_mkConst(x_11, x_9); +lean_inc(x_2); +x_13 = lean_alloc_ctor(6, 1, 0); +lean_ctor_set(x_13, 0, x_2); +x_14 = lean_instantiate_type_lparams(x_13, x_9); +lean_dec(x_9); +lean_dec(x_13); +x_15 = lean_ctor_get(x_2, 3); +lean_inc(x_15); +x_16 = l_Array_empty___closed__1; +lean_inc(x_4); +x_17 = l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main(x_1, x_15, x_14, x_12, x_16, x_4, x_10); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +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_ctor_get(x_18, 1); +lean_inc(x_20); +x_21 = lean_ctor_get(x_2, 4); +lean_inc(x_21); +lean_dec(x_2); +x_22 = l___private_Init_Lean_Elab_StructInst_22__propagateExpectedType(x_1, x_20, x_21, x_3, x_4, x_19); +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; +x_24 = lean_ctor_get(x_22, 0); +lean_dec(x_24); +lean_ctor_set(x_22, 0, x_18); +return x_22; +} +else +{ +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_22, 1); +lean_inc(x_25); +lean_dec(x_22); +x_26 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_26, 0, x_18); +lean_ctor_set(x_26, 1, x_25); +return x_26; +} +} +else +{ +uint8_t x_27; +lean_dec(x_18); +x_27 = !lean_is_exclusive(x_22); +if (x_27 == 0) +{ +return x_22; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_22, 0); +x_29 = lean_ctor_get(x_22, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_22); +x_30 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_30, 0, x_28); +lean_ctor_set(x_30, 1, x_29); +return x_30; +} +} +} +else +{ +uint8_t x_31; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = !lean_is_exclusive(x_17); +if (x_31 == 0) +{ +return x_17; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_17, 0); +x_33 = lean_ctor_get(x_17, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_17); +x_34 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_34, 0, x_32); +lean_ctor_set(x_34, 1, x_33); +return x_34; +} +} +} +} +lean_object* l_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__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_List_mapM___main___at___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___spec__1(x_1, x_2, x_3, x_4); +lean_dec(x_1); +return x_5; +} +} +lean_object* l___private_Init_Lean_Elab_StructInst_23__mkCtorHeader___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___private_Init_Lean_Elab_StructInst_23__mkCtorHeader(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_1); +return x_6; +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__1() { _start: { lean_object* x_1; @@ -7432,27 +10833,27 @@ x_1 = lean_mk_string("invalid {...} notation, '"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__2() { +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__1; +x_1 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__3() { +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__2; +x_1 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__4() { +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__4() { _start: { lean_object* x_1; @@ -7460,31 +10861,61 @@ x_1 = lean_mk_string("' is not a structure"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__5() { +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__5() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__4; +x_1 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__4; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__6() { +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__5; +x_1 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__5; 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_Elab_StructInst_5__elabStructInstAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("WIP"); +return x_1; +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__7; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__8; +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_Elab_StructInst_24__elabStructInstAux(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_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); x_6 = l___private_Init_Lean_Elab_StructInst_4__getStructName(x_1, x_2, x_3, x_4, x_5); if (lean_obj_tag(x_6) == 0) { @@ -7501,17 +10932,21 @@ x_11 = lean_ctor_get(x_9, 1); lean_inc(x_11); lean_dec(x_9); lean_inc(x_7); +lean_inc(x_10); x_12 = l_Lean_isStructureLike(x_10, x_7); if (x_12 == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +lean_dec(x_10); +lean_dec(x_3); +lean_dec(x_2); x_13 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_13, 0, x_7); -x_14 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__3; +x_14 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__3; x_15 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_15, 0, x_14); lean_ctor_set(x_15, 1, x_13); -x_16 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__6; +x_16 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__6; x_17 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_17, 0, x_15); lean_ctor_set(x_17, 1, x_16); @@ -7538,57 +10973,187 @@ return x_22; } else { -lean_object* x_23; 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; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_23 = l_Lean_Name_toString___closed__1; -x_24 = l_Lean_Name_toStringWithSep___main(x_23, x_7); -x_25 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_25, 0, x_24); -x_26 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_26, 0, x_25); -x_27 = l___private_Init_Lean_Elab_StructInst_3__elabModifyOp___closed__3; -x_28 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_26); -x_29 = lean_box(0); -x_30 = lean_unsigned_to_nat(0u); -lean_inc(x_1); -x_31 = l_Lean_Syntax_formatStxAux___main(x_29, x_30, x_1); -x_32 = l_Lean_Options_empty; -x_33 = l_Lean_Format_pretty(x_31, x_32); -x_34 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_34, 0, x_33); -x_35 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_35, 0, x_34); -x_36 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_36, 0, x_28); -lean_ctor_set(x_36, 1, x_35); -x_37 = l_Lean_Elab_Term_throwError___rarg(x_1, x_36, x_4, x_11); -lean_dec(x_1); -return x_37; +lean_object* x_23; lean_object* x_24; +x_23 = l___private_Init_Lean_Elab_StructInst_8__expandCompositeFields(x_1); +lean_inc(x_4); +lean_inc(x_7); +x_24 = l___private_Init_Lean_Elab_StructInst_9__expandNumLitFields(x_23, x_7, x_4, x_11); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +lean_inc(x_4); +lean_inc(x_7); +x_27 = l___private_Init_Lean_Elab_StructInst_10__expandParentFields(x_25, x_7, x_4, x_26); +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); +lean_inc(x_4); +lean_inc(x_28); +x_30 = l___private_Init_Lean_Elab_StructInst_19__getFieldViews(x_28, x_3, x_4, 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); +x_32 = l_Lean_getStructureCtor(x_10, x_7); +lean_inc(x_4); +x_33 = l___private_Init_Lean_Elab_StructInst_23__mkCtorHeader(x_28, x_32, x_2, x_4, x_31); +if (lean_obj_tag(x_33) == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_33, 1); +lean_inc(x_34); +lean_dec(x_33); +x_35 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__9; +x_36 = l_Lean_Elab_Term_throwError___rarg(x_28, x_35, x_4, x_34); +lean_dec(x_28); +return x_36; +} +else +{ +uint8_t x_37; +lean_dec(x_28); +lean_dec(x_4); +x_37 = !lean_is_exclusive(x_33); +if (x_37 == 0) +{ +return x_33; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_33, 0); +x_39 = lean_ctor_get(x_33, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_33); +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_38; +uint8_t x_41; +lean_dec(x_28); +lean_dec(x_10); +lean_dec(x_7); lean_dec(x_4); +lean_dec(x_2); +x_41 = !lean_is_exclusive(x_30); +if (x_41 == 0) +{ +return x_30; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_30, 0); +x_43 = lean_ctor_get(x_30, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_30); +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_10); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_45 = !lean_is_exclusive(x_27); +if (x_45 == 0) +{ +return x_27; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_27, 0); +x_47 = lean_ctor_get(x_27, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_27); +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_10); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_49 = !lean_is_exclusive(x_24); +if (x_49 == 0) +{ +return x_24; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_24, 0); +x_51 = lean_ctor_get(x_24, 1); +lean_inc(x_51); +lean_inc(x_50); +lean_dec(x_24); +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 +{ +uint8_t x_53; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); -x_38 = !lean_is_exclusive(x_6); -if (x_38 == 0) +x_53 = !lean_is_exclusive(x_6); +if (x_53 == 0) { return x_6; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_6, 0); -x_40 = lean_ctor_get(x_6, 1); -lean_inc(x_40); -lean_inc(x_39); +lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_54 = lean_ctor_get(x_6, 0); +x_55 = lean_ctor_get(x_6, 1); +lean_inc(x_55); +lean_inc(x_54); lean_dec(x_6); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; +x_56 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_56, 0, x_54); +lean_ctor_set(x_56, 1, x_55); +return x_56; } } } @@ -7662,7 +11227,7 @@ lean_object* x_13; lean_object* x_14; x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); lean_dec(x_11); -x_14 = l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux(x_1, x_2, x_9, x_3, x_13); +x_14 = l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux(x_1, x_2, x_9, x_3, x_13); return x_14; } else @@ -7959,18 +11524,80 @@ l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__5 = _init_l___p lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__5); l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__6 = _init_l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__6(); lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_4__getStructName___closed__6); -l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__1 = _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__1); -l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__2 = _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__2); -l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__3 = _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__3(); -lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__3); -l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__4 = _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__4(); -lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__4); -l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__5 = _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__5(); -lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__5); -l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__6 = _init_l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__6(); -lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_5__elabStructInstAux___closed__6); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__1 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__1(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__1); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__2 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__2(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__2); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__3 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__3(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__3); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__4 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__4(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__4); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__5 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__5(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__5); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__7 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__7(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__7); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__8 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__8(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__8); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__9 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__9(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__9); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__1 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__1(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__1); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__2 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__2(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__2); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__3 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__3(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__3); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__4 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__4(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__4); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__5 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__5(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__5); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__6 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__6(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__6); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__7 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__7(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__7); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__8 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__8(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__8); +l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__9 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__9(); +lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_StructInst_10__expandParentFields___spec__2___closed__9); +l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__1 = _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__1(); +lean_mark_persistent(l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__1); +l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__2 = _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__2(); +lean_mark_persistent(l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__2); +l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3 = _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3(); +lean_mark_persistent(l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__3); +l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__4 = _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__4(); +lean_mark_persistent(l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__4); +l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__5 = _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__5(); +lean_mark_persistent(l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__5); +l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6 = _init_l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6(); +lean_mark_persistent(l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_15__groupFields___spec__10___closed__6); +l___private_Init_Lean_Elab_StructInst_15__groupFields___closed__1 = _init_l___private_Init_Lean_Elab_StructInst_15__groupFields___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_15__groupFields___closed__1); +l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__1 = _init_l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__1); +l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__2 = _init_l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__2); +l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3 = _init_l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__1 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__1); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__2 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__2); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__3 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__3); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__4 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__4(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__4); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__5 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__5(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__5); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__6 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__6(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__6); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__7 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__7(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__7); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__8 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__8(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__8); +l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__9 = _init_l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__9(); +lean_mark_persistent(l___private_Init_Lean_Elab_StructInst_24__elabStructInstAux___closed__9); l_Lean_Elab_Term_elabStructInst___closed__1 = _init_l_Lean_Elab_Term_elabStructInst___closed__1(); lean_mark_persistent(l_Lean_Elab_Term_elabStructInst___closed__1); l_Lean_Elab_Term_elabStructInst___closed__2 = _init_l_Lean_Elab_Term_elabStructInst___closed__2(); diff --git a/stage0/stdlib/Init/Lean/Elab/Tactic/Basic.c b/stage0/stdlib/Init/Lean/Elab/Tactic/Basic.c index 480e516b4f..db14c23b05 100644 --- a/stage0/stdlib/Init/Lean/Elab/Tactic/Basic.c +++ b/stage0/stdlib/Init/Lean/Elab/Tactic/Basic.c @@ -25,6 +25,7 @@ lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_withMVarContext___rarg(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_PersistentHashMap_contains___at_Lean_Elab_Tactic_addBuiltinTactic___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_Lean_Elab_MonadMacroAdapter___closed__7; +extern lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; lean_object* l_Lean_Elab_Tactic_evalTactic___main___closed__3; extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__8; lean_object* l_PersistentHashMap_find_x3f___at_Lean_Elab_Tactic_evalTactic___main___spec__2(lean_object*, lean_object*); @@ -243,6 +244,7 @@ lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalSkip___closed__1; extern lean_object* l_Lean_Parser_Tactic_paren___elambda__1___closed__1; lean_object* l_Lean_Elab_Tactic_monadLog___closed__1; lean_object* l_Lean_Elab_mkElabAttribute___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l_Lean_Elab_Tactic_save___boxed(lean_object*); lean_object* l_Lean_Elab_Tactic_registerBuiltinTacticAttr___closed__5; lean_object* l_mkHashMapImp___rarg(lean_object*); @@ -382,7 +384,6 @@ uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_evalTraceState___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_tacticElabAttribute___closed__3; -extern lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l_Lean_Elab_Tactic_evalIntro___lambda__2(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalNestedTacticBlock(lean_object*); lean_object* l_HashMapImp_contains___at_Lean_Elab_Tactic_addBuiltinTactic___spec__2___boxed(lean_object*, lean_object*); @@ -429,7 +430,6 @@ lean_object* l_Lean_Elab_Tactic_monadLog___lambda__3___boxed(lean_object*, lean_ lean_object* l_Lean_Elab_Tactic_EStateM_Backtrackable___closed__3; lean_object* lean_usize_to_nat(size_t); lean_object* l_Lean_Elab_Tactic_getCurrMacroScope(lean_object*, lean_object*); -extern lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; lean_object* l_Lean_Elab_Tactic_resettingSynthInstanceCache___rarg(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Tactic_seq___elambda__1___closed__1; lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalNestedTacticBlockCurly___closed__2; @@ -3178,7 +3178,7 @@ x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_1); x_28 = l_Lean_Elab_Tactic_addBuiltinTactic___closed__1; x_29 = lean_string_append(x_28, x_27); lean_dec(x_27); -x_30 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_30 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; x_31 = lean_string_append(x_29, x_30); x_32 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_32, 0, x_31); @@ -3283,7 +3283,7 @@ x_52 = l_Lean_Name_toStringWithSep___main(x_51, x_1); x_53 = l_Lean_Elab_Tactic_addBuiltinTactic___closed__1; x_54 = lean_string_append(x_53, x_52); lean_dec(x_52); -x_55 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_55 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; x_56 = lean_string_append(x_54, x_55); x_57 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_57, 0, x_56); @@ -3602,7 +3602,7 @@ lean_dec(x_13); lean_dec(x_11); lean_dec(x_2); lean_dec(x_1); -x_25 = l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; +x_25 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; x_26 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_26, 0, x_25); lean_ctor_set(x_26, 1, x_12); diff --git a/stage0/stdlib/Init/Lean/Elab/Term.c b/stage0/stdlib/Init/Lean/Elab/Term.c index dee1252023..889573fb93 100644 --- a/stage0/stdlib/Init/Lean/Elab/Term.c +++ b/stage0/stdlib/Init/Lean/Elab/Term.c @@ -47,6 +47,7 @@ lean_object* l_Lean_Syntax_isNatLitAux(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabRawCharLit___closed__3; lean_object* l_PersistentArray_foldlMAux___main___at___private_Init_Lean_Elab_Term_3__fromMetaState___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabNum___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; lean_object* l___private_Init_Lean_Elab_Term_11__tryCoeSort___closed__1; extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__8; lean_object* l_Lean_Elab_Term_State_inhabited; @@ -475,6 +476,7 @@ lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabRawNumLit___closed__2; lean_object* l_Lean_Elab_Term_elabTermAux(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_termElabAttribute___closed__5; lean_object* l_Lean_Elab_mkElabAttribute___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrayLit___closed__3; lean_object* l_Lean_Elab_Term_tryCoeAndLift___closed__2; lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrayLit(lean_object*); @@ -706,7 +708,6 @@ lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabHole___closed__3; lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabTacticBlock___closed__2; lean_object* l_Lean_Elab_mkMessage___at_Lean_Elab_Term_throwError___spec__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_find_x3f___at_Lean_Elab_Term_elabTermAux___main___spec__2___boxed(lean_object*, lean_object*); -extern lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l_Lean_Elab_Term_getOpenDecls___boxed(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_getTraceState___boxed(lean_object*); lean_object* l_Lean_Elab_Term_throwTypeMismatchError___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -785,7 +786,6 @@ lean_object* l_Lean_SMap_empty___at_Lean_Elab_Term_mkBuiltinTermElabTable___spec lean_object* l_Lean_Elab_Term_mkTacticMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); uint8_t l_Array_isEqvAux___main___at_Lean_Elab_Term_withMVarContext___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabBadCDot___closed__2; lean_object* l_Lean_Elab_Term_elabRawCharLit___closed__4; extern lean_object* l_Lean_levelOne; @@ -2847,7 +2847,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___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_30 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; x_31 = lean_string_append(x_29, x_30); x_32 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_32, 0, x_31); @@ -2952,7 +2952,7 @@ x_52 = l_Lean_Name_toStringWithSep___main(x_51, x_1); x_53 = l_Lean_Elab_Term_addBuiltinTermElab___closed__1; x_54 = lean_string_append(x_53, x_52); lean_dec(x_52); -x_55 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_55 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; x_56 = lean_string_append(x_54, x_55); x_57 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_57, 0, x_56); @@ -3279,7 +3279,7 @@ lean_dec(x_13); lean_dec(x_11); lean_dec(x_2); lean_dec(x_1); -x_25 = l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; +x_25 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; x_26 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_26, 0, x_25); lean_ctor_set(x_26, 1, x_12); diff --git a/stage0/stdlib/Init/Lean/Elab/Util.c b/stage0/stdlib/Init/Lean/Elab/Util.c index c3bb3d706c..404a575e3f 100644 --- a/stage0/stdlib/Init/Lean/Elab/Util.c +++ b/stage0/stdlib/Init/Lean/Elab/Util.c @@ -24,6 +24,7 @@ lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Elab_Util_6__ElabAttribute_add___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l___private_Init_Lean_Environment_8__persistentEnvExtensionsRef; lean_object* l_AssocList_contains___main___at_Lean_Elab_ElabFnTable_insert___spec__26___rarg___boxed(lean_object*, lean_object*); +extern lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_SMap_insert___at_Lean_Elab_ElabFnTable_insert___spec__20___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_mkMacroAttribute(lean_object*); @@ -338,7 +339,6 @@ lean_object* l___private_Init_Lean_Elab_Util_8__regTraceClasses___closed__1; lean_object* lean_usize_to_nat(size_t); lean_object* l_Lean_Elab_mkMacroAttribute___closed__2; lean_object* l_Lean_SMap_find_x3f___at_Lean_Elab_ElabFnTable_insert___spec__1(lean_object*); -extern lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; lean_object* l_PersistentHashMap_empty___at_Lean_Elab_mkElabAttributeAux___spec__6(lean_object*); lean_object* l_Lean_SMap_empty___at_Lean_Elab_ElabAttribute_inhabited___spec__1___closed__3; lean_object* l_Lean_Elab_builtinMacroFnTable; @@ -5864,7 +5864,7 @@ lean_dec(x_13); lean_dec(x_11); lean_dec(x_2); lean_dec(x_1); -x_25 = l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; +x_25 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; x_26 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_26, 0, x_25); lean_ctor_set(x_26, 1, x_12); diff --git a/stage0/stdlib/Init/Lean/Parser/Parser.c b/stage0/stdlib/Init/Lean/Parser/Parser.c index f489550f65..b57454df80 100644 --- a/stage0/stdlib/Init/Lean/Parser/Parser.c +++ b/stage0/stdlib/Init/Lean/Parser/Parser.c @@ -19,10 +19,9 @@ lean_object* l_List_reverse___rarg(lean_object*); lean_object* l_Lean_Parser_identEq(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___private_Init_Lean_Parser_Parser_19__ParserExtension_mkInitial(lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__1(lean_object*); lean_object* l_Lean_Parser_categoryParserOfStack___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__2; lean_object* l_Lean_Parser_builtinTokenTable; lean_object* l_Lean_Parser_finishCommentBlock(lean_object*, lean_object*, lean_object*); @@ -41,18 +40,19 @@ lean_object* l_Lean_Parser_numLit___elambda__1___closed__2; 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___private_Init_Lean_Parser_Parser_20__mergePrecendences___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__6; lean_object* l_Lean_Parser_declareLeadingBuiltinParser___closed__1; uint8_t l_RBNode_isRed___rarg(lean_object*); uint8_t l_Lean_Parser_checkTailWs(lean_object*); lean_object* l_Lean_Parser_mkParserExtension___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__1; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_hexNumberFn___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identFn___closed__1; lean_object* l_Lean_Parser_try(lean_object*); lean_object* l_Lean_Parser_nodeWithAntiquot___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Parser_prattParser(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_Parser_prattParser(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_andthenInfo(lean_object*, lean_object*); uint8_t l_PersistentHashMap_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_leadingIdentAsSymbol___boxed(lean_object*, lean_object*); @@ -60,8 +60,9 @@ 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___private_Init_Lean_Parser_Parser_19__addParserCategoryCore(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_20__mergePrecendences(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitNoAntiquot___closed__2; +lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_octalNumberFn___spec__3(lean_object*, lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__3___rarg___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserContext(lean_object*, lean_object*); @@ -81,8 +82,9 @@ lean_object* l_unreachable_x21___rarg(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1(lean_object*, lean_object*); extern lean_object* l_Lean_nullKind; lean_object* l_Lean_Parser_mkParserExtension___closed__2; -lean_object* l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__1___boxed(lean_object*, lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__3___rarg(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__2; +lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitNoAntiquot; lean_object* l_Lean_Parser_octalNumberFn___closed__1; lean_object* l_Lean_Parser_many1___boxed(lean_object*, lean_object*); @@ -92,10 +94,9 @@ lean_object* l_Lean_Parser_FirstTokens_toStr(lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Array_foldSepBy___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_fieldIdxKind___closed__2; lean_object* l_Lean_Parser_strAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___boxed(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*); extern lean_object* l_List_repr___rarg___closed__1; -lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__5___boxed(lean_object*, lean_object*, lean_object*, 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_ParserFn_inhabited___rarg(lean_object*); @@ -103,11 +104,8 @@ 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___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens___closed__1; lean_object* l_List_foldlM___main___at_Lean_Parser_addParserTokens___spec__1(lean_object*, lean_object*); -uint8_t l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__2(lean_object*, size_t, lean_object*); lean_object* l_Lean_Parser_numberFnAux(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identEqFn___closed__1; lean_object* l_Lean_Parser_TokenConfig_HasToString___closed__1; lean_object* l_Lean_Parser_lookahead(lean_object*); @@ -137,12 +135,12 @@ lean_object* l_Lean_Parser_Trie_matchPrefix___rarg(lean_object*, lean_object*, l lean_object* l_Lean_Parser_octalNumberFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_stackSize___boxed(lean_object*); lean_object* l_Lean_Parser_getTokenTable___boxed(lean_object*); -lean_object* l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_octalNumberFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_identFnAux___main___spec__4___boxed(lean_object*, lean_object*, lean_object*); 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_23__updateBuiltinTokens(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*); extern lean_object* l_Prod_HasRepr___rarg___closed__1; @@ -153,7 +151,6 @@ lean_object* l_Lean_Parser_PrattParsingTables_inhabited; lean_object* l_Lean_Parser_categoryParserFnRef; lean_object* l_Lean_Parser_pushNone; lean_object* l_Lean_Parser_InputContext_inhabited; -lean_object* l___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens(lean_object*, lean_object*, 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_ParserExtensionState_inhabited___closed__1; @@ -161,7 +158,6 @@ lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6___ra 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_IO_ofExcept___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__1___boxed(lean_object*, 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*); @@ -181,13 +177,13 @@ uint8_t l_Lean_Parser_isLitKind(lean_object*); 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; +lean_object* l_Lean_Parser_withAntiquotFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_TokenConfig_HasBeq___closed__1; lean_object* l_Lean_Parser_categoryParserOfStackFn___closed__2; lean_object* lean_io_mk_ref(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__3; lean_object* l_Lean_Parser_checkColGe(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_nonReservedSymbolFn(lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(lean_object*, lean_object*, lean_object*); uint8_t l_Char_isDigit(uint32_t); lean_object* l_Lean_Parser_ParserState_mkNode(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserState(lean_object*); @@ -198,6 +194,7 @@ lean_object* l_Lean_Parser_nameLitNoAntiquot___closed__1; lean_object* l_Array_iterateMAux___main___at_Lean_Syntax_foldArgsM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Array_foldSepByM___spec__1(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_8__updateCache(lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent___lambda__1(lean_object*, 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*); @@ -214,8 +211,8 @@ lean_object* l_Lean_Parser_orelseFn(lean_object*, lean_object*, lean_object*, le lean_object* l_Lean_Parser_registerBuiltinDynamicParserAttribute(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Position_Inhabited___closed__1; lean_object* l_Lean_Parser_symbolNoWsFn___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkTrailingNode(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_finishCommentBlock___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbol___closed__2; lean_object* l_Lean_Parser_mkAntiquot___closed__4; @@ -225,9 +222,8 @@ lean_object* l_Lean_Parser_addBuiltinParser(lean_object*, lean_object*, uint8_t, lean_object* lean_array_push(lean_object*, lean_object*); lean_object* l_Lean_Parser_rawCh___elambda__1(uint32_t, uint8_t, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_22__mergePrecendences(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__4; -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__1(lean_object*, lean_object*); extern lean_object* l_Lean_charLitKind___closed__1; lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsFn(lean_object*, lean_object*, lean_object*); @@ -253,7 +249,6 @@ lean_object* l_Lean_Parser_charLitFnAux(lean_object*, lean_object*, lean_object* extern lean_object* l_Lean_Syntax_termIdToAntiquot___closed__1; extern lean_object* l_List_repr___rarg___closed__3; lean_object* l_Lean_Parser_quotedSymbol___closed__1; -uint8_t l___private_Init_Lean_Parser_Parser_16__isDollar(lean_object*, lean_object*); lean_object* l_Lean_Parser_leadingParserAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Array_foldSepByM___spec__1___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identFnAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -267,7 +262,6 @@ lean_object* l_Lean_Parser_mkNodeToken___boxed(lean_object*, lean_object*, lean_ lean_object* l_Lean_Parser_initCacheForInput___boxed(lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Syntax_forArgsM___spec__1(lean_object*); lean_object* l_Lean_Parser_symbolNoWs___boxed(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_21__ParserExtension_mkInitial(lean_object*); lean_object* l_Lean_Parser_isParserCategory___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__2; lean_object* lean_string_utf8_byte_size(lean_object*); @@ -277,14 +271,13 @@ lean_object* l_Lean_Parser_ParserState_mkErrorsAt(lean_object*, lean_object*, le lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkCategoryParserFnExtension___spec__1___closed__1; lean_object* l_Lean_Parser_checkStackTopFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_foldSepRevArgs___rarg___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_leadingParser(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*); +lean_object* l_Lean_Parser_leadingParser(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Array_findRevMAux___main___at___private_Init_Lean_Parser_Parser_9__pickNonNone___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkAttributeImplOfConstantUnsafe___closed__3; lean_object* l_Lean_Parser_parserExtension___closed__1; lean_object* l___private_Init_Lean_Parser_Parser_11__antiquotId; lean_object* l_Lean_Parser_checkColGeFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at___private_Init_Lean_Parser_Parser_24__addTrailingParserAux___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_declareBuiltinParser___closed__4; lean_object* l_Lean_Parser_nameLitFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn(lean_object*, lean_object*); @@ -300,6 +293,7 @@ lean_object* l_Lean_Parser_unquotedSymbol___closed__2; extern lean_object* l_Lean_LocalContext_Inhabited___closed__1; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3___boxed(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_mkCategoryAntiquotParser(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__4; lean_object* l_PersistentHashMap_foldlMAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Lean_Syntax_forSepArgsM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -312,9 +306,9 @@ uint8_t l_Lean_Parser_takeWhileFn___lambda__1(lean_object*, uint32_t); uint32_t l_Lean_Parser_getNext(lean_object*, lean_object*); lean_object* l_Lean_Parser_andthenInfo___elambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__3; +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_addParserCategory(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_many1Fn(lean_object*, uint8_t, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___boxed(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_rawIdent___closed__3; lean_object* l_Lean_Parser_symbolNoWsInfo___elambda__1(lean_object*); @@ -333,6 +327,7 @@ 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___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder(lean_object*); lean_object* l_Lean_Parser_takeUntilFn___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_stringToParserCoe(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr; @@ -344,7 +339,6 @@ lean_object* l_Lean_Parser_checkStackTopFn___closed__1; extern lean_object* l_Lean_mkTermIdFromIdent___closed__2; lean_object* l_Array_foldlStepMAux___main___at_Lean_Syntax_foldSepArgs___spec__1(lean_object*); lean_object* lean_string_utf8_next(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder(lean_object*); extern lean_object* l_Lean_mkAttributeImplOfConstant___closed__1; lean_object* l_Lean_Parser_mkAntiquot___closed__5; lean_object* l_Lean_Parser_TokenConfig_HasToString; @@ -353,7 +347,6 @@ 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_throwUnknownParserCategory(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__1; lean_object* l_Lean_Parser_mkAntiquot___closed__15; lean_object* l_Lean_Parser_decimalNumberFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_PrattParsingTables_inhabited___closed__1; @@ -379,6 +372,7 @@ lean_object* l_Lean_Parser_unquotedSymbol___closed__1; lean_object* l_Lean_Parser_TokenMap_insert(lean_object*); lean_object* l_Lean_Parser_setExpected___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbol(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn___closed__1; lean_object* l_Lean_Parser_checkStackTopFn(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__1; @@ -389,6 +383,7 @@ lean_object* l_Array_iterateMAux___main___at_Lean_Parser_getSyntaxNodeKinds___sp lean_object* l_Lean_Parser_identNoAntiquot___closed__1; lean_object* l_Lean_Parser_ParserState_setPos(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkTokenAndFixPos___closed__1; +lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg(lean_object*); lean_object* l_Lean_Parser_mkParserAttributeImpl___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_whitespace___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserExtension___closed__6; @@ -402,7 +397,6 @@ lean_object* l_Lean_Parser_mkAtomicInfo___elambda__2(lean_object*); lean_object* l_Lean_Parser_strLitFn___closed__1; lean_object* l_Lean_Parser_manyAux___main(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main(lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_rawCh___elambda__1___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ident___closed__2; uint8_t lean_nat_dec_eq(lean_object*, lean_object*); @@ -434,14 +428,12 @@ lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_Lean_Parser_setExpected(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_keepLatest(lean_object*, lean_object*); lean_object* l_Lean_Parser_dollarSymbol___elambda__1___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__3; 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*); lean_object* l_Lean_Parser_TokenMap_HasEmptyc(lean_object*); lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lean_Syntax_foldSepRevArgs___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkNoWsBefore(lean_object*); lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; extern lean_object* l_Lean_strLitKind; lean_object* l_Lean_Parser_nonReservedSymbolInfo(lean_object*, uint8_t); @@ -453,7 +445,6 @@ lean_object* l_Lean_Syntax_foldArgs(lean_object*); lean_object* l_Lean_Parser_nonReservedSymbolInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_nodeInfo___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Error_merge(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_29__ParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, 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_registerAttributeOfBuilder(lean_object*, lean_object*, lean_object*, lean_object*); @@ -464,8 +455,7 @@ lean_object* l_Lean_Syntax_foldArgsM(lean_object*, lean_object*); lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_Parser_numLitNoAntiquot___closed__2; lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2___rarg(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_17__mkTrailingResult(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2; +lean_object* l_Lean_Parser_withAntiquot(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__3; lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__2; uint8_t l_Lean_Parser_Error_beq(lean_object*, lean_object*); @@ -473,6 +463,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambd lean_object* l_Lean_Parser_ParserState_keepNewError(lean_object*, lean_object*); lean_object* l_Lean_Parser_regTermParserAttribute___closed__1; lean_object* l_Lean_Parser_symbol(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_15__mkTrailingResult(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*); @@ -515,25 +506,28 @@ lean_object* l_Lean_Parser_checkTailWs___boxed(lean_object*); lean_object* l_Lean_Parser_charLitFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_trailingLoopStep(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_14__mkResult(lean_object*, lean_object*); +lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1___closed__1; lean_object* l_Lean_Parser_charLitNoAntiquot___closed__2; lean_object* l_Array_iterateMAux___main___at_Lean_Syntax_foldArgsM___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchStep(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_addLeadingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_setExpectedFn(lean_object*); lean_object* l_Lean_Parser_strLitFn(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__1; lean_object* l_Lean_Parser_mkParserExtension___lambda__2___boxed(lean_object*); 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_Parser_charLit___closed__3; lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__4; +lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1(lean_object*, lean_object*, 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_nameLit___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__3; lean_object* l_Nat_repr(lean_object*); lean_object* l_Lean_Parser_categoryParserOfStack(lean_object*, lean_object*); extern lean_object* l_Char_HasRepr___closed__1; lean_object* l_Lean_Parser_mkAntiquot___closed__20; +lean_object* l___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef(lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_checkWsBefore(lean_object*); @@ -554,18 +548,18 @@ lean_object* l_Lean_Parser_nameLit___closed__2; lean_object* l_Lean_Parser_strLitNoAntiquot___closed__1; lean_object* l_Lean_Parser_sepByFn(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__2; +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_chFn___spec__1(uint32_t, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__1; 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*); extern lean_object* l_PersistentHashMap_insertAux___main___rarg___closed__3; lean_object* l_Lean_Parser_rawCh___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_getNext___boxed(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__6; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__6(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserAttributeImpl___closed__1; lean_object* l_Lean_Parser_termParser___closed__2; -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1(lean_object*, lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); extern lean_object* l_Lean_choiceKind; extern lean_object* l_List_repr___rarg___closed__2; @@ -582,14 +576,15 @@ lean_object* l_Lean_Parser_rawIdent; lean_object* l_Array_foldlStepMAux___main___at_Array_foldSepByM___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__9; lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__9; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_FirstTokens_merge(lean_object*, lean_object*); lean_object* l_Lean_Parser_strLit___elambda__1___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__3; lean_object* l_Lean_Parser_pushNone___elambda__1___rarg(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__8; lean_object* lean_eval_const(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkParserAttributeImpl(lean_object*, lean_object*); lean_object* l_Lean_Parser_fieldIdx___closed__5; +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__3___boxed(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_charLit___closed__2; @@ -621,14 +616,17 @@ extern lean_object* l_Lean_Options_empty; extern lean_object* l_IO_Error_Inhabited___closed__1; lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_octalNumberFn___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolFn(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_hasError___boxed(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_10__noImmediateColon___closed__2; lean_object* l_Lean_Parser_unicodeSymbol___boxed(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___private_Init_Lean_Parser_Parser_24__ParserExtension_addEntry(lean_object*, lean_object*); lean_object* l_Lean_Parser_compileParserDescr___main___closed__1; lean_object* l_Lean_Parser_identFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_strLitNoAntiquot___closed__3; lean_object* l_Lean_Parser_addParserCategory___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinParserAttribute(lean_object*, lean_object*, uint8_t, lean_object*); @@ -642,6 +640,7 @@ lean_object* l_Lean_Parser_takeUntilFn(lean_object*, lean_object*, lean_object*) lean_object* l_Lean_Parser_symbolNoWsInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo___elambda__1___boxed(lean_object*); lean_object* l_Lean_registerBuiltinAttribute(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens___closed__1; lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo___elambda__1(lean_object*); lean_object* l_Lean_Parser_anyOfFn(lean_object*, lean_object*, lean_object*); @@ -649,13 +648,14 @@ lean_object* l_Lean_Parser_mkEmptySubstringAt(lean_object*, lean_object*); 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_Error_toString___closed__2; -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__2___boxed(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_Lean_Parser_nameLitNoAntiquot___closed__3; lean_object* l_Array_foldlStepMAux___main___at_Lean_Syntax_foldSepArgs___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; lean_object* l_IO_Prim_Ref_get___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_13__antiquotExpr___closed__1; lean_object* l_Lean_Parser_longestMatchMkResult(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_26__catNameToString(lean_object*); size_t l_USize_mul(size_t, size_t); lean_object* l_Lean_FileMap_ofString(lean_object*); lean_object* l_Lean_Parser_whitespace(lean_object*, lean_object*); @@ -666,10 +666,8 @@ lean_object* l_Lean_Parser_getTokenTable(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_11__antiquotId___closed__4; lean_object* l_Lean_Parser_sepByInfo___elambda__1(lean_object*, lean_object*, lean_object*); uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_Environment_contains___spec__5(lean_object*, lean_object*, lean_object*); -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__3(lean_object*, 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___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__1; lean_object* l_List_elem___main___at_Lean_Parser_addLeadingParser___spec__7___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__21; lean_object* l_Lean_Parser_ParserState_restore(lean_object*, lean_object*, lean_object*); @@ -693,7 +691,7 @@ lean_object* l_Lean_Parser_mkAtomicInfo___elambda__2___boxed(lean_object*); lean_object* l_Lean_ConstantInfo_type(lean_object*); 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*); -uint8_t l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__1(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1; lean_object* l_Lean_Parser_trailingNodeFn(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_isIdEndEscape(uint32_t); lean_object* l_Lean_Parser_rawIdent___closed__2; @@ -705,22 +703,20 @@ lean_object* l___private_Init_Lean_Parser_Parser_6__nameLitAux(lean_object*, lea lean_object* l_Lean_Parser_prattParser___closed__1; lean_object* l_Lean_Parser_rawIdentNoAntiquot___closed__2; lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_23__addTokenConfig(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_nameLit___elambda__1___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2; +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerEnvExtensionUnsafe___at_Lean_Parser_mkParserExtension___spec__3___closed__1; lean_object* l_Lean_Parser_mkAntiquot___elambda__2(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__2; -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_categoryParserFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ParametricAttribute_setParam___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Array_foldSepByM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkCategoryParserFnExtension___closed__1; lean_object* l_Lean_Parser_mkParserAttributeImpl___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_16__isDollar___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_21__addTokenConfig(lean_object*, lean_object*); lean_object* l_Lean_Parser_quotedCharFn___closed__1; lean_object* l_Lean_Parser_charLitFnAux___closed__1; lean_object* l_Lean_Parser_symbolNoWs(lean_object*, lean_object*); @@ -740,7 +736,7 @@ uint8_t l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2 lean_object* l_Lean_Parser_TokenConfig_beq___boxed(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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__6(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2; lean_object* l_Lean_Parser_ident___elambda__1___closed__1; lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__5; lean_object* l_Lean_Parser_declareLeadingBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*); @@ -768,14 +764,13 @@ uint8_t l_UInt32_decEq(uint32_t, uint32_t); extern lean_object* l_Lean_Syntax_inhabited; lean_object* l_Lean_Parser_unquotedSymbolFn(lean_object*, lean_object*); lean_object* l_String_intercalate(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l_Lean_Parser_numLit; -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_leadingParser___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hexDigitFn(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkCategoryParserFnRef___lambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__16; +lean_object* l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__1; lean_object* l_Lean_Parser_compileParserDescr___main___closed__2; lean_object* l_Lean_Parser_FirstTokens_HasToString___closed__1; lean_object* l_Lean_Parser_FirstTokens_HasToString; @@ -790,6 +785,7 @@ lean_object* l_Lean_Parser_ParserState_mkTrailingNode___boxed(lean_object*, lean 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* l_Array_foldlStepMAux___main___at_Array_foldSepBy___spec__1(lean_object*); lean_object* l_Lean_Parser_ParserState_keepNewError___boxed(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__2___boxed(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__7; lean_object* l___private_Init_Lean_Parser_Parser_13__antiquotExpr; extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__4___closed__2; @@ -805,7 +801,6 @@ lean_object* l_Lean_Parser_withPosition___lambda__1(lean_object*, lean_object*, uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t l_USize_decLe(size_t, size_t); extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__5; -lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Parser_takeWhileFn___lambda__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_numLitNoAntiquot___closed__3; lean_object* l_Lean_mkApp(lean_object*, lean_object*); @@ -814,6 +809,7 @@ lean_object* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1___r lean_object* l_Lean_Parser_categoryParser(lean_object*, lean_object*); lean_object* l_Lean_nameToExprAux___main(lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___closed__2; +lean_object* l___private_Init_Lean_Parser_Parser_28__ParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Syntax_getArgs(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(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -829,8 +825,10 @@ lean_object* l_Lean_Parser_FirstTokens_toStr___closed__1; 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*); lean_object* l_Lean_Parser_addLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_setExpectedFn___boxed(lean_object*); lean_object* l_Lean_Parser_quotedSymbolFn___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__1; uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_13__antiquotExpr___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_checkRBPGreaterFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -846,13 +844,14 @@ lean_object* l_Lean_Parser_checkStackTop(lean_object*); lean_object* l_Lean_Parser_sepBy1Fn(uint8_t, lean_object*, lean_object*, uint8_t, 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_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_epsilonInfo; lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6(lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_anyOfFn___main(lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4___rarg(lean_object*, lean_object*, lean_object*); 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___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__3; lean_object* l_Lean_Parser_unquotedSymbol; lean_object* l_Lean_Parser_hashOrelse___closed__1; lean_object* l_Lean_Parser_checkRBPGreaterFn(lean_object*, lean_object*, lean_object*, lean_object*); @@ -865,19 +864,19 @@ lean_object* l_Lean_Parser_mkParserState___boxed(lean_object*); lean_object* l_Lean_Parser_categoryParser___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFn_u2081(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_symbolNoWsInfo___closed__1; -lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__1; lean_object* l_Lean_Parser_pushNone___elambda__1(lean_object*); lean_object* lean_io_ref_reset(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_26__ParserExtension_addEntry(lean_object*, lean_object*); lean_object* l_Lean_Parser_FirstTokens_toStr___closed__2; lean_object* lean_io_ref_swap(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdentNoAntiquot; lean_object* l___private_Init_Lean_Parser_Parser_5__isIdFirstOrBeginEscape___boxed(lean_object*); +uint8_t l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_replaceLongest(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Parser_TokenConfig_beq(lean_object*, lean_object*); extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__2; lean_object* l_Lean_Parser_ident___elambda__1___closed__2; lean_object* l_Lean_Parser_fieldIdxFn___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__1; lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__3; lean_object* l_Lean_Parser_ParserCategory_inhabited; lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__7; @@ -899,11 +898,11 @@ lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lea lean_object* l_Lean_Parser_rawCh___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_numberFnAux___closed__1; lean_object* l_Lean_Parser_categoryParserFnExtension___elambda__1___boxed(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__2; lean_object* l_Lean_Parser_nonReservedSymbolInfo___closed__1; lean_object* l_Array_iterateMAux___main___at_Lean_Syntax_foldArgsM___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserCategory_inhabited___closed__1; lean_object* l_Lean_Parser_isIdCont___boxed(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__4(lean_object*, lean_object*, 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*); @@ -913,12 +912,10 @@ 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___private_Init_Lean_Parser_Parser_6__nameLitAux___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__2; 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*); extern lean_object* l_Lean_mkOptionalNode___closed__1; lean_object* l_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); -lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdentFn___boxed(lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Array_foldSepBy___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_6__nameLitAux___closed__1; @@ -931,12 +928,11 @@ lean_object* l_Lean_Parser_charLitFn___closed__1; lean_object* l_Lean_Parser_dollarSymbol___elambda__1___closed__4; lean_object* l_Lean_Parser_compileParserDescr___main(lean_object*, lean_object*); lean_object* l_Lean_Parser_regBuiltinTermParserAttr(lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_22__mergePrecendences___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nodeFn(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_15__catNameToString(lean_object*); lean_object* l_Lean_Parser_checkWsBeforeFn___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optionalFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nameLitFn___closed__1; +uint8_t l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__2(lean_object*, size_t, 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_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3___boxed(lean_object*, lean_object*, lean_object*); @@ -946,9 +942,8 @@ lean_object* l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1___boxed(lea extern lean_object* l_Lean_registerEnvExtensionUnsafe___rarg___closed__3; uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkLongestNodeAlt(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); 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*); @@ -956,6 +951,7 @@ lean_object* lean_io_initializing(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_symbolInfo___closed__1; +lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_forSepArgsM___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_EnvExtension_getStateUnsafe___rarg(lean_object*, lean_object*); lean_object* l_RBNode_find___main___at_Lean_Parser_indexed___spec__2(lean_object*); @@ -971,10 +967,8 @@ lean_object* l_Lean_Parser_addBuiltinTrailingParser(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* l_Lean_Parser_fieldIdx___closed__7; lean_object* l_Lean_Parser_mkAntiquot(lean_object*, lean_object*, uint8_t); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optionaInfo___elambda__1(lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__3; -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__4(lean_object*, size_t, size_t, 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___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__5; @@ -982,7 +976,6 @@ 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*); lean_object* l_Lean_mkStxLit(lean_object*, lean_object*, lean_object*); lean_object* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__2(lean_object*); -lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1___closed__1; lean_object* l_Lean_Parser_mkAtomicInfo___closed__1; lean_object* l_Lean_Parser_Error_toString___closed__3; lean_object* l_Lean_Parser_ParserState_stackSize(lean_object*); @@ -991,6 +984,7 @@ lean_object* l_Lean_Parser_Parser_inhabited___closed__3; lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_hexNumberFn___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Lean_Syntax_forSepArgsM___spec__1(lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_categoryParserOfStackFn___closed__1; lean_object* l_Lean_Parser_manyFn(lean_object*, lean_object*, lean_object*); @@ -998,12 +992,10 @@ lean_object* l_Lean_Parser_ParserState_next___boxed(lean_object*, lean_object*, extern lean_object* l_Lean_mkOptionalNode___closed__2; lean_object* l_Lean_Parser_Parser_inhabited___lambda__1___boxed(lean_object*, lean_object*); lean_object* l_Array_foldlStepMAux___main___at_Lean_Syntax_foldSepArgsM___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__2(lean_object*, 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___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__1; 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_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_1__expectedToString(lean_object*); lean_object* l_Lean_Parser_orelse(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Syntax_foldArgs___spec__1(lean_object*); @@ -1014,7 +1006,6 @@ lean_object* l_Lean_Parser_satisfyFn___at_Lean_Parser_hexNumberFn___spec__1___bo 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_18__throwParserCategoryAlreadyDefined(lean_object*); lean_object* l_List_eraseDupsAux___main___at_Lean_Parser_addLeadingParser___spec__6(lean_object*, 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*); @@ -1023,6 +1014,7 @@ lean_object* l___private_Init_Lean_Parser_Parser_11__antiquotId___closed__3; lean_object* l_Lean_Parser_andthen(lean_object*, lean_object*); lean_object* l_Lean_Parser_node(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Syntax_forArgsM___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined(lean_object*); lean_object* l_Lean_Parser_stringToParserCoe___boxed(lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___closed__8; @@ -1033,7 +1025,7 @@ lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object* l_Lean_Parser_identNoAntiquot; lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__10; lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___boxed(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_28__ParserAttribute_add___spec__3(lean_object*, 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*); @@ -1041,22 +1033,25 @@ lean_object* l_Lean_Parser_many1Fn___boxed(lean_object*, lean_object*, lean_obje 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_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__2(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_usize_to_nat(size_t); +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1(lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___closed__10; 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___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; lean_object* l_Lean_Parser_FirstTokens_toOptional(lean_object*); lean_object* l_Lean_Parser_checkWsBefore___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerAttributeImplBuilder(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkUnexpectedError(lean_object*, lean_object*); uint8_t l_UInt32_decLe(uint32_t, uint32_t); lean_object* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__3___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_getSyntaxNodeKinds___boxed(lean_object*); uint8_t l_Lean_Parser_ParserState_hasError(lean_object*); lean_object* l_Lean_Parser_symbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_hexDigitFn___closed__1; lean_object* l_Lean_Parser_mkAtom(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2; lean_object* l_Lean_Parser_currLbp___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkEOIError(lean_object*); lean_object* l_Lean_Parser_unicodeSymbolFnAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1065,19 +1060,22 @@ lean_object* l___private_Init_Lean_Parser_Parser_10__noImmediateColon___elambda_ lean_object* l_Lean_Parser_indexed___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_categoryParserOfStackFn(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_24__addTrailingParserAux(lean_object*, lean_object*); +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__4(lean_object*, size_t, size_t, lean_object*, 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_Lean_Parser_checkWsBefore___elambda__1___boxed(lean_object*, lean_object*, 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___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); uint8_t l___private_Init_Lean_Parser_Parser_5__isIdFirstOrBeginEscape(uint32_t); lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__3; lean_object* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4(lean_object*); lean_object* l_List_toStringAux___main___at_Lean_Parser_FirstTokens_toStr___spec__2___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_setExpected___elambda__1(lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_17__addParserCategoryCore(lean_object*, 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_List_foldl___main___at___private_Init_Lean_Parser_Parser_22__addTrailingParserAux___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_unicodeSymbolInfo___closed__1; 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*); @@ -1100,6 +1098,7 @@ lean_object* l_Lean_Parser_Parser_inhabited___closed__1; lean_object* l_Lean_Syntax_getTailInfo___main(lean_object*); lean_object* l_Lean_Parser_categoryParserOfStack___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__2; extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__1; extern lean_object* l_Lean_initAttr; lean_object* l_Lean_Parser_identFn(lean_object*, lean_object*); @@ -1110,20 +1109,21 @@ lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at_Lea lean_object* l_Lean_Parser_charLitNoAntiquot; lean_object* l_Lean_Parser_strLitFnAux___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkErrorStringWithPos(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported(lean_object*, lean_object*, lean_object*); lean_object* l_PersistentHashMap_insert___at_Lean_Parser_SyntaxNodeKindSet_insert___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkAppStx___closed__1; lean_object* l___private_Init_Lean_Parser_Parser_10__noImmediateColon; lean_object* l_Lean_Parser_unicodeSymbolFnAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__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___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nameLit___elambda__1___closed__2; lean_object* l_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, 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_sepBy1Info___elambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_rawIdent___elambda__1(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLit; lean_object* l_Lean_Parser_many1(lean_object*, uint8_t); +lean_object* l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__3; +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAtomicInfo___closed__2; lean_object* l_Lean_Parser_sepBy___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_identNoAntiquot___closed__2; @@ -1132,7 +1132,6 @@ lean_object* l_Lean_Parser_nonReservedSymbolInfo___boxed(lean_object*, lean_obje 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_leadingParserAntiquot(lean_object*, 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*); lean_object* l___private_Init_Lean_Parser_Parser_13__antiquotExpr___closed__2; @@ -1140,14 +1139,15 @@ lean_object* l_Lean_Parser_compileParserDescr___main___closed__5; lean_object* l_Lean_Parser_mkIdent(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nameLitKind___closed__1; uint8_t lean_string_dec_eq(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_isLitKind___boxed(lean_object*); lean_object* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_registerParserCategory___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +lean_object* l___private_Init_Lean_Parser_Parser_22__addTrailingParserAux(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Lean_Parser_Parser_10__noImmediateColon___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_longestMatchFnAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__1; 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*); @@ -26124,57 +26124,316 @@ lean_dec(x_1); return x_5; } } +lean_object* l_Lean_Parser_withAntiquotFn(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_29 = lean_ctor_get(x_4, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_4, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); +lean_inc(x_3); +x_33 = l_Lean_Parser_peekTokenAux(x_3, x_4); +x_5 = x_33; +goto block_28; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_4); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; +} +block_28: +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_3, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); +lean_dec(x_6); +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_1); +x_14 = lean_apply_2(x_2, x_3, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_3); +x_18 = lean_apply_2(x_1, x_3, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_3); +lean_dec(x_2); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_3); +lean_dec(x_2); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = lean_apply_2(x_2, x_3, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_1); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = lean_apply_2(x_2, x_3, x_26); +return x_27; +} +} +} +} +} +lean_object* l_Lean_Parser_withAntiquot(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; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_2, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_orelseInfo(x_3, x_4); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_2, 1); +lean_inc(x_7); +lean_dec(x_2); +x_8 = lean_alloc_closure((void*)(l_Lean_Parser_withAntiquotFn), 4, 2); +lean_closure_set(x_8, 0, x_6); +lean_closure_set(x_8, 1, x_7); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_5); +lean_ctor_set(x_9, 1, x_8); +return x_9; +} +} lean_object* l_Lean_Parser_nodeWithAntiquot___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_5 = lean_ctor_get(x_4, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_4, 1); -lean_inc(x_7); +lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_29 = lean_ctor_get(x_4, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_4, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_3); -x_8 = lean_apply_2(x_2, x_3, x_4); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_3, x_4); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_4); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_1, x_3, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); lean_dec(x_6); -x_14 = lean_apply_2(x_1, x_3, x_13); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_2); +x_14 = lean_apply_2(x_1, x_3, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_3); +x_18 = lean_apply_2(x_2, x_3, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_3); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_3); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = lean_apply_2(x_1, x_3, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_2); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = lean_apply_2(x_1, x_3, x_26); +return x_27; +} } } } @@ -26246,55 +26505,145 @@ return x_4; lean_object* l_Lean_Parser_ident___elambda__1(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; x_3 = l_Lean_Parser_ident___elambda__1___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_7); +x_29 = lean_ctor_get(x_2, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_1); -x_8 = lean_apply_2(x_4, x_1, x_2); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_1, x_2); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); +lean_dec(x_5); +x_8 = l_Lean_Parser_identFn(x_1, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); lean_dec(x_6); -x_14 = l_Lean_Parser_identFn(x_1, x_13); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_4); +x_14 = l_Lean_Parser_identFn(x_1, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_1); +x_18 = lean_apply_2(x_4, x_1, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = l_Lean_Parser_identFn(x_1, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_4); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = l_Lean_Parser_identFn(x_1, x_26); +return x_27; +} } } } @@ -26342,56 +26691,149 @@ return x_1; lean_object* l_Lean_Parser_rawIdent___elambda__1(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; x_3 = l_Lean_Parser_ident___elambda__1___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_7); +x_29 = lean_ctor_get(x_2, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_1); -x_8 = lean_apply_2(x_4, x_1, x_2); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_1, x_2); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); -lean_dec(x_6); -x_14 = l_Lean_Parser_rawIdentFn(x_1, x_13); +lean_dec(x_5); +x_8 = l_Lean_Parser_rawIdentFn(x_1, x_7); lean_dec(x_1); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); +lean_dec(x_6); +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_4); +x_14 = l_Lean_Parser_rawIdentFn(x_1, x_10); +lean_dec(x_1); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_1); +x_18 = lean_apply_2(x_4, x_1, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = l_Lean_Parser_rawIdentFn(x_1, x_23); +lean_dec(x_1); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_4); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = l_Lean_Parser_rawIdentFn(x_1, x_26); +lean_dec(x_1); +return x_27; +} } } } @@ -26460,55 +26902,145 @@ return x_4; lean_object* l_Lean_Parser_numLit___elambda__1(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; x_3 = l_Lean_Parser_numLit___elambda__1___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_7); +x_29 = lean_ctor_get(x_2, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_1); -x_8 = lean_apply_2(x_4, x_1, x_2); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_1, x_2); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); +lean_dec(x_5); +x_8 = l_Lean_Parser_numLitFn(x_1, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); lean_dec(x_6); -x_14 = l_Lean_Parser_numLitFn(x_1, x_13); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_4); +x_14 = l_Lean_Parser_numLitFn(x_1, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_1); +x_18 = lean_apply_2(x_4, x_1, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = l_Lean_Parser_numLitFn(x_1, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_4); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = l_Lean_Parser_numLitFn(x_1, x_26); +return x_27; +} } } } @@ -26577,55 +27109,145 @@ return x_4; lean_object* l_Lean_Parser_strLit___elambda__1(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; x_3 = l_Lean_Parser_strLit___elambda__1___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_7); +x_29 = lean_ctor_get(x_2, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_1); -x_8 = lean_apply_2(x_4, x_1, x_2); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_1, x_2); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); +lean_dec(x_5); +x_8 = l_Lean_Parser_strLitFn(x_1, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); lean_dec(x_6); -x_14 = l_Lean_Parser_strLitFn(x_1, x_13); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_4); +x_14 = l_Lean_Parser_strLitFn(x_1, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_1); +x_18 = lean_apply_2(x_4, x_1, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = l_Lean_Parser_strLitFn(x_1, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_4); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = l_Lean_Parser_strLitFn(x_1, x_26); +return x_27; +} } } } @@ -26694,55 +27316,145 @@ return x_4; lean_object* l_Lean_Parser_charLit___elambda__1(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; x_3 = l_Lean_Parser_charLit___elambda__1___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_7); +x_29 = lean_ctor_get(x_2, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_1); -x_8 = lean_apply_2(x_4, x_1, x_2); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_1, x_2); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); +lean_dec(x_5); +x_8 = l_Lean_Parser_charLitFn(x_1, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); lean_dec(x_6); -x_14 = l_Lean_Parser_charLitFn(x_1, x_13); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_4); +x_14 = l_Lean_Parser_charLitFn(x_1, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_1); +x_18 = lean_apply_2(x_4, x_1, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = l_Lean_Parser_charLitFn(x_1, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_4); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = l_Lean_Parser_charLitFn(x_1, x_26); +return x_27; +} } } } @@ -26811,55 +27523,145 @@ return x_4; lean_object* l_Lean_Parser_nameLit___elambda__1(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_3; lean_object* x_4; lean_object* x_5; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; x_3 = l_Lean_Parser_nameLit___elambda__1___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 0); -lean_inc(x_5); -x_6 = lean_array_get_size(x_5); -lean_dec(x_5); -x_7 = lean_ctor_get(x_2, 1); -lean_inc(x_7); +x_29 = lean_ctor_get(x_2, 2); +lean_inc(x_29); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_nat_dec_eq(x_30, x_31); +lean_dec(x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_dec(x_29); lean_inc(x_1); -x_8 = lean_apply_2(x_4, x_1, x_2); -x_9 = lean_ctor_get(x_8, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +x_33 = l_Lean_Parser_peekTokenAux(x_1, x_2); +x_5 = x_33; +goto block_28; } else { -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_ctor_get(x_8, 1); -lean_inc(x_11); -x_12 = lean_nat_dec_eq(x_11, x_7); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_1); -return x_8; +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_29, 2); +lean_inc(x_34); +lean_dec(x_29); +x_35 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_35, 0, x_34); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_35); +x_5 = x_36; +goto block_28; } -else +block_28: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_6; +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); lean_inc(x_7); -x_13 = l_Lean_Parser_ParserState_restore(x_8, x_6, x_7); +lean_dec(x_5); +x_8 = l_Lean_Parser_nameLitFn(x_1, x_7); +return x_8; +} +else +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_6, 0); +lean_inc(x_9); lean_dec(x_6); -x_14 = l_Lean_Parser_nameLitFn(x_1, x_13); -x_15 = l_Lean_Parser_mergeOrElseErrors(x_14, x_10, x_7); -lean_dec(x_7); -return x_15; +if (lean_obj_tag(x_9) == 2) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_5, 0); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_13 = lean_string_dec_eq(x_11, x_12); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_4); +x_14 = l_Lean_Parser_nameLitFn(x_1, x_10); +return x_14; +} +else +{ +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_10, 0); +lean_inc(x_15); +x_16 = lean_array_get_size(x_15); +lean_dec(x_15); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_1); +x_18 = lean_apply_2(x_4, x_1, x_10); +x_19 = lean_ctor_get(x_18, 3); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) +{ +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +x_22 = lean_nat_dec_eq(x_21, x_17); +lean_dec(x_21); +if (x_22 == 0) +{ +lean_dec(x_20); +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_1); +return x_18; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_inc(x_17); +x_23 = l_Lean_Parser_ParserState_restore(x_18, x_16, x_17); +lean_dec(x_16); +x_24 = l_Lean_Parser_nameLitFn(x_1, x_23); +x_25 = l_Lean_Parser_mergeOrElseErrors(x_24, x_20, x_17); +lean_dec(x_17); +return x_25; +} +} +} +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_9); +lean_dec(x_4); +x_26 = lean_ctor_get(x_5, 0); +lean_inc(x_26); +lean_dec(x_5); +x_27 = l_Lean_Parser_nameLitFn(x_1, x_26); +return x_27; +} } } } @@ -27120,226 +27922,148 @@ x_7 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_6, x_4, x_5); return x_7; } } -lean_object* l___private_Init_Lean_Parser_Parser_15__catNameToString(lean_object* x_1) { +lean_object* l_Lean_Parser_leadingParser(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -if (lean_obj_tag(x_1) == 1) +lean_object* x_7; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_31 = lean_ctor_get(x_6, 2); +lean_inc(x_31); +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_6, 1); +lean_inc(x_33); +x_34 = lean_nat_dec_eq(x_32, x_33); +lean_dec(x_33); +lean_dec(x_32); +if (x_34 == 0) { -lean_object* x_2; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_3; -x_3 = lean_ctor_get(x_1, 1); -lean_inc(x_3); -lean_dec(x_1); -return x_3; +lean_object* x_35; +lean_dec(x_31); +lean_inc(x_5); +x_35 = l_Lean_Parser_peekTokenAux(x_5, x_6); +x_7 = x_35; +goto block_30; } else { -lean_object* x_4; lean_object* x_5; -lean_dec(x_2); -x_4 = l_Lean_Name_toString___closed__1; -x_5 = l_Lean_Name_toStringWithSep___main(x_4, x_1); -return x_5; +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_31, 2); +lean_inc(x_36); +lean_dec(x_31); +x_37 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_37, 0, x_36); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_6); +lean_ctor_set(x_38, 1, x_37); +x_7 = x_38; +goto block_30; } -} -else +block_30: { -lean_object* x_6; lean_object* x_7; -x_6 = l_Lean_Name_toString___closed__1; -x_7 = l_Lean_Name_toStringWithSep___main(x_6, x_1); -return x_7; -} -} -} -lean_object* l_Lean_Parser_leadingParserAntiquot(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: +lean_object* x_8; +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +if (lean_obj_tag(x_8) == 0) { -lean_object* x_4; uint8_t x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_4 = l_Lean_Parser_termParser___closed__2; -x_5 = lean_name_eq(x_1, x_4); -x_6 = l___private_Init_Lean_Parser_Parser_15__catNameToString(x_1); -x_7 = lean_box(0); -x_8 = l_Lean_Parser_mkAntiquot(x_6, x_7, x_5); -lean_dec(x_6); -x_9 = lean_ctor_get(x_8, 1); +lean_object* x_9; lean_object* x_10; +lean_dec(x_4); +x_9 = lean_ctor_get(x_7, 0); lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_apply_2(x_9, x_2, x_3); +lean_dec(x_7); +x_10 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_9); return x_10; } -} -uint8_t l___private_Init_Lean_Parser_Parser_16__isDollar(lean_object* x_1, lean_object* x_2) { -_start: +else { -lean_object* x_3; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_12 = lean_ctor_get(x_2, 2); +lean_object* x_11; +x_11 = lean_ctor_get(x_8, 0); +lean_inc(x_11); +lean_dec(x_8); +if (lean_obj_tag(x_11) == 2) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_12 = lean_ctor_get(x_7, 0); lean_inc(x_12); -x_13 = lean_ctor_get(x_12, 0); +lean_dec(x_7); +x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); -x_14 = lean_ctor_get(x_2, 1); -lean_inc(x_14); -x_15 = lean_nat_dec_eq(x_13, x_14); -lean_dec(x_14); +lean_dec(x_11); +x_14 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_15 = lean_string_dec_eq(x_13, x_14); lean_dec(x_13); if (x_15 == 0) { lean_object* x_16; -lean_dec(x_12); -x_16 = l_Lean_Parser_peekTokenAux(x_1, x_2); -x_3 = x_16; -goto block_11; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -lean_dec(x_1); -x_17 = lean_ctor_get(x_12, 2); -lean_inc(x_17); -lean_dec(x_12); -x_18 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_18, 0, x_17); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_2); -lean_ctor_set(x_19, 1, x_18); -x_3 = x_19; -goto block_11; -} -block_11: -{ -lean_object* x_4; -x_4 = lean_ctor_get(x_3, 1); -lean_inc(x_4); -lean_dec(x_3); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_5; -x_5 = 0; -return x_5; -} -else -{ -lean_object* x_6; -x_6 = lean_ctor_get(x_4, 0); -lean_inc(x_6); lean_dec(x_4); -if (lean_obj_tag(x_6) == 2) -{ -lean_object* x_7; lean_object* x_8; uint8_t x_9; -x_7 = lean_ctor_get(x_6, 1); -lean_inc(x_7); -lean_dec(x_6); -x_8 = l_Lean_Syntax_termIdToAntiquot___closed__3; -x_9 = lean_string_dec_eq(x_7, x_8); -lean_dec(x_7); -return x_9; +x_16 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_12); +return x_16; } else { -uint8_t x_10; -lean_dec(x_6); -x_10 = 0; -return x_10; -} -} -} -} -} -lean_object* l___private_Init_Lean_Parser_Parser_16__isDollar___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l___private_Init_Lean_Parser_Parser_16__isDollar(x_1, x_2); -x_4 = lean_box(x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_leadingParser(lean_object* x_1, lean_object* x_2, uint8_t x_3, uint8_t x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -if (x_4 == 0) -{ -lean_object* x_7; -x_7 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_6); -return x_7; -} -else -{ -uint8_t x_8; -lean_inc(x_6); -lean_inc(x_5); -x_8 = l___private_Init_Lean_Parser_Parser_16__isDollar(x_5, x_6); -if (x_8 == 0) -{ -lean_object* x_9; -x_9 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_6); -return x_9; -} -else -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t 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; -x_10 = lean_ctor_get(x_6, 0); -lean_inc(x_10); -x_11 = lean_array_get_size(x_10); -lean_dec(x_10); -x_12 = lean_ctor_get(x_6, 1); -lean_inc(x_12); -x_13 = l_Lean_Parser_termParser___closed__2; -x_14 = lean_name_eq(x_1, x_13); -lean_inc(x_1); -x_15 = l___private_Init_Lean_Parser_Parser_15__catNameToString(x_1); -x_16 = lean_box(0); -x_17 = l_Lean_Parser_mkAntiquot(x_15, x_16, x_14); -lean_dec(x_15); -x_18 = lean_ctor_get(x_17, 1); -lean_inc(x_18); +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_12, 0); +lean_inc(x_17); +x_18 = lean_array_get_size(x_17); lean_dec(x_17); +x_19 = lean_ctor_get(x_12, 1); +lean_inc(x_19); lean_inc(x_5); -x_19 = lean_apply_2(x_18, x_5, x_6); -x_20 = lean_ctor_get(x_19, 3); -lean_inc(x_20); -if (lean_obj_tag(x_20) == 0) -{ -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -return x_19; -} -else -{ -lean_object* x_21; lean_object* x_22; uint8_t x_23; -x_21 = lean_ctor_get(x_20, 0); +x_20 = lean_apply_2(x_4, x_5, x_12); +x_21 = lean_ctor_get(x_20, 3); lean_inc(x_21); -lean_dec(x_20); -x_22 = lean_ctor_get(x_19, 1); -lean_inc(x_22); -x_23 = lean_nat_dec_eq(x_22, x_12); -lean_dec(x_22); -if (x_23 == 0) +if (lean_obj_tag(x_21) == 0) { -lean_dec(x_21); -lean_dec(x_12); -lean_dec(x_11); +lean_dec(x_19); +lean_dec(x_18); lean_dec(x_5); lean_dec(x_2); lean_dec(x_1); -return x_19; +return x_20; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; -lean_inc(x_12); -x_24 = l_Lean_Parser_ParserState_restore(x_19, x_11, x_12); -lean_dec(x_11); -x_25 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_24); -x_26 = l_Lean_Parser_mergeOrElseErrors(x_25, x_21, x_12); -lean_dec(x_12); -return x_26; +lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_ctor_get(x_20, 1); +lean_inc(x_23); +x_24 = lean_nat_dec_eq(x_23, x_19); +lean_dec(x_23); +if (x_24 == 0) +{ +lean_dec(x_22); +lean_dec(x_19); +lean_dec(x_18); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_20; } +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_inc(x_19); +x_25 = l_Lean_Parser_ParserState_restore(x_20, x_18, x_19); +lean_dec(x_18); +x_26 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_25); +x_27 = l_Lean_Parser_mergeOrElseErrors(x_26, x_22, x_19); +lean_dec(x_19); +return x_27; +} +} +} +} +else +{ +lean_object* x_28; lean_object* x_29; +lean_dec(x_11); +lean_dec(x_4); +x_28 = lean_ctor_get(x_7, 0); +lean_inc(x_28); +lean_dec(x_7); +x_29 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_28); +return x_29; } } } @@ -27348,13 +28072,11 @@ return x_26; lean_object* l_Lean_Parser_leadingParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -uint8_t x_7; uint8_t x_8; lean_object* x_9; +uint8_t x_7; lean_object* x_8; x_7 = lean_unbox(x_3); lean_dec(x_3); -x_8 = lean_unbox(x_4); -lean_dec(x_4); -x_9 = l_Lean_Parser_leadingParser(x_1, x_2, x_7, x_8, x_5, x_6); -return x_9; +x_8 = l_Lean_Parser_leadingParser(x_1, x_2, x_7, x_4, x_5, x_6); +return x_8; } } lean_object* l_Lean_Parser_trailingLoopStep(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -27415,7 +28137,7 @@ return x_16; } } } -lean_object* l___private_Init_Lean_Parser_Parser_17__mkTrailingResult(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_15__mkTrailingResult(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; @@ -27481,7 +28203,7 @@ lean_inc(x_20); if (lean_obj_tag(x_20) == 0) { lean_object* x_21; -x_21 = l___private_Init_Lean_Parser_Parser_17__mkTrailingResult(x_19, x_12); +x_21 = l___private_Init_Lean_Parser_Parser_15__mkTrailingResult(x_19, x_12); x_3 = x_21; goto _start; } @@ -27512,7 +28234,7 @@ lean_inc(x_26); if (lean_obj_tag(x_26) == 0) { lean_object* x_27; -x_27 = l___private_Init_Lean_Parser_Parser_17__mkTrailingResult(x_25, x_12); +x_27 = l___private_Init_Lean_Parser_Parser_15__mkTrailingResult(x_25, x_12); x_3 = x_27; goto _start; } @@ -27559,71 +28281,285 @@ x_1 = lean_mk_string("unexpected token"); return x_1; } } -lean_object* l_Lean_Parser_prattParser(lean_object* x_1, lean_object* x_2, uint8_t x_3, uint8_t x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Lean_Parser_prattParser(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -x_8 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_7); -lean_dec(x_7); +lean_object* x_7; lean_object* x_11; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; +x_35 = lean_ctor_get(x_6, 0); +lean_inc(x_35); +x_36 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_35); +lean_dec(x_35); lean_inc(x_5); -x_9 = l_Lean_Parser_currLbp(x_8, x_5, x_6); -lean_dec(x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = lean_ctor_get(x_5, 1); -lean_inc(x_12); -x_13 = lean_nat_dec_lt(x_11, x_12); -lean_dec(x_12); -lean_dec(x_11); -if (x_13 == 0) +x_37 = l_Lean_Parser_currLbp(x_36, x_5, x_6); +lean_dec(x_36); +x_38 = !lean_is_exclusive(x_37); +if (x_38 == 0) { -lean_object* x_14; lean_object* x_15; +lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; +x_39 = lean_ctor_get(x_37, 0); +x_40 = lean_ctor_get(x_37, 1); +x_41 = lean_ctor_get(x_5, 1); +lean_inc(x_41); +x_42 = lean_nat_dec_lt(x_40, x_41); +lean_dec(x_41); +lean_dec(x_40); +if (x_42 == 0) +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; +x_43 = lean_ctor_get(x_39, 2); +lean_inc(x_43); +x_44 = lean_ctor_get(x_43, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_39, 1); +lean_inc(x_45); +x_46 = lean_nat_dec_eq(x_44, x_45); +lean_dec(x_45); +lean_dec(x_44); +if (x_46 == 0) +{ +lean_object* x_47; +lean_dec(x_43); +lean_free_object(x_37); lean_inc(x_5); -lean_inc(x_2); -x_14 = l_Lean_Parser_leadingParser(x_1, x_2, x_3, x_4, x_5, x_10); -x_15 = lean_ctor_get(x_14, 3); -lean_inc(x_15); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; -x_16 = l_Lean_Parser_trailingLoop___main(x_2, x_5, x_14); -return x_16; +x_47 = l_Lean_Parser_peekTokenAux(x_5, x_39); +x_11 = x_47; +goto block_34; } else { -lean_dec(x_15); -lean_dec(x_5); -lean_dec(x_2); -return x_14; +lean_object* x_48; lean_object* x_49; +x_48 = lean_ctor_get(x_43, 2); +lean_inc(x_48); +lean_dec(x_43); +x_49 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_49, 0, x_48); +lean_ctor_set(x_37, 1, x_49); +x_11 = x_37; +goto block_34; } } else { -lean_object* x_17; lean_object* x_18; +lean_object* x_50; lean_object* x_51; +lean_free_object(x_37); lean_dec(x_5); +lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_17 = l_Lean_Parser_prattParser___closed__1; -x_18 = l_Lean_Parser_ParserState_mkUnexpectedError(x_10, x_17); -return x_18; +x_50 = l_Lean_Parser_prattParser___closed__1; +x_51 = l_Lean_Parser_ParserState_mkUnexpectedError(x_39, x_50); +return x_51; +} +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_52 = lean_ctor_get(x_37, 0); +x_53 = lean_ctor_get(x_37, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_37); +x_54 = lean_ctor_get(x_5, 1); +lean_inc(x_54); +x_55 = lean_nat_dec_lt(x_53, x_54); +lean_dec(x_54); +lean_dec(x_53); +if (x_55 == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; uint8_t x_59; +x_56 = lean_ctor_get(x_52, 2); +lean_inc(x_56); +x_57 = lean_ctor_get(x_56, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_52, 1); +lean_inc(x_58); +x_59 = lean_nat_dec_eq(x_57, x_58); +lean_dec(x_58); +lean_dec(x_57); +if (x_59 == 0) +{ +lean_object* x_60; +lean_dec(x_56); +lean_inc(x_5); +x_60 = l_Lean_Parser_peekTokenAux(x_5, x_52); +x_11 = x_60; +goto block_34; +} +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_ctor_get(x_56, 2); +lean_inc(x_61); +lean_dec(x_56); +x_62 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_62, 0, x_61); +x_63 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_63, 0, x_52); +lean_ctor_set(x_63, 1, x_62); +x_11 = x_63; +goto block_34; +} +} +else +{ +lean_object* x_64; lean_object* x_65; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_64 = l_Lean_Parser_prattParser___closed__1; +x_65 = l_Lean_Parser_ParserState_mkUnexpectedError(x_52, x_64); +return x_65; +} +} +block_10: +{ +lean_object* x_8; +x_8 = lean_ctor_get(x_7, 3); +lean_inc(x_8); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; +x_9 = l_Lean_Parser_trailingLoop___main(x_2, x_5, x_7); +return x_9; +} +else +{ +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_2); +return x_7; +} +} +block_34: +{ +lean_object* x_12; +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_4); +x_13 = lean_ctor_get(x_11, 0); +lean_inc(x_13); +lean_dec(x_11); +lean_inc(x_5); +lean_inc(x_2); +x_14 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_13); +x_7 = x_14; +goto block_10; +} +else +{ +lean_object* x_15; +x_15 = lean_ctor_get(x_12, 0); +lean_inc(x_15); +lean_dec(x_12); +if (lean_obj_tag(x_15) == 2) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_11, 0); +lean_inc(x_16); +lean_dec(x_11); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_19 = lean_string_dec_eq(x_17, x_18); +lean_dec(x_17); +if (x_19 == 0) +{ +lean_object* x_20; +lean_dec(x_4); +lean_inc(x_5); +lean_inc(x_2); +x_20 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_16); +x_7 = x_20; +goto block_10; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_21 = lean_ctor_get(x_16, 0); +lean_inc(x_21); +x_22 = lean_array_get_size(x_21); +lean_dec(x_21); +x_23 = lean_ctor_get(x_16, 1); +lean_inc(x_23); +lean_inc(x_5); +x_24 = lean_apply_2(x_4, x_5, x_16); +x_25 = lean_ctor_get(x_24, 3); +lean_inc(x_25); +if (lean_obj_tag(x_25) == 0) +{ +lean_dec(x_23); +lean_dec(x_22); +lean_dec(x_1); +x_7 = x_24; +goto block_10; +} +else +{ +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +lean_dec(x_25); +x_27 = lean_ctor_get(x_24, 1); +lean_inc(x_27); +x_28 = lean_nat_dec_eq(x_27, x_23); +lean_dec(x_27); +if (x_28 == 0) +{ +lean_dec(x_26); +lean_dec(x_23); +lean_dec(x_22); +lean_dec(x_1); +x_7 = x_24; +goto block_10; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +lean_inc(x_23); +x_29 = l_Lean_Parser_ParserState_restore(x_24, x_22, x_23); +lean_dec(x_22); +lean_inc(x_5); +lean_inc(x_2); +x_30 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_29); +x_31 = l_Lean_Parser_mergeOrElseErrors(x_30, x_26, x_23); +lean_dec(x_23); +x_7 = x_31; +goto block_10; +} +} +} +} +else +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_15); +lean_dec(x_4); +x_32 = lean_ctor_get(x_11, 0); +lean_inc(x_32); +lean_dec(x_11); +lean_inc(x_5); +lean_inc(x_2); +x_33 = l_Lean_Parser_leadingParserAux(x_1, x_2, x_3, x_5, x_32); +x_7 = x_33; +goto block_10; +} +} } } } lean_object* l_Lean_Parser_prattParser___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -uint8_t x_7; uint8_t x_8; lean_object* x_9; +uint8_t x_7; lean_object* x_8; x_7 = lean_unbox(x_3); lean_dec(x_3); -x_8 = lean_unbox(x_4); -lean_dec(x_4); -x_9 = l_Lean_Parser_prattParser(x_1, x_2, x_7, x_8, x_5, x_6); -return x_9; +x_8 = l_Lean_Parser_prattParser(x_1, x_2, x_7, x_4, x_5, x_6); +return x_8; } } lean_object* l_Lean_Parser_mkBuiltinTokenTable(lean_object* x_1) { @@ -27669,7 +28605,7 @@ x_3 = lean_io_mk_ref(x_2, x_1); return x_3; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__1() { _start: { lean_object* x_1; @@ -27677,7 +28613,7 @@ x_1 = lean_mk_string("parser category '"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2() { _start: { lean_object* x_1; @@ -27685,31 +28621,31 @@ x_1 = lean_mk_string("' has already been defined"); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_2 = l_Lean_Name_toString___closed__1; x_3 = l_Lean_Name_toStringWithSep___main(x_2, x_1); -x_4 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__1; +x_4 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__1; x_5 = lean_string_append(x_4, x_3); lean_dec(x_3); -x_6 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2; +x_6 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2; 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; } } -lean_object* l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg), 1, 0); +x_2 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg), 1, 0); return x_2; } } -uint8_t l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +uint8_t l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -27769,7 +28705,7 @@ return x_19; } } } -uint8_t l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__1(lean_object* x_1, lean_object* x_2) { +uint8_t l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; size_t x_4; uint8_t x_5; @@ -27777,11 +28713,11 @@ 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_19__addParserCategoryCore___spec__2(x_3, x_4, x_2); +x_5 = l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__2(x_3, x_4, x_2); return x_5; } } -lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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; @@ -27873,7 +28809,7 @@ return x_29; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___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) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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; @@ -27896,7 +28832,7 @@ 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_19__addParserCategoryCore___spec__4(x_6, x_16, x_1, x_9, x_10); +x_17 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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); @@ -27906,7 +28842,7 @@ goto _start; } } } -lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__4(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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) @@ -28019,7 +28955,7 @@ lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_3 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_19__addParserCategoryCore___spec__4(x_35, x_36, x_37, x_4, x_5); +x_38 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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); @@ -28034,7 +28970,7 @@ 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_19__addParserCategoryCore___spec__4(x_40, x_41, x_42, x_4, x_5); +x_43 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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); @@ -28150,7 +29086,7 @@ if (lean_is_exclusive(x_57)) { } x_73 = x_2 >> x_50; x_74 = x_3 + x_49; -x_75 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__4(x_71, x_73, x_74, x_4, x_5); +x_75 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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 { @@ -28183,7 +29119,7 @@ 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_19__addParserCategoryCore___spec__5(x_1, x_82, x_4, x_5); +x_83 = l_PersistentHashMap_insertAtCollisionNodeAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__5(x_1, x_82, x_4, x_5); x_84 = 7; x_85 = x_84 <= x_3; if (x_85 == 0) @@ -28202,7 +29138,7 @@ 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_19__addParserCategoryCore___spec__6(x_3, x_89, x_90, x_89, x_82, x_91); +x_92 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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; @@ -28219,7 +29155,7 @@ return x_83; } } } -lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -28231,7 +29167,7 @@ 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_19__addParserCategoryCore___spec__4(x_5, x_7, x_8, x_2, x_3); +x_9 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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); @@ -28249,7 +29185,7 @@ 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_19__addParserCategoryCore___spec__4(x_12, x_14, x_15, x_2, x_3); +x_16 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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); @@ -28260,16 +29196,16 @@ return x_19; } } } -lean_object* l___private_Init_Lean_Parser_Parser_19__addParserCategoryCore(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_17__addParserCategoryCore(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; lean_inc(x_1); -x_4 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__1(x_1, x_2); +x_4 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__1(x_1, x_2); if (x_4 == 0) { lean_object* x_5; lean_object* x_6; -x_5 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_3); +x_5 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_3); x_6 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_6, 0, x_5); return x_6; @@ -28279,47 +29215,47 @@ else lean_object* x_7; lean_dec(x_3); lean_dec(x_1); -x_7 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg(x_2); +x_7 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg(x_2); return x_7; } } } -lean_object* l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_19__addParserCategoryCore___spec__2(x_1, x_4, x_3); +x_5 = l_PersistentHashMap_containsAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_19__addParserCategoryCore___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_19__addParserCategoryCore___spec__1(x_1, x_2); +x_3 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_19__addParserCategoryCore___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) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_19__addParserCategoryCore___spec__6(x_7, x_2, x_3, x_4, x_5, x_6); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_19__addParserCategoryCore___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_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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; @@ -28327,11 +29263,11 @@ 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_19__addParserCategoryCore___spec__4(x_1, x_6, x_7, x_4, x_5); +x_8 = l_PersistentHashMap_insertAux___main___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___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_20__addBuiltinParserCategory___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -28358,7 +29294,7 @@ return x_7; } } } -lean_object* l___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; @@ -28376,8 +29312,8 @@ x_8 = l_Lean_Parser_PrattParsingTables_inhabited___closed__1; x_9 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_9, 0, x_8); lean_ctor_set_uint8(x_9, sizeof(void*)*1, x_2); -x_10 = l___private_Init_Lean_Parser_Parser_19__addParserCategoryCore(x_6, x_1, x_9); -x_11 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1(x_10, x_7); +x_10 = l___private_Init_Lean_Parser_Parser_17__addParserCategoryCore(x_6, x_1, x_9); +x_11 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(x_10, x_7); lean_dec(x_10); if (lean_obj_tag(x_11) == 0) { @@ -28438,22 +29374,22 @@ return x_22; } } } -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__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_20__addBuiltinParserCategory___spec__1(x_1, x_2); +x_3 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; lean_object* x_5; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory(x_1, x_4, x_3); +x_5 = l___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory(x_1, x_4, x_3); return x_5; } } @@ -28481,7 +29417,7 @@ x_1 = l_Lean_Parser_ParserExtensionState_inhabited___closed__1; return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_21__ParserExtension_mkInitial(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_19__ParserExtension_mkInitial(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -28617,7 +29553,7 @@ return x_32; } } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__1() { _start: { lean_object* x_1; @@ -28625,7 +29561,7 @@ x_1 = lean_mk_string("precedence mismatch for '"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__2() { _start: { lean_object* x_1; @@ -28633,7 +29569,7 @@ x_1 = lean_mk_string("', previous: "); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__3() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__3() { _start: { lean_object* x_1; @@ -28641,7 +29577,7 @@ x_1 = lean_mk_string(", new: "); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_22__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_20__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) @@ -28675,15 +29611,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_22__mergePrecendences___closed__1; +x_10 = l___private_Init_Lean_Parser_Parser_20__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_22__mergePrecendences___closed__2; +x_13 = l___private_Init_Lean_Parser_Parser_20__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_22__mergePrecendences___closed__3; +x_17 = l___private_Init_Lean_Parser_Parser_20__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); @@ -28706,16 +29642,16 @@ return x_22; } } } -lean_object* l___private_Init_Lean_Parser_Parser_22__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_20__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_22__mergePrecendences(x_1, x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Parser_Parser_20__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_23__addTokenConfig___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1() { _start: { lean_object* x_1; @@ -28723,7 +29659,7 @@ x_1 = lean_mk_string("(no whitespace) "); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__2() { _start: { lean_object* x_1; @@ -28731,17 +29667,17 @@ x_1 = lean_mk_string("invalid empty symbol"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__3() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__2; +x_1 = l___private_Init_Lean_Parser_Parser_21__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_23__addTokenConfig(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_21__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; @@ -28788,7 +29724,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_22__mergePrecendences(x_6, x_3, x_17, x_4); +x_18 = l___private_Init_Lean_Parser_Parser_20__mergePrecendences(x_6, x_3, x_17, x_4); if (lean_obj_tag(x_18) == 0) { uint8_t x_19; @@ -28822,8 +29758,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_23__addTokenConfig___closed__1; -x_25 = l___private_Init_Lean_Parser_Parser_22__mergePrecendences(x_24, x_3, x_23, x_5); +x_24 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1; +x_25 = l___private_Init_Lean_Parser_Parser_20__mergePrecendences(x_24, x_3, x_23, x_5); if (lean_obj_tag(x_25) == 0) { uint8_t x_26; @@ -28890,7 +29826,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_22__mergePrecendences(x_6, x_3, x_36, x_4); +x_37 = l___private_Init_Lean_Parser_Parser_20__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; @@ -28924,8 +29860,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_23__addTokenConfig___closed__1; -x_44 = l___private_Init_Lean_Parser_Parser_22__mergePrecendences(x_43, x_3, x_42, x_5); +x_43 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1; +x_44 = l___private_Init_Lean_Parser_Parser_20__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; @@ -28988,7 +29924,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_53 = l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__3; +x_53 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__3; return x_53; } } @@ -29436,7 +30372,7 @@ x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_4); lean_ctor_set(x_13, 1, x_12); lean_ctor_set(x_10, 1, x_13); -x_14 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_7); +x_14 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_7); x_15 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_15, 0, x_14); return x_15; @@ -29462,7 +30398,7 @@ lean_ctor_set(x_21, 1, x_20); lean_ctor_set(x_21, 2, x_18); lean_ctor_set(x_21, 3, x_19); lean_ctor_set(x_7, 0, x_21); -x_22 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_7); +x_22 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_7); x_23 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_23, 0, x_22); return x_23; @@ -29508,7 +30444,7 @@ lean_ctor_set(x_32, 3, x_29); x_33 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_33, 0, x_32); lean_ctor_set_uint8(x_33, sizeof(void*)*1, x_25); -x_34 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_33); +x_34 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_33); x_35 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_35, 0, x_34); return x_35; @@ -29526,7 +30462,7 @@ x_40 = lean_ctor_get(x_7, 0); x_41 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(x_38); x_42 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(x_4, x_40, x_41); lean_ctor_set(x_7, 0, x_42); -x_43 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_7); +x_43 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_7); x_44 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_44, 0, x_43); return x_44; @@ -29543,7 +30479,7 @@ x_48 = l_List_foldl___main___at_Lean_Parser_addLeadingParser___spec__8(x_4, x_45 x_49 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_49, 0, x_48); lean_ctor_set_uint8(x_49, sizeof(void*)*1, x_46); -x_50 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_49); +x_50 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_49); x_51 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_51, 0, x_50); return x_51; @@ -29603,7 +30539,7 @@ lean_dec(x_3); return x_5; } } -lean_object* l_List_foldl___main___at___private_Init_Lean_Parser_Parser_24__addTrailingParserAux___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_22__addTrailingParserAux___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -29656,7 +30592,7 @@ goto _start; } } } -lean_object* l___private_Init_Lean_Parser_Parser_24__addTrailingParserAux(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_22__addTrailingParserAux(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_14; lean_object* x_19; lean_object* x_20; @@ -29736,7 +30672,7 @@ block_18: lean_object* x_15; lean_object* x_16; lean_object* x_17; x_15 = l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(x_14); x_16 = l_List_eraseDups___at_Lean_Parser_addLeadingParser___spec__5(x_15); -x_17 = l_List_foldl___main___at___private_Init_Lean_Parser_Parser_24__addTrailingParserAux___spec__1(x_2, x_1, x_16); +x_17 = l_List_foldl___main___at___private_Init_Lean_Parser_Parser_22__addTrailingParserAux___spec__1(x_2, x_1, x_16); return x_17; } } @@ -29766,9 +30702,9 @@ if (x_7 == 0) { lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; x_8 = lean_ctor_get(x_6, 0); -x_9 = l___private_Init_Lean_Parser_Parser_24__addTrailingParserAux(x_8, x_3); +x_9 = l___private_Init_Lean_Parser_Parser_22__addTrailingParserAux(x_8, x_3); lean_ctor_set(x_6, 0, x_9); -x_10 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_6); +x_10 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_6); x_11 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_11, 0, x_10); return x_11; @@ -29780,11 +30716,11 @@ x_12 = lean_ctor_get(x_6, 0); x_13 = lean_ctor_get_uint8(x_6, sizeof(void*)*1); lean_inc(x_12); lean_dec(x_6); -x_14 = l___private_Init_Lean_Parser_Parser_24__addTrailingParserAux(x_12, x_3); +x_14 = l___private_Init_Lean_Parser_Parser_22__addTrailingParserAux(x_12, x_3); x_15 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_15, 0, x_14); lean_ctor_set_uint8(x_15, sizeof(void*)*1, x_13); -x_16 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_1, x_2, x_15); +x_16 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_1, x_2, x_15); x_17 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_17, 0, x_16); return x_17; @@ -29838,7 +30774,7 @@ 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_23__addTokenConfig(x_1, x_4); +x_6 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig(x_1, x_4); if (lean_obj_tag(x_6) == 0) { uint8_t x_7; @@ -29885,7 +30821,7 @@ 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_25__updateBuiltinTokens___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens___closed__1() { _start: { lean_object* x_1; @@ -29893,7 +30829,7 @@ x_1 = lean_mk_string("invalid builtin parser '"); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_23__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; @@ -29918,7 +30854,7 @@ 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_25__updateBuiltinTokens___closed__1; +x_14 = l___private_Init_Lean_Parser_Parser_23__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; @@ -29960,7 +30896,7 @@ lean_inc(x_25); lean_dec(x_24); x_26 = l_Lean_Name_toString___closed__1; x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_2); -x_28 = l___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens___closed__1; +x_28 = l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens___closed__1; x_29 = lean_string_append(x_28, x_27); lean_dec(x_27); x_30 = l_Lean_registerTagAttribute___lambda__4___closed__3; @@ -30028,7 +30964,7 @@ lean_inc(x_9); lean_dec(x_7); lean_inc(x_4); x_10 = l_Lean_Parser_addParser(x_8, x_1, x_2, x_3, x_4); -x_11 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1(x_10, x_9); +x_11 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(x_10, x_9); lean_dec(x_10); if (lean_obj_tag(x_11) == 0) { @@ -30075,7 +31011,7 @@ 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_25__updateBuiltinTokens(x_16, x_2, x_26); +x_27 = l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens(x_16, x_2, x_26); return x_27; } else @@ -30261,7 +31197,7 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_1, x_2, x_5, x_3, x_4); return x_6; } } -lean_object* l___private_Init_Lean_Parser_Parser_26__ParserExtension_addEntry(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Init_Lean_Parser_Parser_24__ParserExtension_addEntry(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_2)) { @@ -30280,7 +31216,7 @@ 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_23__addTokenConfig(x_5, x_3); +x_9 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig(x_5, x_3); if (lean_obj_tag(x_9) == 0) { lean_object* x_10; lean_object* x_11; @@ -30323,7 +31259,7 @@ lean_inc(x_16); lean_inc(x_15); lean_dec(x_1); lean_inc(x_3); -x_19 = l___private_Init_Lean_Parser_Parser_23__addTokenConfig(x_15, x_3); +x_19 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig(x_15, x_3); if (lean_obj_tag(x_19) == 0) { lean_object* x_20; lean_object* x_21; @@ -30424,7 +31360,7 @@ lean_inc(x_47); x_48 = lean_ctor_get(x_1, 3); lean_inc(x_48); lean_inc(x_47); -x_49 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__1(x_47, x_43); +x_49 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__1(x_47, x_43); if (x_49 == 0) { uint8_t x_50; @@ -30445,7 +31381,7 @@ x_56 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_56, 0, x_55); lean_ctor_set_uint8(x_56, sizeof(void*)*1, x_44); lean_inc(x_43); -x_57 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_47, x_43, x_56); +x_57 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_47, x_43, x_56); x_58 = lean_alloc_ctor(2, 1, 1); lean_ctor_set(x_58, 0, x_43); lean_ctor_set_uint8(x_58, sizeof(void*)*1, x_44); @@ -30465,7 +31401,7 @@ x_61 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_61, 0, x_60); lean_ctor_set_uint8(x_61, sizeof(void*)*1, x_44); lean_inc(x_43); -x_62 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__3(x_47, x_43, x_61); +x_62 = l_PersistentHashMap_insert___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__3(x_47, x_43, x_61); x_63 = lean_alloc_ctor(2, 1, 1); lean_ctor_set(x_63, 0, x_43); lean_ctor_set_uint8(x_63, sizeof(void*)*1, x_44); @@ -32419,7 +33355,7 @@ lean_dec(x_1); return x_4; } } -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -32446,7 +33382,7 @@ return x_7; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__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) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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; @@ -32485,8 +33421,8 @@ 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_23__addTokenConfig(x_15, x_13); -x_20 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__1(x_19, x_6); +x_19 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig(x_15, x_13); +x_20 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__1(x_19, x_6); lean_dec(x_19); if (lean_obj_tag(x_20) == 0) { @@ -32542,8 +33478,8 @@ lean_inc(x_30); lean_inc(x_29); lean_inc(x_28); lean_dec(x_5); -x_32 = l___private_Init_Lean_Parser_Parser_23__addTokenConfig(x_28, x_13); -x_33 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__1(x_32, x_6); +x_32 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig(x_28, x_13); +x_33 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__1(x_32, x_6); lean_dec(x_32); if (lean_obj_tag(x_33) == 0) { @@ -32654,8 +33590,8 @@ x_63 = l_Lean_Parser_PrattParsingTables_inhabited___closed__1; x_64 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_64, 0, x_63); lean_ctor_set_uint8(x_64, sizeof(void*)*1, x_57); -x_65 = l___private_Init_Lean_Parser_Parser_19__addParserCategoryCore(x_61, x_56, x_64); -x_66 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1(x_65, x_6); +x_65 = l___private_Init_Lean_Parser_Parser_17__addParserCategoryCore(x_61, x_56, x_64); +x_66 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(x_65, x_6); lean_dec(x_65); if (lean_obj_tag(x_66) == 0) { @@ -32715,8 +33651,8 @@ x_78 = l_Lean_Parser_PrattParsingTables_inhabited___closed__1; x_79 = lean_alloc_ctor(0, 1, 1); lean_ctor_set(x_79, 0, x_78); lean_ctor_set_uint8(x_79, sizeof(void*)*1, x_57); -x_80 = l___private_Init_Lean_Parser_Parser_19__addParserCategoryCore(x_76, x_56, x_79); -x_81 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory___spec__1(x_80, x_6); +x_80 = l___private_Init_Lean_Parser_Parser_17__addParserCategoryCore(x_76, x_56, x_79); +x_81 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory___spec__1(x_80, x_6); lean_dec(x_80); if (lean_obj_tag(x_81) == 0) { @@ -32947,7 +33883,7 @@ goto _start; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__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) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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_7; uint8_t x_8; @@ -32973,7 +33909,7 @@ 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_14 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__2(x_1, x_10, x_10, x_13, x_5, x_6); +x_14 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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) { @@ -33015,11 +33951,11 @@ return x_21; } } } -lean_object* l___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported(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_21__ParserExtension_mkInitial(x_3); +x_4 = l___private_Init_Lean_Parser_Parser_19__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; @@ -33029,7 +33965,7 @@ 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_27__ParserExtension_addImported___spec__3(x_1, x_2, x_2, x_7, x_5, x_6); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___spec__3(x_1, x_2, x_2, x_7, x_5, x_6); return x_8; } else @@ -33057,40 +33993,40 @@ return x_12; } } } -lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_27__ParserExtension_addImported___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__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_27__ParserExtension_addImported___spec__1(x_1, x_2); +x_3 = l_IO_ofExcept___at___private_Init_Lean_Parser_Parser_25__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_27__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) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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_27__ParserExtension_addImported___spec__2(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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_27__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) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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_27__ParserExtension_addImported___spec__3(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_25__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_27__ParserExtension_addImported___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Init_Lean_Parser_Parser_25__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_27__ParserExtension_addImported(x_1, x_2, x_3); +x_4 = l___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported(x_1, x_2, x_3); lean_dec(x_2); return x_4; } @@ -33904,7 +34840,7 @@ 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_21__ParserExtension_mkInitial), 1, 0); +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_19__ParserExtension_mkInitial), 1, 0); return x_1; } } @@ -33912,7 +34848,7 @@ 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_27__ParserExtension_addImported___boxed), 3, 0); +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_25__ParserExtension_addImported___boxed), 3, 0); return x_1; } } @@ -33920,7 +34856,7 @@ 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_26__ParserExtension_addEntry), 2, 0); +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_24__ParserExtension_addEntry), 2, 0); return x_1; } } @@ -34146,7 +35082,7 @@ x_4 = l_Lean_PersistentEnvExtension_getState___rarg(x_3, x_1); x_5 = lean_ctor_get(x_4, 2); lean_inc(x_5); lean_dec(x_4); -x_6 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_19__addParserCategoryCore___spec__1(x_5, x_2); +x_6 = l_PersistentHashMap_contains___at___private_Init_Lean_Parser_Parser_17__addParserCategoryCore___spec__1(x_5, x_2); return x_6; } } @@ -34182,7 +35118,7 @@ else { lean_object* x_9; lean_dec(x_1); -x_9 = l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg(x_2); +x_9 = l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg(x_2); return x_9; } } @@ -34236,6 +35172,57 @@ x_4 = lean_box(x_3); return x_4; } } +lean_object* l___private_Init_Lean_Parser_Parser_26__catNameToString(lean_object* x_1) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_3; +x_3 = lean_ctor_get(x_1, 1); +lean_inc(x_3); +lean_dec(x_1); +return x_3; +} +else +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = l_Lean_Name_toString___closed__1; +x_5 = l_Lean_Name_toStringWithSep___main(x_4, x_1); +return x_5; +} +} +else +{ +lean_object* x_6; lean_object* x_7; +x_6 = l_Lean_Name_toString___closed__1; +x_7 = l_Lean_Name_toStringWithSep___main(x_6, x_1); +return x_7; +} +} +} +lean_object* l_Lean_Parser_mkCategoryAntiquotParser(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = l_Lean_Parser_termParser___closed__2; +x_5 = lean_name_eq(x_1, x_4); +x_6 = l___private_Init_Lean_Parser_Parser_26__catNameToString(x_1); +x_7 = lean_box(0); +x_8 = l_Lean_Parser_mkAntiquot(x_6, x_7, x_5); +lean_dec(x_6); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_apply_2(x_9, x_2, x_3); +return x_10; +} +} lean_object* l_Lean_Parser_categoryParserFnImpl(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -34265,19 +35252,523 @@ return x_15; } else { -lean_object* x_16; lean_object* x_17; uint8_t x_18; uint8_t x_19; lean_object* x_20; -x_16 = lean_ctor_get(x_8, 0); -lean_inc(x_16); -lean_dec(x_8); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get_uint8(x_16, sizeof(void*)*1); -lean_dec(x_16); -x_19 = 1; -x_20 = l_Lean_Parser_prattParser(x_1, x_17, x_18, x_19, x_2, x_3); +uint8_t x_16; +x_16 = !lean_is_exclusive(x_8); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_24; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; +x_17 = lean_ctor_get(x_8, 0); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get_uint8(x_17, sizeof(void*)*1); +lean_dec(x_17); +x_54 = lean_ctor_get(x_3, 0); +lean_inc(x_54); +x_55 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_54); +lean_dec(x_54); +lean_inc(x_2); +x_56 = l_Lean_Parser_currLbp(x_55, x_2, x_3); +lean_dec(x_55); +x_57 = !lean_is_exclusive(x_56); +if (x_57 == 0) +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; +x_58 = lean_ctor_get(x_56, 0); +x_59 = lean_ctor_get(x_56, 1); +x_60 = lean_ctor_get(x_2, 1); +lean_inc(x_60); +x_61 = lean_nat_dec_lt(x_59, x_60); +lean_dec(x_60); +lean_dec(x_59); +if (x_61 == 0) +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +x_62 = lean_ctor_get(x_58, 2); +lean_inc(x_62); +x_63 = lean_ctor_get(x_62, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_58, 1); +lean_inc(x_64); +x_65 = lean_nat_dec_eq(x_63, x_64); +lean_dec(x_64); +lean_dec(x_63); +if (x_65 == 0) +{ +lean_object* x_66; +lean_dec(x_62); +lean_free_object(x_56); +lean_free_object(x_8); +lean_inc(x_2); +x_66 = l_Lean_Parser_peekTokenAux(x_2, x_58); +x_24 = x_66; +goto block_53; +} +else +{ +lean_object* x_67; +x_67 = lean_ctor_get(x_62, 2); +lean_inc(x_67); +lean_dec(x_62); +lean_ctor_set(x_8, 0, x_67); +lean_ctor_set(x_56, 1, x_8); +x_24 = x_56; +goto block_53; +} +} +else +{ +lean_object* x_68; lean_object* x_69; +lean_free_object(x_56); +lean_dec(x_18); +lean_free_object(x_8); +lean_dec(x_2); +lean_dec(x_1); +x_68 = l_Lean_Parser_prattParser___closed__1; +x_69 = l_Lean_Parser_ParserState_mkUnexpectedError(x_58, x_68); +return x_69; +} +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; +x_70 = lean_ctor_get(x_56, 0); +x_71 = lean_ctor_get(x_56, 1); +lean_inc(x_71); +lean_inc(x_70); +lean_dec(x_56); +x_72 = lean_ctor_get(x_2, 1); +lean_inc(x_72); +x_73 = lean_nat_dec_lt(x_71, x_72); +lean_dec(x_72); +lean_dec(x_71); +if (x_73 == 0) +{ +lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; +x_74 = lean_ctor_get(x_70, 2); +lean_inc(x_74); +x_75 = lean_ctor_get(x_74, 0); +lean_inc(x_75); +x_76 = lean_ctor_get(x_70, 1); +lean_inc(x_76); +x_77 = lean_nat_dec_eq(x_75, x_76); +lean_dec(x_76); +lean_dec(x_75); +if (x_77 == 0) +{ +lean_object* x_78; +lean_dec(x_74); +lean_free_object(x_8); +lean_inc(x_2); +x_78 = l_Lean_Parser_peekTokenAux(x_2, x_70); +x_24 = x_78; +goto block_53; +} +else +{ +lean_object* x_79; lean_object* x_80; +x_79 = lean_ctor_get(x_74, 2); +lean_inc(x_79); +lean_dec(x_74); +lean_ctor_set(x_8, 0, x_79); +x_80 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_80, 0, x_70); +lean_ctor_set(x_80, 1, x_8); +x_24 = x_80; +goto block_53; +} +} +else +{ +lean_object* x_81; lean_object* x_82; +lean_dec(x_18); +lean_free_object(x_8); +lean_dec(x_2); +lean_dec(x_1); +x_81 = l_Lean_Parser_prattParser___closed__1; +x_82 = l_Lean_Parser_ParserState_mkUnexpectedError(x_70, x_81); +return x_82; +} +} +block_23: +{ +lean_object* x_21; +x_21 = lean_ctor_get(x_20, 3); +lean_inc(x_21); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; +x_22 = l_Lean_Parser_trailingLoop___main(x_18, x_2, x_20); +return x_22; +} +else +{ +lean_dec(x_21); +lean_dec(x_18); +lean_dec(x_2); return x_20; } } +block_53: +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_24, 1); +lean_inc(x_25); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_24, 0); +lean_inc(x_26); +lean_dec(x_24); +lean_inc(x_2); +lean_inc(x_18); +x_27 = l_Lean_Parser_leadingParserAux(x_1, x_18, x_19, x_2, x_26); +x_20 = x_27; +goto block_23; +} +else +{ +lean_object* x_28; +x_28 = lean_ctor_get(x_25, 0); +lean_inc(x_28); +lean_dec(x_25); +if (lean_obj_tag(x_28) == 2) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_29 = lean_ctor_get(x_24, 0); +lean_inc(x_29); +lean_dec(x_24); +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_31 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_32 = lean_string_dec_eq(x_30, x_31); +lean_dec(x_30); +if (x_32 == 0) +{ +lean_object* x_33; +lean_inc(x_2); +lean_inc(x_18); +x_33 = l_Lean_Parser_leadingParserAux(x_1, x_18, x_19, x_2, x_29); +x_20 = x_33; +goto block_23; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t 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; +x_34 = lean_ctor_get(x_29, 0); +lean_inc(x_34); +x_35 = lean_array_get_size(x_34); +lean_dec(x_34); +x_36 = lean_ctor_get(x_29, 1); +lean_inc(x_36); +x_37 = l_Lean_Parser_termParser___closed__2; +x_38 = lean_name_eq(x_1, x_37); +lean_inc(x_1); +x_39 = l___private_Init_Lean_Parser_Parser_26__catNameToString(x_1); +x_40 = lean_box(0); +x_41 = l_Lean_Parser_mkAntiquot(x_39, x_40, x_38); +lean_dec(x_39); +x_42 = lean_ctor_get(x_41, 1); +lean_inc(x_42); +lean_dec(x_41); +lean_inc(x_2); +x_43 = lean_apply_2(x_42, x_2, x_29); +x_44 = lean_ctor_get(x_43, 3); +lean_inc(x_44); +if (lean_obj_tag(x_44) == 0) +{ +lean_dec(x_36); +lean_dec(x_35); +lean_dec(x_1); +x_20 = x_43; +goto block_23; +} +else +{ +lean_object* x_45; lean_object* x_46; uint8_t x_47; +x_45 = lean_ctor_get(x_44, 0); +lean_inc(x_45); +lean_dec(x_44); +x_46 = lean_ctor_get(x_43, 1); +lean_inc(x_46); +x_47 = lean_nat_dec_eq(x_46, x_36); +lean_dec(x_46); +if (x_47 == 0) +{ +lean_dec(x_45); +lean_dec(x_36); +lean_dec(x_35); +lean_dec(x_1); +x_20 = x_43; +goto block_23; +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_inc(x_36); +x_48 = l_Lean_Parser_ParserState_restore(x_43, x_35, x_36); +lean_dec(x_35); +lean_inc(x_2); +lean_inc(x_18); +x_49 = l_Lean_Parser_leadingParserAux(x_1, x_18, x_19, x_2, x_48); +x_50 = l_Lean_Parser_mergeOrElseErrors(x_49, x_45, x_36); +lean_dec(x_36); +x_20 = x_50; +goto block_23; +} +} +} +} +else +{ +lean_object* x_51; lean_object* x_52; +lean_dec(x_28); +x_51 = lean_ctor_get(x_24, 0); +lean_inc(x_51); +lean_dec(x_24); +lean_inc(x_2); +lean_inc(x_18); +x_52 = l_Lean_Parser_leadingParserAux(x_1, x_18, x_19, x_2, x_51); +x_20 = x_52; +goto block_23; +} +} +} +} +else +{ +lean_object* x_83; lean_object* x_84; uint8_t x_85; lean_object* x_86; lean_object* x_90; 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_object* x_126; uint8_t x_127; +x_83 = lean_ctor_get(x_8, 0); +lean_inc(x_83); +lean_dec(x_8); +x_84 = lean_ctor_get(x_83, 0); +lean_inc(x_84); +x_85 = lean_ctor_get_uint8(x_83, sizeof(void*)*1); +lean_dec(x_83); +x_120 = lean_ctor_get(x_3, 0); +lean_inc(x_120); +x_121 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_120); +lean_dec(x_120); +lean_inc(x_2); +x_122 = l_Lean_Parser_currLbp(x_121, x_2, x_3); +lean_dec(x_121); +x_123 = lean_ctor_get(x_122, 0); +lean_inc(x_123); +x_124 = lean_ctor_get(x_122, 1); +lean_inc(x_124); +if (lean_is_exclusive(x_122)) { + lean_ctor_release(x_122, 0); + lean_ctor_release(x_122, 1); + x_125 = x_122; +} else { + lean_dec_ref(x_122); + x_125 = lean_box(0); +} +x_126 = lean_ctor_get(x_2, 1); +lean_inc(x_126); +x_127 = lean_nat_dec_lt(x_124, x_126); +lean_dec(x_126); +lean_dec(x_124); +if (x_127 == 0) +{ +lean_object* x_128; lean_object* x_129; lean_object* x_130; uint8_t x_131; +x_128 = lean_ctor_get(x_123, 2); +lean_inc(x_128); +x_129 = lean_ctor_get(x_128, 0); +lean_inc(x_129); +x_130 = lean_ctor_get(x_123, 1); +lean_inc(x_130); +x_131 = lean_nat_dec_eq(x_129, x_130); +lean_dec(x_130); +lean_dec(x_129); +if (x_131 == 0) +{ +lean_object* x_132; +lean_dec(x_128); +lean_dec(x_125); +lean_inc(x_2); +x_132 = l_Lean_Parser_peekTokenAux(x_2, x_123); +x_90 = x_132; +goto block_119; +} +else +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; +x_133 = lean_ctor_get(x_128, 2); +lean_inc(x_133); +lean_dec(x_128); +x_134 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_134, 0, x_133); +if (lean_is_scalar(x_125)) { + x_135 = lean_alloc_ctor(0, 2, 0); +} else { + x_135 = x_125; +} +lean_ctor_set(x_135, 0, x_123); +lean_ctor_set(x_135, 1, x_134); +x_90 = x_135; +goto block_119; +} +} +else +{ +lean_object* x_136; lean_object* x_137; +lean_dec(x_125); +lean_dec(x_84); +lean_dec(x_2); +lean_dec(x_1); +x_136 = l_Lean_Parser_prattParser___closed__1; +x_137 = l_Lean_Parser_ParserState_mkUnexpectedError(x_123, x_136); +return x_137; +} +block_89: +{ +lean_object* x_87; +x_87 = lean_ctor_get(x_86, 3); +lean_inc(x_87); +if (lean_obj_tag(x_87) == 0) +{ +lean_object* x_88; +x_88 = l_Lean_Parser_trailingLoop___main(x_84, x_2, x_86); +return x_88; +} +else +{ +lean_dec(x_87); +lean_dec(x_84); +lean_dec(x_2); +return x_86; +} +} +block_119: +{ +lean_object* x_91; +x_91 = lean_ctor_get(x_90, 1); +lean_inc(x_91); +if (lean_obj_tag(x_91) == 0) +{ +lean_object* x_92; lean_object* x_93; +x_92 = lean_ctor_get(x_90, 0); +lean_inc(x_92); +lean_dec(x_90); +lean_inc(x_2); +lean_inc(x_84); +x_93 = l_Lean_Parser_leadingParserAux(x_1, x_84, x_85, x_2, x_92); +x_86 = x_93; +goto block_89; +} +else +{ +lean_object* x_94; +x_94 = lean_ctor_get(x_91, 0); +lean_inc(x_94); +lean_dec(x_91); +if (lean_obj_tag(x_94) == 2) +{ +lean_object* x_95; lean_object* x_96; lean_object* x_97; uint8_t x_98; +x_95 = lean_ctor_get(x_90, 0); +lean_inc(x_95); +lean_dec(x_90); +x_96 = lean_ctor_get(x_94, 1); +lean_inc(x_96); +lean_dec(x_94); +x_97 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_98 = lean_string_dec_eq(x_96, x_97); +lean_dec(x_96); +if (x_98 == 0) +{ +lean_object* x_99; +lean_inc(x_2); +lean_inc(x_84); +x_99 = l_Lean_Parser_leadingParserAux(x_1, x_84, x_85, x_2, x_95); +x_86 = x_99; +goto block_89; +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; uint8_t 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; +x_100 = lean_ctor_get(x_95, 0); +lean_inc(x_100); +x_101 = lean_array_get_size(x_100); +lean_dec(x_100); +x_102 = lean_ctor_get(x_95, 1); +lean_inc(x_102); +x_103 = l_Lean_Parser_termParser___closed__2; +x_104 = lean_name_eq(x_1, x_103); +lean_inc(x_1); +x_105 = l___private_Init_Lean_Parser_Parser_26__catNameToString(x_1); +x_106 = lean_box(0); +x_107 = l_Lean_Parser_mkAntiquot(x_105, x_106, x_104); +lean_dec(x_105); +x_108 = lean_ctor_get(x_107, 1); +lean_inc(x_108); +lean_dec(x_107); +lean_inc(x_2); +x_109 = lean_apply_2(x_108, x_2, x_95); +x_110 = lean_ctor_get(x_109, 3); +lean_inc(x_110); +if (lean_obj_tag(x_110) == 0) +{ +lean_dec(x_102); +lean_dec(x_101); +lean_dec(x_1); +x_86 = x_109; +goto block_89; +} +else +{ +lean_object* x_111; lean_object* x_112; uint8_t x_113; +x_111 = lean_ctor_get(x_110, 0); +lean_inc(x_111); +lean_dec(x_110); +x_112 = lean_ctor_get(x_109, 1); +lean_inc(x_112); +x_113 = lean_nat_dec_eq(x_112, x_102); +lean_dec(x_112); +if (x_113 == 0) +{ +lean_dec(x_111); +lean_dec(x_102); +lean_dec(x_101); +lean_dec(x_1); +x_86 = x_109; +goto block_89; +} +else +{ +lean_object* x_114; lean_object* x_115; lean_object* x_116; +lean_inc(x_102); +x_114 = l_Lean_Parser_ParserState_restore(x_109, x_101, x_102); +lean_dec(x_101); +lean_inc(x_2); +lean_inc(x_84); +x_115 = l_Lean_Parser_leadingParserAux(x_1, x_84, x_85, x_2, x_114); +x_116 = l_Lean_Parser_mergeOrElseErrors(x_115, x_111, x_102); +lean_dec(x_102); +x_86 = x_116; +goto block_89; +} +} +} +} +else +{ +lean_object* x_117; lean_object* x_118; +lean_dec(x_94); +x_117 = lean_ctor_get(x_90, 0); +lean_inc(x_117); +lean_dec(x_90); +lean_inc(x_2); +lean_inc(x_84); +x_118 = l_Lean_Parser_leadingParserAux(x_1, x_84, x_85, x_2, x_117); +x_86 = x_118; +goto block_89; +} +} +} +} +} +} } lean_object* _init_l_Lean_Parser_setCategoryParserFnRef___closed__1() { _start: @@ -34307,7 +35798,7 @@ 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_23__addTokenConfig(x_5, x_2); +x_6 = l___private_Init_Lean_Parser_Parser_21__addTokenConfig(x_5, x_2); if (lean_obj_tag(x_6) == 0) { uint8_t x_7; @@ -35106,7 +36597,7 @@ 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_28__BuiltinParserAttribute_add___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__1() { _start: { lean_object* x_1; @@ -35114,7 +36605,7 @@ x_1 = lean_mk_string("' (`Parser` or `TrailingParser` expected"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2() { _start: { lean_object* x_1; lean_object* x_2; @@ -35124,7 +36615,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Init_Lean_Parser_Parser_28__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) { +lean_object* l___private_Init_Lean_Parser_Parser_27__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; @@ -35164,7 +36655,7 @@ lean_object* x_28; lean_object* x_29; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_28 = l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2; +x_28 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2; x_29 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_29, 0, x_28); lean_ctor_set(x_29, 1, x_7); @@ -35347,7 +36838,7 @@ x_19 = l_Lean_Name_toStringWithSep___main(x_18, x_4); x_20 = l_Lean_Parser_mkParserOfConstantUnsafe___closed__1; x_21 = lean_string_append(x_20, x_19); lean_dec(x_19); -x_22 = l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__1; +x_22 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_24, 0, x_23); @@ -35380,13 +36871,13 @@ return x_63; } } } -lean_object* l___private_Init_Lean_Parser_Parser_28__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) { +lean_object* l___private_Init_Lean_Parser_Parser_27__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_28__BuiltinParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_8, x_7); +x_9 = l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_8, x_7); lean_dec(x_5); return x_9; } @@ -35404,7 +36895,7 @@ _start: { lean_object* x_5; lean_inc(x_2); -x_5 = l___private_Init_Lean_Parser_Parser_20__addBuiltinParserCategory(x_2, x_3, x_4); +x_5 = l___private_Init_Lean_Parser_Parser_18__addBuiltinParserCategory(x_2, x_3, x_4); if (lean_obj_tag(x_5) == 0) { lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; lean_object* x_10; lean_object* x_11; @@ -35412,7 +36903,7 @@ x_6 = lean_ctor_get(x_5, 1); lean_inc(x_6); lean_dec(x_5); lean_inc(x_1); -x_7 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___boxed), 7, 2); +x_7 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___boxed), 7, 2); lean_closure_set(x_7, 0, x_1); lean_closure_set(x_7, 1, x_2); x_8 = l_Lean_Parser_registerBuiltinParserAttribute___closed__1; @@ -35461,7 +36952,7 @@ x_6 = l_Lean_Parser_registerBuiltinParserAttribute(x_1, x_2, x_5, x_4); return x_6; } } -lean_object* _init_l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1___closed__1() { +lean_object* _init_l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1___closed__1() { _start: { lean_object* x_1; @@ -35469,7 +36960,7 @@ x_1 = lean_mk_string("invalid parser '"); return x_1; } } -lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__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) @@ -35499,7 +36990,7 @@ 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_29__ParserAttribute_add___spec__1___closed__1; +x_12 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___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; @@ -35526,7 +37017,7 @@ goto _start; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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; @@ -35563,7 +37054,7 @@ 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_29__ParserAttribute_add___spec__3(x_13, x_4); +x_14 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__3(x_13, x_4); lean_dec(x_13); x_3 = x_9; x_4 = x_14; @@ -35578,7 +37069,7 @@ goto _start; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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; @@ -35604,7 +37095,7 @@ goto _start; } } } -lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__3(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -35612,7 +37103,7 @@ 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_29__ParserAttribute_add___spec__4(x_3, x_3, x_4, x_2); +x_5 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__4(x_3, x_3, x_4, x_2); return x_5; } else @@ -35620,21 +37111,21 @@ 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_29__ParserAttribute_add___spec__5(x_6, x_6, x_7, x_2); +x_8 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__3(x_3, x_2); +x_4 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__3(x_3, x_2); return x_4; } } -lean_object* l___private_Init_Lean_Parser_Parser_29__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) { +lean_object* l___private_Init_Lean_Parser_Parser_28__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; @@ -35687,7 +37178,7 @@ lean_inc(x_20); x_21 = lean_box(0); x_22 = lean_apply_1(x_20, x_21); lean_inc(x_4); -x_23 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1(x_4, x_3, x_22, x_7); +x_23 = l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1(x_4, x_3, x_22, x_7); if (lean_obj_tag(x_23) == 0) { uint8_t x_24; @@ -35701,7 +37192,7 @@ lean_inc(x_26); lean_dec(x_19); x_27 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; x_28 = lean_apply_1(x_26, x_27); -x_29 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__2(x_28, x_25); +x_29 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__2(x_28, x_25); lean_dec(x_28); x_30 = lean_unbox(x_17); lean_inc(x_18); @@ -35753,7 +37244,7 @@ lean_inc(x_39); lean_dec(x_19); x_40 = l_PersistentHashMap_empty___at_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef___spec__1; x_41 = lean_apply_1(x_39, x_40); -x_42 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__2(x_41, x_37); +x_42 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__2(x_41, x_37); lean_dec(x_41); x_43 = lean_unbox(x_17); lean_inc(x_18); @@ -35848,51 +37339,51 @@ return x_63; } } } -lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__4(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__5(x_1, x_2, x_3, x_4); +x_5 = l_Array_iterateMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__3(x_1, x_2); +x_3 = l_PersistentHashMap_foldlMAux___main___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add___spec__2(x_1, x_2); +x_3 = l_PersistentHashMap_foldlM___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__2(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l___private_Init_Lean_Parser_Parser_29__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) { +lean_object* l___private_Init_Lean_Parser_Parser_28__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_29__ParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_8, x_7); +x_9 = l___private_Init_Lean_Parser_Parser_28__ParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_8, x_7); lean_dec(x_5); return x_9; } @@ -35901,7 +37392,7 @@ lean_object* l_Lean_Parser_mkParserAttributeImpl___elambda__1(lean_object* x_1, _start: { lean_object* x_8; -x_8 = l___private_Init_Lean_Parser_Parser_29__ParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l___private_Init_Lean_Parser_Parser_28__ParserAttribute_add(x_1, x_2, x_3, x_4, x_5, x_6, x_7); return x_8; } } @@ -35951,7 +37442,7 @@ x_5 = l_Lean_registerBuiltinAttribute(x_4, x_3); return x_5; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__1() { _start: { lean_object* x_1; @@ -35959,23 +37450,23 @@ x_1 = lean_mk_string("invalid parser attribute implementation builder arguments" return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__1; +x_1 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__1; 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_30__registerParserAttributeImplBuilder___lambda__1(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) { lean_object* x_2; -x_2 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2; +x_2 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2; return x_2; } else @@ -35993,7 +37484,7 @@ if (lean_obj_tag(x_4) == 0) { lean_object* x_5; lean_dec(x_3); -x_5 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2; +x_5 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2; return x_5; } else @@ -36027,7 +37518,7 @@ lean_object* x_12; lean_dec(x_7); lean_dec(x_6); lean_dec(x_3); -x_12 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2; +x_12 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2; return x_12; } } @@ -36037,7 +37528,7 @@ lean_object* x_13; lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_13 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2; +x_13 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2; return x_13; } } @@ -36047,13 +37538,13 @@ else lean_object* x_14; lean_dec(x_3); lean_dec(x_1); -x_14 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2; +x_14 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2; return x_14; } } } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__1() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__1() { _start: { lean_object* x_1; @@ -36061,30 +37552,30 @@ x_1 = lean_mk_string("parserAttr"); return x_1; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2() { _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_30__registerParserAttributeImplBuilder___closed__1; +x_2 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__3() { +lean_object* _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__3() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1), 1, 0); return x_1; } } -lean_object* l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder(lean_object* x_1) { +lean_object* l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_2 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2; -x_3 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__3; +x_2 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2; +x_3 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__3; x_4 = l_Lean_registerAttributeImplBuilder(x_2, x_3, x_1); return x_4; } @@ -36116,7 +37607,7 @@ lean_ctor_set(x_13, 1, x_12); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_10); lean_ctor_set(x_14, 1, x_13); -x_15 = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2; +x_15 = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2; x_16 = l_Lean_registerAttributeOfBuilder(x_8, x_15, x_14, x_9); return x_16; } @@ -36328,7 +37819,7 @@ x_1 = l_Lean_Parser_fieldIdx___closed__2; x_2 = lean_ctor_get(x_1, 1); lean_inc(x_2); x_3 = l_Lean_Parser_fieldIdx___closed__5; -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_orelseFn), 4, 2); +x_4 = lean_alloc_closure((void*)(l_Lean_Parser_withAntiquotFn), 4, 2); lean_closure_set(x_4, 0, x_2); lean_closure_set(x_4, 1, x_3); return x_4; @@ -37712,30 +39203,30 @@ if (lean_io_result_is_error(res)) return res; 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_18__throwParserCategoryAlreadyDefined___rarg___closed__1 = _init_l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__1); -l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2 = _init_l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_18__throwParserCategoryAlreadyDefined___rarg___closed__2); +l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__1 = _init_l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__1); +l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2 = _init_l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_16__throwParserCategoryAlreadyDefined___rarg___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_22__mergePrecendences___closed__1 = _init_l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__1); -l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__2 = _init_l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__2); -l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__3 = _init_l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__3(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_22__mergePrecendences___closed__3); -l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__1 = _init_l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__1); -l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__2 = _init_l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__2); -l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__3 = _init_l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__3(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_23__addTokenConfig___closed__3); +l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__1 = _init_l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__1); +l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__2 = _init_l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__2); +l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__3 = _init_l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_20__mergePrecendences___closed__3); +l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1 = _init_l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__1); +l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__2 = _init_l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__2); +l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__3 = _init_l___private_Init_Lean_Parser_Parser_21__addTokenConfig___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_21__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___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens___closed__1 = _init_l___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_25__updateBuiltinTokens___closed__1); +l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens___closed__1 = _init_l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_23__updateBuiltinTokens___closed__1); 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(); @@ -37822,27 +39313,27 @@ 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___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__1 = _init_l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__1); -l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2 = _init_l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_28__BuiltinParserAttribute_add___closed__2); +l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__1 = _init_l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__1); +l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2 = _init_l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_27__BuiltinParserAttribute_add___closed__2); l_Lean_Parser_registerBuiltinParserAttribute___closed__1 = _init_l_Lean_Parser_registerBuiltinParserAttribute___closed__1(); lean_mark_persistent(l_Lean_Parser_registerBuiltinParserAttribute___closed__1); -l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1___closed__1 = _init_l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1___closed__1(); -lean_mark_persistent(l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_29__ParserAttribute_add___spec__1___closed__1); +l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1___closed__1 = _init_l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1___closed__1(); +lean_mark_persistent(l_List_foldlM___main___at___private_Init_Lean_Parser_Parser_28__ParserAttribute_add___spec__1___closed__1); l_Lean_Parser_mkParserAttributeImpl___closed__1 = _init_l_Lean_Parser_mkParserAttributeImpl___closed__1(); lean_mark_persistent(l_Lean_Parser_mkParserAttributeImpl___closed__1); -l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__1 = _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__1); -l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2 = _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___lambda__1___closed__2); -l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__1 = _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__1(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__1); -l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2 = _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__2); -l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__3 = _init_l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__3(); -lean_mark_persistent(l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder___closed__3); -res = l___private_Init_Lean_Parser_Parser_30__registerParserAttributeImplBuilder(lean_io_mk_world()); +l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__1 = _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__1); +l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2 = _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___lambda__1___closed__2); +l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__1 = _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__1(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__1); +l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2 = _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__2); +l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__3 = _init_l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__3(); +lean_mark_persistent(l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder___closed__3); +res = l___private_Init_Lean_Parser_Parser_29__registerParserAttributeImplBuilder(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_regBuiltinTermParserAttr___closed__1 = _init_l_Lean_Parser_regBuiltinTermParserAttr___closed__1(); diff --git a/stage0/stdlib/Init/Lean/Parser/Term.c b/stage0/stdlib/Init/Lean/Parser/Term.c index 9261c8fc04..deaebd2e6a 100644 --- a/stage0/stdlib/Init/Lean/Parser/Term.c +++ b/stage0/stdlib/Init/Lean/Parser/Term.c @@ -243,6 +243,7 @@ lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_show___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_cdot___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_andM___closed__2; +lean_object* l_Lean_Parser_Term_structInstLVal___closed__10; lean_object* l_Lean_Parser_Term_doId___closed__5; lean_object* l_Lean_Parser_Term_doPat___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_instBinder___elambda__1(lean_object*, lean_object*); @@ -374,6 +375,7 @@ lean_object* l_Lean_Parser_Term_explicit___elambda__1(lean_object*, lean_object* lean_object* l_Lean_Parser_Term_sorry___closed__2; lean_object* l_Lean_Parser_Term_if___closed__11; lean_object* l_Lean_Parser_Term_num___elambda__1___closed__1; +extern lean_object* l_Lean_Syntax_termIdToAntiquot___closed__3; lean_object* l_Lean_Parser_Term_checkIsSort___closed__1; lean_object* l___regBuiltinParser_Lean_Parser_Term_map(lean_object*); lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*); @@ -815,6 +817,7 @@ lean_object* l_Lean_Parser_Term_bnot___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_explicitUniv___closed__3; lean_object* l___regBuiltinParser_Lean_Parser_Term_bne(lean_object*); lean_object* l___regBuiltinParser_Lean_Parser_Term_inaccessible(lean_object*); +lean_object* l_Lean_Parser_peekTokenAux(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_depArrow___closed__2; lean_object* l_Lean_Parser_Term_structInst___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__13; @@ -1514,6 +1517,7 @@ lean_object* l_Lean_Parser_Term_where___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_subtype___closed__10; lean_object* l_Lean_Parser_Term_append___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_tupleTail___closed__2; +lean_object* l_Lean_Parser_Term_structInstLVal___closed__11; lean_object* l_Lean_Parser_Term_have___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_dollar___closed__4; extern lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__3; @@ -12314,7 +12318,7 @@ return x_3; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1(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_17; lean_object* x_26; lean_object* x_40; lean_object* x_41; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_17; lean_object* x_28; lean_object* x_42; lean_object* x_43; x_3 = lean_ctor_get(x_2, 0); lean_inc(x_3); x_4 = lean_array_get_size(x_3); @@ -12322,60 +12326,60 @@ lean_dec(x_3); x_5 = lean_ctor_get(x_2, 1); lean_inc(x_5); lean_inc(x_1); -x_40 = l_Lean_Parser_tokenFn(x_1, x_2); -x_41 = lean_ctor_get(x_40, 3); -lean_inc(x_41); -if (lean_obj_tag(x_41) == 0) +x_42 = l_Lean_Parser_tokenFn(x_1, x_2); +x_43 = lean_ctor_get(x_42, 3); +lean_inc(x_43); +if (lean_obj_tag(x_43) == 0) { -lean_object* x_42; lean_object* x_43; -x_42 = lean_ctor_get(x_40, 0); -lean_inc(x_42); -x_43 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_42); -lean_dec(x_42); -if (lean_obj_tag(x_43) == 2) -{ -lean_object* x_44; lean_object* x_45; uint8_t x_46; -x_44 = lean_ctor_get(x_43, 1); +lean_object* x_44; lean_object* x_45; +x_44 = lean_ctor_get(x_42, 0); lean_inc(x_44); -lean_dec(x_43); -x_45 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__1; -x_46 = lean_string_dec_eq(x_44, x_45); +x_45 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_44); lean_dec(x_44); -if (x_46 == 0) +if (lean_obj_tag(x_45) == 2) { -lean_object* x_47; lean_object* x_48; -x_47 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__4; -lean_inc(x_5); -x_48 = l_Lean_Parser_ParserState_mkErrorsAt(x_40, x_47, x_5); -x_26 = x_48; -goto block_39; -} -else -{ -x_26 = x_40; -goto block_39; -} -} -else +lean_object* x_46; lean_object* x_47; uint8_t x_48; +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +lean_dec(x_45); +x_47 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__1; +x_48 = lean_string_dec_eq(x_46, x_47); +lean_dec(x_46); +if (x_48 == 0) { lean_object* x_49; lean_object* x_50; -lean_dec(x_43); x_49 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__4; lean_inc(x_5); -x_50 = l_Lean_Parser_ParserState_mkErrorsAt(x_40, x_49, x_5); -x_26 = x_50; -goto block_39; +x_50 = l_Lean_Parser_ParserState_mkErrorsAt(x_42, x_49, x_5); +x_28 = x_50; +goto block_41; +} +else +{ +x_28 = x_42; +goto block_41; } } else { lean_object* x_51; lean_object* x_52; -lean_dec(x_41); +lean_dec(x_45); x_51 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__4; lean_inc(x_5); -x_52 = l_Lean_Parser_ParserState_mkErrorsAt(x_40, x_51, x_5); -x_26 = x_52; -goto block_39; +x_52 = l_Lean_Parser_ParserState_mkErrorsAt(x_42, x_51, x_5); +x_28 = x_52; +goto block_41; +} +} +else +{ +lean_object* x_53; lean_object* x_54; +lean_dec(x_43); +x_53 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__4; +lean_inc(x_5); +x_54 = l_Lean_Parser_ParserState_mkErrorsAt(x_42, x_53, x_5); +x_28 = x_54; +goto block_41; } block_16: { @@ -12429,108 +12433,111 @@ return x_15; } } } -block_25: +block_27: { -lean_object* x_18; -x_18 = lean_ctor_get(x_17, 3); -lean_inc(x_18); -if (lean_obj_tag(x_18) == 0) -{ -x_6 = x_17; -goto block_16; -} -else -{ -lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -lean_dec(x_18); -x_20 = lean_ctor_get(x_17, 1); +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = l_Lean_nullKind; +lean_inc(x_4); +x_19 = l_Lean_Parser_ParserState_mkNode(x_17, x_18, x_4); +x_20 = lean_ctor_get(x_19, 3); lean_inc(x_20); -x_21 = lean_nat_dec_eq(x_20, x_5); +if (lean_obj_tag(x_20) == 0) +{ +x_6 = x_19; +goto block_16; +} +else +{ +lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); lean_dec(x_20); -if (x_21 == 0) +x_22 = lean_ctor_get(x_19, 1); +lean_inc(x_22); +x_23 = lean_nat_dec_eq(x_22, x_5); +lean_dec(x_22); +if (x_23 == 0) { -lean_dec(x_19); -x_6 = x_17; +lean_dec(x_21); +x_6 = x_19; goto block_16; } else { -lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_inc(x_5); -x_22 = l_Lean_Parser_ParserState_restore(x_17, x_4, x_5); +x_24 = l_Lean_Parser_ParserState_restore(x_19, x_4, x_5); lean_inc(x_1); -x_23 = l_Lean_Parser_Term_structInstArrayRef___elambda__1(x_1, x_22); -x_24 = l_Lean_Parser_mergeOrElseErrors(x_23, x_19, x_5); -x_6 = x_24; +x_25 = l_Lean_Parser_Term_structInstArrayRef___elambda__1(x_1, x_24); +x_26 = l_Lean_Parser_mergeOrElseErrors(x_25, x_21, x_5); +x_6 = x_26; goto block_16; } } } -block_39: +block_41: { -lean_object* x_27; -x_27 = lean_ctor_get(x_26, 3); -lean_inc(x_27); -if (lean_obj_tag(x_27) == 0) +lean_object* x_29; +x_29 = lean_ctor_get(x_28, 3); +lean_inc(x_29); +if (lean_obj_tag(x_29) == 0) { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = lean_ctor_get(x_26, 0); -lean_inc(x_28); -x_29 = lean_array_get_size(x_28); -lean_dec(x_28); -x_30 = lean_ctor_get(x_26, 1); +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_30 = lean_ctor_get(x_28, 0); lean_inc(x_30); -lean_inc(x_1); -x_31 = l_Lean_Parser_ident___elambda__1(x_1, x_26); -x_32 = lean_ctor_get(x_31, 3); +x_31 = lean_array_get_size(x_30); +lean_dec(x_30); +x_32 = lean_ctor_get(x_28, 1); lean_inc(x_32); -if (lean_obj_tag(x_32) == 0) -{ -lean_dec(x_30); -lean_dec(x_29); -x_17 = x_31; -goto block_25; -} -else -{ -lean_object* x_33; lean_object* x_34; uint8_t x_35; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -lean_dec(x_32); -x_34 = lean_ctor_get(x_31, 1); -lean_inc(x_34); -x_35 = lean_nat_dec_eq(x_34, x_30); -lean_dec(x_34); -if (x_35 == 0) -{ -lean_dec(x_33); -lean_dec(x_30); -lean_dec(x_29); -x_17 = x_31; -goto block_25; -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; -lean_inc(x_30); -x_36 = l_Lean_Parser_ParserState_restore(x_31, x_29, x_30); -lean_dec(x_29); lean_inc(x_1); -x_37 = l_Lean_Parser_numLit___elambda__1(x_1, x_36); -x_38 = l_Lean_Parser_mergeOrElseErrors(x_37, x_33, x_30); -lean_dec(x_30); -x_17 = x_38; -goto block_25; +x_33 = l_Lean_Parser_ident___elambda__1(x_1, x_28); +x_34 = lean_ctor_get(x_33, 3); +lean_inc(x_34); +if (lean_obj_tag(x_34) == 0) +{ +lean_dec(x_32); +lean_dec(x_31); +x_17 = x_33; +goto block_27; +} +else +{ +lean_object* x_35; lean_object* x_36; uint8_t x_37; +x_35 = lean_ctor_get(x_34, 0); +lean_inc(x_35); +lean_dec(x_34); +x_36 = lean_ctor_get(x_33, 1); +lean_inc(x_36); +x_37 = lean_nat_dec_eq(x_36, x_32); +lean_dec(x_36); +if (x_37 == 0) +{ +lean_dec(x_35); +lean_dec(x_32); +lean_dec(x_31); +x_17 = x_33; +goto block_27; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_inc(x_32); +x_38 = l_Lean_Parser_ParserState_restore(x_33, x_31, x_32); +lean_dec(x_31); +lean_inc(x_1); +x_39 = l_Lean_Parser_numLit___elambda__1(x_1, x_38); +x_40 = l_Lean_Parser_mergeOrElseErrors(x_39, x_35, x_32); +lean_dec(x_32); +x_17 = x_40; +goto block_27; } } } else { -lean_dec(x_27); -x_17 = x_26; -goto block_25; +lean_dec(x_29); +x_17 = x_28; +goto block_27; } } } @@ -12538,79 +12545,124 @@ goto block_25; lean_object* l_Lean_Parser_Term_structInstLVal___elambda__1(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; -x_3 = lean_ctor_get(x_2, 0); -lean_inc(x_3); -x_4 = lean_array_get_size(x_3); -lean_dec(x_3); -x_5 = lean_ctor_get(x_2, 1); -lean_inc(x_5); -lean_inc(x_1); -x_6 = l_Lean_Parser_ident___elambda__1(x_1, x_2); -x_7 = lean_ctor_get(x_6, 3); -lean_inc(x_7); -if (lean_obj_tag(x_7) == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -lean_dec(x_5); -lean_dec(x_4); -x_8 = lean_ctor_get(x_6, 0); -lean_inc(x_8); -x_9 = lean_array_get_size(x_8); -lean_dec(x_8); -x_10 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1(x_1, x_6); -x_11 = l_Lean_nullKind; -x_12 = l_Lean_Parser_ParserState_mkNode(x_10, x_11, x_9); -return x_12; -} -else -{ -lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_13 = lean_ctor_get(x_7, 0); +lean_object* x_3; 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_2, 0); +lean_inc(x_11); +x_12 = lean_array_get_size(x_11); +lean_dec(x_11); +x_13 = lean_ctor_get(x_2, 1); lean_inc(x_13); -lean_dec(x_7); -x_14 = lean_ctor_get(x_6, 1); -lean_inc(x_14); -x_15 = lean_nat_dec_eq(x_14, x_5); -lean_dec(x_14); -if (x_15 == 0) +lean_inc(x_1); +x_14 = l_Lean_Parser_ident___elambda__1(x_1, x_2); +x_15 = lean_ctor_get(x_14, 3); +lean_inc(x_15); +if (lean_obj_tag(x_15) == 0) { lean_dec(x_13); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -return x_6; +lean_dec(x_12); +x_3 = x_14; +goto block_10; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -lean_inc(x_5); -x_16 = l_Lean_Parser_ParserState_restore(x_6, x_4, x_5); -lean_dec(x_4); -lean_inc(x_1); -x_17 = l_Lean_Parser_Term_structInstArrayRef___elambda__1(x_1, x_16); -x_18 = l_Lean_Parser_mergeOrElseErrors(x_17, x_13, x_5); -lean_dec(x_5); -x_19 = lean_ctor_get(x_18, 3); -lean_inc(x_19); -if (lean_obj_tag(x_19) == 0) +lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_ctor_get(x_14, 1); +lean_inc(x_17); +x_18 = lean_nat_dec_eq(x_17, x_13); +lean_dec(x_17); +if (x_18 == 0) { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_16); +lean_dec(x_13); +lean_dec(x_12); +x_3 = x_14; +goto block_10; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +lean_inc(x_13); +x_19 = l_Lean_Parser_ParserState_restore(x_14, x_12, x_13); +lean_dec(x_12); +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); x_21 = lean_array_get_size(x_20); lean_dec(x_20); -x_22 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1(x_1, x_18); -x_23 = l_Lean_nullKind; -x_24 = l_Lean_Parser_ParserState_mkNode(x_22, x_23, x_21); -return x_24; +lean_inc(x_1); +x_22 = l_Lean_Parser_numLit___elambda__1(x_1, x_19); +x_23 = lean_ctor_get(x_22, 3); +lean_inc(x_23); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; +lean_dec(x_21); +x_24 = l_Lean_Parser_mergeOrElseErrors(x_22, x_16, x_13); +lean_dec(x_13); +x_3 = x_24; +goto block_10; } else { -lean_dec(x_19); -lean_dec(x_1); -return x_18; +lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +lean_dec(x_23); +x_26 = lean_ctor_get(x_22, 1); +lean_inc(x_26); +x_27 = lean_nat_dec_eq(x_26, x_13); +lean_dec(x_26); +if (x_27 == 0) +{ +lean_object* x_28; +lean_dec(x_25); +lean_dec(x_21); +x_28 = l_Lean_Parser_mergeOrElseErrors(x_22, x_16, x_13); +lean_dec(x_13); +x_3 = x_28; +goto block_10; } +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +lean_inc(x_13); +x_29 = l_Lean_Parser_ParserState_restore(x_22, x_21, x_13); +lean_dec(x_21); +lean_inc(x_1); +x_30 = l_Lean_Parser_Term_structInstArrayRef___elambda__1(x_1, x_29); +x_31 = l_Lean_Parser_mergeOrElseErrors(x_30, x_25, x_13); +x_32 = l_Lean_Parser_mergeOrElseErrors(x_31, x_16, x_13); +lean_dec(x_13); +x_3 = x_32; +goto block_10; +} +} +} +} +block_10: +{ +lean_object* x_4; +x_4 = lean_ctor_get(x_3, 3); +lean_inc(x_4); +if (lean_obj_tag(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_3, 0); +lean_inc(x_5); +x_6 = lean_array_get_size(x_5); +lean_dec(x_5); +x_7 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1(x_1, x_3); +x_8 = l_Lean_nullKind; +x_9 = l_Lean_Parser_ParserState_mkNode(x_7, x_8, x_6); +return x_9; +} +else +{ +lean_dec(x_4); +lean_dec(x_1); +return x_3; } } } @@ -12619,7 +12671,7 @@ lean_object* _init_l_Lean_Parser_Term_structInstLVal___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 = l_Lean_Parser_ident; +x_1 = l_Lean_Parser_numLit; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); x_3 = l_Lean_Parser_Term_structInstArrayRef; @@ -12632,6 +12684,18 @@ return x_5; lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__2() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_ident; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_Term_structInstLVal___closed__1; +x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); +return x_4; +} +} +lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__3() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); x_2 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__1; @@ -12639,62 +12703,72 @@ x_3 = l_Lean_Parser_symbolInfo(x_2, x_1); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__3() { -_start: -{ -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_ident; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -x_3 = l_Lean_Parser_numLit; -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_structInstLVal___closed__4() { _start: { +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_numLit; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_ident; +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_structInstLVal___closed__5() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_structInstLVal___closed__2; -x_2 = l_Lean_Parser_Term_structInstLVal___closed__3; +x_1 = l_Lean_Parser_Term_structInstLVal___closed__3; +x_2 = l_Lean_Parser_Term_structInstLVal___closed__4; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__5() { +lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_nullKind; +x_2 = l_Lean_Parser_Term_structInstLVal___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Term_structInstLVal___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_structInstArrayRef; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_structInstLVal___closed__4; +x_3 = l_Lean_Parser_Term_structInstLVal___closed__6; x_4 = l_Lean_Parser_orelseInfo(x_3, x_2); return x_4; } } -lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__6() { +lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__8() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_structInstLVal___closed__5; +x_1 = l_Lean_Parser_Term_structInstLVal___closed__7; x_2 = l_Lean_Parser_noFirstTokenInfo(x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__7() { +lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__9() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_structInstLVal___closed__1; -x_2 = l_Lean_Parser_Term_structInstLVal___closed__6; +x_1 = l_Lean_Parser_Term_structInstLVal___closed__2; +x_2 = l_Lean_Parser_Term_structInstLVal___closed__8; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } -lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__8() { +lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__10() { _start: { lean_object* x_1; @@ -12702,12 +12776,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_structInstLVal___elambda__1) return x_1; } } -lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__9() { +lean_object* _init_l_Lean_Parser_Term_structInstLVal___closed__11() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_structInstLVal___closed__7; -x_2 = l_Lean_Parser_Term_structInstLVal___closed__8; +x_1 = l_Lean_Parser_Term_structInstLVal___closed__9; +x_2 = l_Lean_Parser_Term_structInstLVal___closed__10; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -12718,7 +12792,7 @@ lean_object* _init_l_Lean_Parser_Term_structInstLVal() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_structInstLVal___closed__9; +x_1 = l_Lean_Parser_Term_structInstLVal___closed__11; return x_1; } } @@ -31654,7 +31728,7 @@ return x_2; lean_object* l_Lean_Parser_Term_proj___elambda__1(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_39; uint8_t x_40; +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_62; uint8_t x_63; x_3 = l_Lean_Parser_fieldIdx___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); @@ -31663,120 +31737,113 @@ lean_inc(x_5); x_6 = lean_ctor_get(x_2, 1); lean_inc(x_6); x_7 = lean_array_get_size(x_5); -x_39 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_5); +x_62 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_5); lean_dec(x_5); -x_40 = l_Lean_Parser_checkTailNoWs(x_39); -lean_dec(x_39); -if (x_40 == 0) +x_63 = l_Lean_Parser_checkTailNoWs(x_62); +lean_dec(x_62); +if (x_63 == 0) { -lean_object* x_41; lean_object* x_42; +lean_object* x_64; lean_object* x_65; lean_dec(x_6); -x_41 = l_Lean_Parser_Term_proj___elambda__1___closed__3; -x_42 = l_Lean_Parser_ParserState_mkError(x_2, x_41); -x_8 = x_42; -goto block_38; +x_64 = l_Lean_Parser_Term_proj___elambda__1___closed__3; +x_65 = l_Lean_Parser_ParserState_mkError(x_2, x_64); +x_8 = x_65; +goto block_61; } 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; -x_43 = lean_ctor_get(x_1, 0); -lean_inc(x_43); -x_44 = lean_ctor_get(x_43, 0); -lean_inc(x_44); -lean_dec(x_43); -x_45 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__1; -x_46 = l_Lean_Parser_Term_proj___elambda__1___closed__3; -x_47 = lean_unsigned_to_nat(0u); -x_48 = l_Lean_Parser_strAux___main(x_45, x_46, x_47, x_1, x_2); -x_49 = lean_ctor_get(x_48, 3); -lean_inc(x_49); -if (lean_obj_tag(x_49) == 0) +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_66 = lean_ctor_get(x_1, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_66, 0); +lean_inc(x_67); +lean_dec(x_66); +x_68 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__1; +x_69 = l_Lean_Parser_Term_proj___elambda__1___closed__3; +x_70 = lean_unsigned_to_nat(0u); +x_71 = l_Lean_Parser_strAux___main(x_68, x_69, x_70, x_1, x_2); +x_72 = lean_ctor_get(x_71, 3); +lean_inc(x_72); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_inc_n(x_6, 2); -lean_inc(x_44); -x_50 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_50, 0, x_44); -lean_ctor_set(x_50, 1, x_6); -lean_ctor_set(x_50, 2, x_6); -x_51 = l_Lean_Parser_Term_proj___elambda__1___closed__4; -x_52 = lean_nat_add(x_6, x_51); -lean_inc(x_52); -x_53 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_53, 0, x_44); -lean_ctor_set(x_53, 1, x_52); -lean_ctor_set(x_53, 2, x_52); -x_54 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_54, 0, x_50); -lean_ctor_set(x_54, 1, x_6); -lean_ctor_set(x_54, 2, x_53); -x_55 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_55, 0, x_54); -x_56 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_56, 0, x_55); -lean_ctor_set(x_56, 1, x_45); -x_57 = l_Lean_Parser_ParserState_pushSyntax(x_48, x_56); -x_8 = x_57; -goto block_38; +lean_inc(x_67); +x_73 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_73, 0, x_67); +lean_ctor_set(x_73, 1, x_6); +lean_ctor_set(x_73, 2, x_6); +x_74 = l_Lean_Parser_Term_proj___elambda__1___closed__4; +x_75 = lean_nat_add(x_6, x_74); +lean_inc(x_75); +x_76 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_76, 0, x_67); +lean_ctor_set(x_76, 1, x_75); +lean_ctor_set(x_76, 2, x_75); +x_77 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_77, 0, x_73); +lean_ctor_set(x_77, 1, x_6); +lean_ctor_set(x_77, 2, x_76); +x_78 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_78, 0, x_77); +x_79 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set(x_79, 1, x_68); +x_80 = l_Lean_Parser_ParserState_pushSyntax(x_71, x_79); +x_8 = x_80; +goto block_61; } else { -lean_dec(x_49); -lean_dec(x_44); +lean_dec(x_72); +lean_dec(x_67); lean_dec(x_6); -x_8 = x_48; -goto block_38; +x_8 = x_71; +goto block_61; } } -block_38: +block_61: { lean_object* x_9; x_9 = lean_ctor_get(x_8, 3); 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; lean_object* x_28; lean_object* x_29; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_28; lean_object* x_52; lean_object* x_53; uint8_t x_54; x_10 = lean_ctor_get(x_8, 0); lean_inc(x_10); x_11 = lean_array_get_size(x_10); lean_dec(x_10); x_12 = lean_ctor_get(x_8, 1); lean_inc(x_12); +x_52 = lean_ctor_get(x_8, 2); +lean_inc(x_52); +x_53 = lean_ctor_get(x_52, 0); +lean_inc(x_53); +x_54 = lean_nat_dec_eq(x_53, x_12); +lean_dec(x_53); +if (x_54 == 0) +{ +lean_object* x_55; +lean_dec(x_52); lean_inc(x_1); -x_28 = lean_apply_2(x_4, x_1, x_8); -x_29 = lean_ctor_get(x_28, 3); -lean_inc(x_29); -if (lean_obj_tag(x_29) == 0) -{ -x_13 = x_28; -goto block_27; +x_55 = l_Lean_Parser_peekTokenAux(x_1, x_8); +x_28 = x_55; +goto block_51; } else { -lean_object* x_30; lean_object* x_31; uint8_t x_32; -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -lean_dec(x_29); -x_31 = lean_ctor_get(x_28, 1); -lean_inc(x_31); -x_32 = lean_nat_dec_eq(x_31, x_12); -lean_dec(x_31); -if (x_32 == 0) -{ -lean_dec(x_30); -x_13 = x_28; -goto block_27; -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -lean_inc(x_12); -x_33 = l_Lean_Parser_ParserState_restore(x_28, x_11, x_12); -x_34 = l_Lean_Parser_fieldIdxFn(x_1, x_33); -x_35 = l_Lean_Parser_mergeOrElseErrors(x_34, x_30, x_12); -x_13 = x_35; -goto block_27; -} +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_52, 2); +lean_inc(x_56); +lean_dec(x_52); +x_57 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_57, 0, x_56); +x_58 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_58, 0, x_8); +lean_ctor_set(x_58, 1, x_57); +x_28 = x_58; +goto block_51; } block_27: { @@ -31832,17 +31899,126 @@ return x_26; } } } +block_51: +{ +lean_object* x_29; +x_29 = lean_ctor_get(x_28, 1); +lean_inc(x_29); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; lean_object* x_31; +lean_dec(x_4); +x_30 = lean_ctor_get(x_28, 0); +lean_inc(x_30); +lean_dec(x_28); +x_31 = l_Lean_Parser_fieldIdxFn(x_1, x_30); +x_13 = x_31; +goto block_27; } else { -lean_object* x_36; lean_object* x_37; +lean_object* x_32; +x_32 = lean_ctor_get(x_29, 0); +lean_inc(x_32); +lean_dec(x_29); +if (lean_obj_tag(x_32) == 2) +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_33 = lean_ctor_get(x_28, 0); +lean_inc(x_33); +lean_dec(x_28); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_36 = lean_string_dec_eq(x_34, x_35); +lean_dec(x_34); +if (x_36 == 0) +{ +lean_object* x_37; +lean_dec(x_4); +x_37 = l_Lean_Parser_fieldIdxFn(x_1, x_33); +x_13 = x_37; +goto block_27; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_38 = lean_ctor_get(x_33, 0); +lean_inc(x_38); +x_39 = lean_array_get_size(x_38); +lean_dec(x_38); +x_40 = lean_ctor_get(x_33, 1); +lean_inc(x_40); +lean_inc(x_1); +x_41 = lean_apply_2(x_4, x_1, x_33); +x_42 = lean_ctor_get(x_41, 3); +lean_inc(x_42); +if (lean_obj_tag(x_42) == 0) +{ +lean_dec(x_40); +lean_dec(x_39); +x_13 = x_41; +goto block_27; +} +else +{ +lean_object* x_43; lean_object* x_44; uint8_t x_45; +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +lean_dec(x_42); +x_44 = lean_ctor_get(x_41, 1); +lean_inc(x_44); +x_45 = lean_nat_dec_eq(x_44, x_40); +lean_dec(x_44); +if (x_45 == 0) +{ +lean_dec(x_43); +lean_dec(x_40); +lean_dec(x_39); +x_13 = x_41; +goto block_27; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +lean_inc(x_40); +x_46 = l_Lean_Parser_ParserState_restore(x_41, x_39, x_40); +lean_dec(x_39); +x_47 = l_Lean_Parser_fieldIdxFn(x_1, x_46); +x_48 = l_Lean_Parser_mergeOrElseErrors(x_47, x_43, x_40); +lean_dec(x_40); +x_13 = x_48; +goto block_27; +} +} +} +} +else +{ +lean_object* x_49; lean_object* x_50; +lean_dec(x_32); +lean_dec(x_4); +x_49 = lean_ctor_get(x_28, 0); +lean_inc(x_49); +lean_dec(x_28); +x_50 = l_Lean_Parser_fieldIdxFn(x_1, x_49); +x_13 = x_50; +goto block_27; +} +} +} +} +else +{ +lean_object* x_59; lean_object* x_60; lean_dec(x_9); lean_dec(x_4); lean_dec(x_1); -x_36 = l_Lean_Parser_Term_proj___elambda__1___closed__2; -x_37 = l_Lean_Parser_ParserState_mkTrailingNode(x_8, x_36, x_7); +x_59 = l_Lean_Parser_Term_proj___elambda__1___closed__2; +x_60 = l_Lean_Parser_ParserState_mkTrailingNode(x_8, x_59, x_7); lean_dec(x_7); -return x_37; +return x_60; } } } @@ -32642,7 +32818,7 @@ return x_3; lean_object* l_Lean_Parser_Term_dollarProj___elambda__1(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_38; lean_object* x_39; lean_object* x_40; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_61; lean_object* x_62; lean_object* x_63; x_3 = l_Lean_Parser_fieldIdx___closed__2; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); @@ -32650,111 +32826,104 @@ x_5 = lean_ctor_get(x_2, 0); lean_inc(x_5); x_6 = lean_array_get_size(x_5); lean_dec(x_5); -x_38 = lean_ctor_get(x_2, 1); -lean_inc(x_38); +x_61 = lean_ctor_get(x_2, 1); +lean_inc(x_61); lean_inc(x_1); -x_39 = l_Lean_Parser_tokenFn(x_1, x_2); -x_40 = lean_ctor_get(x_39, 3); -lean_inc(x_40); -if (lean_obj_tag(x_40) == 0) +x_62 = l_Lean_Parser_tokenFn(x_1, x_2); +x_63 = lean_ctor_get(x_62, 3); +lean_inc(x_63); +if (lean_obj_tag(x_63) == 0) { -lean_object* x_41; lean_object* x_42; -x_41 = lean_ctor_get(x_39, 0); -lean_inc(x_41); -x_42 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_41); -lean_dec(x_41); -if (lean_obj_tag(x_42) == 2) +lean_object* x_64; lean_object* x_65; +x_64 = lean_ctor_get(x_62, 0); +lean_inc(x_64); +x_65 = l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(x_64); +lean_dec(x_64); +if (lean_obj_tag(x_65) == 2) { -lean_object* x_43; lean_object* x_44; uint8_t x_45; -x_43 = lean_ctor_get(x_42, 1); -lean_inc(x_43); -lean_dec(x_42); -x_44 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__4; -x_45 = lean_string_dec_eq(x_43, x_44); -lean_dec(x_43); -if (x_45 == 0) +lean_object* x_66; lean_object* x_67; uint8_t x_68; +x_66 = lean_ctor_get(x_65, 1); +lean_inc(x_66); +lean_dec(x_65); +x_67 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__4; +x_68 = lean_string_dec_eq(x_66, x_67); +lean_dec(x_66); +if (x_68 == 0) { -lean_object* x_46; lean_object* x_47; -x_46 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; -x_47 = l_Lean_Parser_ParserState_mkErrorsAt(x_39, x_46, x_38); -x_7 = x_47; -goto block_37; +lean_object* x_69; lean_object* x_70; +x_69 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; +x_70 = l_Lean_Parser_ParserState_mkErrorsAt(x_62, x_69, x_61); +x_7 = x_70; +goto block_60; } else { -lean_dec(x_38); -x_7 = x_39; -goto block_37; +lean_dec(x_61); +x_7 = x_62; +goto block_60; } } else { -lean_object* x_48; lean_object* x_49; -lean_dec(x_42); -x_48 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; -x_49 = l_Lean_Parser_ParserState_mkErrorsAt(x_39, x_48, x_38); -x_7 = x_49; -goto block_37; +lean_object* x_71; lean_object* x_72; +lean_dec(x_65); +x_71 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; +x_72 = l_Lean_Parser_ParserState_mkErrorsAt(x_62, x_71, x_61); +x_7 = x_72; +goto block_60; } } else { -lean_object* x_50; lean_object* x_51; -lean_dec(x_40); -x_50 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; -x_51 = l_Lean_Parser_ParserState_mkErrorsAt(x_39, x_50, x_38); -x_7 = x_51; -goto block_37; +lean_object* x_73; lean_object* x_74; +lean_dec(x_63); +x_73 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__7; +x_74 = l_Lean_Parser_ParserState_mkErrorsAt(x_62, x_73, x_61); +x_7 = x_74; +goto block_60; } -block_37: +block_60: { lean_object* x_8; x_8 = lean_ctor_get(x_7, 3); lean_inc(x_8); 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_27; lean_object* x_28; +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_27; lean_object* x_51; lean_object* x_52; uint8_t x_53; x_9 = lean_ctor_get(x_7, 0); lean_inc(x_9); x_10 = lean_array_get_size(x_9); lean_dec(x_9); x_11 = lean_ctor_get(x_7, 1); lean_inc(x_11); +x_51 = lean_ctor_get(x_7, 2); +lean_inc(x_51); +x_52 = lean_ctor_get(x_51, 0); +lean_inc(x_52); +x_53 = lean_nat_dec_eq(x_52, x_11); +lean_dec(x_52); +if (x_53 == 0) +{ +lean_object* x_54; +lean_dec(x_51); lean_inc(x_1); -x_27 = lean_apply_2(x_4, x_1, x_7); -x_28 = lean_ctor_get(x_27, 3); -lean_inc(x_28); -if (lean_obj_tag(x_28) == 0) -{ -x_12 = x_27; -goto block_26; +x_54 = l_Lean_Parser_peekTokenAux(x_1, x_7); +x_27 = x_54; +goto block_50; } else { -lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_29 = lean_ctor_get(x_28, 0); -lean_inc(x_29); -lean_dec(x_28); -x_30 = lean_ctor_get(x_27, 1); -lean_inc(x_30); -x_31 = lean_nat_dec_eq(x_30, x_11); -lean_dec(x_30); -if (x_31 == 0) -{ -lean_dec(x_29); -x_12 = x_27; -goto block_26; -} -else -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; -lean_inc(x_11); -x_32 = l_Lean_Parser_ParserState_restore(x_27, x_10, x_11); -x_33 = l_Lean_Parser_fieldIdxFn(x_1, x_32); -x_34 = l_Lean_Parser_mergeOrElseErrors(x_33, x_29, x_11); -x_12 = x_34; -goto block_26; -} +lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_55 = lean_ctor_get(x_51, 2); +lean_inc(x_55); +lean_dec(x_51); +x_56 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_56, 0, x_55); +x_57 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_57, 0, x_7); +lean_ctor_set(x_57, 1, x_56); +x_27 = x_57; +goto block_50; } block_26: { @@ -32810,17 +32979,126 @@ return x_25; } } } +block_50: +{ +lean_object* x_28; +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +if (lean_obj_tag(x_28) == 0) +{ +lean_object* x_29; lean_object* x_30; +lean_dec(x_4); +x_29 = lean_ctor_get(x_27, 0); +lean_inc(x_29); +lean_dec(x_27); +x_30 = l_Lean_Parser_fieldIdxFn(x_1, x_29); +x_12 = x_30; +goto block_26; } else { -lean_object* x_35; lean_object* x_36; +lean_object* x_31; +x_31 = lean_ctor_get(x_28, 0); +lean_inc(x_31); +lean_dec(x_28); +if (lean_obj_tag(x_31) == 2) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_32 = lean_ctor_get(x_27, 0); +lean_inc(x_32); +lean_dec(x_27); +x_33 = lean_ctor_get(x_31, 1); +lean_inc(x_33); +lean_dec(x_31); +x_34 = l_Lean_Syntax_termIdToAntiquot___closed__3; +x_35 = lean_string_dec_eq(x_33, x_34); +lean_dec(x_33); +if (x_35 == 0) +{ +lean_object* x_36; +lean_dec(x_4); +x_36 = l_Lean_Parser_fieldIdxFn(x_1, x_32); +x_12 = x_36; +goto block_26; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_37 = lean_ctor_get(x_32, 0); +lean_inc(x_37); +x_38 = lean_array_get_size(x_37); +lean_dec(x_37); +x_39 = lean_ctor_get(x_32, 1); +lean_inc(x_39); +lean_inc(x_1); +x_40 = lean_apply_2(x_4, x_1, x_32); +x_41 = lean_ctor_get(x_40, 3); +lean_inc(x_41); +if (lean_obj_tag(x_41) == 0) +{ +lean_dec(x_39); +lean_dec(x_38); +x_12 = x_40; +goto block_26; +} +else +{ +lean_object* x_42; lean_object* x_43; uint8_t x_44; +x_42 = lean_ctor_get(x_41, 0); +lean_inc(x_42); +lean_dec(x_41); +x_43 = lean_ctor_get(x_40, 1); +lean_inc(x_43); +x_44 = lean_nat_dec_eq(x_43, x_39); +lean_dec(x_43); +if (x_44 == 0) +{ +lean_dec(x_42); +lean_dec(x_39); +lean_dec(x_38); +x_12 = x_40; +goto block_26; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; +lean_inc(x_39); +x_45 = l_Lean_Parser_ParserState_restore(x_40, x_38, x_39); +lean_dec(x_38); +x_46 = l_Lean_Parser_fieldIdxFn(x_1, x_45); +x_47 = l_Lean_Parser_mergeOrElseErrors(x_46, x_42, x_39); +lean_dec(x_39); +x_12 = x_47; +goto block_26; +} +} +} +} +else +{ +lean_object* x_48; lean_object* x_49; +lean_dec(x_31); +lean_dec(x_4); +x_48 = lean_ctor_get(x_27, 0); +lean_inc(x_48); +lean_dec(x_27); +x_49 = l_Lean_Parser_fieldIdxFn(x_1, x_48); +x_12 = x_49; +goto block_26; +} +} +} +} +else +{ +lean_object* x_58; lean_object* x_59; lean_dec(x_8); lean_dec(x_4); lean_dec(x_1); -x_35 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__2; -x_36 = l_Lean_Parser_ParserState_mkTrailingNode(x_7, x_35, x_6); +x_58 = l_Lean_Parser_Term_dollarProj___elambda__1___closed__2; +x_59 = l_Lean_Parser_ParserState_mkTrailingNode(x_7, x_58, x_6); lean_dec(x_6); -return x_36; +return x_59; } } } @@ -38660,6 +38938,10 @@ l_Lean_Parser_Term_structInstLVal___closed__8 = _init_l_Lean_Parser_Term_structI lean_mark_persistent(l_Lean_Parser_Term_structInstLVal___closed__8); l_Lean_Parser_Term_structInstLVal___closed__9 = _init_l_Lean_Parser_Term_structInstLVal___closed__9(); lean_mark_persistent(l_Lean_Parser_Term_structInstLVal___closed__9); +l_Lean_Parser_Term_structInstLVal___closed__10 = _init_l_Lean_Parser_Term_structInstLVal___closed__10(); +lean_mark_persistent(l_Lean_Parser_Term_structInstLVal___closed__10); +l_Lean_Parser_Term_structInstLVal___closed__11 = _init_l_Lean_Parser_Term_structInstLVal___closed__11(); +lean_mark_persistent(l_Lean_Parser_Term_structInstLVal___closed__11); l_Lean_Parser_Term_structInstLVal = _init_l_Lean_Parser_Term_structInstLVal(); lean_mark_persistent(l_Lean_Parser_Term_structInstLVal); l_Lean_Parser_Term_structInstField___elambda__1___closed__1 = _init_l_Lean_Parser_Term_structInstField___elambda__1___closed__1(); diff --git a/stage0/stdlib/Init/LeanInit.c b/stage0/stdlib/Init/LeanInit.c index adc22dd963..fa7f240fbe 100644 --- a/stage0/stdlib/Init/LeanInit.c +++ b/stage0/stdlib/Init/LeanInit.c @@ -134,6 +134,7 @@ lean_object* l_Lean_Syntax_hasArgs___boxed(lean_object*); lean_object* l_Lean_mkStxNumLit(lean_object*, lean_object*); lean_object* l_Lean_Name_HasAppend___closed__1; lean_object* l_Array_mapSepElems___boxed(lean_object*, lean_object*); +lean_object* l_Lean_mkSepStx___boxed(lean_object*, lean_object*); uint8_t l_Lean_Name_hasMacroScopes(lean_object*); lean_object* l_Lean_Syntax_isLit_x3f(lean_object*, lean_object*); lean_object* l_Lean_Syntax_termIdToAntiquot___closed__4; @@ -226,6 +227,7 @@ uint8_t l_Lean_Syntax_isAtom(lean_object*); lean_object* l_Lean_Name_toStringWithSep___main___boxed(lean_object*, lean_object*); lean_object* l___private_Init_LeanInit_7__decodeOctalLitAux___main___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_nullKind___closed__2; +lean_object* l_Lean_mkSepStx(lean_object*, lean_object*); lean_object* l_Lean_MacroM_monadQuotation___closed__3; uint8_t l_Lean_isLetterLike(uint32_t); lean_object* l_Lean_Syntax_isStrLit_x3f___boxed(lean_object*); @@ -280,6 +282,7 @@ lean_object* l_Lean_Name_hasMacroScopes___boxed(lean_object*); lean_object* l_Lean_isIdBeginEscape___boxed(lean_object*); lean_object* l_Lean_mkStxStrLit(lean_object*, lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_mkSepStx___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_LeanInit_13__decodeNameLitAux___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_LeanInit_14__filterSepElemsMAux___main___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_LeanInit_14__filterSepElemsMAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -290,6 +293,7 @@ lean_object* l_Lean_Name_append___main___boxed(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); lean_object* l_Lean_mkTermIdFrom(lean_object*, lean_object*); lean_object* l_Lean_Syntax_decodeNameLit(lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_mkSepStx___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkOptionalNode___closed__1; lean_object* l_Lean_Syntax_isNameLit_x3f(lean_object*); lean_object* l_Lean_isIdEndEscape___boxed(lean_object*); @@ -3047,6 +3051,82 @@ lean_ctor_set(x_3, 1, x_1); return x_3; } } +lean_object* l_Array_iterateMAux___main___at_Lean_mkSepStx___spec__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; uint8_t x_7; +x_6 = lean_array_get_size(x_3); +x_7 = lean_nat_dec_lt(x_4, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_dec(x_4); +lean_dec(x_2); +return x_5; +} +else +{ +lean_object* x_8; lean_object* x_9; uint8_t x_10; lean_object* x_11; lean_object* x_12; +x_8 = lean_array_fget(x_3, x_4); +x_9 = lean_unsigned_to_nat(0u); +x_10 = lean_nat_dec_lt(x_9, x_4); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_4, x_11); +lean_dec(x_4); +if (x_10 == 0) +{ +lean_object* x_13; +x_13 = lean_array_push(x_5, x_8); +x_4 = x_12; +x_5 = x_13; +goto _start; +} +else +{ +lean_object* x_15; lean_object* x_16; +lean_inc(x_2); +x_15 = lean_array_push(x_5, x_2); +x_16 = lean_array_push(x_15, x_8); +x_4 = x_12; +x_5 = x_16; +goto _start; +} +} +} +} +lean_object* l_Lean_mkSepStx(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; +x_3 = lean_unsigned_to_nat(0u); +x_4 = l_Array_empty___closed__1; +x_5 = l_Array_iterateMAux___main___at_Lean_mkSepStx___spec__1(x_1, x_2, x_1, x_3, x_4); +x_6 = l_Lean_nullKind; +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_5); +return x_7; +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_mkSepStx___spec__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_Array_iterateMAux___main___at_Lean_mkSepStx___spec__1(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_3); +lean_dec(x_1); +return x_6; +} +} +lean_object* l_Lean_mkSepStx___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_mkSepStx(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} lean_object* _init_l_Lean_mkOptionalNode___closed__1() { _start: {