diff --git a/stage0/src/Lean/Attributes.lean b/stage0/src/Lean/Attributes.lean index 763dd88c0b..69a56c4078 100644 --- a/stage0/src/Lean/Attributes.lean +++ b/stage0/src/Lean/Attributes.lean @@ -182,11 +182,11 @@ def Attribute.erase (declName : Name) (attrName : Name) : AttrM Unit := do Helper methods for decoding the parameters of builtin attributes that are defined before `Lean.Parser`. We have the following ones: ``` - @[builtinAttrParser] def simple := parser! ident >> optional ident >> optional priorityParser + @[builtinAttrParser] def simple := leading_parser ident >> optional ident >> optional priorityParser /- We can't use `simple` for `class`, `instance`, `export` and `macro` because they are keywords. -/ - @[builtinAttrParser] def «class» := parser! "class" - @[builtinAttrParser] def «instance» := parser! "instance" >> optional priorityParser - @[builtinAttrParser] def «macro» := parser! "macro " >> ident + @[builtinAttrParser] def «class» := leading_parser "class" + @[builtinAttrParser] def «instance» := leading_parser "instance" >> optional priorityParser + @[builtinAttrParser] def «macro» := leading_parser "macro " >> ident ``` Note that we need the parsers for `class`, `instance`, and `macros` because they are keywords. -/ diff --git a/stage0/src/Lean/Compiler/ExternAttr.lean b/stage0/src/Lean/Compiler/ExternAttr.lean index b910dff069..ca47b430e7 100644 --- a/stage0/src/Lean/Compiler/ExternAttr.lean +++ b/stage0/src/Lean/Compiler/ExternAttr.lean @@ -36,8 +36,8 @@ structure ExternAttrData where entries : List ExternEntry deriving Inhabited --- def externEntry := parser! optional ident >> optional (nonReservedSymbol "inline ") >> strLit --- @[builtinAttrParser] def extern := parser! nonReservedSymbol "extern " >> optional numLit >> many externEntry +-- def externEntry := leading_parser optional ident >> optional (nonReservedSymbol "inline ") >> strLit +-- @[builtinAttrParser] def extern := leading_parser nonReservedSymbol "extern " >> optional numLit >> many externEntry private def syntaxToExternAttrData (stx : Syntax) : AttrM ExternAttrData := do let arity? := if stx[1].isNone then none else some <| stx[1][0].isNatLit?.getD 0 let entriesStx := stx[2].getArgs diff --git a/stage0/src/Lean/Elab/App.lean b/stage0/src/Lean/Elab/App.lean index 9022129c48..e65fa1a2ec 100644 --- a/stage0/src/Lean/Elab/App.lean +++ b/stage0/src/Lean/Elab/App.lean @@ -890,7 +890,7 @@ partial def expandApp (stx : Syntax) (pattern := false) : TermElabM (Syntax × A (args, false) let (namedArgs, args) ← args.foldlM (init := (#[], #[])) fun (namedArgs, args) stx => do if stx.getKind == `Lean.Parser.Term.namedArgument then - -- tparser! try ("(" >> ident >> " := ") >> termParser >> ")" + -- trailing_tparser try ("(" >> ident >> " := ") >> termParser >> ")" let name := stx[1].getId.eraseMacroScopes let val := stx[3] let namedArgs ← addNamedArg namedArgs { ref := stx, name := name, val := Arg.stx val } diff --git a/stage0/src/Lean/Elab/Attributes.lean b/stage0/src/Lean/Elab/Attributes.lean index 3863ea9b92..0df446919d 100644 --- a/stage0/src/Lean/Elab/Attributes.lean +++ b/stage0/src/Lean/Elab/Attributes.lean @@ -27,7 +27,7 @@ instance : Inhabited Attribute where /- ``` - attrKind := parser! optional («scoped» <|> «local») + attrKind := leading_parser optional («scoped» <|> «local») ``` -/ def toAttributeKind [Monad m] [MonadResolveName m] [MonadError m] (attrKindStx : Syntax) : m AttributeKind := do @@ -44,7 +44,7 @@ def mkAttrKindGlobal : Syntax := Syntax.node `Lean.Parser.Term.attrKind #[mkNullNode] def elabAttr {m} [Monad m] [MonadEnv m] [MonadResolveName m] [MonadError m] [MonadMacroAdapter m] [MonadRecDepth m] (attrInstance : Syntax) : m Attribute := do - /- attrInstance := ppGroup $ parser! attrKind >> attrParser -/ + /- attrInstance := ppGroup $ leading_parser attrKind >> attrParser -/ let attrKind ← toAttributeKind attrInstance[0] let attr := attrInstance[1] let attr ← liftMacroM <| expandMacros attr @@ -67,7 +67,7 @@ def elabAttrs {m} [Monad m] [MonadEnv m] [MonadResolveName m] [MonadError m] [Mo attrs := attrs.push (← elabAttr attr) return attrs --- parser! "@[" >> sepBy1 attrInstance ", " >> "]" +-- leading_parser "@[" >> sepBy1 attrInstance ", " >> "]" def elabDeclAttrs {m} [Monad m] [MonadEnv m] [MonadResolveName m] [MonadError m] [MonadMacroAdapter m] [MonadRecDepth m] (stx : Syntax) : m (Array Attribute) := elabAttrs stx[1].getSepArgs diff --git a/stage0/src/Lean/Elab/Binders.lean b/stage0/src/Lean/Elab/Binders.lean index e0287d4159..aac58cf62b 100644 --- a/stage0/src/Lean/Elab/Binders.lean +++ b/stage0/src/Lean/Elab/Binders.lean @@ -73,8 +73,8 @@ def declareTacticSyntax (tactic : Syntax) : TermElabM Name := /- Expand `optional (binderTactic <|> binderDefault)` -def binderTactic := parser! " := " >> " by " >> tacticParser -def binderDefault := parser! " := " >> termParser +def binderTactic := leading_parser " := " >> " by " >> tacticParser +def binderDefault := leading_parser " := " >> termParser -/ private def expandBinderModifier (type : Syntax) (optBinderModifier : Syntax) : TermElabM Syntax := do if optBinderModifier.isNone then @@ -103,7 +103,7 @@ private def getBinderIds (ids : Syntax) : TermElabM (Array Syntax) := /- Recall that ``` - def typeSpec := parser! " : " >> termParser + def typeSpec := leading_parser " : " >> termParser def optType : Parser := optional typeSpec ``` -/ @@ -244,7 +244,7 @@ private partial def getFunBinderIds? (stx : Syntax) : OptionT TermElabM (Array S Auxiliary function for expanding `fun` notation binders. Recall that `fun` parser is defined as ``` def funBinder : Parser := implicitBinder <|> instBinder <|> termParser maxPrec - parser! unicodeSymbol "λ" "fun" >> many1 funBinder >> "=>" >> termParser + leading_parser unicodeSymbol "λ" "fun" >> many1 funBinder >> "=>" >> termParser ``` to allow notation such as `fun (a, b) => a + b`, where `(a, b)` should be treated as a pattern. The result is a pair `(explicitBinders, newBody)`, where `explicitBinders` is syntax of the form diff --git a/stage0/src/Lean/Elab/BuiltinNotation.lean b/stage0/src/Lean/Elab/BuiltinNotation.lean index 7522cac142..91613ffa9d 100644 --- a/stage0/src/Lean/Elab/BuiltinNotation.lean +++ b/stage0/src/Lean/Elab/BuiltinNotation.lean @@ -58,7 +58,7 @@ open Meta private def elabParserMacroAux (prec : Syntax) (e : Syntax) : TermElabM Syntax := do let (some declName) ← getDeclName? - | throwError "invalid `parser!` macro, it must be used in definitions" + | throwError "invalid `leading_parser` macro, it must be used in definitions" match extractMacroScopes declName with | { name := Name.str _ s _, scopes := scps, .. } => let kind := quote declName @@ -70,13 +70,7 @@ private def elabParserMacroAux (prec : Syntax) (e : Syntax) : TermElabM Syntax : else -- if the parser decl is hidden by hygiene, it doesn't make sense to provide an antiquotation kind `(OrElse.orElse (Lean.Parser.mkAntiquot $s none) $p) - | _ => throwError "invalid `parser!` macro, unexpected declaration name" - -@[builtinTermElab «parser!»] def elabParserMacro : TermElab := - adaptExpander fun stx => match stx with - | `(parser! $e) => elabParserMacroAux (quote Parser.maxPrec) e - | `(parser! : $prec $e) => elabParserMacroAux prec e - | _ => throwUnsupportedSyntax + | _ => throwError "invalid `leading_parser` macro, unexpected declaration name" @[builtinTermElab «leading_parser»] def elabLeadingParserMacro : TermElab := adaptExpander fun stx => match stx with @@ -88,13 +82,7 @@ private def elabTParserMacroAux (prec : Syntax) (e : Syntax) : TermElabM Syntax let declName? ← getDeclName? match declName? with | some declName => let kind := quote declName; `(Lean.Parser.trailingNode $kind $prec $e) - | none => throwError "invalid `tparser!` macro, it must be used in definitions" - -@[builtinTermElab «tparser!»] def elabTParserMacro : TermElab := - adaptExpander fun stx => match stx with - | `(tparser! $e) => elabTParserMacroAux (quote Parser.maxPrec) e - | `(tparser! : $prec $e) => elabTParserMacroAux prec e - | _ => throwUnsupportedSyntax + | none => throwError "invalid `trailing_parser` macro, it must be used in definitions" @[builtinTermElab «trailing_parser»] def elabTrailingParserMacro : TermElab := adaptExpander fun stx => match stx with diff --git a/stage0/src/Lean/Elab/DeclModifiers.lean b/stage0/src/Lean/Elab/DeclModifiers.lean index e689a46440..478e888aad 100644 --- a/stage0/src/Lean/Elab/DeclModifiers.lean +++ b/stage0/src/Lean/Elab/DeclModifiers.lean @@ -146,7 +146,7 @@ def mkDeclName (currNamespace : Name) (modifiers : Modifiers) (shortName : Name) /- `declId` is of the form ``` - parser! ident >> optional (".{" >> sepBy1 ident ", " >> "}") + leading_parser ident >> optional (".{" >> sepBy1 ident ", " >> "}") ``` but we also accept a single identifier to users to make macro writing more convenient . -/ diff --git a/stage0/src/Lean/Elab/DeclUtil.lean b/stage0/src/Lean/Elab/DeclUtil.lean index ce0c7ad3ec..2aa6234d03 100644 --- a/stage0/src/Lean/Elab/DeclUtil.lean +++ b/stage0/src/Lean/Elab/DeclUtil.lean @@ -39,7 +39,7 @@ namespace Elab def expandOptDeclSig (stx : Syntax) : Syntax × Option Syntax := -- many Term.bracketedBinder >> Term.optType let binders := stx[0] - let optType := stx[1] -- optional (parser! " : " >> termParser) + let optType := stx[1] -- optional (leading_parser " : " >> termParser) if optType.isNone then (binders, none) else diff --git a/stage0/src/Lean/Elab/Declaration.lean b/stage0/src/Lean/Elab/Declaration.lean index 805324f136..3a705c4808 100644 --- a/stage0/src/Lean/Elab/Declaration.lean +++ b/stage0/src/Lean/Elab/Declaration.lean @@ -55,7 +55,7 @@ def expandDeclNamespace? (stx : Syntax) : Option (Name × Syntax) := none def elabAxiom (modifiers : Modifiers) (stx : Syntax) : CommandElabM Unit := do - -- parser! "axiom " >> declId >> declSig + -- leading_parser "axiom " >> declId >> declSig let declId := stx[1] let (binders, typeStx) := expandDeclSig stx[2] let scopeLevelNames ← getLevelNames @@ -87,8 +87,8 @@ def elabAxiom (modifiers : Modifiers) (stx : Syntax) : CommandElabM Unit := do Term.applyAttributesAt declName modifiers.attrs AttributeApplicationTime.afterCompilation /- -parser! "inductive " >> declId >> optDeclSig >> optional ":=" >> many ctor -parser! atomic (group ("class " >> "inductive ")) >> declId >> optDeclSig >> optional ":=" >> many ctor >> optDeriving +leading_parser "inductive " >> declId >> optDeclSig >> optional ":=" >> many ctor +leading_parser atomic (group ("class " >> "inductive ")) >> declId >> optDeclSig >> optional ":=" >> many ctor >> optDeriving -/ private def inductiveSyntaxToView (modifiers : Modifiers) (decl : Syntax) : CommandElabM InductiveView := do checkValidInductiveModifier modifiers @@ -97,7 +97,7 @@ private def inductiveSyntaxToView (modifiers : Modifiers) (decl : Syntax) : Comm let ⟨name, declName, levelNames⟩ ← expandDeclId declId modifiers addDeclarationRanges declName decl let ctors ← decl[4].getArgs.mapM fun ctor => withRef ctor do - -- def ctor := parser! " | " >> declModifiers >> ident >> optional inferMod >> optDeclSig + -- def ctor := leading_parser " | " >> declModifiers >> ident >> optional inferMod >> optDeclSig let ctorModifiers ← elabModifiers ctor[1] if ctorModifiers.isPrivate && modifiers.isPrivate then throwError "invalid 'private' constructor in a 'private' inductive datatype" @@ -256,7 +256,7 @@ def elabMutual : CommandElab := fun stx => do else throwError "invalid mutual block" -/- parser! "attribute " >> "[" >> sepBy1 (eraseAttr <|> Term.attrInstance) ", " >> "]" >> many1 ident -/ +/- leading_parser "attribute " >> "[" >> sepBy1 (eraseAttr <|> Term.attrInstance) ", " >> "]" >> many1 ident -/ @[builtinCommandElab «attribute»] def elabAttr : CommandElab := fun stx => do let mut attrInsts := #[] let mut toErase := #[] @@ -265,7 +265,7 @@ def elabMutual : CommandElab := fun stx => do let attrName := attrKindStx[1].getId.eraseMacroScopes unless isAttribute (← getEnv) attrName do throwError! "unknown attribute [{attrName}]" - toErase := toErase.push attrName + toErase := toErase.push attrName else attrInsts := attrInsts.push attrKindStx let attrs ← elabAttrs attrInsts diff --git a/stage0/src/Lean/Elab/DefView.lean b/stage0/src/Lean/Elab/DefView.lean index f744f38b4f..9570ddae43 100644 --- a/stage0/src/Lean/Elab/DefView.lean +++ b/stage0/src/Lean/Elab/DefView.lean @@ -47,7 +47,7 @@ namespace Command open Meta def mkDefViewOfAbbrev (modifiers : Modifiers) (stx : Syntax) : DefView := - -- parser! "abbrev " >> declId >> optDeclSig >> declVal + -- leading_parser "abbrev " >> declId >> optDeclSig >> declVal let (binders, type) := expandOptDeclSig (stx.getArg 2) let modifiers := modifiers.addAttribute { name := `inline } let modifiers := modifiers.addAttribute { name := `reducible } @@ -55,13 +55,13 @@ def mkDefViewOfAbbrev (modifiers : Modifiers) (stx : Syntax) : DefView := declId := stx.getArg 1, binders := binders, type? := type, value := stx.getArg 3 } def mkDefViewOfDef (modifiers : Modifiers) (stx : Syntax) : DefView := - -- parser! "def " >> declId >> optDeclSig >> declVal + -- leading_parser "def " >> declId >> optDeclSig >> declVal let (binders, type) := expandOptDeclSig (stx.getArg 2) { ref := stx, kind := DefKind.def, modifiers := modifiers, declId := stx.getArg 1, binders := binders, type? := type, value := stx.getArg 3 } def mkDefViewOfTheorem (modifiers : Modifiers) (stx : Syntax) : DefView := - -- parser! "theorem " >> declId >> declSig >> declVal + -- leading_parser "theorem " >> declId >> declSig >> declVal let (binders, type) := expandDeclSig (stx.getArg 2) { ref := stx, kind := DefKind.theorem, modifiers := modifiers, declId := stx.getArg 1, binders := binders, type? := some type, value := stx.getArg 3 } @@ -125,7 +125,7 @@ partial def main (type : Syntax) : CommandElabM Name := do end MkInstanceName def mkDefViewOfConstant (modifiers : Modifiers) (stx : Syntax) : CommandElabM DefView := do - -- parser! "constant " >> declId >> declSig >> optional declValSimple + -- leading_parser "constant " >> declId >> declSig >> optional declValSimple let (binders, type) := expandDeclSig (stx.getArg 2) let val ← match (stx.getArg 3).getOptional? with | some val => pure val @@ -138,7 +138,7 @@ def mkDefViewOfConstant (modifiers : Modifiers) (stx : Syntax) : CommandElabM De } def mkDefViewOfInstance (modifiers : Modifiers) (stx : Syntax) : CommandElabM DefView := do - -- parser! Term.attrKind >> "instance " >> optNamedPrio >> optional declId >> declSig >> declVal + -- leading_parser Term.attrKind >> "instance " >> optNamedPrio >> optional declId >> declSig >> declVal let attrKind ← toAttributeKind stx[0] let prio ← liftMacroM <| expandOptNamedPrio stx[2] let attrStx ← `(attr| instance $(quote prio):numLit) @@ -155,7 +155,7 @@ def mkDefViewOfInstance (modifiers : Modifiers) (stx : Syntax) : CommandElabM De } def mkDefViewOfExample (modifiers : Modifiers) (stx : Syntax) : DefView := - -- parser! "example " >> declSig >> declVal + -- leading_parser "example " >> declSig >> declVal let (binders, type) := expandDeclSig (stx.getArg 1) let id := mkIdentFrom stx `_example let declId := Syntax.node ``Parser.Command.declId #[id, mkNullNode] diff --git a/stage0/src/Lean/Elab/Deriving/Basic.lean b/stage0/src/Lean/Elab/Deriving/Basic.lean index aa7afdbaef..288d2fdbb1 100644 --- a/stage0/src/Lean/Elab/Deriving/Basic.lean +++ b/stage0/src/Lean/Elab/Deriving/Basic.lean @@ -45,7 +45,7 @@ structure DerivingClassView where ref : Syntax className : Name -/- parser! optional (atomic ("deriving " >> notSymbol "instance") >> sepBy1 ident ", ") -/ +/- leading_parser optional (atomic ("deriving " >> notSymbol "instance") >> sepBy1 ident ", ") -/ def getOptDerivingClasses [Monad m] [MonadEnv m] [MonadResolveName m] [MonadError m] (optDeriving : Syntax) : m (Array DerivingClassView) := do if optDeriving.isNone then return #[] diff --git a/stage0/src/Lean/Elab/Do.lean b/stage0/src/Lean/Elab/Do.lean index c40bac67bf..49266d2049 100644 --- a/stage0/src/Lean/Elab/Do.lean +++ b/stage0/src/Lean/Elab/Do.lean @@ -559,12 +559,12 @@ def getLetDeclVars (letDecl : Syntax) : TermElabM (Array Name) := do throwError "unexpected kind of let declaration" def getDoLetVars (doLet : Syntax) : TermElabM (Array Name) := - -- parser! "let " >> optional "mut " >> letDecl + -- leading_parser "let " >> optional "mut " >> letDecl getLetDeclVars doLet[2] def getDoHaveVar (doHave : Syntax) : Name := /- - `parser! "have " >> Term.haveDecl` + `leading_parser "have " >> Term.haveDecl` where ``` haveDecl := optIdent >> termParser >> (haveAssign <|> fromTerm <|> byTactic) @@ -597,7 +597,7 @@ def getDoPatDeclVars (doPatDecl : Syntax) : TermElabM (Array Name) := do let pattern := doPatDecl[0] getPatternVarsEx pattern --- parser! "let " >> optional "mut " >> (doIdDecl <|> doPatDecl) +-- leading_parser "let " >> optional "mut " >> (doIdDecl <|> doPatDecl) def getDoLetArrowVars (doLetArrow : Syntax) : TermElabM (Array Name) := do let decl := doLetArrow[2] if decl.getKind == `Lean.Parser.Term.doIdDecl then @@ -921,10 +921,10 @@ def declToTerm (decl : Syntax) (k : Syntax) : M Syntax := withRef decl <| withFr def reassignToTerm (reassign : Syntax) (k : Syntax) : MacroM Syntax := withRef reassign <| withFreshMacroScope do let kind := reassign.getKind if kind == `Lean.Parser.Term.doReassign then - -- doReassign := parser! (letIdDecl <|> letPatDecl) + -- doReassign := leading_parser (letIdDecl <|> letPatDecl) let arg := reassign[0] if arg.getKind == `Lean.Parser.Term.letIdDecl then - -- letIdDecl := parser! ident >> many (ppSpace >> bracketedBinder) >> optType >> " := " >> termParser + -- letIdDecl := leading_parser ident >> many (ppSpace >> bracketedBinder) >> optType >> " := " >> termParser let x := arg[0] let val := arg[4] let newVal ← `(ensureTypeOf! $x $(quote "invalid reassignment, value") $val) @@ -1207,8 +1207,8 @@ mutual ``` where ``` - def doIdDecl := parser! ident >> optType >> leftArrow >> doElemParser - def doPatDecl := parser! termParser >> leftArrow >> doElemParser >> optional (" | " >> doElemParser) + def doIdDecl := leading_parser ident >> optType >> leftArrow >> doElemParser + def doPatDecl := leading_parser termParser >> leftArrow >> doElemParser >> optional (" | " >> doElemParser) ``` -/ partial def doLetArrowToCode (doLetArrow : Syntax) (doElems : List Syntax) : M CodeBlock := do @@ -1304,8 +1304,8 @@ mutual /- Generate `CodeBlock` for `doFor; doElems` `doFor` is of the form ``` - def doForDecl := parser! termParser >> " in " >> withForbidden "do" termParser - def doFor := parser! "for " >> sepBy1 doForDecl ", " >> "do " >> doSeq + def doForDecl := leading_parser termParser >> " in " >> withForbidden "do" termParser + def doFor := leading_parser "for " >> sepBy1 doForDecl ", " >> "do " >> doSeq ``` -/ partial def doForToCode (doFor : Syntax) (doElems : List Syntax) : M CodeBlock := do @@ -1391,10 +1391,10 @@ mutual /-- Generate `CodeBlock` for `doTry; doElems` ``` - def doTry := parser! "try " >> doSeq >> many (doCatch <|> doCatchMatch) >> optional doFinally - def doCatch := parser! "catch " >> binderIdent >> optional (":" >> termParser) >> darrow >> doSeq - def doCatchMatch := parser! "catch " >> doMatchAlts - def doFinally := parser! "finally " >> doSeq + def doTry := leading_parser "try " >> doSeq >> many (doCatch <|> doCatchMatch) >> optional doFinally + def doCatch := leading_parser "catch " >> binderIdent >> optional (":" >> termParser) >> darrow >> doSeq + def doCatchMatch := leading_parser "catch " >> doMatchAlts + def doFinally := leading_parser "finally " >> doSeq ``` -/ partial def doTryToCode (doTry : Syntax) (doElems: List Syntax) : M CodeBlock := do diff --git a/stage0/src/Lean/Elab/Match.lean b/stage0/src/Lean/Elab/Match.lean index e26927a2c5..d17a20783c 100644 --- a/stage0/src/Lean/Elab/Match.lean +++ b/stage0/src/Lean/Elab/Match.lean @@ -16,9 +16,9 @@ open Lean.Parser.Term /- This modules assumes "match"-expressions use the following syntax. ```lean -def matchDiscr := parser! optional (try (ident >> checkNoWsBefore "no space before ':'" >> ":")) >> termParser +def matchDiscr := leading_parser optional (try (ident >> checkNoWsBefore "no space before ':'" >> ":")) >> termParser -def «match» := parser!:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> matchAlts +def «match» := leading_parser:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> matchAlts ``` -/ @@ -304,7 +304,7 @@ partial def collect (stx : Syntax) : M Syntax := do else if k == `Lean.Parser.Term.structInst then /- ``` - parser! "{" >> optional (atomic (termParser >> " with ")) + leading_parser "{" >> optional (atomic (termParser >> " with ")) >> manyIndent (group (structInstField >> optional ", ")) >> optional ".." >> optional (" : " >> termParser) @@ -317,7 +317,7 @@ partial def collect (stx : Syntax) : M Syntax := do let fields ← args[2].getArgs.mapM fun p => do -- p is of the form (group (structInstField >> optional ", ")) let field := p[0] - -- parser! structInstLVal >> " := " >> termParser + -- leading_parser structInstLVal >> " := " >> termParser let newVal ← collect field[2] let field := field.setArg 2 newVal pure <| field.setArg 0 field @@ -353,7 +353,7 @@ partial def collect (stx : Syntax) : M Syntax := do processCtor stx[0] else if k == `Lean.Parser.Term.namedPattern then /- Recall that - def namedPattern := check... >> tparser! "@" >> termParser -/ + def namedPattern := check... >> trailing_parser "@" >> termParser -/ let id := stx[0] discard <| processVar id let pat := stx[2] @@ -820,7 +820,7 @@ private def expandNonAtomicDiscrs? (matchStx : Syntax) : TermElabM (Option Synta pure (matchStx.setArg 1 discrs) | discr :: discrs => -- Recall that - -- matchDiscr := parser! optional (ident >> ":") >> termParser + -- matchDiscr := leading_parser optional (ident >> ":") >> termParser let term := discr[1] match (← isLocalIdent? term) with | some _ => loop discrs (discrsNew.push discr) @@ -894,7 +894,7 @@ private def waitExpectedTypeAndDiscrs (matchStx : Syntax) (expectedType? : Optio /- ``` -parser!:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> matchAlts +leading_parser:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> matchAlts ``` Remark the `optIdent` must be `none` at `matchDiscr`. They are expanded by `expandMatchDiscr?`. -/ @@ -918,7 +918,7 @@ where isAtomicIdent (stx : Syntax) : Bool := stx.isIdent && stx.getId.eraseMacroScopes.isAtomic --- parser! "match " >> sepBy1 termParser ", " >> optType >> " with " >> matchAlts +-- leading_parser "match " >> sepBy1 termParser ", " >> optType >> " with " >> matchAlts @[builtinTermElab «match»] def elabMatch : TermElab := fun stx expectedType? => do match stx with | `(match $discr:term with | $y:ident => $rhs:term) => @@ -940,7 +940,7 @@ where builtin_initialize registerTraceClass `Elab.match --- parser!:leadPrec "nomatch " >> termParser +-- leading_parser:leadPrec "nomatch " >> termParser @[builtinTermElab «nomatch»] def elabNoMatch : TermElab := fun stx expectedType? => match stx with | `(nomatch $discrExpr) => do diff --git a/stage0/src/Lean/Elab/MutualDef.lean b/stage0/src/Lean/Elab/MutualDef.lean index 1358f0754d..4b739e9e70 100644 --- a/stage0/src/Lean/Elab/MutualDef.lean +++ b/stage0/src/Lean/Elab/MutualDef.lean @@ -154,8 +154,8 @@ private def expandWhereDeclsAsStructInst : Macro /- Recall that ``` -def declValSimple := parser! " :=\n" >> termParser >> optional Term.whereDecls -def declValEqns := parser! Term.matchAltsWhereDecls +def declValSimple := leading_parser " :=\n" >> termParser >> optional Term.whereDecls +def declValEqns := leading_parser Term.matchAltsWhereDecls def declVal := declValSimple <|> declValEqns <|> Term.whereDecls ``` -/ diff --git a/stage0/src/Lean/Elab/StructInst.lean b/stage0/src/Lean/Elab/StructInst.lean index 328fa2ccd6..44a51fcf22 100644 --- a/stage0/src/Lean/Elab/StructInst.lean +++ b/stage0/src/Lean/Elab/StructInst.lean @@ -86,7 +86,7 @@ private def getStructSource (stx : Syntax) : TermElabM Source := /- We say a `{ ... }` notation is a `modifyOp` if it contains only one ``` - def structInstArrayRef := parser! "[" >> termParser >>"]" + def structInstArrayRef := leading_parser "[" >> termParser >>"]" ``` -/ private def isModifyOp? (stx : Syntax) : TermElabM (Option Syntax) := do @@ -95,8 +95,8 @@ private def isModifyOp? (stx : Syntax) : TermElabM (Option Syntax) := do let arg := p[0] /- Remark: the syntax for `structInstField` is ``` - def structInstLVal := parser! (ident <|> numLit <|> structInstArrayRef) >> many (group ("." >> (ident <|> numLit)) <|> structInstArrayRef) - def structInstField := parser! structInstLVal >> " := " >> termParser + def structInstLVal := leading_parser (ident <|> numLit <|> structInstArrayRef) >> many (group ("." >> (ident <|> numLit)) <|> structInstArrayRef) + def structInstField := leading_parser structInstLVal >> " := " >> termParser ``` -/ let lval := arg[0] @@ -255,9 +255,9 @@ instance : ToString (Field Struct) := ⟨toString ∘ format⟩ /- Recall that `structInstField` elements have the form ``` - def structInstField := parser! structInstLVal >> " := " >> termParser - def structInstLVal := parser! (ident <|> numLit <|> structInstArrayRef) >> many (("." >> (ident <|> numLit)) <|> structInstArrayRef) - def structInstArrayRef := parser! "[" >> termParser >>"]" + def structInstField := leading_parser structInstLVal >> " := " >> termParser + def structInstLVal := leading_parser (ident <|> numLit <|> structInstArrayRef) >> many (("." >> (ident <|> numLit)) <|> structInstArrayRef) + def structInstArrayRef := leading_parser "[" >> termParser >>"]" ``` -/ -- Remark: this code relies on the fact that `expandStruct` only transforms `fieldLHS.fieldName` @@ -293,7 +293,7 @@ private def toFieldLHS (stx : Syntax) : Except String FieldLHS := private def mkStructView (stx : Syntax) (structName : Name) (source : Source) : Except String Struct := do /- Recall that `stx` is of the form ``` - parser! "{" >> optional (atomic (termParser >> " with ")) + leading_parser "{" >> optional (atomic (termParser >> " with ")) >> manyIndent (group (structInstField >> optional ", ")) >> optional ".." >> optional (" : " >> termParser) diff --git a/stage0/src/Lean/Elab/Structure.lean b/stage0/src/Lean/Elab/Structure.lean index 5942766b96..fae10e57af 100644 --- a/stage0/src/Lean/Elab/Structure.lean +++ b/stage0/src/Lean/Elab/Structure.lean @@ -18,7 +18,7 @@ open Meta /- Recall that the `structure command syntax is ``` -parser! (structureTk <|> classTk) >> declId >> many Term.bracketedBinder >> optional «extends» >> Term.optType >> optional (" := " >> optional structCtor >> structFields) +leading_parser (structureTk <|> classTk) >> declId >> many Term.bracketedBinder >> optional «extends» >> Term.optType >> optional (" := " >> optional structCtor >> structFields) ``` -/ @@ -96,7 +96,7 @@ private def defaultCtorName := `mk /- The structure constructor syntax is ``` -parser! try (declModifiers >> ident >> optional inferMod >> " :: ") +leading_parser try (declModifiers >> ident >> optional inferMod >> " :: ") ``` -/ private def expandCtor (structStx : Syntax) (structModifiers : Modifiers) (structDeclName : Name) : TermElabM StructCtorView := do @@ -141,11 +141,11 @@ def checkValidFieldModifier (modifiers : Modifiers) : TermElabM Unit := do /- ``` -def structExplicitBinder := parser! atomic (declModifiers true >> "(") >> many1 ident >> optional inferMod >> optDeclSig >> optional Term.binderDefault >> ")" -def structImplicitBinder := parser! atomic (declModifiers true >> "{") >> many1 ident >> optional inferMod >> declSig >> "}" -def structInstBinder := parser! atomic (declModifiers true >> "[") >> many1 ident >> optional inferMod >> declSig >> "]" -def structSimpleBinder := parser! atomic (declModifiers true >> ident) >> optional inferMod >> optDeclSig >> optional Term.binderDefault -def structFields := parser! many (structExplicitBinder <|> structImplicitBinder <|> structInstBinder) +def structExplicitBinder := leading_parser atomic (declModifiers true >> "(") >> many1 ident >> optional inferMod >> optDeclSig >> optional Term.binderDefault >> ")" +def structImplicitBinder := leading_parser atomic (declModifiers true >> "{") >> many1 ident >> optional inferMod >> declSig >> "}" +def structInstBinder := leading_parser atomic (declModifiers true >> "[") >> many1 ident >> optional inferMod >> declSig >> "]" +def structSimpleBinder := leading_parser atomic (declModifiers true >> ident) >> optional inferMod >> optDeclSig >> optional Term.binderDefault +def structFields := leading_parser many (structExplicitBinder <|> structImplicitBinder <|> structInstBinder) ``` -/ private def expandFields (structStx : Syntax) (structModifiers : Modifiers) (structDeclName : Name) : TermElabM (Array StructFieldView) := @@ -180,7 +180,7 @@ private def expandFields (structStx : Syntax) (structModifiers : Modifiers) (str let optBinderDefault := fieldBinder[5] if optBinderDefault.isNone then none else - -- binderDefault := parser! " := " >> termParser + -- binderDefault := leading_parser " := " >> termParser some optBinderDefault[0][1] let idents := fieldBinder[2].getArgs idents.foldlM (init := views) fun (views : Array StructFieldView) ident => withRef ident do @@ -527,15 +527,15 @@ private def elabStructureView (view : StructView) : TermElabM Unit := do addDefaults lctx defaultAuxDecls /- -parser! (structureTk <|> classTk) >> declId >> many Term.bracketedBinder >> optional «extends» >> Term.optType >> " := " >> optional structCtor >> structFields >> optDeriving +leading_parser (structureTk <|> classTk) >> declId >> many Term.bracketedBinder >> optional «extends» >> Term.optType >> " := " >> optional structCtor >> structFields >> optDeriving where -def «extends» := parser! " extends " >> sepBy1 termParser ", " -def typeSpec := parser! " : " >> termParser +def «extends» := leading_parser " extends " >> sepBy1 termParser ", " +def typeSpec := leading_parser " : " >> termParser def optType : Parser := optional typeSpec -def structFields := parser! many (structExplicitBinder <|> structImplicitBinder <|> structInstBinder) -def structCtor := parser! try (declModifiers >> ident >> optional inferMod >> " :: ") +def structFields := leading_parser many (structExplicitBinder <|> structImplicitBinder <|> structInstBinder) +def structCtor := leading_parser try (declModifiers >> ident >> optional inferMod >> " :: ") -/ def elabStructure (modifiers : Modifiers) (stx : Syntax) : CommandElabM Unit := do diff --git a/stage0/src/Lean/Elab/Syntax.lean b/stage0/src/Lean/Elab/Syntax.lean index 092bf4ec33..a1ef987a49 100644 --- a/stage0/src/Lean/Elab/Syntax.lean +++ b/stage0/src/Lean/Elab/Syntax.lean @@ -9,7 +9,7 @@ import Lean.Parser.Syntax namespace Lean.Elab.Term /- Expand `optional «precedence»` where - «precedence» := parser! " : " >> precedenceParser -/ + «precedence» := leading_parser " : " >> precedenceParser -/ def expandOptPrecedence (stx : Syntax) : MacroM (Option Nat) := if stx.isNone then return none @@ -284,7 +284,7 @@ private partial def isAtomLikeSyntax (stx : Syntax) : Bool := kind == `Lean.Parser.Syntax.atom /- -def «syntax» := parser! attrKind >> "syntax " >> optPrecedence >> optNamedName >> optNamedPrio >> many1 syntaxParser >> " : " >> ident +def «syntax» := leading_parser attrKind >> "syntax " >> optPrecedence >> optNamedName >> optNamedPrio >> many1 syntaxParser >> " : " >> ident -/ @[builtinCommandElab «syntax»] def elabSyntax : CommandElab := fun stx => do let env ← getEnv @@ -329,7 +329,7 @@ def «syntax» := parser! attrKind >> "syntax " >> optPrecedence >> optName withMacroExpansion stx d <| elabCommand d /- -def syntaxAbbrev := parser! "syntax " >> ident >> " := " >> many1 syntaxParser +def syntaxAbbrev := leading_parser "syntax " >> ident >> " := " >> many1 syntaxParser -/ @[builtinCommandElab «syntaxAbbrev»] def elabSyntaxAbbrev : CommandElab := fun stx => do let declName := stx[1] @@ -541,7 +541,7 @@ def expandMacroArgIntoPattern (stx : Syntax) : MacroM Syntax := do mkNullNode #[mkAntiquotSuffixSpliceNode kind (mkAntiquotNode id) suffix] -/- «macro» := parser! suppressInsideQuot (Term.attrKind >> "macro " >> optPrecedence >> optNamedName >> optNamedPrio >> macroHead >> many macroArg >> macroTail) -/ +/- «macro» := leading_parser suppressInsideQuot (Term.attrKind >> "macro " >> optPrecedence >> optNamedName >> optNamedPrio >> macroHead >> many macroArg >> macroTail) -/ def expandMacro (currNamespace : Name) (stx : Syntax) : CommandElabM Syntax := do let attrKind := stx[0] let prec := stx[2].getOptional? @@ -592,7 +592,7 @@ builtin_initialize /- def elabTail := try (" : " >> ident) >> darrow >> termParser -def «elab» := parser! suppressInsideQuot (Term.attrKind >> "elab " >> optPrecedence >> optNamedName >> optNamedPrio >> elabHead >> many elabArg >> elabTail) +def «elab» := leading_parser suppressInsideQuot (Term.attrKind >> "elab " >> optPrecedence >> optNamedName >> optNamedPrio >> elabHead >> many elabArg >> elabTail) -/ def expandElab (currNamespace : Name) (stx : Syntax) : CommandElabM Syntax := do let ref := stx diff --git a/stage0/src/Lean/Elab/Tactic/Induction.lean b/stage0/src/Lean/Elab/Tactic/Induction.lean index 55f6a42eba..37d8c843ac 100644 --- a/stage0/src/Lean/Elab/Tactic/Induction.lean +++ b/stage0/src/Lean/Elab/Tactic/Induction.lean @@ -243,7 +243,7 @@ end ElimApp Recall that ``` generalizingVars := optional (" generalizing " >> many1 ident) - «induction» := parser! nonReservedSymbol "induction " >> majorPremise >> usingRec >> generalizingVars >> optional inductionAlts + «induction» := leading_parser nonReservedSymbol "induction " >> majorPremise >> usingRec >> generalizingVars >> optional inductionAlts ``` `stx` is syntax for `induction`. -/ private def getGeneralizingFVarIds (stx : Syntax) : TacticM (Array FVarId) := @@ -343,7 +343,7 @@ private def getElimNameInfo (optElimId : Syntax) (targets : Array Expr) (inducti appendGoals result.others.toList -- Recall that --- majorPremise := parser! optional (try (ident >> " : ")) >> termParser +-- majorPremise := leading_parser optional (try (ident >> " : ")) >> termParser private def getTargetHypothesisName? (target : Syntax) : Option Name := if target[0].isNone then none @@ -377,7 +377,7 @@ def elabTargets (targets : Array Syntax) : TacticM (Array Expr) := builtin_initialize registerTraceClass `Elab.cases @[builtinTactic Lean.Parser.Tactic.cases] def evalCases : Tactic := fun stx => focus do - -- parser! nonReservedSymbol "cases " >> sepBy1 (group majorPremise) ", " >> usingRec >> optInductionAlts + -- leading_parser nonReservedSymbol "cases " >> sepBy1 (group majorPremise) ", " >> usingRec >> optInductionAlts let targets ← elabTargets stx[1].getSepArgs let optInductionAlts := stx[3] let optPreTac := getOptPreTacOfOptInductionAlts optInductionAlts diff --git a/stage0/src/Lean/Elab/Tactic/Injection.lean b/stage0/src/Lean/Elab/Tactic/Injection.lean index 5e60eb6a05..0e79fedcd9 100644 --- a/stage0/src/Lean/Elab/Tactic/Injection.lean +++ b/stage0/src/Lean/Elab/Tactic/Injection.lean @@ -19,7 +19,7 @@ private def checkUnusedIds (mvarId : MVarId) (unusedIds : List Name) : MetaM Uni Meta.throwTacticEx `injection mvarId m!"too many identifiers provided, unused: {unusedIds}" @[builtinTactic «injection»] def evalInjection : Tactic := fun stx => do - -- parser! nonReservedSymbol "injection " >> termParser >> withIds + -- leading_parser nonReservedSymbol "injection " >> termParser >> withIds let fvarId ← elabAsFVar stx[1] let ids := getInjectionNewIds stx[2] liftMetaTactic fun mvarId => do diff --git a/stage0/src/Lean/Elab/Tactic/Location.lean b/stage0/src/Lean/Elab/Tactic/Location.lean index 3ab5916f59..0b1eb8d923 100644 --- a/stage0/src/Lean/Elab/Tactic/Location.lean +++ b/stage0/src/Lean/Elab/Tactic/Location.lean @@ -13,10 +13,10 @@ inductive Location where /- Recall that ``` -def locationWildcard := parser! "*" -def locationTarget := parser! unicodeSymbol "⊢" "|-" -def locationHyp := parser! many1 ident -def location := parser! "at " >> (locationWildcard <|> locationTarget <|> locationHyp) +def locationWildcard := leading_parser "*" +def locationTarget := leading_parser unicodeSymbol "⊢" "|-" +def locationHyp := leading_parser many1 ident +def location := leading_parser "at " >> (locationWildcard <|> locationTarget <|> locationHyp) ``` -/ def expandLocation (stx : Syntax) : Location := diff --git a/stage0/src/Lean/Elab/Tactic/Rewrite.lean b/stage0/src/Lean/Elab/Tactic/Rewrite.lean index 6c46a0fc70..ca4dda1fd1 100644 --- a/stage0/src/Lean/Elab/Tactic/Rewrite.lean +++ b/stage0/src/Lean/Elab/Tactic/Rewrite.lean @@ -75,8 +75,8 @@ def evalRewriteCore (mode : TransparencyMode) : Tactic := fun stx => do /- ``` -def rwRule := parser! optional (unicodeSymbol "←" "<-") >> termParser -def «rewrite» := parser! "rewrite" >> rwRule >> optional location +def rwRule := leading_parser optional (unicodeSymbol "←" "<-") >> termParser +def «rewrite» := leading_parser "rewrite" >> rwRule >> optional location ``` -/ @[builtinTactic Lean.Parser.Tactic.rewrite] def evalRewrite : Tactic := diff --git a/stage0/src/Lean/Meta/RecursorInfo.lean b/stage0/src/Lean/Meta/RecursorInfo.lean index f4db964d26..94dbe715a5 100644 --- a/stage0/src/Lean/Meta/RecursorInfo.lean +++ b/stage0/src/Lean/Meta/RecursorInfo.lean @@ -238,7 +238,7 @@ private def mkRecursorInfoAux (cinfo : ConstantInfo) (majorPos? : Option Nat) : | _ => throwError! "invalid user defined recursor '{declName}', type of the major premise must be of the form (I ...), where I is a constant" /- -@[builtinAttrParser] def «recursor» := parser! "recursor " >> numLit +@[builtinAttrParser] def «recursor» := leading_parser "recursor " >> numLit -/ def Attribute.Recursor.getMajorPos (stx : Syntax) : AttrM Nat := do if stx.getKind == `Lean.Parser.Attr.recursor then diff --git a/stage0/src/Lean/Parser/Attr.lean b/stage0/src/Lean/Parser/Attr.lean index 4a8fb75d83..69785a09dc 100644 --- a/stage0/src/Lean/Parser/Attr.lean +++ b/stage0/src/Lean/Parser/Attr.lean @@ -32,19 +32,19 @@ end Priority namespace Attr -@[builtinAttrParser] def simple := parser! ident >> optional (priorityParser <|> ident) +@[builtinAttrParser] def simple := leading_parser ident >> optional (priorityParser <|> ident) /- Remark, We can't use `simple` for `class`, `instance`, `export`, and `macro` because they are keywords. -/ -@[builtinAttrParser] def «macro» := parser! "macro " >> ident -@[builtinAttrParser] def «export» := parser! "export " >> ident +@[builtinAttrParser] def «macro» := leading_parser "macro " >> ident +@[builtinAttrParser] def «export» := leading_parser "export " >> ident /- We don't use `simple` for recursor because the argument is not a priority-/ -@[builtinAttrParser] def recursor := parser! nonReservedSymbol "recursor " >> numLit -@[builtinAttrParser] def «class» := parser! "class" -@[builtinAttrParser] def «instance» := parser! "instance" >> optional priorityParser -@[builtinAttrParser] def defaultInstance := parser! nonReservedSymbol "defaultInstance " >> optional priorityParser +@[builtinAttrParser] def recursor := leading_parser nonReservedSymbol "recursor " >> numLit +@[builtinAttrParser] def «class» := leading_parser "class" +@[builtinAttrParser] def «instance» := leading_parser "instance" >> optional priorityParser +@[builtinAttrParser] def defaultInstance := leading_parser nonReservedSymbol "defaultInstance " >> optional priorityParser -def externEntry := parser! optional ident >> optional (nonReservedSymbol "inline ") >> strLit -@[builtinAttrParser] def extern := parser! nonReservedSymbol "extern " >> optional numLit >> many externEntry +def externEntry := leading_parser optional ident >> optional (nonReservedSymbol "inline ") >> strLit +@[builtinAttrParser] def extern := leading_parser nonReservedSymbol "extern " >> optional numLit >> many externEntry end Attr diff --git a/stage0/src/Lean/Parser/Basic.lean b/stage0/src/Lean/Parser/Basic.lean index e5f8b27469..566df93fb6 100644 --- a/stage0/src/Lean/Parser/Basic.lean +++ b/stage0/src/Lean/Parser/Basic.lean @@ -28,7 +28,7 @@ constructing and deconstructing countless monadic return values. Instead of expl push (zero or more of) them onto a syntax stack inside the linear state. Chaining parsers via `>>` accumulates their output on the stack. Combinators such as `node` then pop off all syntax objects produced during their invocation and wrap them in a single `Syntax.node` object that is again pushed on this stack. Instead of calling `node` directly, we -usually use the macro `parser! p`, which unfolds to `node k p` where the new syntax node kind `k` is the name of the +usually use the macro `leading_parser p`, which unfolds to `node k p` where the new syntax node kind `k` is the name of the declaration being defined. The lack of a dedicated lexer ensures we can modify and replace the lexical grammar at any point, and simplifies diff --git a/stage0/src/Lean/Parser/Command.lean b/stage0/src/Lean/Parser/Command.lean index 96ad15a40a..aafba4f661 100644 --- a/stage0/src/Lean/Parser/Command.lean +++ b/stage0/src/Lean/Parser/Command.lean @@ -15,110 +15,110 @@ namespace Parser Multiple command will be put in a `null node, but a single command will not (so that you can directly match against a quotation in a command kind's elaborator). -/ -- TODO: use two separate quotation parsers with parser priorities instead -@[builtinTermParser] def Term.quot := parser! "`(" >> toggleInsideQuot (termParser <|> many1Unbox commandParser) >> ")" +@[builtinTermParser] def Term.quot := leading_parser "`(" >> toggleInsideQuot (termParser <|> many1Unbox commandParser) >> ")" namespace Command -def namedPrio := parser! (atomic ("(" >> nonReservedSymbol "priority") >> " := " >> priorityParser >> ")") +def namedPrio := leading_parser (atomic ("(" >> nonReservedSymbol "priority") >> " := " >> priorityParser >> ")") def optNamedPrio := optional namedPrio -def «private» := parser! "private " -def «protected» := parser! "protected " +def «private» := leading_parser "private " +def «protected» := leading_parser "protected " def visibility := «private» <|> «protected» -def «noncomputable» := parser! "noncomputable " -def «unsafe» := parser! "unsafe " -def «partial» := parser! "partial " -def declModifiers (inline : Bool) := parser! optional docComment >> optional (Term.«attributes» >> if inline then skip else ppDedent ppLine) >> optional visibility >> optional «noncomputable» >> optional «unsafe» >> optional «partial» -def declId := parser! ident >> optional (".{" >> sepBy1 ident ", " >> "}") -def declSig := parser! many (ppSpace >> (Term.simpleBinderWithoutType <|> Term.bracketedBinder)) >> Term.typeSpec -def optDeclSig := parser! many (ppSpace >> (Term.simpleBinderWithoutType <|> Term.bracketedBinder)) >> Term.optType -def declValSimple := parser! " :=\n" >> termParser >> optional Term.whereDecls -def declValEqns := parser! Term.matchAltsWhereDecls +def «noncomputable» := leading_parser "noncomputable " +def «unsafe» := leading_parser "unsafe " +def «partial» := leading_parser "partial " +def declModifiers (inline : Bool) := leading_parser optional docComment >> optional (Term.«attributes» >> if inline then skip else ppDedent ppLine) >> optional visibility >> optional «noncomputable» >> optional «unsafe» >> optional «partial» +def declId := leading_parser ident >> optional (".{" >> sepBy1 ident ", " >> "}") +def declSig := leading_parser many (ppSpace >> (Term.simpleBinderWithoutType <|> Term.bracketedBinder)) >> Term.typeSpec +def optDeclSig := leading_parser many (ppSpace >> (Term.simpleBinderWithoutType <|> Term.bracketedBinder)) >> Term.optType +def declValSimple := leading_parser " :=\n" >> termParser >> optional Term.whereDecls +def declValEqns := leading_parser Term.matchAltsWhereDecls def declVal := declValSimple <|> declValEqns <|> Term.whereDecls -def «abbrev» := parser! "abbrev " >> declId >> optDeclSig >> declVal -def «def» := parser! "def " >> declId >> optDeclSig >> declVal -def «theorem» := parser! "theorem " >> declId >> declSig >> declVal -def «constant» := parser! "constant " >> declId >> declSig >> optional declValSimple -def «instance» := parser! Term.attrKind >> "instance " >> optNamedPrio >> optional declId >> declSig >> declVal -def «axiom» := parser! "axiom " >> declId >> declSig -def «example» := parser! "example " >> declSig >> declVal -def inferMod := parser! atomic (symbol "{" >> "}") -def ctor := parser! "\n| " >> declModifiers true >> ident >> optional inferMod >> optDeclSig -def optDeriving := parser! optional (atomic ("deriving " >> notSymbol "instance") >> sepBy1 ident ", ") -def «inductive» := parser! "inductive " >> declId >> optDeclSig >> optional (symbol ":=" <|> "where") >> many ctor >> optDeriving -def classInductive := parser! atomic (group (symbol "class " >> "inductive ")) >> declId >> optDeclSig >> optional (symbol ":=" <|> "where") >> many ctor >> optDeriving -def structExplicitBinder := parser! atomic (declModifiers true >> "(") >> many1 ident >> optional inferMod >> optDeclSig >> optional Term.binderDefault >> ")" -def structImplicitBinder := parser! atomic (declModifiers true >> "{") >> many1 ident >> optional inferMod >> declSig >> "}" -def structInstBinder := parser! atomic (declModifiers true >> "[") >> many1 ident >> optional inferMod >> declSig >> "]" -def structSimpleBinder := parser! atomic (declModifiers true >> ident) >> optional inferMod >> optDeclSig >> optional Term.binderDefault -def structFields := parser! manyIndent (ppLine >> checkColGe >>(structExplicitBinder <|> structImplicitBinder <|> structInstBinder <|> structSimpleBinder)) -def structCtor := parser! atomic (declModifiers true >> ident >> optional inferMod >> " :: ") -def structureTk := parser! "structure " -def classTk := parser! "class " -def «extends» := parser! " extends " >> sepBy1 termParser ", " -def «structure» := parser! +def «abbrev» := leading_parser "abbrev " >> declId >> optDeclSig >> declVal +def «def» := leading_parser "def " >> declId >> optDeclSig >> declVal +def «theorem» := leading_parser "theorem " >> declId >> declSig >> declVal +def «constant» := leading_parser "constant " >> declId >> declSig >> optional declValSimple +def «instance» := leading_parser Term.attrKind >> "instance " >> optNamedPrio >> optional declId >> declSig >> declVal +def «axiom» := leading_parser "axiom " >> declId >> declSig +def «example» := leading_parser "example " >> declSig >> declVal +def inferMod := leading_parser atomic (symbol "{" >> "}") +def ctor := leading_parser "\n| " >> declModifiers true >> ident >> optional inferMod >> optDeclSig +def optDeriving := leading_parser optional (atomic ("deriving " >> notSymbol "instance") >> sepBy1 ident ", ") +def «inductive» := leading_parser "inductive " >> declId >> optDeclSig >> optional (symbol ":=" <|> "where") >> many ctor >> optDeriving +def classInductive := leading_parser atomic (group (symbol "class " >> "inductive ")) >> declId >> optDeclSig >> optional (symbol ":=" <|> "where") >> many ctor >> optDeriving +def structExplicitBinder := leading_parser atomic (declModifiers true >> "(") >> many1 ident >> optional inferMod >> optDeclSig >> optional Term.binderDefault >> ")" +def structImplicitBinder := leading_parser atomic (declModifiers true >> "{") >> many1 ident >> optional inferMod >> declSig >> "}" +def structInstBinder := leading_parser atomic (declModifiers true >> "[") >> many1 ident >> optional inferMod >> declSig >> "]" +def structSimpleBinder := leading_parser atomic (declModifiers true >> ident) >> optional inferMod >> optDeclSig >> optional Term.binderDefault +def structFields := leading_parser manyIndent (ppLine >> checkColGe >>(structExplicitBinder <|> structImplicitBinder <|> structInstBinder <|> structSimpleBinder)) +def structCtor := leading_parser atomic (declModifiers true >> ident >> optional inferMod >> " :: ") +def structureTk := leading_parser "structure " +def classTk := leading_parser "class " +def «extends» := leading_parser " extends " >> sepBy1 termParser ", " +def «structure» := leading_parser (structureTk <|> classTk) >> declId >> many Term.bracketedBinder >> optional «extends» >> Term.optType >> optional ((symbol " := " <|> " where ") >> optional structCtor >> structFields) >> optDeriving -@[builtinCommandParser] def declaration := parser! +@[builtinCommandParser] def declaration := leading_parser declModifiers false >> («abbrev» <|> «def» <|> «theorem» <|> «constant» <|> «instance» <|> «axiom» <|> «example» <|> «inductive» <|> classInductive <|> «structure») -@[builtinCommandParser] def «deriving» := parser! "deriving " >> "instance " >> sepBy1 ident ", " >> " for " >> sepBy1 ident ", " -@[builtinCommandParser] def «section» := parser! "section " >> optional ident -@[builtinCommandParser] def «namespace» := parser! "namespace " >> ident -@[builtinCommandParser] def «end» := parser! "end " >> optional ident -@[builtinCommandParser] def «variable» := parser! "variable" >> many1 Term.bracketedBinder -@[builtinCommandParser] def «universe» := parser! "universe " >> ident -@[builtinCommandParser] def «universes» := parser! "universes " >> many1 ident -@[builtinCommandParser] def check := parser! "#check " >> termParser -@[builtinCommandParser] def check_failure := parser! "#check_failure " >> termParser -- Like `#check`, but succeeds only if term does not type check -@[builtinCommandParser] def reduce := parser! "#reduce " >> termParser -@[builtinCommandParser] def eval := parser! "#eval " >> termParser -@[builtinCommandParser] def synth := parser! "#synth " >> termParser -@[builtinCommandParser] def exit := parser! "#exit" -@[builtinCommandParser] def print := parser! "#print " >> (ident <|> strLit) -@[builtinCommandParser] def printAxioms := parser! "#print " >> nonReservedSymbol "axioms " >> ident -@[builtinCommandParser] def «resolve_name» := parser! "#resolve_name " >> ident -@[builtinCommandParser] def «init_quot» := parser! "init_quot" +@[builtinCommandParser] def «deriving» := leading_parser "deriving " >> "instance " >> sepBy1 ident ", " >> " for " >> sepBy1 ident ", " +@[builtinCommandParser] def «section» := leading_parser "section " >> optional ident +@[builtinCommandParser] def «namespace» := leading_parser "namespace " >> ident +@[builtinCommandParser] def «end» := leading_parser "end " >> optional ident +@[builtinCommandParser] def «variable» := leading_parser "variable" >> many1 Term.bracketedBinder +@[builtinCommandParser] def «universe» := leading_parser "universe " >> ident +@[builtinCommandParser] def «universes» := leading_parser "universes " >> many1 ident +@[builtinCommandParser] def check := leading_parser "#check " >> termParser +@[builtinCommandParser] def check_failure := leading_parser "#check_failure " >> termParser -- Like `#check`, but succeeds only if term does not type check +@[builtinCommandParser] def reduce := leading_parser "#reduce " >> termParser +@[builtinCommandParser] def eval := leading_parser "#eval " >> termParser +@[builtinCommandParser] def synth := leading_parser "#synth " >> termParser +@[builtinCommandParser] def exit := leading_parser "#exit" +@[builtinCommandParser] def print := leading_parser "#print " >> (ident <|> strLit) +@[builtinCommandParser] def printAxioms := leading_parser "#print " >> nonReservedSymbol "axioms " >> ident +@[builtinCommandParser] def «resolve_name» := leading_parser "#resolve_name " >> ident +@[builtinCommandParser] def «init_quot» := leading_parser "init_quot" def optionValue := nonReservedSymbol "true" <|> nonReservedSymbol "false" <|> strLit <|> numLit -@[builtinCommandParser] def «set_option» := parser! "set_option " >> ident >> ppSpace >> optionValue -def eraseAttr := parser! "-" >> ident -@[builtinCommandParser] def «attribute» := parser! "attribute " >> "[" >> sepBy1 (eraseAttr <|> Term.attrInstance) ", " >> "] " >> many1 ident -@[builtinCommandParser] def «export» := parser! "export " >> ident >> "(" >> many1 ident >> ")" -def openHiding := parser! atomic (ident >> "hiding") >> many1 ident -def openRenamingItem := parser! ident >> unicodeSymbol "→" "->" >> ident -def openRenaming := parser! atomic (ident >> "renaming") >> sepBy1 openRenamingItem ", " -def openOnly := parser! atomic (ident >> "(") >> many1 ident >> ")" -def openSimple := parser! many1 ident +@[builtinCommandParser] def «set_option» := leading_parser "set_option " >> ident >> ppSpace >> optionValue +def eraseAttr := leading_parser "-" >> ident +@[builtinCommandParser] def «attribute» := leading_parser "attribute " >> "[" >> sepBy1 (eraseAttr <|> Term.attrInstance) ", " >> "] " >> many1 ident +@[builtinCommandParser] def «export» := leading_parser "export " >> ident >> "(" >> many1 ident >> ")" +def openHiding := leading_parser atomic (ident >> "hiding") >> many1 ident +def openRenamingItem := leading_parser ident >> unicodeSymbol "→" "->" >> ident +def openRenaming := leading_parser atomic (ident >> "renaming") >> sepBy1 openRenamingItem ", " +def openOnly := leading_parser atomic (ident >> "(") >> many1 ident >> ")" +def openSimple := leading_parser many1 ident def openDecl := openHiding <|> openRenaming <|> openOnly <|> openSimple -@[builtinCommandParser] def «open» := parser! "open " >> openDecl +@[builtinCommandParser] def «open» := leading_parser "open " >> openDecl -@[builtinCommandParser] def «mutual» := parser! "mutual " >> many1 (ppLine >> notSymbol "end" >> commandParser) >> ppDedent (ppLine >> "end") -@[builtinCommandParser] def «initialize» := parser! "initialize " >> optional (atomic (ident >> Term.typeSpec >> Term.leftArrow)) >> Term.doSeq -@[builtinCommandParser] def «builtin_initialize» := parser! "builtin_initialize " >> optional (atomic (ident >> Term.typeSpec >> Term.leftArrow)) >> Term.doSeq +@[builtinCommandParser] def «mutual» := leading_parser "mutual " >> many1 (ppLine >> notSymbol "end" >> commandParser) >> ppDedent (ppLine >> "end") +@[builtinCommandParser] def «initialize» := leading_parser "initialize " >> optional (atomic (ident >> Term.typeSpec >> Term.leftArrow)) >> Term.doSeq +@[builtinCommandParser] def «builtin_initialize» := leading_parser "builtin_initialize " >> optional (atomic (ident >> Term.typeSpec >> Term.leftArrow)) >> Term.doSeq -@[builtinCommandParser] def «in» := tparser! " in " >> commandParser +@[builtinCommandParser] def «in» := trailing_parser " in " >> commandParser @[runBuiltinParserAttributeHooks] abbrev declModifiersF := declModifiers false @[runBuiltinParserAttributeHooks] abbrev declModifiersT := declModifiers true builtin_initialize - registerParserAlias! "declModifiers" declModifiersF - registerParserAlias! "nestedDeclModifiers" declModifiersT - registerParserAlias! "declId" declId - registerParserAlias! "declSig" declSig - registerParserAlias! "optDeclSig" optDeclSig - registerParserAlias! "openDecl" openDecl + register_parser_alias "declModifiers" declModifiersF + register_parser_alias "nestedDeclModifiers" declModifiersT + register_parser_alias "declId" declId + register_parser_alias "declSig" declSig + register_parser_alias "optDeclSig" optDeclSig + register_parser_alias "openDecl" openDecl end Command namespace Term -@[builtinTermParser] def «open» := parser!:leadPrec "open " >> Command.openDecl >> " in " >> termParser -@[builtinTermParser] def «set_option» := parser!:leadPrec "set_option " >> ident >> ppSpace >> Command.optionValue >> " in " >> termParser +@[builtinTermParser] def «open» := leading_parser:leadPrec "open " >> Command.openDecl >> " in " >> termParser +@[builtinTermParser] def «set_option» := leading_parser:leadPrec "set_option " >> ident >> ppSpace >> Command.optionValue >> " in " >> termParser end Term namespace Tactic -@[builtinTacticParser] def «open» := parser!:leadPrec "open " >> Command.openDecl >> " in " >> tacticSeq -@[builtinTacticParser] def «set_option» := parser!:leadPrec "set_option " >> ident >> ppSpace >> Command.optionValue >> " in " >> tacticSeq +@[builtinTacticParser] def «open» := leading_parser:leadPrec "open " >> Command.openDecl >> " in " >> tacticSeq +@[builtinTacticParser] def «set_option» := leading_parser:leadPrec "set_option " >> ident >> ppSpace >> Command.optionValue >> " in " >> tacticSeq end Tactic end Parser diff --git a/stage0/src/Lean/Parser/Do.lean b/stage0/src/Lean/Parser/Do.lean index 3e47830e15..73a2d510d0 100644 --- a/stage0/src/Lean/Parser/Do.lean +++ b/stage0/src/Lean/Parser/Do.lean @@ -16,11 +16,11 @@ builtin_initialize registerBuiltinDynamicParserAttribute `doElemParser `doElem namespace Term def leftArrow : Parser := unicodeSymbol " ← " " <- " -@[builtinTermParser] def liftMethod := parser!:minPrec leftArrow >> termParser +@[builtinTermParser] def liftMethod := leading_parser:minPrec leftArrow >> termParser -def doSeqItem := parser! ppLine >> doElemParser >> optional "; " -def doSeqIndent := parser! many1Indent doSeqItem -def doSeqBracketed := parser! "{" >> withoutPosition (many1 doSeqItem) >> ppLine >> "}" +def doSeqItem := leading_parser ppLine >> doElemParser >> optional "; " +def doSeqIndent := leading_parser many1Indent doSeqItem +def doSeqBracketed := leading_parser "{" >> withoutPosition (many1 doSeqItem) >> ppLine >> "}" def doSeq := doSeqBracketed <|> doSeqIndent def termBeforeDo := withForbidden "do" termParser @@ -28,28 +28,28 @@ def termBeforeDo := withForbidden "do" termParser attribute [runBuiltinParserAttributeHooks] doSeq termBeforeDo builtin_initialize - registerParserAlias! "doSeq" doSeq - registerParserAlias! "termBeforeDo" termBeforeDo + register_parser_alias "doSeq" doSeq + register_parser_alias "termBeforeDo" termBeforeDo def notFollowedByRedefinedTermToken := -- Remark: we don't currently support `open` and `set_option` in `do`-blocks, but we include them in the following list to fix the ambiguity -- "open" command following `do`-block. If we don't add `do`, then users would have to indent `do` blocks or use `{ ... }`. notFollowedBy ("set_option" <|> "open" <|> "if" <|> "match" <|> "let" <|> "have" <|> "do" <|> "dbgTrace!" <|> "assert!" <|> "for" <|> "unless" <|> "return" <|> symbol "try") "token at 'do' element" -@[builtinDoElemParser] def doLet := parser! "let " >> optional "mut " >> letDecl +@[builtinDoElemParser] def doLet := leading_parser "let " >> optional "mut " >> letDecl -@[builtinDoElemParser] def doLetRec := parser! group ("let " >> nonReservedSymbol "rec ") >> letRecDecls -def doIdDecl := parser! atomic (ident >> optType >> leftArrow) >> doElemParser -def doPatDecl := parser! atomic (termParser >> leftArrow) >> doElemParser >> optional (checkColGt >> " | " >> doElemParser) -@[builtinDoElemParser] def doLetArrow := parser! withPosition ("let " >> optional "mut " >> (doIdDecl <|> doPatDecl)) +@[builtinDoElemParser] def doLetRec := leading_parser group ("let " >> nonReservedSymbol "rec ") >> letRecDecls +def doIdDecl := leading_parser atomic (ident >> optType >> leftArrow) >> doElemParser +def doPatDecl := leading_parser atomic (termParser >> leftArrow) >> doElemParser >> optional (checkColGt >> " | " >> doElemParser) +@[builtinDoElemParser] def doLetArrow := leading_parser withPosition ("let " >> optional "mut " >> (doIdDecl <|> doPatDecl)) -- We use `letIdDeclNoBinders` to define `doReassign`. -- Motivation: we do not reassign functions, and avoid parser conflict def letIdDeclNoBinders := node `Lean.Parser.Term.letIdDecl $ atomic (ident >> pushNone >> optType >> " := ") >> termParser -@[builtinDoElemParser] def doReassign := parser! notFollowedByRedefinedTermToken >> (letIdDeclNoBinders <|> letPatDecl) -@[builtinDoElemParser] def doReassignArrow := parser! notFollowedByRedefinedTermToken >> withPosition (doIdDecl <|> doPatDecl) -@[builtinDoElemParser] def doHave := parser! "have " >> Term.haveDecl +@[builtinDoElemParser] def doReassign := leading_parser notFollowedByRedefinedTermToken >> (letIdDeclNoBinders <|> letPatDecl) +@[builtinDoElemParser] def doReassignArrow := leading_parser notFollowedByRedefinedTermToken >> withPosition (doIdDecl <|> doPatDecl) +@[builtinDoElemParser] def doHave := leading_parser "have " >> Term.haveDecl /- In `do` blocks, we support `if` without an `else`. Thus, we use indentation to prevent examples such as ``` @@ -81,32 +81,32 @@ else if c_2 then -/ def elseIf := atomic (group (withPosition (" else " >> checkLineEq >> " if "))) -- ensure `if $e then ...` still binds to `e:term` -def doIfLetPure := parser! " := " >> termParser -def doIfLetBind := parser! " ← " >> termParser +def doIfLetPure := leading_parser " := " >> termParser +def doIfLetBind := leading_parser " ← " >> termParser def doIfLet := nodeWithAntiquot "doIfLet" `Lean.Parser.Term.doIfLet <| "let " >> termParser >> (doIfLetPure <|> doIfLetBind) def doIfProp := nodeWithAntiquot "doIfProp" `Lean.Parser.Term.doIfProp <| optIdent >> termParser def doIfCond := withAntiquot (mkAntiquot "doIfCond" none (anonymous := false)) <| doIfLet <|> doIfProp -@[builtinDoElemParser] def doIf := parser! withPosition $ +@[builtinDoElemParser] def doIf := leading_parser withPosition $ "if " >> doIfCond >> " then " >> doSeq >> many (checkColGe "'else if' in 'do' must be indented" >> group (elseIf >> doIfCond >> " then " >> doSeq)) >> optional (checkColGe "'else' in 'do' must be indented" >> " else " >> doSeq) -@[builtinDoElemParser] def doUnless := parser! "unless " >> withForbidden "do" termParser >> "do " >> doSeq -def doForDecl := parser! termParser >> " in " >> withForbidden "do" termParser -@[builtinDoElemParser] def doFor := parser! "for " >> sepBy1 doForDecl ", " >> "do " >> doSeq +@[builtinDoElemParser] def doUnless := leading_parser "unless " >> withForbidden "do" termParser >> "do " >> doSeq +def doForDecl := leading_parser termParser >> " in " >> withForbidden "do" termParser +@[builtinDoElemParser] def doFor := leading_parser "for " >> sepBy1 doForDecl ", " >> "do " >> doSeq def doMatchAlts := matchAlts (rhsParser := doSeq) -@[builtinDoElemParser] def doMatch := parser!:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> doMatchAlts +@[builtinDoElemParser] def doMatch := leading_parser:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> doMatchAlts -def doCatch := parser! atomic ("catch " >> binderIdent) >> optional (" : " >> termParser) >> darrow >> doSeq -def doCatchMatch := parser! "catch " >> doMatchAlts -def doFinally := parser! "finally " >> doSeq -@[builtinDoElemParser] def doTry := parser! "try " >> doSeq >> many (doCatch <|> doCatchMatch) >> optional doFinally +def doCatch := leading_parser atomic ("catch " >> binderIdent) >> optional (" : " >> termParser) >> darrow >> doSeq +def doCatchMatch := leading_parser "catch " >> doMatchAlts +def doFinally := leading_parser "finally " >> doSeq +@[builtinDoElemParser] def doTry := leading_parser "try " >> doSeq >> many (doCatch <|> doCatchMatch) >> optional doFinally -@[builtinDoElemParser] def doBreak := parser! "break" -@[builtinDoElemParser] def doContinue := parser! "continue" -@[builtinDoElemParser] def doReturn := parser!:leadPrec withPosition ("return " >> optional (checkLineEq >> termParser)) -@[builtinDoElemParser] def doDbgTrace := parser!:leadPrec "dbgTrace! " >> ((interpolatedStr termParser) <|> termParser) -@[builtinDoElemParser] def doAssert := parser!:leadPrec "assert! " >> termParser +@[builtinDoElemParser] def doBreak := leading_parser "break" +@[builtinDoElemParser] def doContinue := leading_parser "continue" +@[builtinDoElemParser] def doReturn := leading_parser:leadPrec withPosition ("return " >> optional (checkLineEq >> termParser)) +@[builtinDoElemParser] def doDbgTrace := leading_parser:leadPrec "dbgTrace! " >> ((interpolatedStr termParser) <|> termParser) +@[builtinDoElemParser] def doAssert := leading_parser:leadPrec "assert! " >> termParser /- We use `notFollowedBy` to avoid counterintuitive behavior. For example, the `if`-term parser @@ -114,18 +114,18 @@ doesn't enforce indentation restrictions, but we don't want it to be used when ` Note that parser priorities would not solve this problem since the `doIf` parser is failing while the `if` parser is succeeding. -/ -@[builtinDoElemParser] def doExpr := parser! notFollowedByRedefinedTermToken >> termParser -@[builtinDoElemParser] def doNested := parser! "do " >> doSeq +@[builtinDoElemParser] def doExpr := leading_parser notFollowedByRedefinedTermToken >> termParser +@[builtinDoElemParser] def doNested := leading_parser "do " >> doSeq -@[builtinTermParser] def «do» := parser!:maxPrec "do " >> doSeq +@[builtinTermParser] def «do» := leading_parser:maxPrec "do " >> doSeq -@[builtinTermParser] def doElem.quot : Parser := parser! "`(doElem|" >> toggleInsideQuot doElemParser >> ")" +@[builtinTermParser] def doElem.quot : Parser := leading_parser "`(doElem|" >> toggleInsideQuot doElemParser >> ")" /- macros for using `unless`, `for`, `try`, `return` as terms. They expand into `do unless ...`, `do for ...`, `do try ...`, and `do return ...` -/ -@[builtinTermParser] def termUnless := parser! "unless " >> withForbidden "do" termParser >> "do " >> doSeq -@[builtinTermParser] def termFor := parser! "for " >> sepBy1 doForDecl ", " >> "do " >> doSeq -@[builtinTermParser] def termTry := parser! "try " >> doSeq >> many (doCatch <|> doCatchMatch) >> optional doFinally -@[builtinTermParser] def termReturn := parser!:leadPrec withPosition ("return " >> optional (checkLineEq >> termParser)) +@[builtinTermParser] def termUnless := leading_parser "unless " >> withForbidden "do" termParser >> "do " >> doSeq +@[builtinTermParser] def termFor := leading_parser "for " >> sepBy1 doForDecl ", " >> "do " >> doSeq +@[builtinTermParser] def termTry := leading_parser "try " >> doSeq >> many (doCatch <|> doCatchMatch) >> optional doFinally +@[builtinTermParser] def termReturn := leading_parser:leadPrec withPosition ("return " >> optional (checkLineEq >> termParser)) end Term end Parser diff --git a/stage0/src/Lean/Parser/Extra.lean b/stage0/src/Lean/Parser/Extra.lean index 11ecc64ae3..4b4fcaf925 100644 --- a/stage0/src/Lean/Parser/Extra.lean +++ b/stage0/src/Lean/Parser/Extra.lean @@ -98,19 +98,19 @@ namespace Parser attribute [runBuiltinParserAttributeHooks] ppHardSpace ppSpace ppLine ppGroup ppIndent ppDedent -macro "registerParserAlias!" aliasName:strLit declName:ident : term => +macro "register_parser_alias" aliasName:strLit declName:ident : term => `(do Parser.registerAlias $aliasName $declName PrettyPrinter.Formatter.registerAlias $aliasName $(mkIdentFrom declName (declName.getId ++ `formatter)) PrettyPrinter.Parenthesizer.registerAlias $aliasName $(mkIdentFrom declName (declName.getId ++ `parenthesizer))) builtin_initialize - registerParserAlias! "group" group - registerParserAlias! "ppHardSpace" ppHardSpace - registerParserAlias! "ppSpace" ppSpace - registerParserAlias! "ppLine" ppLine - registerParserAlias! "ppGroup" ppGroup - registerParserAlias! "ppIndent" ppIndent - registerParserAlias! "ppDedent" ppDedent + register_parser_alias "group" group + register_parser_alias "ppHardSpace" ppHardSpace + register_parser_alias "ppSpace" ppSpace + register_parser_alias "ppLine" ppLine + register_parser_alias "ppGroup" ppGroup + register_parser_alias "ppIndent" ppIndent + register_parser_alias "ppDedent" ppDedent end Parser diff --git a/stage0/src/Lean/Parser/Level.lean b/stage0/src/Lean/Parser/Level.lean index 0528d9bf82..c49cb80a69 100644 --- a/stage0/src/Lean/Parser/Level.lean +++ b/stage0/src/Lean/Parser/Level.lean @@ -16,13 +16,13 @@ builtin_initialize namespace Level -@[builtinLevelParser] def paren := parser! "(" >> levelParser >> ")" -@[builtinLevelParser] def max := parser! nonReservedSymbol "max" true >> many1 (ppSpace >> levelParser maxPrec) -@[builtinLevelParser] def imax := parser! nonReservedSymbol "imax" true >> many1 (ppSpace >> levelParser maxPrec) -@[builtinLevelParser] def hole := parser! "_" +@[builtinLevelParser] def paren := leading_parser "(" >> levelParser >> ")" +@[builtinLevelParser] def max := leading_parser nonReservedSymbol "max" true >> many1 (ppSpace >> levelParser maxPrec) +@[builtinLevelParser] def imax := leading_parser nonReservedSymbol "imax" true >> many1 (ppSpace >> levelParser maxPrec) +@[builtinLevelParser] def hole := leading_parser "_" @[builtinLevelParser] def num := checkPrec maxPrec >> numLit @[builtinLevelParser] def ident := checkPrec maxPrec >> Parser.ident -@[builtinLevelParser] def addLit := tparser!:65 " + " >> numLit +@[builtinLevelParser] def addLit := trailing_parser:65 " + " >> numLit end Level diff --git a/stage0/src/Lean/Parser/Module.lean b/stage0/src/Lean/Parser/Module.lean index 031e14f58a..ab2edc59bf 100644 --- a/stage0/src/Lean/Parser/Module.lean +++ b/stage0/src/Lean/Parser/Module.lean @@ -10,15 +10,15 @@ namespace Lean namespace Parser namespace Module -def «prelude» := parser! "prelude" -def «import» := parser! "import " >> optional "runtime" >> ident -def header := parser! optional («prelude» >> ppLine) >> many («import» >> ppLine) >> ppLine +def «prelude» := leading_parser "prelude" +def «import» := leading_parser "import " >> optional "runtime" >> ident +def header := leading_parser optional («prelude» >> ppLine) >> many («import» >> ppLine) >> ppLine /-- Parser for a Lean module. We never actually run this parser but instead use the imperative definitions below that return the same syntax tree structure, but add error recovery. Still, it is helpful to have a `Parser` definition for it in order to auto-generate helpers such as the pretty printer. -/ @[runBuiltinParserAttributeHooks] -def module := parser! header >> many (commandParser >> ppLine >> ppLine) +def module := leading_parser header >> many (commandParser >> ppLine >> ppLine) def updateTokens (c : ParserContext) : ParserContext := { c with diff --git a/stage0/src/Lean/Parser/Syntax.lean b/stage0/src/Lean/Parser/Syntax.lean index 8c5b951255..195f49fc76 100644 --- a/stage0/src/Lean/Parser/Syntax.lean +++ b/stage0/src/Lean/Parser/Syntax.lean @@ -23,70 +23,70 @@ builtin_initialize @[inline] def syntaxParser (rbp : Nat := 0) : Parser := categoryParser `stx rbp -def «precedence» := parser! ":" >> precedenceParser maxPrec +def «precedence» := leading_parser ":" >> precedenceParser maxPrec def optPrecedence := optional (atomic «precedence») namespace Syntax @[builtinPrecParser] def numPrec := checkPrec maxPrec >> numLit -@[builtinSyntaxParser] def paren := parser! "(" >> many1 syntaxParser >> ")" -@[builtinSyntaxParser] def cat := parser! ident >> optPrecedence -@[builtinSyntaxParser] def unary := parser! ident >> checkNoWsBefore >> "(" >> many1 syntaxParser >> ")" -@[builtinSyntaxParser] def binary := parser! ident >> checkNoWsBefore >> "(" >> many1 syntaxParser >> ", " >> many1 syntaxParser >> ")" -@[builtinSyntaxParser] def sepBy := parser! "sepBy(" >> many1 syntaxParser >> ", " >> strLit >> optional (", " >> many1 syntaxParser) >> optional (", " >> nonReservedSymbol "allowTrailingSep") >> ")" -@[builtinSyntaxParser] def sepBy1 := parser! "sepBy1(" >> many1 syntaxParser >> ", " >> strLit >> optional (", " >> many1 syntaxParser) >> optional (", " >> nonReservedSymbol "allowTrailingSep") >> ")" -@[builtinSyntaxParser] def atom := parser! strLit -@[builtinSyntaxParser] def nonReserved := parser! "&" >> strLit +@[builtinSyntaxParser] def paren := leading_parser "(" >> many1 syntaxParser >> ")" +@[builtinSyntaxParser] def cat := leading_parser ident >> optPrecedence +@[builtinSyntaxParser] def unary := leading_parser ident >> checkNoWsBefore >> "(" >> many1 syntaxParser >> ")" +@[builtinSyntaxParser] def binary := leading_parser ident >> checkNoWsBefore >> "(" >> many1 syntaxParser >> ", " >> many1 syntaxParser >> ")" +@[builtinSyntaxParser] def sepBy := leading_parser "sepBy(" >> many1 syntaxParser >> ", " >> strLit >> optional (", " >> many1 syntaxParser) >> optional (", " >> nonReservedSymbol "allowTrailingSep") >> ")" +@[builtinSyntaxParser] def sepBy1 := leading_parser "sepBy1(" >> many1 syntaxParser >> ", " >> strLit >> optional (", " >> many1 syntaxParser) >> optional (", " >> nonReservedSymbol "allowTrailingSep") >> ")" +@[builtinSyntaxParser] def atom := leading_parser strLit +@[builtinSyntaxParser] def nonReserved := leading_parser "&" >> strLit end Syntax namespace Term -@[builtinTermParser] def stx.quot : Parser := parser! "`(stx|" >> toggleInsideQuot syntaxParser >> ")" -@[builtinTermParser] def prec.quot : Parser := parser! "`(prec|" >> toggleInsideQuot precedenceParser >> ")" -@[builtinTermParser] def prio.quot : Parser := parser! "`(prio|" >> toggleInsideQuot priorityParser >> ")" +@[builtinTermParser] def stx.quot : Parser := leading_parser "`(stx|" >> toggleInsideQuot syntaxParser >> ")" +@[builtinTermParser] def prec.quot : Parser := leading_parser "`(prec|" >> toggleInsideQuot precedenceParser >> ")" +@[builtinTermParser] def prio.quot : Parser := leading_parser "`(prio|" >> toggleInsideQuot priorityParser >> ")" end Term namespace Command -def namedName := parser! (atomic ("(" >> nonReservedSymbol "name") >> " := " >> ident >> ")") +def namedName := leading_parser (atomic ("(" >> nonReservedSymbol "name") >> " := " >> ident >> ")") def optNamedName := optional namedName -def «prefix» := parser! "prefix" -def «infix» := parser! "infix" -def «infixl» := parser! "infixl" -def «infixr» := parser! "infixr" -def «postfix» := parser! "postfix" +def «prefix» := leading_parser "prefix" +def «infix» := leading_parser "infix" +def «infixl» := leading_parser "infixl" +def «infixr» := leading_parser "infixr" +def «postfix» := leading_parser "postfix" def mixfixKind := «prefix» <|> «infix» <|> «infixl» <|> «infixr» <|> «postfix» -@[builtinCommandParser] def «mixfix» := parser! Term.attrKind >> mixfixKind >> optPrecedence >> optNamedName >> optNamedPrio >> ppSpace >> strLit >> darrow >> termParser +@[builtinCommandParser] def «mixfix» := leading_parser Term.attrKind >> mixfixKind >> optPrecedence >> optNamedName >> optNamedPrio >> ppSpace >> strLit >> darrow >> termParser -- NOTE: We use `suppressInsideQuot` in the following parsers because quotations inside them are evaluated in the same stage and -- thus should be ignored when we use `checkInsideQuot` to prepare the next stage for a builtin syntax change -def identPrec := parser! ident >> optPrecedence +def identPrec := leading_parser ident >> optPrecedence def optKind : Parser := optional ("[" >> ident >> "]") def notationItem := ppSpace >> withAntiquot (mkAntiquot "notationItem" `Lean.Parser.Command.notationItem) (strLit <|> identPrec) -@[builtinCommandParser] def «notation» := parser! Term.attrKind >> "notation" >> optPrecedence >> optNamedName >> optNamedPrio >> many notationItem >> darrow >> termParser -@[builtinCommandParser] def «macro_rules» := suppressInsideQuot (parser! "macro_rules" >> optKind >> Term.matchAlts) -@[builtinCommandParser] def «syntax» := parser! Term.attrKind >> "syntax " >> optPrecedence >> optNamedName >> optNamedPrio >> many1 syntaxParser >> " : " >> ident -@[builtinCommandParser] def syntaxAbbrev := parser! "syntax " >> ident >> " := " >> many1 syntaxParser -@[builtinCommandParser] def syntaxCat := parser! "declare_syntax_cat " >> ident -def macroArgSimple := parser! ident >> checkNoWsBefore "no space before ':'" >> ":" >> syntaxParser maxPrec -def macroArgSymbol := parser! strLit >> optional (atomic <| checkNoWsBefore >> "%" >> checkNoWsBefore >> ident) +@[builtinCommandParser] def «notation» := leading_parser Term.attrKind >> "notation" >> optPrecedence >> optNamedName >> optNamedPrio >> many notationItem >> darrow >> termParser +@[builtinCommandParser] def «macro_rules» := suppressInsideQuot (leading_parser "macro_rules" >> optKind >> Term.matchAlts) +@[builtinCommandParser] def «syntax» := leading_parser Term.attrKind >> "syntax " >> optPrecedence >> optNamedName >> optNamedPrio >> many1 syntaxParser >> " : " >> ident +@[builtinCommandParser] def syntaxAbbrev := leading_parser "syntax " >> ident >> " := " >> many1 syntaxParser +@[builtinCommandParser] def syntaxCat := leading_parser "declare_syntax_cat " >> ident +def macroArgSimple := leading_parser ident >> checkNoWsBefore "no space before ':'" >> ":" >> syntaxParser maxPrec +def macroArgSymbol := leading_parser strLit >> optional (atomic <| checkNoWsBefore >> "%" >> checkNoWsBefore >> ident) def macroArg := macroArgSymbol <|> atomic macroArgSimple def macroHead := macroArg def macroTailTactic : Parser := atomic (" : " >> identEq "tactic") >> darrow >> ("`(" >> toggleInsideQuot Tactic.seq1 >> ")" <|> termParser) def macroTailCommand : Parser := atomic (" : " >> identEq "command") >> darrow >> ("`(" >> toggleInsideQuot (many1Unbox commandParser) >> ")" <|> termParser) def macroTailDefault : Parser := atomic (" : " >> ident) >> darrow >> (("`(" >> toggleInsideQuot (categoryParserOfStack 2) >> ")") <|> termParser) def macroTail := macroTailTactic <|> macroTailCommand <|> macroTailDefault -@[builtinCommandParser] def «macro» := parser! suppressInsideQuot (Term.attrKind >> "macro " >> optPrecedence >> optNamedName >> optNamedPrio >> macroHead >> many macroArg >> macroTail) +@[builtinCommandParser] def «macro» := leading_parser suppressInsideQuot (Term.attrKind >> "macro " >> optPrecedence >> optNamedName >> optNamedPrio >> macroHead >> many macroArg >> macroTail) -@[builtinCommandParser] def «elab_rules» := parser! suppressInsideQuot ("elab_rules" >> optKind >> optional (" : " >> ident) >> Term.matchAlts) +@[builtinCommandParser] def «elab_rules» := leading_parser suppressInsideQuot ("elab_rules" >> optKind >> optional (" : " >> ident) >> Term.matchAlts) def elabHead := macroHead def elabArg := macroArg def elabTail := atomic (" : " >> ident >> optional (" <= " >> ident)) >> darrow >> termParser -@[builtinCommandParser] def «elab» := parser! suppressInsideQuot (Term.attrKind >> "elab " >> optPrecedence >> optNamedName >> optNamedPrio >> elabHead >> many elabArg >> elabTail) +@[builtinCommandParser] def «elab» := leading_parser suppressInsideQuot (Term.attrKind >> "elab " >> optPrecedence >> optNamedName >> optNamedPrio >> elabHead >> many elabArg >> elabTail) end Command diff --git a/stage0/src/Lean/Parser/Tactic.lean b/stage0/src/Lean/Parser/Tactic.lean index b09afc92ff..96ed2925c5 100644 --- a/stage0/src/Lean/Parser/Tactic.lean +++ b/stage0/src/Lean/Parser/Tactic.lean @@ -10,21 +10,21 @@ namespace Parser namespace Tactic builtin_initialize - registerParserAlias! "tacticSeq" tacticSeq + register_parser_alias "tacticSeq" tacticSeq -@[builtinTacticParser] def «unknown» := parser! withPosition (ident >> errorAtSavedPos "unknown tactic" true) +@[builtinTacticParser] def «unknown» := leading_parser withPosition (ident >> errorAtSavedPos "unknown tactic" true) @[builtinTacticParser] def nestedTactic := tacticSeqBracketed /- Auxiliary parser for expanding `match` tactic -/ -@[builtinTacticParser] def eraseAuxDiscrs := parser!:maxPrec "eraseAuxDiscrs!" +@[builtinTacticParser] def eraseAuxDiscrs := leading_parser:maxPrec "eraseAuxDiscrs!" def matchRhs := Term.hole <|> Term.syntheticHole <|> tacticSeq def matchAlts := Term.matchAlts (rhsParser := matchRhs) -@[builtinTacticParser] def «match» := parser!:leadPrec "match " >> sepBy1 Term.matchDiscr ", " >> Term.optType >> " with " >> matchAlts -@[builtinTacticParser] def introMatch := parser! nonReservedSymbol "intro " >> matchAlts +@[builtinTacticParser] def «match» := leading_parser:leadPrec "match " >> sepBy1 Term.matchDiscr ", " >> Term.optType >> " with " >> matchAlts +@[builtinTacticParser] def introMatch := leading_parser nonReservedSymbol "intro " >> matchAlts -@[builtinTacticParser] def decide := parser! nonReservedSymbol "decide" -@[builtinTacticParser] def nativeDecide := parser! nonReservedSymbol "nativeDecide" +@[builtinTacticParser] def decide := leading_parser nonReservedSymbol "decide" +@[builtinTacticParser] def nativeDecide := leading_parser nonReservedSymbol "nativeDecide" end Tactic end Parser diff --git a/stage0/src/Lean/Parser/Term.lean b/stage0/src/Lean/Parser/Term.lean index a832ab103e..420f66b352 100644 --- a/stage0/src/Lean/Parser/Term.lean +++ b/stage0/src/Lean/Parser/Term.lean @@ -16,7 +16,7 @@ def commentBody : Parser := @[combinatorParenthesizer Lean.Parser.Command.commentBody] def commentBody.parenthesizer := PrettyPrinter.Parenthesizer.visitToken @[combinatorFormatter Lean.Parser.Command.commentBody] def commentBody.formatter := PrettyPrinter.Formatter.visitAtom Name.anonymous -def docComment := parser! ppDedent $ "/--" >> commentBody >> ppLine +def docComment := leading_parser ppDedent $ "/--" >> commentBody >> ppLine end Command builtin_initialize @@ -29,9 +29,9 @@ builtin_initialize namespace Tactic def tacticSeq1Indented : Parser := - parser! many1Indent (group (ppLine >> tacticParser >> optional ";")) + leading_parser many1Indent (group (ppLine >> tacticParser >> optional ";")) def tacticSeqBracketed : Parser := - parser! "{" >> many (group (ppLine >> tacticParser >> optional ";")) >> ppDedent (ppLine >> "}") + leading_parser "{" >> many (group (ppLine >> tacticParser >> optional ";")) >> ppDedent (ppLine >> "}") def tacticSeq := nodeWithAntiquot "tacticSeq" `Lean.Parser.Tactic.tacticSeq (tacticSeqBracketed <|> tacticSeq1Indented) @@ -47,7 +47,7 @@ namespace Term /- Built-in parsers -/ -@[builtinTermParser] def byTactic := parser!:leadPrec "by " >> Tactic.tacticSeq +@[builtinTermParser] def byTactic := leading_parser:leadPrec "by " >> Tactic.tacticSeq def optSemicolon (p : Parser) : Parser := ppDedent $ optional ";" >> ppLine >> p @@ -57,46 +57,46 @@ def optSemicolon (p : Parser) : Parser := ppDedent $ optional ";" >> ppLine >> p @[builtinTermParser] def scientific : Parser := checkPrec maxPrec >> scientificLit @[builtinTermParser] def str : Parser := checkPrec maxPrec >> strLit @[builtinTermParser] def char : Parser := checkPrec maxPrec >> charLit -@[builtinTermParser] def type := parser! "Type" >> optional (checkWsBefore "" >> checkPrec leadPrec >> checkColGt >> levelParser maxPrec) -@[builtinTermParser] def sort := parser! "Sort" >> optional (checkWsBefore "" >> checkPrec leadPrec >> checkColGt >> levelParser maxPrec) -@[builtinTermParser] def prop := parser! "Prop" -@[builtinTermParser] def hole := parser! "_" -@[builtinTermParser] def syntheticHole := parser! "?" >> (ident <|> hole) -@[builtinTermParser] def «sorry» := parser! "sorry" -@[builtinTermParser] def cdot := parser! symbol "·" <|> "." -@[builtinTermParser] def emptyC := parser! "∅" <|> (symbol "{" >> "}") -def typeAscription := parser! " : " >> termParser -def tupleTail := parser! ", " >> sepBy1 termParser ", " +@[builtinTermParser] def type := leading_parser "Type" >> optional (checkWsBefore "" >> checkPrec leadPrec >> checkColGt >> levelParser maxPrec) +@[builtinTermParser] def sort := leading_parser "Sort" >> optional (checkWsBefore "" >> checkPrec leadPrec >> checkColGt >> levelParser maxPrec) +@[builtinTermParser] def prop := leading_parser "Prop" +@[builtinTermParser] def hole := leading_parser "_" +@[builtinTermParser] def syntheticHole := leading_parser "?" >> (ident <|> hole) +@[builtinTermParser] def «sorry» := leading_parser "sorry" +@[builtinTermParser] def cdot := leading_parser symbol "·" <|> "." +@[builtinTermParser] def emptyC := leading_parser "∅" <|> (symbol "{" >> "}") +def typeAscription := leading_parser " : " >> termParser +def tupleTail := leading_parser ", " >> sepBy1 termParser ", " def parenSpecial : Parser := optional (tupleTail <|> typeAscription) -@[builtinTermParser] def paren := parser! "(" >> ppDedent (withoutPosition (withoutForbidden (optional (termParser >> parenSpecial)))) >> ")" -@[builtinTermParser] def anonymousCtor := parser! "⟨" >> sepBy termParser ", " >> "⟩" +@[builtinTermParser] def paren := leading_parser "(" >> ppDedent (withoutPosition (withoutForbidden (optional (termParser >> parenSpecial)))) >> ")" +@[builtinTermParser] def anonymousCtor := leading_parser "⟨" >> sepBy termParser ", " >> "⟩" def optIdent : Parser := optional (atomic (ident >> " : ")) -def fromTerm := parser! " from " >> termParser -def haveAssign := parser! " := " >> termParser +def fromTerm := leading_parser " from " >> termParser +def haveAssign := leading_parser " := " >> termParser def haveDecl := optIdent >> termParser >> (haveAssign <|> fromTerm <|> byTactic) -@[builtinTermParser] def «have» := parser!:leadPrec withPosition ("have " >> haveDecl) >> optSemicolon termParser +@[builtinTermParser] def «have» := leading_parser:leadPrec withPosition ("have " >> haveDecl) >> optSemicolon termParser def sufficesDecl := optIdent >> termParser >> (fromTerm <|> byTactic) -@[builtinTermParser] def «suffices» := parser!:leadPrec withPosition ("suffices " >> sufficesDecl) >> optSemicolon termParser -@[builtinTermParser] def «show» := parser!:leadPrec "show " >> termParser >> (fromTerm <|> byTactic) -def structInstArrayRef := parser! "[" >> termParser >>"]" -def structInstLVal := parser! (ident <|> fieldIdx <|> structInstArrayRef) >> many (group ("." >> (ident <|> fieldIdx)) <|> structInstArrayRef) -def structInstField := ppGroup $ parser! structInstLVal >> " := " >> termParser -def optEllipsis := parser! optional ".." -@[builtinTermParser] def structInst := parser! "{" >> ppHardSpace >> optional (atomic (termParser >> " with ")) +@[builtinTermParser] def «suffices» := leading_parser:leadPrec withPosition ("suffices " >> sufficesDecl) >> optSemicolon termParser +@[builtinTermParser] def «show» := leading_parser:leadPrec "show " >> termParser >> (fromTerm <|> byTactic) +def structInstArrayRef := leading_parser "[" >> termParser >>"]" +def structInstLVal := leading_parser (ident <|> fieldIdx <|> structInstArrayRef) >> many (group ("." >> (ident <|> fieldIdx)) <|> structInstArrayRef) +def structInstField := ppGroup $ leading_parser structInstLVal >> " := " >> termParser +def optEllipsis := leading_parser optional ".." +@[builtinTermParser] def structInst := leading_parser "{" >> ppHardSpace >> optional (atomic (termParser >> " with ")) >> manyIndent (group (structInstField >> optional ", ")) >> optEllipsis >> optional (" : " >> termParser) >> " }" -def typeSpec := parser! " : " >> termParser +def typeSpec := leading_parser " : " >> termParser def optType : Parser := optional typeSpec -@[builtinTermParser] def explicit := parser! "@" >> termParser maxPrec -@[builtinTermParser] def inaccessible := parser! ".(" >> termParser >> ")" +@[builtinTermParser] def explicit := leading_parser "@" >> termParser maxPrec +@[builtinTermParser] def inaccessible := leading_parser ".(" >> termParser >> ")" def binderIdent : Parser := ident <|> hole def binderType (requireType := false) : Parser := if requireType then group (" : " >> termParser) else optional (" : " >> termParser) -def binderTactic := parser! atomic (symbol " := " >> " by ") >> Tactic.tacticSeq -def binderDefault := parser! " := " >> termParser -def explicitBinder (requireType := false) := ppGroup $ parser! "(" >> many1 binderIdent >> binderType requireType >> optional (binderTactic <|> binderDefault) >> ")" -def implicitBinder (requireType := false) := ppGroup $ parser! "{" >> many1 binderIdent >> binderType requireType >> "}" -def instBinder := ppGroup $ parser! "[" >> optIdent >> termParser >> "]" +def binderTactic := leading_parser atomic (symbol " := " >> " by ") >> Tactic.tacticSeq +def binderDefault := leading_parser " := " >> termParser +def explicitBinder (requireType := false) := ppGroup $ leading_parser "(" >> many1 binderIdent >> binderType requireType >> optional (binderTactic <|> binderDefault) >> ")" +def implicitBinder (requireType := false) := ppGroup $ leading_parser "{" >> many1 binderIdent >> binderType requireType >> "}" +def instBinder := ppGroup $ leading_parser "[" >> optIdent >> termParser >> "]" def bracketedBinder (requireType := false) := withAntiquot (mkAntiquot "bracketedBinder" none (anonymous := false)) <| explicitBinder requireType <|> implicitBinder requireType <|> instBinder @@ -109,17 +109,17 @@ def implicitShortBinder := node `Lean.Parser.Term.implicitBinder $ "{" >> many1 def depArrowShortPrefix := try (implicitShortBinder >> unicodeSymbol " → " " -> ") def depArrowLongPrefix := bracketedBinder true >> unicodeSymbol " → " " -> " def depArrowPrefix := depArrowShortPrefix <|> depArrowLongPrefix -@[builtinTermParser] def depArrow := parser! depArrowPrefix >> termParser +@[builtinTermParser] def depArrow := leading_parser depArrowPrefix >> termParser ``` Note that no changes in the elaborator are needed. We decided to not use it because terms such as `{α} → α → α` may look too cryptic. Note that we did not add a `explicitShortBinder` parser since `(α) → α → α` is really cryptic as a short for `(α : Type) → α → α`. -/ -@[builtinTermParser] def depArrow := parser!:25 bracketedBinder true >> unicodeSymbol " → " " -> " >> termParser +@[builtinTermParser] def depArrow := leading_parser:25 bracketedBinder true >> unicodeSymbol " → " " -> " >> termParser -def simpleBinder := parser! many1 binderIdent >> optType +def simpleBinder := leading_parser many1 binderIdent >> optType @[builtinTermParser] -def «forall» := parser!:leadPrec unicodeSymbol "∀" "forall" >> many1 (ppSpace >> (simpleBinder <|> bracketedBinder)) >> ", " >> termParser +def «forall» := leading_parser:leadPrec unicodeSymbol "∀" "forall" >> many1 (ppSpace >> (simpleBinder <|> bracketedBinder)) >> ", " >> termParser def matchAlt (rhsParser : Parser := termParser) : Parser := nodeWithAntiquot "matchAlt" `Lean.Parser.Term.matchAlt $ @@ -130,29 +130,27 @@ def matchAlt (rhsParser : Parser := termParser) : Parser := def matchAltExpr := matchAlt def matchAlts (rhsParser : Parser := termParser) : Parser := - parser! ppDedent $ withPosition $ many1Indent (ppLine >> matchAlt rhsParser) + leading_parser ppDedent $ withPosition $ many1Indent (ppLine >> matchAlt rhsParser) -def matchDiscr := parser! optional (atomic (ident >> checkNoWsBefore "no space before ':'" >> ":")) >> termParser +def matchDiscr := leading_parser optional (atomic (ident >> checkNoWsBefore "no space before ':'" >> ":")) >> termParser -@[builtinTermParser] def «match» := parser!:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> matchAlts -@[builtinTermParser] def «nomatch» := parser!:leadPrec "nomatch " >> termParser +@[builtinTermParser] def «match» := leading_parser:leadPrec "match " >> sepBy1 matchDiscr ", " >> optType >> " with " >> matchAlts +@[builtinTermParser] def «nomatch» := leading_parser:leadPrec "nomatch " >> termParser def funImplicitBinder := atomic (lookahead ("{" >> many1 binderIdent >> (symbol " : " <|> "}"))) >> implicitBinder def funSimpleBinder := atomic (lookahead (many1 binderIdent >> " : ")) >> simpleBinder def funBinder : Parser := funImplicitBinder <|> instBinder <|> funSimpleBinder <|> termParser maxPrec -- NOTE: we use `nodeWithAntiquot` to ensure that `fun $b => ...` remains a `term` antiquotation def basicFun : Parser := nodeWithAntiquot "basicFun" `Lean.Parser.Term.basicFun (many1 (ppSpace >> funBinder) >> darrow >> termParser) -@[builtinTermParser] def «fun» := parser!:maxPrec unicodeSymbol "λ" "fun" >> (basicFun <|> matchAlts) +@[builtinTermParser] def «fun» := leading_parser:maxPrec unicodeSymbol "λ" "fun" >> (basicFun <|> matchAlts) def optExprPrecedence := optional (atomic ":" >> termParser maxPrec) -@[builtinTermParser] def «parser!» := parser!:leadPrec "parser! " >> optExprPrecedence >> termParser -@[builtinTermParser] def «tparser!» := parser!:leadPrec "tparser! " >> optExprPrecedence >> termParser -@[builtinTermParser] def «leading_parser» := parser!:leadPrec "leading_parser " >> optExprPrecedence >> termParser -@[builtinTermParser] def «trailing_parser» := parser!:leadPrec "trailing_parser " >> optExprPrecedence >> termParser +@[builtinTermParser] def «leading_parser» := leading_parser:leadPrec "leading_parser " >> optExprPrecedence >> termParser +@[builtinTermParser] def «trailing_parser» := leading_parser:leadPrec "trailing_parser " >> optExprPrecedence >> termParser -@[builtinTermParser] def borrowed := parser! "@&" >> termParser leadPrec -@[builtinTermParser] def quotedName := parser! nameLit -@[builtinTermParser] def doubleQuotedName := parser! "`" >> checkNoWsBefore >> nameLit +@[builtinTermParser] def borrowed := leading_parser "@&" >> termParser leadPrec +@[builtinTermParser] def quotedName := leading_parser nameLit +@[builtinTermParser] def doubleQuotedName := leading_parser "`" >> checkNoWsBefore >> nameLit def simpleBinderWithoutType := nodeWithAntiquot "simpleBinder" `Lean.Parser.Term.simpleBinder (anonymous := true) (many1 binderIdent >> pushNone) @@ -164,96 +162,96 @@ def letPatDecl := nodeWithAntiquot "letPatDecl" `Lean.Parser.Term.letPatDecl def letEqnsDecl := nodeWithAntiquot "letEqnsDecl" `Lean.Parser.Term.letEqnsDecl $ letIdLhs >> matchAlts -- Remark: we use `nodeWithAntiquot` here to make sure anonymous antiquotations (e.g., `$x`) are not `letDecl` def letDecl := nodeWithAntiquot "letDecl" `Lean.Parser.Term.letDecl (notFollowedBy (nonReservedSymbol "rec") "rec" >> (letIdDecl <|> letPatDecl <|> letEqnsDecl)) -@[builtinTermParser] def «let» := parser!:leadPrec withPosition ("let " >> letDecl) >> optSemicolon termParser -@[builtinTermParser] def «let!» := parser!:leadPrec withPosition ("let! " >> letDecl) >> optSemicolon termParser -@[builtinTermParser] def «let*» := parser!:leadPrec withPosition ("let* " >> letDecl) >> optSemicolon termParser -def «scoped» := parser! "scoped " -def «local» := parser! "local " -def attrKind := parser! optional («scoped» <|> «local») -def attrInstance := ppGroup $ parser! attrKind >> attrParser +@[builtinTermParser] def «let» := leading_parser:leadPrec withPosition ("let " >> letDecl) >> optSemicolon termParser +@[builtinTermParser] def «let!» := leading_parser:leadPrec withPosition ("let! " >> letDecl) >> optSemicolon termParser +@[builtinTermParser] def «let*» := leading_parser:leadPrec withPosition ("let* " >> letDecl) >> optSemicolon termParser +def «scoped» := leading_parser "scoped " +def «local» := leading_parser "local " +def attrKind := leading_parser optional («scoped» <|> «local») +def attrInstance := ppGroup $ leading_parser attrKind >> attrParser -def attributes := parser! "@[" >> sepBy1 attrInstance ", " >> "]" -def letRecDecl := parser! optional Command.docComment >> optional «attributes» >> letDecl +def attributes := leading_parser "@[" >> sepBy1 attrInstance ", " >> "]" +def letRecDecl := leading_parser optional Command.docComment >> optional «attributes» >> letDecl def letRecDecls := sepBy1 letRecDecl ", " @[builtinTermParser] -def «letrec» := parser!:leadPrec withPosition (group ("let " >> nonReservedSymbol "rec ") >> letRecDecls) >> optSemicolon termParser +def «letrec» := leading_parser:leadPrec withPosition (group ("let " >> nonReservedSymbol "rec ") >> letRecDecls) >> optSemicolon termParser @[runBuiltinParserAttributeHooks] -def whereDecls := parser! "where " >> many1Indent (group (letRecDecl >> optional ";")) +def whereDecls := leading_parser "where " >> many1Indent (group (letRecDecl >> optional ";")) @[runBuiltinParserAttributeHooks] -def matchAltsWhereDecls := parser! matchAlts >> optional whereDecls +def matchAltsWhereDecls := leading_parser matchAlts >> optional whereDecls -@[builtinTermParser] def noindex := parser! "noindex!" >> termParser maxPrec +@[builtinTermParser] def noindex := leading_parser "noindex!" >> termParser maxPrec -@[builtinTermParser] def binrel := parser! "binrel! " >> ident >> ppSpace >> termParser maxPrec >> termParser maxPrec +@[builtinTermParser] def binrel := leading_parser "binrel! " >> ident >> ppSpace >> termParser maxPrec >> termParser maxPrec -@[builtinTermParser] def forInMacro := parser! "forIn! " >> termParser maxPrec >> termParser maxPrec >> termParser maxPrec +@[builtinTermParser] def forInMacro := leading_parser "forIn! " >> termParser maxPrec >> termParser maxPrec >> termParser maxPrec -@[builtinTermParser] def typeOf := parser! "typeOf! " >> termParser maxPrec -@[builtinTermParser] def ensureTypeOf := parser! "ensureTypeOf! " >> termParser maxPrec >> strLit >> termParser -@[builtinTermParser] def ensureExpectedType := parser! "ensureExpectedType! " >> strLit >> termParser maxPrec +@[builtinTermParser] def typeOf := leading_parser "typeOf! " >> termParser maxPrec +@[builtinTermParser] def ensureTypeOf := leading_parser "ensureTypeOf! " >> termParser maxPrec >> strLit >> termParser +@[builtinTermParser] def ensureExpectedType := leading_parser "ensureExpectedType! " >> strLit >> termParser maxPrec -def namedArgument := parser! atomic ("(" >> ident >> " := ") >> termParser >> ")" -def ellipsis := parser! ".." -@[builtinTermParser] def app := tparser!:(maxPrec-1) many1 $ +def namedArgument := leading_parser atomic ("(" >> ident >> " := ") >> termParser >> ")" +def ellipsis := leading_parser ".." +@[builtinTermParser] def app := trailing_parser:(maxPrec-1) many1 $ checkWsBefore "expected space" >> checkColGt "expected to be indented" >> (namedArgument <|> ellipsis <|> termParser maxPrec) -@[builtinTermParser] def proj := tparser! checkNoWsBefore >> "." >> (fieldIdx <|> ident) -@[builtinTermParser] def arrayRef := tparser! checkNoWsBefore >> "[" >> termParser >>"]" -@[builtinTermParser] def arrow := tparser! checkPrec 25 >> unicodeSymbol " → " " -> " >> termParser 25 +@[builtinTermParser] def proj := trailing_parser checkNoWsBefore >> "." >> (fieldIdx <|> ident) +@[builtinTermParser] def arrayRef := trailing_parser checkNoWsBefore >> "[" >> termParser >>"]" +@[builtinTermParser] def arrow := trailing_parser checkPrec 25 >> unicodeSymbol " → " " -> " >> termParser 25 def isIdent (stx : Syntax) : Bool := -- antiquotations should also be allowed where an identifier is expected stx.isAntiquot || stx.isIdent -@[builtinTermParser] def explicitUniv : TrailingParser := tparser! checkStackTop isIdent "expected preceding identifier" >> checkNoWsBefore "no space before '.{'" >> ".{" >> sepBy1 levelParser ", " >> "}" -@[builtinTermParser] def namedPattern : TrailingParser := tparser! checkStackTop isIdent "expected preceding identifier" >> checkNoWsBefore "no space before '@'" >> "@" >> termParser maxPrec +@[builtinTermParser] def explicitUniv : TrailingParser := trailing_parser checkStackTop isIdent "expected preceding identifier" >> checkNoWsBefore "no space before '.{'" >> ".{" >> sepBy1 levelParser ", " >> "}" +@[builtinTermParser] def namedPattern : TrailingParser := trailing_parser checkStackTop isIdent "expected preceding identifier" >> checkNoWsBefore "no space before '@'" >> "@" >> termParser maxPrec -@[builtinTermParser] def pipeProj := tparser!:minPrec " |>. " >> (fieldIdx <|> ident) +@[builtinTermParser] def pipeProj := trailing_parser:minPrec " |>. " >> (fieldIdx <|> ident) -@[builtinTermParser] def subst := tparser!:75 " ▸ " >> sepBy1 (termParser 75) " ▸ " +@[builtinTermParser] def subst := trailing_parser:75 " ▸ " >> sepBy1 (termParser 75) " ▸ " -- NOTE: Doesn't call `categoryParser` directly in contrast to most other "static" quotations, so call `evalInsideQuot` explicitly -@[builtinTermParser] def funBinder.quot : Parser := parser! "`(funBinder|" >> toggleInsideQuot (evalInsideQuot ``funBinder funBinder) >> ")" +@[builtinTermParser] def funBinder.quot : Parser := leading_parser "`(funBinder|" >> toggleInsideQuot (evalInsideQuot ``funBinder funBinder) >> ")" def bracketedBinderF := bracketedBinder -- no default arg -@[builtinTermParser] def bracketedBinder.quot : Parser := parser! "`(bracketedBinder|" >> toggleInsideQuot (evalInsideQuot ``bracketedBinderF bracketedBinder) >> ")" -@[builtinTermParser] def matchDiscr.quot : Parser := parser! "`(matchDiscr|" >> toggleInsideQuot (evalInsideQuot ``matchDiscr matchDiscr) >> ")" -@[builtinTermParser] def attr.quot : Parser := parser! "`(attr|" >> toggleInsideQuot attrParser >> ")" +@[builtinTermParser] def bracketedBinder.quot : Parser := leading_parser "`(bracketedBinder|" >> toggleInsideQuot (evalInsideQuot ``bracketedBinderF bracketedBinder) >> ")" +@[builtinTermParser] def matchDiscr.quot : Parser := leading_parser "`(matchDiscr|" >> toggleInsideQuot (evalInsideQuot ``matchDiscr matchDiscr) >> ")" +@[builtinTermParser] def attr.quot : Parser := leading_parser "`(attr|" >> toggleInsideQuot attrParser >> ")" -@[builtinTermParser] def panic := parser!:leadPrec "panic! " >> termParser -@[builtinTermParser] def unreachable := parser!:leadPrec "unreachable!" -@[builtinTermParser] def dbgTrace := parser!:leadPrec withPosition ("dbgTrace! " >> ((interpolatedStr termParser) <|> termParser)) >> optSemicolon termParser -@[builtinTermParser] def assert := parser!:leadPrec withPosition ("assert! " >> termParser) >> optSemicolon termParser +@[builtinTermParser] def panic := leading_parser:leadPrec "panic! " >> termParser +@[builtinTermParser] def unreachable := leading_parser:leadPrec "unreachable!" +@[builtinTermParser] def dbgTrace := leading_parser:leadPrec withPosition ("dbgTrace! " >> ((interpolatedStr termParser) <|> termParser)) >> optSemicolon termParser +@[builtinTermParser] def assert := leading_parser:leadPrec withPosition ("assert! " >> termParser) >> optSemicolon termParser def macroArg := termParser maxPrec -def macroDollarArg := parser! "$" >> termParser 10 +def macroDollarArg := leading_parser "$" >> termParser 10 def macroLastArg := macroDollarArg <|> macroArg -- Macro for avoiding exponentially big terms when using `STWorld` -@[builtinTermParser] def stateRefT := parser! "StateRefT" >> macroArg >> macroLastArg +@[builtinTermParser] def stateRefT := leading_parser "StateRefT" >> macroArg >> macroLastArg -@[builtinTermParser] def dynamicQuot := parser! "`(" >> ident >> "|" >> toggleInsideQuot (parserOfStack 1) >> ")" +@[builtinTermParser] def dynamicQuot := leading_parser "`(" >> ident >> "|" >> toggleInsideQuot (parserOfStack 1) >> ")" end Term -@[builtinTermParser default+1] def Tactic.quot : Parser := parser! "`(tactic|" >> toggleInsideQuot tacticParser >> ")" -@[builtinTermParser] def Tactic.quotSeq : Parser := parser! "`(tactic|" >> toggleInsideQuot Tactic.seq1 >> ")" +@[builtinTermParser default+1] def Tactic.quot : Parser := leading_parser "`(tactic|" >> toggleInsideQuot tacticParser >> ")" +@[builtinTermParser] def Tactic.quotSeq : Parser := leading_parser "`(tactic|" >> toggleInsideQuot Tactic.seq1 >> ")" -@[builtinTermParser] def Level.quot : Parser := parser! "`(level|" >> toggleInsideQuot levelParser >> ")" +@[builtinTermParser] def Level.quot : Parser := leading_parser "`(level|" >> toggleInsideQuot levelParser >> ")" builtin_initialize - registerParserAlias! "letDecl" Term.letDecl - registerParserAlias! "haveDecl" Term.haveDecl - registerParserAlias! "sufficesDecl" Term.sufficesDecl - registerParserAlias! "letRecDecls" Term.letRecDecls - registerParserAlias! "hole" Term.hole - registerParserAlias! "syntheticHole" Term.syntheticHole - registerParserAlias! "matchDiscr" Term.matchDiscr - registerParserAlias! "bracketedBinder" Term.bracketedBinder - registerParserAlias! "attrKind" Term.attrKind + register_parser_alias "letDecl" Term.letDecl + register_parser_alias "haveDecl" Term.haveDecl + register_parser_alias "sufficesDecl" Term.sufficesDecl + register_parser_alias "letRecDecls" Term.letRecDecls + register_parser_alias "hole" Term.hole + register_parser_alias "syntheticHole" Term.syntheticHole + register_parser_alias "matchDiscr" Term.matchDiscr + register_parser_alias "bracketedBinder" Term.bracketedBinder + register_parser_alias "attrKind" Term.attrKind end Parser end Lean diff --git a/stage0/src/Lean/ParserCompiler.lean b/stage0/src/Lean/ParserCompiler.lean index 2404605ba7..4f733f1aab 100644 --- a/stage0/src/Lean/ParserCompiler.lean +++ b/stage0/src/Lean/ParserCompiler.lean @@ -109,11 +109,11 @@ def compileCategoryParser {α} (ctx : Context α) (declName : Name) (builtin : B let (Expr.const c' _ _) ← (compileParserExpr ctx (mkConst declName) (force := false)).run' | unreachable! -- We assume that for tagged parsers, the kind is equal to the declaration name. This is automatically true for parsers - -- using `parser!` or `syntax`. + -- using `leading_parser` or `syntax`. let kind := declName let attrName := if builtin then ctx.categoryAttr.defn.builtinName else ctx.categoryAttr.defn.name -- Create syntax node for a simple attribute of the form - -- `def simple := parser! ident >> optional (ident <|> priorityParser)` + -- `def simple := leading_parser ident >> optional (ident <|> priorityParser)` let stx := Syntax.node `Lean.Parser.Attr.simple #[ mkIdent attrName, mkNullNode #[mkIdent kind] diff --git a/stage0/stdlib/Lean/Elab/BuiltinNotation.c b/stage0/stdlib/Lean/Elab/BuiltinNotation.c index 42cf4813f0..fa509f15f9 100644 --- a/stage0/stdlib/Lean/Elab/BuiltinNotation.c +++ b/stage0/stdlib/Lean/Elab/BuiltinNotation.c @@ -16,7 +16,6 @@ extern "C" { lean_object* l_Lean_mkCIdentFrom(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__26; extern lean_object* l_Lean_Name_toString___closed__1; -lean_object* l___regBuiltin_Lean_Elab_Term_elabParserMacro(lean_object*); extern lean_object* l_myMacro____x40_Init_Notation___hyg_15956____closed__5; lean_object* l_Lean_extractMacroScopes(lean_object*); lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_elabForall___spec__1___rarg(lean_object*); @@ -83,7 +82,6 @@ extern lean_object* l_instReprBool___closed__1; lean_object* l_Lean_Elab_Term_expandHave___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_termS_x21_____closed__3; lean_object* l_Lean_mkIdentFrom(lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; lean_object* l___regBuiltin_Lean_Elab_Term_expandAssert___closed__2; lean_object* l_Lean_Elab_Term_expandEmptyC___closed__1; lean_object* l_Lean_Elab_Term_elabParen___closed__3; @@ -117,7 +115,6 @@ lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserM lean_object* l_Lean_Elab_Term_elabAnonymousCtor_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabTrailingParserMacro___closed__1; extern lean_object* l_Lean_Meta_assert___closed__1; -lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2; lean_object* lean_string_utf8_byte_size(lean_object*); extern lean_object* l_Lean_Parser_Term_tupleTail___elambda__1___closed__2; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__35; @@ -149,7 +146,6 @@ lean_object* l_Lean_Meta_DiscrTree_mkNoindexAnnotation(lean_object*); lean_object* l_Lean_Elab_Term_elabParen___closed__1; lean_object* l___regBuiltin_Lean_Elab_Term_elabNoindex___closed__1; lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_expandCDot___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l___regBuiltin_Lean_Elab_Term_elabTParserMacro(lean_object*); lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_expandCDot___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabPanic___closed__10; lean_object* l_Lean_Elab_Term_expandHave___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -175,7 +171,6 @@ lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserM lean_object* l___private_Lean_CoreM_0__Lean_Core_mkFreshNameImp(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__32; lean_object* l_Lean_Elab_Term_elabAnonymousCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_elabTParserMacro___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_suffices___elambda__1___closed__1; extern lean_object* l_Lean_setOptionFromString___closed__4; @@ -197,7 +192,6 @@ lean_object* l_Lean_Elab_Term_mkPairs_loop___closed__1; extern lean_object* l_myMacro____x40_Init_Notation___hyg_13868____closed__9; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__10; lean_object* l_Lean_Meta_mkEqSymm(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; extern lean_object* l_Lean_Parser_Tactic_myMacro____x40_Init_Notation___hyg_19491____closed__1; lean_object* l_Lean_Elab_Term_expandHave_match__1(lean_object*); lean_object* l___regBuiltin_Lean_Elab_Term_elabStateRefT___closed__1; @@ -222,7 +216,6 @@ lean_object* l_Lean_Elab_Term_elabAnonymousCtor___closed__4; lean_object* l_Lean_Elab_Term_expandHave___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux_match__2(lean_object*); lean_object* l_Lean_Elab_Term_expandEmptyC___closed__6; -lean_object* l_Lean_Elab_Term_elabTParserMacro___closed__1; lean_object* l___regBuiltin_Lean_Elab_Term_expandSuffices(lean_object*); lean_object* l_Lean_Elab_Term_elabNoindex(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabPanic___closed__5; @@ -262,6 +255,7 @@ lean_object* l_Lean_Elab_Term_elabAnonymousCtor___closed__3; lean_object* l___private_Init_Meta_0__Lean_quoteName(lean_object*); lean_object* l_Lean_Syntax_mkStrLit(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabTrailingParserMacro___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__1; extern lean_object* l_Lean_Parser_Term_have___elambda__1___closed__1; extern lean_object* l_Lean_instToExprUnit___lambda__1___closed__3; lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); @@ -296,7 +290,6 @@ lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserM lean_object* l_Lean_addMacroScope(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__29; lean_object* l___regBuiltin_Lean_Elab_Term_elabTrailingParserMacro(lean_object*); -lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabStateRefT___lambda__2___closed__7; lean_object* l_Lean_Elab_Term_expandSuffices___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabStateRefT___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -321,7 +314,7 @@ extern lean_object* l_myMacro____x40_Init_Notation___hyg_15956____closed__6; extern lean_object* l_Lean_Syntax_mkApp___closed__1; lean_object* l_Lean_Elab_Term_elabPanic(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_expandSuffices___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_elabTParserMacro(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__3; lean_object* l_Lean_Elab_Term_elabStateRefT___lambda__2___closed__3; lean_object* l_Lean_Elab_Term_elabSorry___closed__1; @@ -331,7 +324,6 @@ lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParser lean_object* l___regBuiltin_Lean_Elab_Term_expandShow(lean_object*); extern lean_object* l_Array_myMacro____x40_Init_Data_Array_Subarray___hyg_932____closed__3; extern lean_object* l_Lean_Elab_macroAttribute; -lean_object* l_Lean_Elab_Term_elabParserMacro(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_environment_main_module(lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__5; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__28; @@ -368,12 +360,9 @@ extern lean_object* l_Lean_Parser_Term_panic___elambda__1___closed__2; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__17; lean_object* l_Lean_Elab_Term_elabType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__1; extern lean_object* l_Lean_Parser_Term_let_x21___elambda__1___closed__1; lean_object* l_Lean_Elab_Term_expandHave___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_elabParserMacro___closed__1; extern lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__2; -lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabPanic___closed__2; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux_match__2___rarg(lean_object*, lean_object*, lean_object*); @@ -413,7 +402,6 @@ lean_object* l_Lean_Elab_Term_elabSubst___closed__2; lean_object* l___regBuiltin_Lean_Elab_Term_elabTrailingParserMacro___closed__1; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__8; lean_object* l_Lean_Elab_Term_elabPanic___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___regBuiltin_Lean_Elab_Term_elabParserMacro___closed__1; lean_object* l_Lean_Elab_Term_mkPairs(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabAnonymousCtor___closed__5; lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_hasCDot_match__1(lean_object*); @@ -448,7 +436,6 @@ lean_object* l_Lean_Elab_Term_expandEmptyC(lean_object*, lean_object*, lean_obje lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__1; lean_object* l_Lean_Elab_Term_expandHave_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_tryPostponeIfHasMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_elabTParserMacro___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabSorry___closed__6; lean_object* l_Lean_Elab_Term_elabBorrowed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__6; @@ -468,7 +455,6 @@ lean_object* l_Lean_Elab_getRefPosition___at_Lean_Elab_Term_elabPanic___spec__1( lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_expandCDot_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__33; lean_object* l___regBuiltin_Lean_Elab_Term_elabBorrowed___closed__1; -lean_object* l___regBuiltin_Lean_Elab_Term_elabTParserMacro___closed__1; lean_object* l_Lean_Meta_kabstract(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_expandHave___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Elab_Term_elabStateRefT(lean_object*); @@ -3131,7 +3117,7 @@ static lean_object* _init_l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Ter _start: { lean_object* x_1; -x_1 = lean_mk_string("invalid `parser!` macro, it must be used in definitions"); +x_1 = lean_mk_string("invalid `leading_parser` macro, it must be used in definitions"); return x_1; } } @@ -3159,7 +3145,7 @@ static lean_object* _init_l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Ter _start: { lean_object* x_1; -x_1 = lean_mk_string("invalid `parser!` macro, unexpected declaration name"); +x_1 = lean_mk_string("invalid `leading_parser` macro, unexpected declaration name"); return x_1; } } @@ -4087,7 +4073,7 @@ lean_dec(x_4); return x_10; } } -static lean_object* _init_l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__1() { +static lean_object* _init_l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -4096,173 +4082,17 @@ x_2 = l_Nat_repr(x_1); return x_2; } } -static lean_object* _init_l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2() { +static lean_object* _init_l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_numLitKind; -x_2 = l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__1; +x_2 = l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__1; x_3 = lean_box(2); x_4 = l_Lean_Syntax_mkLit(x_1, x_2, x_3); return x_4; } } -lean_object* l_Lean_Elab_Term_elabParserMacro___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, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; uint8_t x_10; -x_9 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -lean_inc(x_1); -x_10 = l_Lean_Syntax_isOfKind(x_1, x_9); -if (x_10 == 0) -{ -lean_object* x_11; -lean_dec(x_2); -lean_dec(x_1); -x_11 = l_Lean_Elab_throwUnsupportedSyntax___at___private_Lean_Elab_Binders_0__Lean_Elab_Term_expandBinderModifier___spec__1___rarg(x_8); -return x_11; -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_27; uint8_t x_28; -x_12 = lean_unsigned_to_nat(1u); -x_13 = l_Lean_Syntax_getArg(x_1, x_12); -x_27 = l_Lean_nullKind___closed__2; -lean_inc(x_13); -x_28 = l_Lean_Syntax_isOfKind(x_13, x_27); -if (x_28 == 0) -{ -lean_object* x_29; -x_29 = lean_box(0); -x_14 = x_29; -goto block_26; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_30 = l_Lean_Syntax_getArgs(x_13); -x_31 = lean_array_get_size(x_30); -lean_dec(x_30); -x_32 = lean_unsigned_to_nat(0u); -x_33 = lean_nat_dec_eq(x_31, x_32); -lean_dec(x_31); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_box(0); -x_14 = x_34; -goto block_26; -} -else -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -lean_dec(x_13); -x_35 = lean_unsigned_to_nat(2u); -x_36 = l_Lean_Syntax_getArg(x_1, x_35); -lean_dec(x_1); -x_37 = l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2; -x_38 = l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux(x_37, x_36, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_38; -} -} -block_26: -{ -lean_object* x_15; uint8_t x_16; -lean_dec(x_14); -x_15 = l_Lean_nullKind___closed__2; -lean_inc(x_13); -x_16 = l_Lean_Syntax_isOfKind(x_13, x_15); -if (x_16 == 0) -{ -lean_object* x_17; -lean_dec(x_13); -lean_dec(x_2); -lean_dec(x_1); -x_17 = l_Lean_Elab_throwUnsupportedSyntax___at___private_Lean_Elab_Binders_0__Lean_Elab_Term_expandBinderModifier___spec__1___rarg(x_8); -return x_17; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_18 = l_Lean_Syntax_getArgs(x_13); -x_19 = lean_array_get_size(x_18); -lean_dec(x_18); -x_20 = lean_unsigned_to_nat(2u); -x_21 = lean_nat_dec_eq(x_19, x_20); -lean_dec(x_19); -if (x_21 == 0) -{ -lean_object* x_22; -lean_dec(x_13); -lean_dec(x_2); -lean_dec(x_1); -x_22 = l_Lean_Elab_throwUnsupportedSyntax___at___private_Lean_Elab_Binders_0__Lean_Elab_Term_expandBinderModifier___spec__1___rarg(x_8); -return x_22; -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = l_Lean_Syntax_getArg(x_13, x_12); -lean_dec(x_13); -x_24 = l_Lean_Syntax_getArg(x_1, x_20); -lean_dec(x_1); -x_25 = l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux(x_23, x_24, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_25; -} -} -} -} -} -} -static lean_object* _init_l_Lean_Elab_Term_elabParserMacro___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabParserMacro___lambda__1___boxed), 8, 0); -return x_1; -} -} -lean_object* l_Lean_Elab_Term_elabParserMacro(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* x_8, lean_object* x_9) { -_start: -{ -lean_object* x_10; lean_object* x_11; -x_10 = l_Lean_Elab_Term_elabParserMacro___closed__1; -x_11 = l_Lean_Elab_Term_adaptExpander(x_10, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Elab_Term_elabParserMacro___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -return x_9; -} -} -static lean_object* _init_l___regBuiltin_Lean_Elab_Term_elabParserMacro___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabParserMacro), 9, 0); -return x_1; -} -} -lean_object* l___regBuiltin_Lean_Elab_Term_elabParserMacro(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Elab_Term_termElabAttribute; -x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_4 = l___regBuiltin_Lean_Elab_Term_elabParserMacro___closed__1; -x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); -return x_5; -} -} lean_object* l_Lean_Elab_Term_elabLeadingParserMacro___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, lean_object* x_7, lean_object* x_8) { _start: { @@ -4316,7 +4146,7 @@ lean_dec(x_13); x_35 = lean_unsigned_to_nat(2u); x_36 = l_Lean_Syntax_getArg(x_1, x_35); lean_dec(x_1); -x_37 = l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2; +x_37 = l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2; x_38 = l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux(x_37, x_36, x_2, x_3, x_4, x_5, x_6, x_7, x_8); return x_38; } @@ -4454,7 +4284,7 @@ static lean_object* _init_l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Ter _start: { lean_object* x_1; -x_1 = lean_mk_string("invalid `tparser!` macro, it must be used in definitions"); +x_1 = lean_mk_string("invalid `trailing_parser` macro, it must be used in definitions"); return x_1; } } @@ -4677,162 +4507,6 @@ lean_dec(x_4); return x_10; } } -lean_object* l_Lean_Elab_Term_elabTParserMacro___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, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; uint8_t x_10; -x_9 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -lean_inc(x_1); -x_10 = l_Lean_Syntax_isOfKind(x_1, x_9); -if (x_10 == 0) -{ -lean_object* x_11; -lean_dec(x_2); -lean_dec(x_1); -x_11 = l_Lean_Elab_throwUnsupportedSyntax___at___private_Lean_Elab_Binders_0__Lean_Elab_Term_expandBinderModifier___spec__1___rarg(x_8); -return x_11; -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_27; uint8_t x_28; -x_12 = lean_unsigned_to_nat(1u); -x_13 = l_Lean_Syntax_getArg(x_1, x_12); -x_27 = l_Lean_nullKind___closed__2; -lean_inc(x_13); -x_28 = l_Lean_Syntax_isOfKind(x_13, x_27); -if (x_28 == 0) -{ -lean_object* x_29; -x_29 = lean_box(0); -x_14 = x_29; -goto block_26; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_30 = l_Lean_Syntax_getArgs(x_13); -x_31 = lean_array_get_size(x_30); -lean_dec(x_30); -x_32 = lean_unsigned_to_nat(0u); -x_33 = lean_nat_dec_eq(x_31, x_32); -lean_dec(x_31); -if (x_33 == 0) -{ -lean_object* x_34; -x_34 = lean_box(0); -x_14 = x_34; -goto block_26; -} -else -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -lean_dec(x_13); -x_35 = lean_unsigned_to_nat(2u); -x_36 = l_Lean_Syntax_getArg(x_1, x_35); -lean_dec(x_1); -x_37 = l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2; -x_38 = l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux(x_37, x_36, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_38; -} -} -block_26: -{ -lean_object* x_15; uint8_t x_16; -lean_dec(x_14); -x_15 = l_Lean_nullKind___closed__2; -lean_inc(x_13); -x_16 = l_Lean_Syntax_isOfKind(x_13, x_15); -if (x_16 == 0) -{ -lean_object* x_17; -lean_dec(x_13); -lean_dec(x_2); -lean_dec(x_1); -x_17 = l_Lean_Elab_throwUnsupportedSyntax___at___private_Lean_Elab_Binders_0__Lean_Elab_Term_expandBinderModifier___spec__1___rarg(x_8); -return x_17; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_18 = l_Lean_Syntax_getArgs(x_13); -x_19 = lean_array_get_size(x_18); -lean_dec(x_18); -x_20 = lean_unsigned_to_nat(2u); -x_21 = lean_nat_dec_eq(x_19, x_20); -lean_dec(x_19); -if (x_21 == 0) -{ -lean_object* x_22; -lean_dec(x_13); -lean_dec(x_2); -lean_dec(x_1); -x_22 = l_Lean_Elab_throwUnsupportedSyntax___at___private_Lean_Elab_Binders_0__Lean_Elab_Term_expandBinderModifier___spec__1___rarg(x_8); -return x_22; -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = l_Lean_Syntax_getArg(x_13, x_12); -lean_dec(x_13); -x_24 = l_Lean_Syntax_getArg(x_1, x_20); -lean_dec(x_1); -x_25 = l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux(x_23, x_24, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_25; -} -} -} -} -} -} -static lean_object* _init_l_Lean_Elab_Term_elabTParserMacro___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabTParserMacro___lambda__1___boxed), 8, 0); -return x_1; -} -} -lean_object* l_Lean_Elab_Term_elabTParserMacro(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* x_8, lean_object* x_9) { -_start: -{ -lean_object* x_10; lean_object* x_11; -x_10 = l_Lean_Elab_Term_elabTParserMacro___closed__1; -x_11 = l_Lean_Elab_Term_adaptExpander(x_10, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -lean_object* l_Lean_Elab_Term_elabTParserMacro___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Elab_Term_elabTParserMacro___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -return x_9; -} -} -static lean_object* _init_l___regBuiltin_Lean_Elab_Term_elabTParserMacro___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabTParserMacro), 9, 0); -return x_1; -} -} -lean_object* l___regBuiltin_Lean_Elab_Term_elabTParserMacro(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_Elab_Term_termElabAttribute; -x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_4 = l___regBuiltin_Lean_Elab_Term_elabTParserMacro___closed__1; -x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); -return x_5; -} -} lean_object* l_Lean_Elab_Term_elabTrailingParserMacro___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, lean_object* x_7, lean_object* x_8) { _start: { @@ -4886,7 +4560,7 @@ lean_dec(x_13); x_35 = lean_unsigned_to_nat(2u); x_36 = l_Lean_Syntax_getArg(x_1, x_35); lean_dec(x_1); -x_37 = l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2; +x_37 = l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2; x_38 = l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux(x_37, x_36, x_2, x_3, x_4, x_5, x_6, x_7, x_8); return x_38; } @@ -11233,17 +10907,10 @@ l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___clo lean_mark_persistent(l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__38); l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__39 = _init_l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__39(); lean_mark_persistent(l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__39); -l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__1 = _init_l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__1); -l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2 = _init_l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2); -l_Lean_Elab_Term_elabParserMacro___closed__1 = _init_l_Lean_Elab_Term_elabParserMacro___closed__1(); -lean_mark_persistent(l_Lean_Elab_Term_elabParserMacro___closed__1); -l___regBuiltin_Lean_Elab_Term_elabParserMacro___closed__1 = _init_l___regBuiltin_Lean_Elab_Term_elabParserMacro___closed__1(); -lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_elabParserMacro___closed__1); -res = l___regBuiltin_Lean_Elab_Term_elabParserMacro(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); +l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__1 = _init_l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__1(); +lean_mark_persistent(l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__1); +l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2 = _init_l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2(); +lean_mark_persistent(l_Lean_Elab_Term_elabLeadingParserMacro___lambda__1___closed__2); l_Lean_Elab_Term_elabLeadingParserMacro___closed__1 = _init_l_Lean_Elab_Term_elabLeadingParserMacro___closed__1(); lean_mark_persistent(l_Lean_Elab_Term_elabLeadingParserMacro___closed__1); l___regBuiltin_Lean_Elab_Term_elabLeadingParserMacro___closed__1 = _init_l___regBuiltin_Lean_Elab_Term_elabLeadingParserMacro___closed__1(); @@ -11271,13 +10938,6 @@ l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___cl lean_mark_persistent(l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__9); l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__10 = _init_l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__10(); lean_mark_persistent(l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabTParserMacroAux___closed__10); -l_Lean_Elab_Term_elabTParserMacro___closed__1 = _init_l_Lean_Elab_Term_elabTParserMacro___closed__1(); -lean_mark_persistent(l_Lean_Elab_Term_elabTParserMacro___closed__1); -l___regBuiltin_Lean_Elab_Term_elabTParserMacro___closed__1 = _init_l___regBuiltin_Lean_Elab_Term_elabTParserMacro___closed__1(); -lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_elabTParserMacro___closed__1); -res = l___regBuiltin_Lean_Elab_Term_elabTParserMacro(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); l_Lean_Elab_Term_elabTrailingParserMacro___closed__1 = _init_l_Lean_Elab_Term_elabTrailingParserMacro___closed__1(); lean_mark_persistent(l_Lean_Elab_Term_elabTrailingParserMacro___closed__1); l___regBuiltin_Lean_Elab_Term_elabTrailingParserMacro___closed__1 = _init_l___regBuiltin_Lean_Elab_Term_elabTrailingParserMacro___closed__1(); diff --git a/stage0/stdlib/Lean/Parser/Extra.c b/stage0/stdlib/Lean/Parser/Extra.c index 5324a91a83..6fa7a54a0a 100644 --- a/stage0/stdlib/Lean/Parser/Extra.c +++ b/stage0/stdlib/Lean/Parser/Extra.c @@ -26,6 +26,7 @@ lean_object* l_Lean_Parser_charLit___closed__1; lean_object* l_Lean_Parser_nonReservedSymbol_formatter___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PrettyPrinter_Formatter_visitArgs(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Syntax_addPrec___closed__4; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__1; extern lean_object* l_Lean_scientificLitKind___closed__1; lean_object* l_Lean_PrettyPrinter_Parenthesizer_categoryParser_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__26; @@ -64,6 +65,7 @@ lean_object* l_Lean_Parser_sepBy_formatter___boxed(lean_object*, lean_object*, l lean_object* l_Lean_Parser_ppGroup___boxed(lean_object*); lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__18; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_1057____closed__11; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__4; lean_object* l_Lean_Parser_symbol_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_charLit; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__30; @@ -84,6 +86,7 @@ extern lean_object* l_Lean_identKind___closed__2; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__5; lean_object* l_Lean_PrettyPrinter_Formatter_manyNoAntiquot_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nameLit_formatter___closed__3; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__8; extern lean_object* l_term___u2218_____closed__6; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__3; lean_object* l_Lean_Parser_ident_formatter___closed__2; @@ -92,7 +95,6 @@ lean_object* l_Lean_Parser_many___closed__2; lean_object* l_Lean_Parser_scientificLit; lean_object* l_Lean_ppSpace_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Array_empty___closed__1; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__2; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__12; lean_object* l_Lean_Parser_tokenWithAntiquotFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PrettyPrinter_Formatter_orelse_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -109,7 +111,6 @@ lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__14; lean_object* l_Lean_Parser_withAntiquotSpliceAndSuffix_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__22; lean_object* l_Lean_Parser_antiquotNestedExpr_parenthesizer___closed__1; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__1; extern lean_object* l_Lean_PrettyPrinter_mkParenthesizerAttribute___closed__7; lean_object* l_Lean_PrettyPrinter_Formatter_pushLine(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkIdentFrom(lean_object*, lean_object*); @@ -120,6 +121,7 @@ lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__ lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__18; lean_object* l_Lean_Parser_mkAntiquot_formatter___closed__8; lean_object* l_Lean_PrettyPrinter_Parenthesizer_nameLitNoAntiquot_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__6; lean_object* lean_array_push(lean_object*, lean_object*); lean_object* l_Lean_Parser_optional_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); @@ -130,6 +132,7 @@ lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot_formatter___closed__9; lean_object* l_Lean_Parser_strLit_formatter___closed__2; lean_object* l_Lean_PrettyPrinter_Parenthesizer_toggleInsideQuot_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__2; lean_object* l_Lean_Parser_charLit___elambda__1___closed__1; lean_object* l_Lean_Parser_unicodeSymbol_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_numLit___closed__3; @@ -156,6 +159,7 @@ lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed_ lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__1; lean_object* l_Lean_PrettyPrinter_Parenthesizer_unicodeSymbolNoAntiquot_parenthesizer___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_1057____closed__4; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__5; lean_object* l_Lean_Parser_nodeWithAntiquot_parenthesizer___boxed(lean_object*); lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__18; lean_object* l_Lean_Parser_mkAntiquot_formatter___closed__4; @@ -214,13 +218,13 @@ lean_object* l_Lean_Parser_ppSpace_parenthesizer(lean_object*, lean_object*, lea lean_object* l_Lean_Parser_ident___closed__2; lean_object* l_Lean_Parser_sepByElemParser_formatter___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ppHardSpace_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__7; extern lean_object* l_Lean_PrettyPrinter_mkFormatterAttribute___closed__4; lean_object* l_Lean_Parser_charLit_formatter___closed__2; lean_object* l_Lean_Parser_mkAntiquotSplice_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PrettyPrinter_Formatter_setExpected_formatter___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PrettyPrinter_Formatter_strLitNoAntiquot_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_strLit_parenthesizer___closed__2; +lean_object* l_Lean_Parser_termRegister__parser__alias______; lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__16; extern lean_object* l_Lean_Parser_rawIdentNoAntiquot___closed__1; lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__23; @@ -232,6 +236,7 @@ lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__22; lean_object* l_Lean_Parser_charLit_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_numLitNoAntiquot___closed__1; lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__13; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__9; lean_object* l_Lean_Parser_scientificLit_formatter___closed__3; lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*); lean_object* l_Lean_Parser_scientificLit_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -288,7 +293,6 @@ lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg(lean_object*, uint8_t lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__19; extern lean_object* l_Lean_Parser_parserAliasesRef; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__20; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__11; lean_object* l_Lean_Parser_orelseInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__7; lean_object* l_Lean_Parser_nameLit___closed__2; @@ -301,7 +305,6 @@ lean_object* l_Lean_Syntax_getId(lean_object*); extern lean_object* l_termDepIfThenElse___closed__6; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__24; extern lean_object* l_myMacro____x40_Init_Notation___hyg_958____closed__6; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__3; extern lean_object* l_Lean_charLitKind; extern lean_object* l_Lean_Parser_maxPrec; lean_object* l_Lean_Parser_strLit_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -326,7 +329,6 @@ lean_object* l_Lean_Parser_ppLine_parenthesizer___rarg(lean_object*); lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__7; extern lean_object* l_Lean_Parser_charLitNoAntiquot___closed__1; lean_object* l_Lean_Parser_antiquotExpr_parenthesizer___closed__1; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__6; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__25; lean_object* l_Lean_Parser_nonReservedSymbol_parenthesizer___rarg___closed__1; lean_object* l_Lean_PrettyPrinter_Parenthesizer_pushNone_parenthesizer___boxed(lean_object*); @@ -362,7 +364,6 @@ lean_object* l_Lean_ppHardSpace_formatter___boxed(lean_object*, lean_object*, le lean_object* l_Lean_Parser_many1_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_nameLit___elambda__1___closed__1; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_1057____closed__14; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21______; lean_object* l_Lean_Parser_notSymbol(lean_object*); lean_object* l_Lean_Parser_sepByElemParser_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nullKind___closed__2; @@ -420,6 +421,7 @@ lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__13; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__12; lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__12; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__31; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__10; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__10; lean_object* l_Lean_Parser_mkAntiquot_formatter___closed__7; lean_object* l_Lean_Parser_nameLit_parenthesizer___closed__2; @@ -430,6 +432,7 @@ lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__23; lean_object* l_Lean_Parser_charLit_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_charLit_parenthesizer___closed__2; lean_object* l_Lean_Parser_charLit_formatter___closed__3; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__11; lean_object* l_Lean_Parser_orelseFnCore(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); extern lean_object* l_Int_instInhabitedInt___closed__1; lean_object* l_Lean_Parser_notSymbol_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -437,7 +440,6 @@ extern lean_object* l_Lean_Syntax_mkAntiquotNode___closed__2; lean_object* l_Lean_ppLine_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_optional___closed__2; lean_object* l_Lean_Parser_many1Indent(lean_object*); -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__10; lean_object* l_Lean_PrettyPrinter_Parenthesizer_checkNoImmediateColon_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_1057____closed__16; lean_object* l_Lean_PrettyPrinter_Formatter_pushNone_formatter___boxed(lean_object*); @@ -481,9 +483,7 @@ lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__ lean_object* l_Lean_Parser_scientificLit_formatter___closed__1; lean_object* l_Lean_Parser_symbol_parenthesizer___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_parenthesizerAliasesRef; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__4; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__2; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__8; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_1057____closed__6; lean_object* l_Lean_PrettyPrinter_Parenthesizer_withAntiquotSuffixSplice_parenthesizer___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ppLine_formatter___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -503,7 +503,6 @@ extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_initFn____x40_Lean_Pretty lean_object* l_Lean_Parser_mkAntiquot(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_PrettyPrinter_Parenthesizer_withPosition_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__4; -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__9; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__8; lean_object* l_Lean_Parser_nameLit_formatter___closed__2; lean_object* l_Lean_PrettyPrinter_Parenthesizer_nonReservedSymbolNoAntiquot_parenthesizer___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -519,6 +518,7 @@ lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__ lean_object* l_Lean_Parser_ident_parenthesizer___closed__1; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__11; lean_object* l_Lean_Parser_optional___closed__4; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__3; lean_object* l_Lean_PrettyPrinter_Parenthesizer_strLitNoAntiquot_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__1; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__19; @@ -543,6 +543,7 @@ lean_object* l_Lean_Parser_ident___closed__3; lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__17; lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__2; lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__24; +lean_object* l_Lean_Parser_termRegister__parser__alias_________closed__7; lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__9; lean_object* l_Lean_PrettyPrinter_Formatter_withAntiquotSuffixSplice_formatter___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_ident_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -566,7 +567,6 @@ lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__17; lean_object* l_Lean_Parser_strLit; lean_object* l_Lean_Parser_many1(lean_object*); lean_object* l_Lean_PrettyPrinter_Formatter_andthen_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_termRegisterParserAlias_x21_________closed__5; lean_object* l_Lean_Parser_scientificLit___closed__1; lean_object* l_Lean_Parser_mkAntiquotSplice_formatter___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_identNoAntiquot___closed__2; @@ -3827,43 +3827,43 @@ x_7 = lean_apply_5(x_1, x_2, x_3, x_4, x_5, x_6); return x_7; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__1() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__1() { _start: { lean_object* x_1; -x_1 = lean_mk_string("termRegisterParserAlias!___"); +x_1 = lean_mk_string("termRegister_parser_alias___"); return x_1; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__2() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Syntax_addPrec___closed__4; -x_2 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__1; +x_2 = l_Lean_Parser_termRegister__parser__alias_________closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__3() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__3() { _start: { lean_object* x_1; -x_1 = lean_mk_string("registerParserAlias!"); +x_1 = lean_mk_string("register_parser_alias"); return x_1; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__4() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__3; +x_1 = l_Lean_Parser_termRegister__parser__alias_________closed__3; x_2 = lean_alloc_ctor(5, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__5() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -3873,23 +3873,23 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__6() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__5; +x_1 = l_Lean_Parser_termRegister__parser__alias_________closed__5; x_2 = lean_alloc_ctor(8, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__7() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Syntax_addPrec___closed__10; -x_2 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__4; -x_3 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__6; +x_2 = l_Lean_Parser_termRegister__parser__alias_________closed__4; +x_3 = l_Lean_Parser_termRegister__parser__alias_________closed__6; x_4 = lean_alloc_ctor(2, 3, 0); lean_ctor_set(x_4, 0, x_1); lean_ctor_set(x_4, 1, x_2); @@ -3897,7 +3897,7 @@ lean_ctor_set(x_4, 2, x_3); return x_4; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__8() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -3907,23 +3907,23 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__9() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__9() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__8; +x_1 = l_Lean_Parser_termRegister__parser__alias_________closed__8; x_2 = lean_alloc_ctor(8, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__10() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__10() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Syntax_addPrec___closed__10; -x_2 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__7; -x_3 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__9; +x_2 = l_Lean_Parser_termRegister__parser__alias_________closed__7; +x_3 = l_Lean_Parser_termRegister__parser__alias_________closed__9; x_4 = lean_alloc_ctor(2, 3, 0); lean_ctor_set(x_4, 0, x_1); lean_ctor_set(x_4, 1, x_2); @@ -3931,13 +3931,13 @@ lean_ctor_set(x_4, 2, x_3); return x_4; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__11() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias_________closed__11() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__2; +x_1 = l_Lean_Parser_termRegister__parser__alias_________closed__2; x_2 = lean_unsigned_to_nat(1023u); -x_3 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__10; +x_3 = l_Lean_Parser_termRegister__parser__alias_________closed__10; x_4 = lean_alloc_ctor(3, 3, 0); lean_ctor_set(x_4, 0, x_1); lean_ctor_set(x_4, 1, x_2); @@ -3945,11 +3945,11 @@ lean_ctor_set(x_4, 2, x_3); return x_4; } } -static lean_object* _init_l_Lean_Parser_termRegisterParserAlias_x21______() { +static lean_object* _init_l_Lean_Parser_termRegister__parser__alias______() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__11; +x_1 = l_Lean_Parser_termRegister__parser__alias_________closed__11; return x_1; } } @@ -4248,7 +4248,7 @@ lean_object* l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276_(lean_obje _start: { lean_object* x_4; uint8_t x_5; -x_4 = l_Lean_Parser_termRegisterParserAlias_x21_________closed__2; +x_4 = l_Lean_Parser_termRegister__parser__alias_________closed__2; lean_inc(x_1); x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); if (x_5 == 0) @@ -6805,30 +6805,30 @@ l_Lean_Parser_ppLine = _init_l_Lean_Parser_ppLine(); lean_mark_persistent(l_Lean_Parser_ppLine); l_Lean_ppLine_formatter___closed__1 = _init_l_Lean_ppLine_formatter___closed__1(); lean_mark_persistent(l_Lean_ppLine_formatter___closed__1); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__1 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__1(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__1); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__2 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__2(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__2); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__3 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__3(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__3); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__4 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__4(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__4); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__5 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__5(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__5); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__6 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__6(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__6); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__7 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__7(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__7); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__8 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__8(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__8); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__9 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__9(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__9); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__10 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__10(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__10); -l_Lean_Parser_termRegisterParserAlias_x21_________closed__11 = _init_l_Lean_Parser_termRegisterParserAlias_x21_________closed__11(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21_________closed__11); -l_Lean_Parser_termRegisterParserAlias_x21______ = _init_l_Lean_Parser_termRegisterParserAlias_x21______(); -lean_mark_persistent(l_Lean_Parser_termRegisterParserAlias_x21______); +l_Lean_Parser_termRegister__parser__alias_________closed__1 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__1(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__1); +l_Lean_Parser_termRegister__parser__alias_________closed__2 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__2(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__2); +l_Lean_Parser_termRegister__parser__alias_________closed__3 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__3(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__3); +l_Lean_Parser_termRegister__parser__alias_________closed__4 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__4(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__4); +l_Lean_Parser_termRegister__parser__alias_________closed__5 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__5(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__5); +l_Lean_Parser_termRegister__parser__alias_________closed__6 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__6(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__6); +l_Lean_Parser_termRegister__parser__alias_________closed__7 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__7(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__7); +l_Lean_Parser_termRegister__parser__alias_________closed__8 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__8(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__8); +l_Lean_Parser_termRegister__parser__alias_________closed__9 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__9(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__9); +l_Lean_Parser_termRegister__parser__alias_________closed__10 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__10(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__10); +l_Lean_Parser_termRegister__parser__alias_________closed__11 = _init_l_Lean_Parser_termRegister__parser__alias_________closed__11(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias_________closed__11); +l_Lean_Parser_termRegister__parser__alias______ = _init_l_Lean_Parser_termRegister__parser__alias______(); +lean_mark_persistent(l_Lean_Parser_termRegister__parser__alias______); l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__1 = _init_l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__1(); lean_mark_persistent(l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__1); l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__2 = _init_l_Lean_Parser_myMacro____x40_Lean_Parser_Extra___hyg_276____closed__2(); diff --git a/stage0/stdlib/Lean/Parser/Term.c b/stage0/stdlib/Lean/Parser/Term.c index 1850a64bc1..a0e829c2fd 100644 --- a/stage0/stdlib/Lean/Parser/Term.c +++ b/stage0/stdlib/Lean/Parser/Term.c @@ -15,7 +15,6 @@ extern "C" { #endif lean_object* l_Lean_Parser_Term_subst___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_attr_quot___closed__3; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__22; lean_object* l_Lean_Parser_Term_dbgTrace_formatter___closed__7; lean_object* l_Lean_Parser_Term_doubleQuotedName___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_scoped___elambda__1(lean_object*, lean_object*); @@ -48,7 +47,6 @@ lean_object* l_Lean_Parser_Term_dbgTrace_parenthesizer___closed__4; extern lean_object* l_Lean_Name_toString___closed__1; lean_object* l_Lean_Parser_Term_dynamicQuot___closed__11; lean_object* l_Lean_Parser_Term_letrec_formatter___closed__4; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__7; lean_object* l_Lean_Parser_Term_paren_formatter___closed__5; lean_object* l_Lean_Parser_Term_instBinder_formatter___closed__5; lean_object* l_Lean_Parser_Term_trailing__parser___elambda__1___closed__9; @@ -56,7 +54,6 @@ lean_object* l_Lean_Parser_Term_letIdDecl; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_many1Indent_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_dbgTrace___closed__5; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_str_parenthesizer___closed__1; lean_object* l_Lean_Parser_nonReservedSymbol_formatter___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_binderType_parenthesizer___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -88,6 +85,7 @@ lean_object* l_Lean_Parser_Term_letIdLhs_formatter(lean_object*, lean_object*, l extern lean_object* l_Lean_myMacro____x40_Init_NotationExtra___hyg_1136____closed__3; lean_object* l_Lean_Parser_darrow___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_quotedName___closed__4; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__12; lean_object* l_Lean_Parser_Term_emptyC_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_letDecl_formatter___closed__6; lean_object* l_Lean_Parser_attrParser_formatter___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -122,9 +120,9 @@ lean_object* l_Lean_Parser_Term_ensureTypeOf___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_optEllipsis___closed__1; lean_object* l_Lean_Parser_Term_structInst___closed__10; lean_object* l_Lean_Parser_Term_fromTerm___closed__3; +lean_object* l_Lean_Parser_Term_leading__parser___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_macroDollarArg___elambda__1___closed__6; -lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter___closed__1; lean_object* l_Lean_Parser_Term_simpleBinder___closed__2; lean_object* l_Lean_Parser_Level_quot___closed__1; lean_object* l_Lean_Parser_Term_attrInstance_parenthesizer___closed__2; @@ -143,7 +141,6 @@ lean_object* l_Lean_Parser_Term_unreachable_formatter___closed__3; lean_object* l_Lean_Parser_Term_forInMacro___closed__7; lean_object* l_Lean_Parser_Term_structInstLVal_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_structInstField___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__24; lean_object* l_Lean_Parser_Term_optEllipsis___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_structInstLVal_formatter___closed__10; lean_object* l_Lean_Parser_Term_optIdent___closed__3; @@ -248,7 +245,6 @@ extern lean_object* l_Lean_nullKind; lean_object* l_Lean_Parser_Term_instBinder; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed___closed__4; lean_object* l_Lean_Parser_Term_fun___closed__7; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__6; extern lean_object* l_Lean_myMacro____x40_Init_NotationExtra___hyg_1136____closed__9; lean_object* l_Lean_Parser_Term_syntheticHole_formatter___closed__3; lean_object* l_Lean_Parser_Term_arrow___closed__5; @@ -256,14 +252,12 @@ lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__22; lean_object* l_Lean_Parser_Term_inaccessible___closed__1; lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_letrec___elambda__1___closed__6; -lean_object* l_Lean_Parser_Term_parser_x21_formatter___closed__4; lean_object* l_Lean_Parser_Term_funBinder_quot_formatter___closed__3; lean_object* l_Lean_Parser_Command_docComment___closed__5; lean_object* l_Lean_Parser_Term_matchAlts(lean_object*); lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_let_formatter___closed__6; lean_object* l_Lean_Parser_Term_namedArgument_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__16; lean_object* l_Lean_Parser_Term_structInstArrayRef___closed__4; lean_object* l_Lean_Parser_Term_simpleBinder___closed__5; extern lean_object* l_Lean_Parser_leadPrec; @@ -283,6 +277,7 @@ lean_object* l_Lean_Parser_Term_letRecDecl_formatter___closed__5; lean_object* l_Lean_Parser_Term_explicit___closed__1; lean_object* l___regBuiltin_Lean_Parser_Term_let_formatter___closed__1; lean_object* l_Lean_Parser_many(lean_object*); +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__4; extern lean_object* l_Lean_identKind___closed__1; lean_object* l_Lean_Parser_Term_bracketedBinder_quot___elambda__1___closed__10; lean_object* l___regBuiltin_Lean_Parser_Term_anonymousCtor_formatter(lean_object*); @@ -323,6 +318,7 @@ lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_match___closed__7; lean_object* l_Lean_Parser_Term_tupleTail_parenthesizer___closed__3; extern lean_object* l_Lean_Parser_Level_max___elambda__1___closed__6; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__1; lean_object* l_Lean_Parser_Term_let_x2a___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ensureExpectedType___elambda__1___closed__4; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented_formatter___closed__1; @@ -344,11 +340,11 @@ lean_object* l_Lean_Parser_Term_explicit___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_dynamicQuot___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_instBinder___closed__5; lean_object* l_Lean_Parser_Term_paren___elambda__1___closed__7; +lean_object* l_Lean_Parser_Term_leading__parser_formatter___closed__6; lean_object* l_Lean_Parser_Term_parenSpecial_formatter___closed__2; lean_object* l_Lean_Parser_Term_subst___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_attrInstance_formatter___closed__3; lean_object* l_Lean_Parser_Term_forInMacro_parenthesizer___closed__1; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__21; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_attributes_parenthesizer___closed__5; lean_object* l_Lean_Parser_Term_namedArgument___closed__5; @@ -371,14 +367,12 @@ lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_letRecDecl___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_structInstField_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_proj_parenthesizer(lean_object*); -lean_object* l_Lean_Parser_Term_tparser_x21_formatter___closed__2; lean_object* l_Lean_Parser_Term_scientific___closed__2; lean_object* l_Lean_Parser_Term_binrel___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_namedArgument_formatter___closed__6; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__13; lean_object* l_Lean_Parser_Tactic_quot_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__9; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__17; lean_object* l_Lean_Parser_Term_cdot___elambda__1___closed__10; extern lean_object* l_myMacro____x40_Init_Notation___hyg_14470____closed__8; lean_object* l_Lean_Parser_Term_emptyC_parenthesizer___closed__3; @@ -389,7 +383,6 @@ lean_object* l_Lean_Parser_Term_funBinder_quot___closed__8; lean_object* l_Lean_Parser_Term_anonymousCtor_formatter___closed__3; lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_forall___elambda__1___closed__17; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_trailing__parser___closed__1; lean_object* l_Lean_Parser_Term_typeOf___closed__2; lean_object* l_Lean_Parser_Term_namedArgument___elambda__1___closed__6; @@ -435,7 +428,6 @@ lean_object* l_Lean_Parser_Term_binderType___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_simpleBinder_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_letIdLhs_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_whereDecls___elambda__1___closed__16; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_matchDiscr_quot___closed__7; lean_object* l_Lean_Parser_Term_cdot___closed__8; lean_object* l_Lean_Parser_Term_sort_parenthesizer___closed__1; @@ -487,8 +479,10 @@ extern lean_object* l_Lean_Parser_minPrec; lean_object* l_Lean_Parser_Term_letrec_formatter___closed__3; lean_object* l_Lean_Parser_Term_subst_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__2; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__17; lean_object* l_Lean_Parser_Term_app___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_letPatDecl___closed__2; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__8; lean_object* l___regBuiltin_Lean_Parser_Term_subst_formatter(lean_object*); lean_object* l_Lean_Parser_Term_letPatDecl; lean_object* l_Lean_Parser_Term_assert; @@ -509,7 +503,6 @@ lean_object* l_Lean_Parser_Term_dbgTrace_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_explicitUniv_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_trailing__parser_formatter___closed__1; lean_object* l_Lean_Parser_Term_explicitBinder___elambda__1___closed__3; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_binderTactic_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_tupleTail___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_prop_parenthesizer___closed__1; @@ -560,7 +553,6 @@ lean_object* l_Lean_Parser_Term_have___closed__3; extern lean_object* l_myMacro____x40_Init_Notation___hyg_14470____closed__1; lean_object* l_Lean_Parser_Term_dbgTrace_formatter___closed__5; extern lean_object* l_myMacro____x40_Init_NotationExtra___hyg_5658____closed__28; -lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer(lean_object*); lean_object* l_Lean_Parser_tokenWithAntiquotFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_binderTactic___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_bracketedBinder_quot_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -570,6 +562,7 @@ lean_object* l_Lean_Parser_Term_sort___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ensureExpectedType_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_attrKind___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_unreachable_parenthesizer___closed__2; +lean_object* l_Lean_Parser_Term_leading__parser_parenthesizer___closed__5; lean_object* l_Lean_Parser_Term_optEllipsis___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_dynamicQuot___closed__9; lean_object* l_Lean_Parser_Term_attributes___closed__4; @@ -602,7 +595,6 @@ lean_object* l_Lean_Parser_Term_arrow___closed__1; lean_object* l_Lean_Parser_Term_forall___closed__3; lean_object* l_Lean_Parser_Term_trailing__parser___closed__6; lean_object* l_Lean_Parser_Term_scientific; -lean_object* l_Lean_Parser_Term_parser_x21_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_unreachable___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_anonymousCtor___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_assert_formatter(lean_object*); @@ -667,9 +659,9 @@ lean_object* l_Lean_Parser_Term_structInst_formatter___closed__11; lean_object* l_Lean_Parser_Term_matchDiscr___elambda__1___closed__13; extern lean_object* l_Lean_Parser_antiquotNestedExpr_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_suffices___elambda__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__28; extern lean_object* l_myMacro____x40_Init_Notation___hyg_14470____closed__2; lean_object* l_Lean_Parser_Term_forall_parenthesizer___closed__4; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__11; lean_object* l_Lean_Parser_Term_namedArgument___elambda__1___closed__1; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__13; lean_object* l_Lean_Parser_Term_paren_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -691,7 +683,6 @@ lean_object* l_Lean_Parser_Term_quotedName___closed__5; lean_object* l_Lean_Parser_Term_attributes___closed__7; lean_object* l_Lean_Parser_Term_trailing__parser_formatter___closed__4; lean_object* l_Lean_Parser_Term_letPatDecl_parenthesizer___closed__5; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__14; lean_object* l_Lean_Parser_Term_funSimpleBinder_formatter___closed__3; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_ensureExpectedType___closed__4; @@ -704,13 +695,10 @@ lean_object* l_Lean_Parser_Term_hole___closed__2; lean_object* l_Lean_Parser_Term_letRecDecl___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_assert___elambda__1___closed__7; lean_object* l_Lean_Parser_Tactic_quotSeq_formatter___closed__4; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__15; lean_object* l_Lean_Parser_Term_local___closed__6; lean_object* l_Lean_Parser_Term_attr_quot___closed__6; lean_object* l_Lean_Parser_Term_arrayRef___closed__4; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_formatter___closed__2; -lean_object* l_Lean_Parser_Term_parser_x21___closed__3; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; lean_object* l_Lean_Parser_scientificLit___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_cdot___closed__4; lean_object* l_Lean_Parser_Term_pipeProj_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -768,7 +756,6 @@ lean_object* l_Lean_Parser_Term_doubleQuotedName___closed__6; lean_object* l_Lean_Parser_Term_scientific_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_whereDecls___elambda__1___closed__3; lean_object* l_Lean_Parser_addBuiltinParser(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__5; lean_object* l_Lean_Parser_Term_letRecDecls_formatter___closed__1; lean_object* l_Lean_Parser_Term_optIdent___closed__4; lean_object* l_Lean_Parser_optional_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -856,7 +843,6 @@ lean_object* l___regBuiltin_Lean_Parser_Term_let_x21_parenthesizer(lean_object*) lean_object* l_Lean_Parser_Term_binderType_parenthesizer(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Tactic_tacticSeq_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_structInstArrayRef_formatter___closed__1; -lean_object* l_Lean_Parser_Term_parser_x21_formatter___closed__2; lean_object* l_Lean_Parser_Term_funBinder_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_namedPattern___elambda__1___closed__3; extern lean_object* l_Lean_Parser_Tactic_have___closed__6; @@ -875,7 +861,6 @@ lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_hole_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_forall___closed__7; lean_object* l_Lean_Parser_Term_prop_parenthesizer___closed__2; -lean_object* l___regBuiltinParser_Lean_Parser_Term_tparser_x21(lean_object*); lean_object* l_Lean_Parser_Term_letEqnsDecl___closed__6; lean_object* l___regBuiltinParser_Lean_Parser_Term_ident(lean_object*); lean_object* l_Lean_Parser_Term_attr_quot_parenthesizer___closed__2; @@ -906,15 +891,12 @@ lean_object* l_Lean_Parser_Term_noindex___elambda__1___closed__8; extern lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_1057____closed__9; lean_object* l_Lean_Parser_Term_simpleBinder___closed__3; lean_object* l_Lean_Parser_Term_arrayRef___elambda__1___closed__6; -lean_object* l_Lean_Parser_Term_parser_x21___closed__5; lean_object* l_Lean_Parser_Tactic_seq1___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_whereDecls___elambda__1___closed__15; lean_object* l_Lean_Parser_Term_paren_formatter___closed__6; -lean_object* l___regBuiltin_Lean_Parser_Term_parser_x21_formatter(lean_object*); lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__1; lean_object* l_Lean_Parser_group_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_instBinder_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_sufficesDecl___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_depArrow_formatter___closed__2; lean_object* l_Lean_Parser_Term_bracketedBinder_quot_formatter___closed__3; @@ -922,6 +904,7 @@ lean_object* l___regBuiltin_Lean_Parser_Term_explicit_parenthesizer(lean_object* extern lean_object* l_Lean_Parser_Level_num___closed__1; extern lean_object* l_Lean_Parser_Level_paren_formatter___closed__3; lean_object* l_Lean_Parser_Term_attr_quot___elambda__1___closed__8; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__7; lean_object* l___regBuiltin_Lean_Parser_Term_arrow_formatter(lean_object*); lean_object* l_Lean_Parser_Term_instBinder___closed__7; lean_object* l_Lean_Parser_Command_docComment___closed__2; @@ -953,10 +936,10 @@ lean_object* l___regBuiltin_Lean_Parser_Term_ensureTypeOf_formatter___closed__1; lean_object* l_Lean_Parser_Term_ellipsis___closed__4; lean_object* l_Lean_Parser_Term_simpleBinder___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_assert_parenthesizer___closed__2; -lean_object* l_Lean_Parser_Term_parser_x21___closed__7; lean_object* l_Lean_Parser_Term_assert___closed__4; lean_object* l_Lean_Parser_Term_funImplicitBinder_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__1; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__24; lean_object* l_Lean_Parser_Command_commentBody___closed__2; lean_object* l_Lean_Parser_Term_have___closed__7; lean_object* l_Lean_Parser_Term_noindex___elambda__1___closed__2; @@ -976,14 +959,12 @@ lean_object* l_Lean_Parser_Term_letRecDecl; lean_object* l_Lean_Parser_many_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_structInstLVal___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_stateRefT_formatter___closed__3; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__13; lean_object* l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_formatter___closed__14; lean_object* l_Lean_Parser_Term_let_formatter___closed__1; lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__4; lean_object* l_Lean_Parser_tacticParser_formatter___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_attributes___closed__8; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_paren___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_typeOf___closed__7; lean_object* l_Lean_Parser_Term_matchAltExpr; @@ -1004,7 +985,6 @@ lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__23; lean_object* l_Lean_Parser_Term_suffices___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_hole_parenthesizer___closed__2; -lean_object* l_Lean_Parser_Term_parser_x21_formatter___closed__1; lean_object* l_Lean_Parser_Term_borrowed; lean_object* l_Lean_Parser_Term_binrel_parenthesizer___closed__6; extern lean_object* l_Lean_Parser_leadingNode_formatter___closed__1; @@ -1060,7 +1040,6 @@ extern lean_object* l_Lean_myMacro____x40_Init_NotationExtra___hyg_1136____close lean_object* l_Lean_Parser_Term_funBinder___closed__5; lean_object* l_Lean_Parser_checkPrecFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_panic_parenthesizer___closed__2; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_typeOf_parenthesizer___closed__2; lean_object* l_Lean_Parser_Command_docComment_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PrettyPrinter_Parenthesizer_atomic_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1126,6 +1105,7 @@ lean_object* l_Lean_Parser_Term_explicitUniv_formatter___closed__3; lean_object* l_Lean_Parser_Term_structInstLVal___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_explicitBinder_formatter___closed__4; lean_object* l_Lean_Parser_Term_paren___closed__5; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__9; lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_byTactic___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_forInMacro___elambda__1___closed__8; @@ -1158,6 +1138,7 @@ lean_object* l_Lean_Parser_Term_assert___closed__2; lean_object* l_Lean_Parser_Term_app_parenthesizer___closed__3; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented_formatter___closed__3; lean_object* l_Lean_Parser_Term_matchAlts___elambda__1___closed__1; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__27; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_basicFun___closed__7; @@ -1177,7 +1158,6 @@ lean_object* l_Lean_Parser_Term_matchDiscr_parenthesizer___closed__2; lean_object* l_Lean_Parser_strLit___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letRecDecl___closed__6; lean_object* l_Lean_Parser_Term_matchAltsWhereDecls___closed__6; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Tactic_myMacro____x40_Init_Notation___hyg_17172____closed__4; extern lean_object* l_Lean_Parser_mkAntiquotSplice___closed__9; lean_object* l_Lean_Parser_Term_assert_parenthesizer___closed__1; @@ -1203,7 +1183,6 @@ lean_object* l___regBuiltin_Lean_Parser_Term_stateRefT_parenthesizer(lean_object lean_object* l_Lean_PrettyPrinter_Formatter_trailingNode_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_dbgTrace_parenthesizer___closed__6; lean_object* l_Lean_Parser_Term_app___elambda__1___closed__7; -lean_object* l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_letrec_formatter___closed__6; lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_paren___closed__1; @@ -1268,7 +1247,6 @@ lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_letDecl___closed__6; extern lean_object* l_Lean_Parser_Level_max___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_trailing__parser; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__26; lean_object* l_Lean_Parser_Term_subst_formatter___closed__1; lean_object* l_Lean_Parser_Term_sort___closed__1; lean_object* l_Lean_Parser_Term_forall_parenthesizer___closed__6; @@ -1293,7 +1271,6 @@ lean_object* l_Lean_Parser_Term_let_x21___closed__3; lean_object* l_Lean_Parser_Term_matchDiscr_formatter___closed__7; lean_object* l_Lean_Parser_Term_typeAscription; lean_object* l_Lean_Parser_Term_simpleBinder___closed__4; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__3; lean_object* l_Lean_Parser_Term_structInstLVal_formatter___closed__4; lean_object* l_Lean_Parser_Term_sorry___elambda__1___closed__2; lean_object* l_Lean_Parser_Tactic_seq1_formatter___closed__1; @@ -1305,11 +1282,9 @@ lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__1; lean_object* l_Lean_Parser_Tactic_seq1___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_leading__parser___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_haveDecl___elambda__1___closed__1; -lean_object* l___regBuiltinParser_Lean_Parser_Term_parser_x21(lean_object*); lean_object* l_Lean_Parser_Term_fromTerm___closed__1; lean_object* l_Lean_Parser_Term_app_parenthesizer___closed__5; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_formatter___closed__12; -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer___closed__5; lean_object* l_Lean_Parser_Term_namedArgument___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_typeOf___closed__5; lean_object* l_Lean_Parser_Term_anonymousCtor___closed__5; @@ -1321,12 +1296,12 @@ lean_object* l_Lean_Parser_Term_match___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_anonymousCtor___closed__3; lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_match_parenthesizer___closed__1; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__25; lean_object* l_Lean_Parser_Term_typeAscription_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_unreachable_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_matchAltsWhereDecls_formatter___closed__2; extern lean_object* l_Lean_Parser_Tactic_myMacro____x40_Init_Notation___hyg_17172____closed__3; lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__12; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__18; lean_object* l_Lean_Parser_Term_arrow; lean_object* l___regBuiltin_Lean_Parser_Term_char_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_arrow___closed__4; @@ -1361,7 +1336,6 @@ extern lean_object* l_Lean_instToStringAttributeKind___closed__3; lean_object* l_Lean_Parser_Term_ensureExpectedType___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_structInstLVal_formatter___closed__9; lean_object* l_Lean_Parser_Term_binrel___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_tparser_x21_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Command_docComment___closed__4; lean_object* l_Lean_Parser_Term_depArrow_parenthesizer___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_assert_parenthesizer___closed__1; @@ -1534,7 +1508,6 @@ lean_object* l_Lean_Parser_Term_explicitBinder_formatter___closed__8; extern lean_object* l_myMacro____x40_Init_Notation___hyg_13868____closed__9; lean_object* l_Lean_Parser_Term_explicitBinder___closed__7; lean_object* l_Lean_Parser_Term_match___closed__5; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__10; lean_object* l_Lean_Parser_checkWsBeforeFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_borrowed___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_noindex_parenthesizer___closed__1; @@ -1554,7 +1527,6 @@ lean_object* l_Lean_Parser_Term_haveDecl_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_funBinder_quot___elambda__1___closed__14; lean_object* l_Lean_Parser_Term_paren_formatter___closed__8; lean_object* l_Lean_Parser_Term_letPatDecl_parenthesizer___closed__1; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_binrel___closed__3; lean_object* l_Lean_Parser_Term_structInstField_formatter___closed__3; lean_object* l_Lean_Parser_Term_quotedName___elambda__1___closed__2; @@ -1590,7 +1562,6 @@ lean_object* l_Lean_Parser_Term_have; lean_object* l_Lean_Parser_Term_letIdLhs___closed__3; extern lean_object* l_Lean_Parser_Tactic_myMacro____x40_Init_Notation___hyg_19491____closed__1; lean_object* l_Lean_Parser_Term_namedPattern___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_typeSpec; lean_object* l_Lean_Parser_Term_leading__parser___closed__5; lean_object* l_Lean_Parser_Tactic_quot_formatter___closed__3; @@ -1628,7 +1599,6 @@ lean_object* l_Lean_Parser_Term_explicit_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_structInstLVal___elambda__1___closed__14; lean_object* l_Lean_Parser_Term_app_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_typeOf___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__20; lean_object* l_Lean_Parser_Term_dbgTrace___closed__8; lean_object* l_Lean_Parser_Term_byTactic_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_structInstLVal___elambda__1___closed__5; @@ -1638,7 +1608,6 @@ lean_object* l_Lean_Parser_Term_suffices_parenthesizer___closed__5; extern lean_object* l_termIfLet___x3a_x3d__Then__Else_____closed__3; lean_object* l___regBuiltin_Lean_Parser_Term_type_formatter___closed__1; lean_object* l_Lean_Parser_Term_explicitBinder___closed__3; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_have_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_suffices___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_dynamicQuot___closed__12; @@ -1647,6 +1616,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Term_trailing__parser(lean_object* lean_object* l_Lean_Parser_Term_structInst_formatter___closed__13; lean_object* l_Lean_Parser_Term_dynamicQuot_formatter___closed__6; lean_object* l___regBuiltin_Lean_Parser_Term_let_x21_parenthesizer___closed__1; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__21; lean_object* l_Lean_Parser_Term_letrec___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_haveDecl_parenthesizer___closed__1; @@ -1752,9 +1722,9 @@ extern lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__ lean_object* l_Lean_Parser_Term_implicitBinder_parenthesizer(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_attrKind___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__5; -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_tupleTail_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Tactic_quot_parenthesizer___closed__5; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__2; lean_object* l_Lean_Parser_Term_funImplicitBinder_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_letRecDecls_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_panic___elambda__1___closed__3; @@ -1790,7 +1760,6 @@ extern lean_object* l_Lean_Parser_Tactic_letrec___closed__11; lean_object* l_Lean_Parser_Term_type_formatter___closed__1; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__24; lean_object* l_Lean_Parser_Term_attrKind___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_letEqnsDecl_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_app_formatter___closed__3; lean_object* l_Lean_Parser_Term_syntheticHole___closed__6; @@ -1846,11 +1815,9 @@ lean_object* l_Lean_Parser_Term_leading__parser___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_forInMacro___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_assert_formatter___closed__4; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__34; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_paren_parenthesizer___closed__10; lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_scoped; -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fun___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_stateRefT___elambda__1___closed__7; @@ -1861,7 +1828,6 @@ lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed___elambda__1___closed__17; lean_object* l_Lean_Parser_Term_cdot___closed__5; lean_object* l_Lean_Parser_Term_macroDollarArg___closed__3; extern lean_object* l_Lean_myMacro____x40_Init_NotationExtra___hyg_1136____closed__10; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__12; lean_object* l_Lean_Parser_Term_emptyC_formatter___closed__2; extern lean_object* l_Lean_initFn____x40_Lean_Parser_Extra___hyg_938____closed__19; extern lean_object* l_Lean_Parser_parserAliasesRef; @@ -1941,8 +1907,8 @@ lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__3; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_parenthesizer___closed__9; lean_object* l_Lean_Parser_Term_scoped_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ensureExpectedType_formatter___closed__3; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1; lean_object* l_Lean_Parser_Level_quot___closed__2; +lean_object* l_Lean_Parser_Term_leading__parser_parenthesizer___closed__3; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_68____closed__3; extern lean_object* l_Lean_Parser_maxPrec; lean_object* l_Lean_Parser_Term_local_formatter___closed__1; @@ -1992,6 +1958,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Term_anonymousCtor(lean_object*); extern lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Extra___hyg_634____closed__16; extern lean_object* l_myMacro____x40_Init_Notation___hyg_14470____closed__11; lean_object* l_Lean_Parser_Term_optEllipsis_formatter___closed__3; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__19; lean_object* l_Lean_Parser_Term_depArrow___closed__1; lean_object* l_Lean_Parser_Tactic_quotSeq_parenthesizer___closed__6; lean_object* l_Lean_Parser_Term_proj___closed__5; @@ -2030,7 +1997,6 @@ lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_dbgTrace___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_structInst_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_implicitBinder(uint8_t); -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__7; lean_object* l___regBuiltin_Lean_Parser_Tactic_quot_formatter(lean_object*); lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_namedPattern___closed__6; @@ -2106,7 +2072,6 @@ lean_object* l_Lean_Parser_Term_forall_formatter___closed__1; lean_object* l_Lean_Parser_Term_tupleTail___closed__3; lean_object* l_Lean_Parser_Term_have___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_attrInstance_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_byTactic___closed__7; lean_object* l_Lean_Parser_Term_binderTactic___elambda__1___closed__12; @@ -2162,6 +2127,7 @@ lean_object* l_Lean_Parser_Term_simpleBinder_formatter___closed__1; lean_object* l_Lean_Parser_Term_dbgTrace_formatter___closed__4; lean_object* l_Lean_Parser_Term_optEllipsis___closed__5; lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__8; +lean_object* l_Lean_Parser_Term_leading__parser___closed__8; lean_object* l_Lean_Parser_Tactic_quotSeq_formatter___closed__3; lean_object* l_Lean_Parser_Term_explicitBinder_parenthesizer___closed__6; lean_object* l_Lean_Parser_Term_structInstArrayRef___elambda__1(lean_object*, lean_object*); @@ -2191,7 +2157,6 @@ lean_object* l_Lean_Parser_Term_inaccessible_parenthesizer(lean_object*, lean_ob lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_ident_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__4; lean_object* l_Lean_Parser_Term_dynamicQuot_formatter___closed__2; lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__21; @@ -2260,7 +2225,6 @@ lean_object* l_Lean_Parser_Term_instBinder_formatter___closed__4; lean_object* l_Lean_Parser_Term_leading__parser___closed__1; extern lean_object* l_term_x7b_____x3a___x2f_x2f___x7d___closed__13; lean_object* l_Lean_Parser_Term_instBinder___elambda__1___closed__5; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__9; lean_object* l_Lean_Parser_Term_ellipsis___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_show___closed__7; lean_object* l_Lean_Parser_Term_dynamicQuot___elambda__1___closed__8; @@ -2303,12 +2267,12 @@ lean_object* l_Lean_Parser_Term_let_x2a___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_match_formatter___closed__6; lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_parser_x21; lean_object* l_Lean_Parser_Term_macroLastArg___closed__2; lean_object* l_Lean_Parser_Term_pipeProj_formatter___closed__1; lean_object* l_Lean_Parser_Term_funBinder_quot___elambda__1___closed__15; lean_object* l_Lean_Parser_Term_pipeProj_formatter___closed__2; lean_object* l_Lean_Parser_Term_bracketedBinder_quot___elambda__1___closed__2; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__16; lean_object* l_Lean_Parser_Term_structInstArrayRef_parenthesizer___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_dynamicQuot_formatter(lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_binrel_parenthesizer(lean_object*); @@ -2369,7 +2333,6 @@ lean_object* l_Lean_Parser_Term_proj_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__2; lean_object* l_Lean_Parser_Command_docComment_formatter___closed__5; lean_object* l_Lean_Parser_Term_parenSpecial_parenthesizer___closed__3; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3; lean_object* l_Lean_Parser_Command_docComment___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_prop___closed__3; lean_object* l_Lean_Parser_Command_docComment_parenthesizer___closed__3; @@ -2397,7 +2360,7 @@ lean_object* l_Lean_Parser_Term_unreachable_formatter___closed__2; lean_object* l_Lean_Parser_Term_ensureTypeOf; lean_object* l_Lean_Parser_Term_panic___elambda__1___closed__7; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_formatter___closed__4; -lean_object* l_Lean_Parser_Term_tparser_x21___closed__5; +lean_object* l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_optEllipsis___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_binderTactic___closed__4; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -2431,6 +2394,7 @@ lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed_formatter___closed__3; lean_object* l_Lean_Parser_Term_binderType___closed__5; lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_attr_quot_formatter___closed__5; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__18; lean_object* l_Lean_Parser_Term_have___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_letIdLhs___closed__2; @@ -2443,6 +2407,7 @@ lean_object* l_Lean_Parser_Term_forall___elambda__1___closed__10; extern lean_object* l_Lean_Parser_antiquotNestedExpr_formatter___closed__2; lean_object* l_Lean_Parser_Term_arrow_formatter___closed__1; lean_object* l_Lean_Parser_Term_binderDefault___closed__4; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__28; lean_object* l_Lean_Parser_Term_inaccessible_formatter___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_emptyC_formatter___closed__1; lean_object* l_Lean_Parser_Term_matchAltsWhereDecls___closed__3; @@ -2474,6 +2439,7 @@ lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_funSimpleBinder_formatter___closed__1; lean_object* l_Lean_Parser_Term_binderIdent_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_attrKind_formatter___closed__1; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__5; lean_object* l_Lean_Parser_Term_nomatch___closed__1; lean_object* l_Lean_Parser_Term_whereDecls_parenthesizer___closed__5; lean_object* l_Lean_Parser_Term_cdot___elambda__1___closed__1; @@ -2489,7 +2455,6 @@ lean_object* l_Lean_Parser_Term_haveDecl_formatter(lean_object*, lean_object*, l lean_object* l_Lean_Parser_Term_ensureExpectedType___closed__3; lean_object* l_Lean_Parser_Term_dbgTrace___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_scoped___elambda__1___closed__3; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_explicit___closed__3; lean_object* l_Lean_Parser_Term_binderType___closed__3; lean_object* l_Lean_Parser_Term_str_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -2558,6 +2523,7 @@ lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_tupleTail; lean_object* l_Lean_Parser_Term_macroArg; lean_object* l_Lean_Parser_Term_typeAscription___closed__5; +lean_object* l_Lean_Parser_Term_leading__parser_formatter___closed__5; lean_object* l_Lean_Parser_ident___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_byTactic___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_binderIdent; @@ -2578,6 +2544,7 @@ lean_object* l_Lean_Parser_Term_matchAltsWhereDecls_formatter___closed__8; lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1___closed__2; lean_object* l___regBuiltinParser_Lean_Parser_Term_ensureExpectedType(lean_object*); lean_object* l_Lean_Parser_Term_local___elambda__1___closed__6; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__22; extern lean_object* l_Lean_Parser_Level_hole___elambda__1___closed__5; lean_object* l_Lean_Parser_toggleInsideQuotFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_explicit___elambda__1___closed__3; @@ -2620,7 +2587,6 @@ lean_object* l_Lean_Parser_Term_match_formatter___closed__2; lean_object* l_Lean_Parser_Term_anonymousCtor_formatter___closed__6; lean_object* l_Lean_Parser_Term_simpleBinder; lean_object* l_Lean_Parser_Term_letrec___closed__3; -lean_object* l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_structInst_formatter___closed__14; lean_object* l_Lean_Parser_Term_structInstLVal_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_let_x21___elambda__1___closed__7; @@ -2652,6 +2618,7 @@ lean_object* l___regBuiltin_Lean_Parser_Term_typeOf_formatter___closed__1; lean_object* l_Lean_Parser_Tactic_tacticSeqBracketed___elambda__1___closed__14; lean_object* l_Lean_Parser_Tactic_quotSeq_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_matchAlt___closed__4; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__15; lean_object* l_Lean_Parser_Term_funSimpleBinder___elambda__1(lean_object*, lean_object*); extern lean_object* l_myMacro____x40_Init_Notation___hyg_2191____closed__4; lean_object* l_Lean_Parser_Term_app; @@ -2660,6 +2627,7 @@ lean_object* l_Lean_Parser_Term_explicit_formatter___closed__4; extern lean_object* l_Lean_Parser_mkAntiquotSplice___closed__6; lean_object* l_Lean_Parser_Term_syntheticHole___closed__4; lean_object* l_Lean_Parser_Tactic_quotSeq___closed__3; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__14; lean_object* l_Lean_Parser_Term_scoped___closed__5; lean_object* l_Lean_Parser_Term_instBinder___closed__1; lean_object* l_Lean_Parser_Term_bracketedBinder___elambda__1(lean_object*, lean_object*, lean_object*); @@ -2680,9 +2648,7 @@ extern lean_object* l_Lean_PrettyPrinter_Formatter_formatterAliasesRef; lean_object* l_Lean_Parser_Term_attrKind; lean_object* l_Lean_Parser_Term_sorry; lean_object* l_Lean_Parser_Term_arrow_parenthesizer___closed__2; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_panic___closed__1; -lean_object* l_Lean_Parser_Term_tparser_x21___closed__3; lean_object* l_Lean_Parser_Term_attrKind___closed__2; lean_object* l_Lean_Parser_Term_structInstLVal___closed__4; lean_object* l_Lean_Parser_Term_macroArg_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -2690,7 +2656,6 @@ lean_object* l_Lean_Parser_Term_matchAlt(lean_object*); lean_object* l_Lean_Parser_Term_letIdLhs_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ensureTypeOf___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_depArrow_formatter___closed__3; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__11; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_matchDiscr_quot___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_optEllipsis_formatter___closed__1; @@ -2753,7 +2718,6 @@ lean_object* l_Lean_Parser_Term_attrKind_parenthesizer(lean_object*, lean_object lean_object* l_Lean_Parser_Term_funBinder_quot___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_funBinder_quot_formatter___closed__4; lean_object* l_Lean_Parser_Term_attr_quot___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_subst___closed__3; extern lean_object* l_Lean_myMacro____x40_Init_NotationExtra___hyg_1136____closed__11; lean_object* l_Lean_Parser_withPosition___lambda__1(lean_object*, lean_object*, lean_object*); @@ -2819,8 +2783,6 @@ lean_object* l_Lean_Parser_Term_anonymousCtor; lean_object* l_Lean_Parser_Term_forall___closed__9; lean_object* l_Lean_Parser_Level_quot___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_unreachable_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_parser_x21___closed__8; -lean_object* l_Lean_Parser_Term_parser_x21___closed__1; lean_object* l___regBuiltin_Lean_Parser_Term_explicitUniv_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_inaccessible___closed__3; lean_object* l_Lean_Parser_Term_letIdLhs_formatter___closed__5; @@ -2874,12 +2836,11 @@ lean_object* l___regBuiltin_Lean_Parser_Term_noindex_formatter(lean_object*); lean_object* l_Lean_Parser_Term_suffices_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_arrow___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_matchAltsWhereDecls___closed__2; -lean_object* l_Lean_Parser_Term_tparser_x21_formatter___closed__3; lean_object* l_Lean_Parser_Tactic_quot___closed__4; lean_object* l_Lean_Parser_Term_simpleBinder___elambda__1___closed__5; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__23; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_ellipsis___elambda__1___closed__2; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__27; lean_object* l_Lean_Parser_Term_matchDiscr_quot___closed__2; lean_object* l_Lean_Parser_Term_dynamicQuot___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_borrowed___closed__3; @@ -2890,7 +2851,6 @@ lean_object* l_Lean_Parser_Term_depArrow___closed__6; lean_object* l_Lean_Parser_Term_sorry_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_attrKind_parenthesizer___closed__5; lean_object* l_Lean_Parser_Term_ellipsis_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_tparser_x21_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_attributes___closed__1; lean_object* l_Lean_Parser_Term_letIdLhs_parenthesizer___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_forall_parenthesizer(lean_object*); @@ -2925,7 +2885,6 @@ lean_object* l_Lean_Parser_Term_matchDiscr_formatter___closed__3; lean_object* l_Lean_Parser_Term_structInstField___closed__6; lean_object* l_Lean_Parser_Term_show___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__6; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__19; lean_object* l_Lean_Parser_Term_letRecDecl_formatter___closed__8; lean_object* l_Lean_Parser_Term_letRecDecl___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_let_x2a___elambda__1___closed__4; @@ -2946,7 +2905,6 @@ lean_object* l_Lean_Parser_Term_app___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_structInstLVal_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_emptyC___closed__3; lean_object* l_Lean_Parser_Term_dynamicQuot_parenthesizer___closed__6; -lean_object* l_Lean_Parser_Term_tparser_x21___closed__7; lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_binrel_formatter___closed__5; lean_object* l_Lean_Parser_Term_typeSpec___closed__3; @@ -3065,6 +3023,7 @@ lean_object* l_Lean_Parser_Term_match___closed__8; lean_object* l_Lean_Parser_Term_forall___closed__8; lean_object* l_Lean_Parser_Term_local_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_fromTerm___closed__6; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__13; lean_object* l_Lean_Parser_Term_type; lean_object* l_Lean_Parser_Term_app___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_binrel_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -3123,7 +3082,6 @@ lean_object* l_Lean_Parser_Term_letPatDecl_formatter___closed__4; lean_object* l_Lean_Parser_Term_matchDiscr_quot_formatter___closed__2; lean_object* l_Lean_Parser_Term_match_parenthesizer___closed__3; extern lean_object* l_Std_Range_myMacro____x40_Init_Data_Range___hyg_362____closed__15; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__6; lean_object* l_Lean_Parser_Term_letDecl___closed__12; lean_object* l_Lean_Parser_Term_binderDefault___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_letRecDecl_parenthesizer___closed__1; @@ -3169,7 +3127,6 @@ lean_object* l_Lean_Parser_Term_letPatDecl_formatter___closed__2; lean_object* l_Lean_Parser_Term_letIdLhs_formatter___closed__1; lean_object* l_Lean_Parser_Term_ellipsis_formatter___closed__1; lean_object* l_Lean_Parser_Term_syntheticHole___closed__3; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__1; extern lean_object* l_Lean_Parser_Tactic_tactic___x3c_x3b_x3e_____closed__6; lean_object* l_Lean_Parser_Term_doubleQuotedName___closed__4; lean_object* l_Lean_Parser_Term_attributes_formatter___closed__5; @@ -3188,7 +3145,6 @@ extern lean_object* l_Lean_Parser_mkAntiquotSplice_formatter___closed__1; lean_object* l___regBuiltin_Lean_Parser_Term_ensureExpectedType_parenthesizer___closed__1; lean_object* l_Lean_Parser_sepBy1_formatter___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ensureTypeOf___elambda__1___closed__7; -lean_object* l_Lean_Parser_Term_tparser_x21___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_inaccessible_formatter(lean_object*); lean_object* l_Lean_Parser_Term_letRecDecl___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_subst___closed__1; @@ -3198,7 +3154,6 @@ lean_object* l_Lean_Parser_Term_haveAssign; lean_object* l_Lean_Parser_Term_explicit___closed__6; lean_object* l___regBuiltin_Lean_Parser_Term_borrowed_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_suffices___closed__5; -lean_object* l_Lean_Parser_Term_parser_x21___closed__2; lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_optEllipsis___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_forInMacro___closed__6; @@ -3299,7 +3254,6 @@ lean_object* l_Lean_Parser_Term_assert___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_attrKind___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_panic___closed__3; lean_object* l_Lean_Parser_Term_nomatch_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_namedPattern_formatter___closed__1; lean_object* l_Lean_Parser_Term_letIdLhs_formatter___closed__4; lean_object* l_Lean_Parser_Term_namedArgument___closed__6; @@ -3310,7 +3264,6 @@ lean_object* l_Lean_Parser_Term_local___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_funImplicitBinder_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_letIdDecl_parenthesizer___closed__4; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__20; -lean_object* l_Lean_Parser_Term_tparser_x21___closed__4; extern lean_object* l_Lean_Parser_Tactic_show___closed__1; lean_object* l_Lean_Parser_Term_letPatDecl_formatter___closed__1; lean_object* l_Lean_Parser_Term_typeAscription___closed__2; @@ -3325,7 +3278,6 @@ lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_basicFun_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_macroDollarArg_parenthesizer___closed__1; lean_object* l___regBuiltin_Lean_Parser_Term_binrel_formatter(lean_object*); -lean_object* l_Lean_Parser_Term_tparser_x21___closed__1; lean_object* l_Lean_Parser_Term_proj_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_forall___elambda__1___closed__18; lean_object* l_Lean_Parser_Term_panic___elambda__1___closed__8; @@ -3344,7 +3296,6 @@ lean_object* l_Lean_Parser_Term_instBinder___closed__4; lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_local___elambda__1___closed__3; lean_object* l___regBuiltin_Lean_Parser_Term_ensureExpectedType_formatter(lean_object*); -lean_object* l_Lean_Parser_Term_tparser_x21_formatter___closed__4; lean_object* l_Lean_Parser_Term_borrowed___closed__6; lean_object* l_Lean_Parser_Term_byTactic_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_letRecDecl_parenthesizer___closed__5; @@ -3361,7 +3312,6 @@ lean_object* l_Lean_Parser_Term_app___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_trailing__parser___closed__3; lean_object* l_Lean_Parser_Term_letRecDecl___closed__5; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__8; -lean_object* l_Lean_Parser_Term_parser_x21___closed__4; lean_object* l_Lean_Parser_Term_assert_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_parenthesizerAliasesRef; lean_object* l_Lean_Parser_Term_matchDiscr; @@ -3384,6 +3334,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Term_leading__parser(lean_object*) lean_object* l_Lean_Parser_Term_structInst_formatter___closed__20; lean_object* l_Lean_Parser_Term_structInstField_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_attr_quot___closed__4; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__26; lean_object* l_Lean_Parser_Term_basicFun_parenthesizer___closed__5; lean_object* l_Lean_Parser_Term_sort_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_attrInstance_parenthesizer___closed__5; @@ -3394,7 +3345,6 @@ lean_object* l_Lean_Parser_Term_type___closed__5; lean_object* l_Lean_Parser_Term_attributes_formatter___closed__7; lean_object* l_Lean_Parser_Term_funBinder_quot___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_paren_formatter___closed__10; -lean_object* l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_macroDollarArg___closed__4; lean_object* l_Lean_Parser_Level_quot___closed__6; lean_object* l_Lean_Parser_Term_match___elambda__1___closed__10; @@ -3451,7 +3401,6 @@ lean_object* l_Lean_Parser_Term_let_x2a___closed__8; extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_initFn____x40_Lean_PrettyPrinter_Parenthesizer___hyg_2958____closed__3; lean_object* l_Lean_Parser_Term_ellipsis___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__6; -lean_object* l_Lean_Parser_Term_parser_x21_formatter___closed__6; lean_object* l___regBuiltin_Lean_Parser_Term_bracketedBinder_quot_formatter(lean_object*); lean_object* l_Lean_Parser_mkAntiquot(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Parser_Term_funBinder___closed__2; @@ -3505,19 +3454,16 @@ lean_object* l_Lean_Parser_Term_attrInstance___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_forInMacro___closed__2; lean_object* l_Lean_Parser_Term_hole___closed__3; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__7; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__8; lean_object* l_Lean_Parser_Tactic_seq1___closed__2; lean_object* l_Lean_Parser_Term_explicitBinder_formatter___closed__7; lean_object* l_Lean_Parser_Term_byTactic___closed__6; extern lean_object* l_Std_Range_myMacro____x40_Init_Data_Range___hyg_362____closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_forall_formatter___closed__1; lean_object* l_Lean_Parser_Term_optSemicolon_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___regBuiltin_Lean_Parser_Term_parser_x21_formatter___closed__1; lean_object* l_Lean_Parser_unicodeSymbolFn___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_structInstField___closed__3; lean_object* l_Lean_Parser_Term_local___closed__3; lean_object* l___regBuiltin_Lean_Parser_Term_suffices_formatter___closed__1; -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__3; lean_object* l_Lean_Parser_many_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_funBinder_quot_formatter___closed__1; lean_object* l_Lean_Parser_Term_dbgTrace_formatter___closed__2; @@ -3599,9 +3545,8 @@ lean_object* l_Lean_Parser_Term_let_x21___closed__1; lean_object* l_Lean_Parser_Term_binderDefault_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_bracketedBinder_quot___elambda__1___closed__4; extern lean_object* l_myMacro____x40_Init_Notation___hyg_8584____closed__1; -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer___closed__1; -lean_object* l_Lean_Parser_Term_parser_x21_formatter___closed__3; lean_object* l_Lean_Parser_Term_macroLastArg___closed__3; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__10; lean_object* l___regBuiltinParser_Lean_Parser_Term_scientific___closed__1; lean_object* l_Lean_Parser_Term_nomatch___closed__5; lean_object* l_Lean_Parser_Term_fun___closed__2; @@ -3635,6 +3580,7 @@ lean_object* l_Lean_Parser_Term_noindex_formatter___closed__1; lean_object* l_Lean_Parser_Term_dbgTrace___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_funSimpleBinder_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_prop_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__20; lean_object* l___regBuiltin_Lean_Parser_Term_str_formatter(lean_object*); lean_object* l_Lean_Parser_Term_subst_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_app___closed__2; @@ -3652,7 +3598,6 @@ lean_object* l_Lean_Parser_Term_byTactic_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_tupleTail___closed__4; lean_object* l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_doubleQuotedName___elambda__1___closed__2; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_scientific___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_whereDecls___elambda__1___closed__1; extern lean_object* l_Lean_Parser_mkAntiquot___closed__8; @@ -3685,7 +3630,6 @@ lean_object* l_Lean_Parser_Term_tupleTail_formatter___closed__4; lean_object* l_Lean_Parser_Term_dbgTrace___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_letEqnsDecl_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_bracketedBinder_quot___elambda__1___closed__9; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__2; lean_object* l_Lean_Parser_Term_suffices; lean_object* l_Lean_Parser_Term_forall_formatter___closed__2; lean_object* l_Lean_Parser_Term_binderDefault_formatter___closed__1; @@ -3762,7 +3706,6 @@ lean_object* l_Lean_Parser_Term_match___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_scoped_formatter___closed__1; lean_object* l_Lean_Parser_Term_structInst_parenthesizer___closed__13; lean_object* l_Lean_Parser_Term_binderIdent___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_parser_x21_formatter___closed__5; lean_object* l_Lean_Parser_Term_simpleBinder___closed__6; lean_object* l_Lean_Parser_Term_ensureTypeOf___closed__6; lean_object* l_Lean_Parser_Term_whereDecls___elambda__1___closed__13; @@ -3791,7 +3734,7 @@ lean_object* l_Lean_Parser_Term_syntheticHole_parenthesizer___closed__1; lean_object* l_Lean_Parser_checkWsBefore___elambda__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_show_parenthesizer___closed__1; lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_68_(lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907_(lean_object*); +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835_(lean_object*); lean_object* l_Lean_Parser_Term_parenSpecial_formatter___closed__3; lean_object* l_Lean_Parser_Term_noindex___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_doubleQuotedName___closed__7; @@ -3804,7 +3747,6 @@ lean_object* l_Lean_Parser_Term_depArrow_formatter___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_arrayRef_formatter___closed__1; lean_object* l_Lean_Parser_Term_dbgTrace_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_tupleTail_formatter___closed__1; -lean_object* l_Lean_Parser_Term_tparser_x21_formatter___closed__1; lean_object* l_Lean_Parser_Term_macroLastArg_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ensureTypeOf___closed__5; lean_object* l_Lean_Parser_Term_parenSpecial___closed__4; @@ -3814,7 +3756,6 @@ lean_object* l_Lean_Parser_Term_macroDollarArg_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_dbgTrace___closed__7; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__9; extern lean_object* l_Lean_Parser_Tactic_let_x21___closed__3; -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__23; lean_object* l_Lean_Parser_Term_scoped___closed__1; extern lean_object* l_instReprSigma___rarg___closed__6; lean_object* l_Lean_Parser_Term_letrec_formatter___closed__2; @@ -3844,7 +3785,6 @@ lean_object* l_Lean_PrettyPrinter_Formatter_notFollowedBy_formatter___boxed(lean lean_object* l_Lean_Parser_Term_byTactic___closed__2; lean_object* l_Lean_Parser_Term_attrKind___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_type_parenthesizer(lean_object*); -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__25; lean_object* l_Lean_Parser_Term_matchAltsWhereDecls___closed__5; lean_object* l_Lean_Parser_Term_letDecl___closed__3; lean_object* l_Lean_Parser_Term_whereDecls___elambda__1___closed__8; @@ -3861,16 +3801,15 @@ lean_object* l_Lean_Parser_Tactic_quotSeq___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_dbgTrace_formatter___closed__8; lean_object* l_Lean_Parser_Term_letPatDecl_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_structInstLVal_formatter___closed__5; -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_inaccessible_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__10; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__3; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__11; lean_object* l_Lean_Parser_Term_haveDecl___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_matchDiscr_quot___closed__3; lean_object* l_Lean_Parser_Term_tupleTail_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_namedPattern_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_macroLastArg_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_tparser_x21___closed__6; lean_object* l_Lean_PrettyPrinter_Parenthesizer_tokenWithAntiquot_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__7; extern lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__4; @@ -3952,6 +3891,7 @@ lean_object* l_Lean_Parser_Term_let_x2a___closed__1; lean_object* l_Lean_Parser_Term_instBinder___closed__6; lean_object* l_Lean_Parser_Term_dynamicQuot___closed__2; lean_object* l_Lean_Parser_Term_bracketedBinder_quot_parenthesizer___closed__1; +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__6; extern lean_object* l_Lean_Parser_strLit; lean_object* l_Lean_Parser_Term_leading__parser_formatter___closed__2; lean_object* l_Lean_Parser_Tactic_quot_parenthesizer___closed__4; @@ -3977,7 +3917,6 @@ extern lean_object* l_Lean_Parser_Level_paren___elambda__1___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_pipeProj_parenthesizer(lean_object*); extern lean_object* l_Lean_Parser_strLit___closed__2; lean_object* l_Lean_Parser_Tactic_quotSeq_formatter___closed__1; -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9; lean_object* l_Lean_Parser_Tactic_tacticSeq_parenthesizer___closed__3; extern lean_object* l_Lean_Parser_antiquotNestedExpr___elambda__1___closed__2; lean_object* l_Lean_Parser_Level_quot_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -3996,7 +3935,6 @@ lean_object* l_Lean_Parser_Term_forall___closed__6; lean_object* l_Lean_Parser_Tactic_quot___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_dynamicQuot___closed__1; lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_parser_x21___closed__6; lean_object* l_Lean_Parser_Term_let_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_prop___closed__6; lean_object* l_Lean_Parser_Term_forInMacro___elambda__1___closed__10; @@ -4029,12 +3967,10 @@ extern lean_object* l_Lean_expandExplicitBindersAux_loop___closed__3; lean_object* l_Lean_Parser_Term_simpleBinderWithoutType_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_whereDecls_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_prop___elambda__1(lean_object*, lean_object*); -lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter(lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_proj_formatter___closed__1; lean_object* l_Lean_ppDedent_formatter(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ident; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__4; -lean_object* l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_borrowed___closed__1; lean_object* l_Lean_Parser_manyIndent_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_suffices___closed__3; @@ -4045,7 +3981,6 @@ lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__8; lean_object* l___regBuiltin_Lean_Parser_Term_subst_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_attr_quot_formatter___closed__4; lean_object* l_Lean_Parser_Term_app___closed__3; -lean_object* l_Lean_Parser_Term_tparser_x21; lean_object* l_Lean_Parser_Term_structInstLVal_formatter___closed__3; lean_object* l_Lean_Parser_Term_funBinder_quot_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_letrec; @@ -4053,7 +3988,6 @@ lean_object* l_Lean_Parser_Term_structInst_parenthesizer___closed__16; lean_object* l_Lean_Parser_Tactic_tacticSeq1Indented___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_attr_quot___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_fun_parenthesizer___closed__5; -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_attr_quot___closed__5; lean_object* l_Lean_Parser_Term_funImplicitBinder_formatter___closed__4; extern lean_object* l_myMacro____x40_Init_Notation___hyg_13868____closed__10; @@ -25344,854 +25278,6 @@ x_1 = l_Lean_Parser_Term_optExprPrecedence___closed__5; return x_1; } } -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("parser!"); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_myMacro____x40_Init_Notation___hyg_2191____closed__2; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_2 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__1; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__3; -x_3 = 1; -x_4 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_optExprPrecedence; -x_2 = lean_ctor_get(x_1, 1); -lean_inc(x_2); -x_3 = l_Lean_Parser_antiquotNestedExpr___elambda__1___closed__2; -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); -lean_closure_set(x_4, 0, x_2); -lean_closure_set(x_4, 1, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__6() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("parser! "); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__7() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__6; -x_2 = l_String_trim(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__7; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___boxed), 3, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__9() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__8; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_tokenWithAntiquotFn), 3, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__10() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__9; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__10; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__12() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_byTactic___elambda__1___closed__8; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__11; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* l_Lean_Parser_Term_parser_x21___elambda__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; -x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__4; -x_4 = lean_ctor_get(x_3, 1); -lean_inc(x_4); -x_5 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__12; -x_6 = 1; -x_7 = l_Lean_Parser_orelseFnCore(x_4, x_5, x_6, x_1, x_2); -return x_7; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___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_Term_optExprPrecedence; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -x_3 = l_Lean_Parser_antiquotNestedExpr___closed__2; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = l_Lean_Parser_andthenInfo(x_2, x_4); -return x_5; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__7; -x_2 = l_Lean_Parser_symbolInfo(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21___closed__3; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; -x_2 = l_Lean_Parser_Term_parser_x21___closed__4; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__4; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -x_3 = l_Lean_Parser_Term_parser_x21___closed__5; -x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__7() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_parser_x21___elambda__1), 2, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21___closed__6; -x_2 = l_Lean_Parser_Term_parser_x21___closed__7; -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Parser_Term_parser_x21___closed__8; -return x_1; -} -} -lean_object* l___regBuiltinParser_Lean_Parser_Term_parser_x21(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_2 = l_term___u2218_____closed__6; -x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_4 = 1; -x_5 = l_Lean_Parser_Term_parser_x21; -x_6 = lean_unsigned_to_nat(1000u); -x_7 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_6, x_1); -return x_7; -} -} -static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_mkAntiquot_formatter___closed__5; -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_atomic_formatter), 6, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1; -x_2 = l_Lean_Parser_antiquotNestedExpr_formatter___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* l_Lean_Parser_Term_optExprPrecedence_formatter(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; -x_6 = l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2; -x_7 = l_Lean_Parser_optional_formatter(x_6, x_1, x_2, x_3, x_4, x_5); -return x_7; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_formatter___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__1; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__3; -x_3 = 1; -x_4 = lean_box(x_3); -x_5 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot_formatter___boxed), 8, 3); -lean_closure_set(x_5, 0, x_1); -lean_closure_set(x_5, 1, x_2); -lean_closure_set(x_5, 2, x_4); -return x_5; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_formatter___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__6; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbol_formatter), 6, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_formatter___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_optExprPrecedence_formatter), 5, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_formatter___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21_formatter___closed__3; -x_2 = l_Lean_Parser_antiquotNestedExpr_formatter___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_formatter___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21_formatter___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21_formatter___closed__4; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_formatter___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_parser_x21_formatter___closed__5; -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_leadingNode_formatter___boxed), 8, 3); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_2); -lean_closure_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_Term_parser_x21_formatter(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; -x_6 = l_Lean_Parser_Term_parser_x21_formatter___closed__1; -x_7 = l_Lean_Parser_Term_parser_x21_formatter___closed__6; -x_8 = l_Lean_PrettyPrinter_Formatter_orelse_formatter(x_6, x_7, x_1, x_2, x_3, x_4, x_5); -return x_8; -} -} -static lean_object* _init_l___regBuiltin_Lean_Parser_Term_parser_x21_formatter___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_parser_x21_formatter), 5, 0); -return x_1; -} -} -lean_object* l___regBuiltin_Lean_Parser_Term_parser_x21_formatter(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_PrettyPrinter_formatterAttribute; -x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_4 = l___regBuiltin_Lean_Parser_Term_parser_x21_formatter___closed__1; -x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); -return x_5; -} -} -static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__1; -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_atomic_parenthesizer), 6, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_explicit_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* l_Lean_Parser_Term_optExprPrecedence_parenthesizer(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; -x_6 = l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2; -x_7 = l_Lean_Parser_optional_parenthesizer(x_6, x_1, x_2, x_3, x_4, x_5); -return x_7; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__1() { -_start: -{ -lean_object* x_1; uint8_t x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__3; -x_2 = 1; -x_3 = lean_box(x_2); -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot_parenthesizer___rarg___boxed), 7, 2); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_optExprPrecedence_parenthesizer), 5, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__2; -x_2 = l_Lean_Parser_antiquotNestedExpr_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__1; -x_2 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4; -x_4 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer___boxed), 8, 3); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_2); -lean_closure_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_Term_parser_x21_parenthesizer(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; -x_6 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__1; -x_7 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__5; -x_8 = l_Lean_PrettyPrinter_Parenthesizer_orelse_parenthesizer(x_6, x_7, x_1, x_2, x_3, x_4, x_5); -return x_8; -} -} -static lean_object* _init_l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_parser_x21_parenthesizer), 5, 0); -return x_1; -} -} -lean_object* l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_PrettyPrinter_parenthesizerAttribute; -x_3 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__2; -x_4 = l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer___closed__1; -x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); -return x_5; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("tparser!"); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_myMacro____x40_Init_Notation___hyg_2191____closed__2; -x_2 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_2 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1; -x_2 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3; -x_3 = 1; -x_4 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("tparser! "); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5; -x_2 = l_String_trim(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__7() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___boxed), 3, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__7; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_tokenWithAntiquotFn), 3, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__10() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_byTactic___elambda__1___closed__8; -x_2 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__10; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; -x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4; -x_4 = lean_ctor_get(x_3, 1); -lean_inc(x_4); -x_5 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__11; -x_6 = 1; -x_7 = l_Lean_Parser_orelseFnCore(x_4, x_5, x_6, x_1, x_2); -return x_7; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6; -x_2 = l_Lean_Parser_symbolInfo(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21___closed__1; -x_2 = l_Lean_Parser_Term_parser_x21___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_tparser_x21___closed__2; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; -x_2 = l_Lean_Parser_Term_tparser_x21___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4; -x_2 = lean_ctor_get(x_1, 0); -lean_inc(x_2); -x_3 = l_Lean_Parser_Term_tparser_x21___closed__4; -x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__6() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_tparser_x21___elambda__1), 2, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21___closed__7() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21___closed__5; -x_2 = l_Lean_Parser_Term_tparser_x21___closed__6; -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Parser_Term_tparser_x21___closed__7; -return x_1; -} -} -lean_object* l___regBuiltinParser_Lean_Parser_Term_tparser_x21(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_2 = l_term___u2218_____closed__6; -x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_4 = 1; -x_5 = l_Lean_Parser_Term_tparser_x21; -x_6 = lean_unsigned_to_nat(1000u); -x_7 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_6, x_1); -return x_7; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1; -x_2 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3; -x_3 = 1; -x_4 = lean_box(x_3); -x_5 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot_formatter___boxed), 8, 3); -lean_closure_set(x_5, 0, x_1); -lean_closure_set(x_5, 1, x_2); -lean_closure_set(x_5, 2, x_4); -return x_5; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbol_formatter), 6, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_tparser_x21_formatter___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21_formatter___closed__4; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_tparser_x21_formatter___closed__3; -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_leadingNode_formatter___boxed), 8, 3); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_2); -lean_closure_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_Term_tparser_x21_formatter(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; -x_6 = l_Lean_Parser_Term_tparser_x21_formatter___closed__1; -x_7 = l_Lean_Parser_Term_tparser_x21_formatter___closed__4; -x_8 = l_Lean_PrettyPrinter_Formatter_orelse_formatter(x_6, x_7, x_1, x_2, x_3, x_4, x_5); -return x_8; -} -} -static lean_object* _init_l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_tparser_x21_formatter), 5, 0); -return x_1; -} -} -lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_PrettyPrinter_formatterAttribute; -x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_4 = l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter___closed__1; -x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); -return x_5; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1() { -_start: -{ -lean_object* x_1; uint8_t x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3; -x_2 = 1; -x_3 = lean_box(x_2); -x_4 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot_parenthesizer___rarg___boxed), 7, 2); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4; -x_4 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer___boxed), 8, 3); -lean_closure_set(x_4, 0, x_1); -lean_closure_set(x_4, 1, x_2); -lean_closure_set(x_4, 2, x_3); -return x_4; -} -} -lean_object* l_Lean_Parser_Term_tparser_x21_parenthesizer(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; -x_6 = l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1; -x_7 = l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__2; -x_8 = l_Lean_PrettyPrinter_Parenthesizer_orelse_parenthesizer(x_6, x_7, x_1, x_2, x_3, x_4, x_5); -return x_8; -} -} -static lean_object* _init_l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_tparser_x21_parenthesizer), 5, 0); -return x_1; -} -} -lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_PrettyPrinter_parenthesizerAttribute; -x_3 = l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; -x_4 = l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1; -x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); -return x_5; -} -} static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__1() { _start: { @@ -26234,18 +25320,23 @@ return x_4; static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__5() { _start: { -lean_object* x_1; -x_1 = lean_mk_string("leading_parser "); -return x_1; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; +x_1 = l_Lean_Parser_Term_optExprPrecedence; +x_2 = lean_ctor_get(x_1, 1); +lean_inc(x_2); +x_3 = l_Lean_Parser_antiquotNestedExpr___elambda__1___closed__2; +x_4 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); +lean_closure_set(x_4, 0, x_2); +lean_closure_set(x_4, 1, x_3); +return x_4; } } static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__6() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__5; -x_2 = l_String_trim(x_1); -return x_2; +lean_object* x_1; +x_1 = lean_mk_string("leading_parser "); +return x_1; } } static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__7() { @@ -26253,8 +25344,7 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__6; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___boxed), 3, 1); -lean_closure_set(x_2, 0, x_1); +x_2 = l_String_trim(x_1); return x_2; } } @@ -26263,7 +25353,7 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__7; -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_tokenWithAntiquotFn), 3, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbolFn___boxed), 3, 1); lean_closure_set(x_2, 0, x_1); return x_2; } @@ -26271,22 +25361,20 @@ return x_2; static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__9() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; +lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__8; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__5; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_tokenWithAntiquotFn), 3, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__10() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__9; -x_3 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn), 4, 2); +x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__9; +x_2 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__5; +x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); return x_3; @@ -26296,8 +25384,20 @@ static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___clos _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_byTactic___elambda__1___closed__8; +x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__2; x_2 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__10; +x_3 = lean_alloc_closure((void*)(l_Lean_Parser_nodeFn), 4, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__12() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_byTactic___elambda__1___closed__8; +x_2 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__11; x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); @@ -26311,7 +25411,7 @@ lean_object* x_3; lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_3 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__4; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); -x_5 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__11; +x_5 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__12; x_6 = 1; x_7 = l_Lean_Parser_orelseFnCore(x_4, x_5, x_6, x_1, x_2); return x_7; @@ -26320,29 +25420,33 @@ return x_7; static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__6; -x_2 = l_Lean_Parser_symbolInfo(x_1); -return x_2; +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = l_Lean_Parser_Term_optExprPrecedence; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +x_3 = l_Lean_Parser_antiquotNestedExpr___closed__2; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = l_Lean_Parser_andthenInfo(x_2, x_4); +return x_5; } } static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_leading__parser___closed__1; -x_2 = l_Lean_Parser_Term_parser_x21___closed__1; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__7; +x_2 = l_Lean_Parser_symbolInfo(x_1); +return x_2; } } static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__2; -x_2 = l_Lean_Parser_Term_leading__parser___closed__2; -x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +x_1 = l_Lean_Parser_Term_leading__parser___closed__2; +x_2 = l_Lean_Parser_Term_leading__parser___closed__1; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } } @@ -26350,25 +25454,35 @@ static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_epsilonInfo; +x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__2; x_2 = l_Lean_Parser_Term_leading__parser___closed__3; -x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); return x_3; } } static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__5() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_epsilonInfo; +x_2 = l_Lean_Parser_Term_leading__parser___closed__4; +x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__6() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__4; x_2 = lean_ctor_get(x_1, 0); lean_inc(x_2); -x_3 = l_Lean_Parser_Term_leading__parser___closed__4; +x_3 = l_Lean_Parser_Term_leading__parser___closed__5; x_4 = l_Lean_Parser_orelseInfo(x_2, x_3); return x_4; } } -static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__6() { +static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__7() { _start: { lean_object* x_1; @@ -26376,12 +25490,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_leading__parser___elambda__1 return x_1; } } -static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__7() { +static lean_object* _init_l_Lean_Parser_Term_leading__parser___closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_leading__parser___closed__5; -x_2 = l_Lean_Parser_Term_leading__parser___closed__6; +x_1 = l_Lean_Parser_Term_leading__parser___closed__6; +x_2 = l_Lean_Parser_Term_leading__parser___closed__7; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -26392,7 +25506,7 @@ static lean_object* _init_l_Lean_Parser_Term_leading__parser() { _start: { lean_object* x_1; -x_1 = l_Lean_Parser_Term_leading__parser___closed__7; +x_1 = l_Lean_Parser_Term_leading__parser___closed__8; return x_1; } } @@ -26409,6 +25523,37 @@ x_7 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_6, x_1); return x_7; } } +static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_mkAntiquot_formatter___closed__5; +x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_atomic_formatter), 6, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1; +x_2 = l_Lean_Parser_antiquotNestedExpr_formatter___closed__2; +x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Term_optExprPrecedence_formatter(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; +x_6 = l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2; +x_7 = l_Lean_Parser_optional_formatter(x_6, x_1, x_2, x_3, x_4, x_5); +return x_7; +} +} static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed__1() { _start: { @@ -26428,7 +25573,7 @@ static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed_ _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__5; +x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__6; x_2 = lean_alloc_closure((void*)(l_Lean_Parser_symbol_formatter), 6, 1); lean_closure_set(x_2, 0, x_1); return x_2; @@ -26437,22 +25582,42 @@ return x_2; static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed__3() { _start: { +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_optExprPrecedence_formatter), 5, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_leading__parser_formatter___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21_formatter___closed__4; +x_1 = l_Lean_Parser_Term_leading__parser_formatter___closed__3; +x_2 = l_Lean_Parser_antiquotNestedExpr_formatter___closed__2; x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed__4() { +static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_leading__parser_formatter___closed__2; +x_2 = l_Lean_Parser_Term_leading__parser_formatter___closed__4; +x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser_formatter___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__2; x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_leading__parser_formatter___closed__3; +x_3 = l_Lean_Parser_Term_leading__parser_formatter___closed__5; x_4 = lean_alloc_closure((void*)(l_Lean_Parser_leadingNode_formatter___boxed), 8, 3); lean_closure_set(x_4, 0, x_1); lean_closure_set(x_4, 1, x_2); @@ -26465,7 +25630,7 @@ _start: { lean_object* x_6; lean_object* x_7; lean_object* x_8; x_6 = l_Lean_Parser_Term_leading__parser_formatter___closed__1; -x_7 = l_Lean_Parser_Term_leading__parser_formatter___closed__4; +x_7 = l_Lean_Parser_Term_leading__parser_formatter___closed__6; x_8 = l_Lean_PrettyPrinter_Formatter_orelse_formatter(x_6, x_7, x_1, x_2, x_3, x_4, x_5); return x_8; } @@ -26489,6 +25654,37 @@ x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); return x_5; } } +static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__1; +x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_atomic_parenthesizer), 6, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1; +x_2 = l_Lean_Parser_Term_explicit_parenthesizer___closed__2; +x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 7, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* l_Lean_Parser_Term_optExprPrecedence_parenthesizer(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; +x_6 = l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2; +x_7 = l_Lean_Parser_optional_parenthesizer(x_6, x_1, x_2, x_3, x_4, x_5); +return x_7; +} +} static lean_object* _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__1() { _start: { @@ -26505,10 +25701,42 @@ return x_4; static lean_object* _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__2() { _start: { +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_optExprPrecedence_parenthesizer), 5, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__2; +x_2 = l_Lean_Parser_antiquotNestedExpr_parenthesizer___closed__1; +x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 7, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__1; +x_2 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__3; +x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 7, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__5() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__2; x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4; +x_3 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4; x_4 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer___boxed), 8, 3); lean_closure_set(x_4, 0, x_1); lean_closure_set(x_4, 1, x_2); @@ -26521,7 +25749,7 @@ _start: { lean_object* x_6; lean_object* x_7; lean_object* x_8; x_6 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__1; -x_7 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__5; x_8 = l_Lean_PrettyPrinter_Parenthesizer_orelse_parenthesizer(x_6, x_7, x_1, x_2, x_3, x_4, x_5); return x_8; } @@ -26626,7 +25854,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_trailing__parser___elambda__1___closed__8; -x_2 = l_Lean_Parser_Term_parser_x21___elambda__1___closed__5; +x_2 = l_Lean_Parser_Term_leading__parser___elambda__1___closed__5; x_3 = lean_alloc_closure((void*)(l_Lean_Parser_andthenFn), 4, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); @@ -26684,7 +25912,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_trailing__parser___closed__1; -x_2 = l_Lean_Parser_Term_parser_x21___closed__1; +x_2 = l_Lean_Parser_Term_leading__parser___closed__1; x_3 = l_Lean_Parser_andthenInfo(x_1, x_2); return x_3; } @@ -26792,7 +26020,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Parser_Term_trailing__parser_formatter___closed__2; -x_2 = l_Lean_Parser_Term_parser_x21_formatter___closed__4; +x_2 = l_Lean_Parser_Term_leading__parser_formatter___closed__4; x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Formatter_andthen_formatter), 7, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); @@ -26861,7 +26089,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Term_trailing__parser___elambda__1___closed__2; x_2 = l_Lean_Parser_leadPrec; -x_3 = l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4; +x_3 = l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4; x_4 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer___boxed), 8, 3); lean_closure_set(x_4, 0, x_1); lean_closure_set(x_4, 1, x_2); @@ -48270,7 +47498,7 @@ x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); return x_5; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__1() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -48280,7 +47508,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__2() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__2() { _start: { lean_object* x_1; lean_object* x_2; @@ -48290,7 +47518,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__3() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__3() { _start: { lean_object* x_1; lean_object* x_2; @@ -48300,7 +47528,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__4() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__4() { _start: { lean_object* x_1; lean_object* x_2; @@ -48310,7 +47538,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__5() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__5() { _start: { lean_object* x_1; lean_object* x_2; @@ -48320,7 +47548,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__6() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__6() { _start: { lean_object* x_1; lean_object* x_2; @@ -48330,7 +47558,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__7() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__7() { _start: { lean_object* x_1; lean_object* x_2; @@ -48340,7 +47568,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__8() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__8() { _start: { lean_object* x_1; lean_object* x_2; @@ -48350,7 +47578,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__9() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__9() { _start: { lean_object* x_1; lean_object* x_2; @@ -48360,7 +47588,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__10() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__10() { _start: { lean_object* x_1; lean_object* x_2; @@ -48370,7 +47598,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__11() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__11() { _start: { lean_object* x_1; lean_object* x_2; @@ -48380,7 +47608,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__12() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__12() { _start: { lean_object* x_1; lean_object* x_2; @@ -48390,7 +47618,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__13() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__13() { _start: { lean_object* x_1; lean_object* x_2; @@ -48400,7 +47628,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__14() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__14() { _start: { lean_object* x_1; lean_object* x_2; @@ -48410,7 +47638,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__15() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__15() { _start: { lean_object* x_1; lean_object* x_2; @@ -48420,7 +47648,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__16() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__16() { _start: { lean_object* x_1; lean_object* x_2; @@ -48430,7 +47658,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__17() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__17() { _start: { lean_object* x_1; lean_object* x_2; @@ -48440,7 +47668,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__18() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__18() { _start: { lean_object* x_1; lean_object* x_2; @@ -48450,7 +47678,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__19() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__19() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -48460,7 +47688,7 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__20() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__20() { _start: { lean_object* x_1; lean_object* x_2; @@ -48470,7 +47698,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__21() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__21() { _start: { lean_object* x_1; lean_object* x_2; @@ -48480,7 +47708,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__22() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__22() { _start: { lean_object* x_1; lean_object* x_2; @@ -48490,7 +47718,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__23() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__23() { _start: { lean_object* x_1; lean_object* x_2; @@ -48500,7 +47728,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__24() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__24() { _start: { lean_object* x_1; lean_object* x_2; @@ -48510,7 +47738,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__25() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__25() { _start: { lean_object* x_1; lean_object* x_2; @@ -48520,7 +47748,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__26() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__26() { _start: { lean_object* x_1; lean_object* x_2; @@ -48530,7 +47758,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__27() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__27() { _start: { lean_object* x_1; lean_object* x_2; @@ -48540,7 +47768,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__28() { +static lean_object* _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__28() { _start: { lean_object* x_1; lean_object* x_2; @@ -48550,13 +47778,13 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907_(lean_object* x_1) { +lean_object* l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_2 = l_Lean_Parser_parserAliasesRef; x_3 = l_Lean_Parser_Tactic_let___closed__3; -x_4 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__1; +x_4 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__1; x_5 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_3, x_4, x_1); if (lean_obj_tag(x_5) == 0) { @@ -48565,7 +47793,7 @@ x_6 = lean_ctor_get(x_5, 1); lean_inc(x_6); lean_dec(x_5); x_7 = l_Lean_PrettyPrinter_Formatter_formatterAliasesRef; -x_8 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__2; +x_8 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__2; x_9 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_3, x_8, x_6); if (lean_obj_tag(x_9) == 0) { @@ -48574,7 +47802,7 @@ x_10 = lean_ctor_get(x_9, 1); lean_inc(x_10); lean_dec(x_9); x_11 = l_Lean_PrettyPrinter_Parenthesizer_parenthesizerAliasesRef; -x_12 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__3; +x_12 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__3; x_13 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_3, x_12, x_10); if (lean_obj_tag(x_13) == 0) { @@ -48583,7 +47811,7 @@ x_14 = lean_ctor_get(x_13, 1); lean_inc(x_14); lean_dec(x_13); x_15 = l_Lean_Parser_Tactic_have___closed__6; -x_16 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__4; +x_16 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__4; x_17 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_15, x_16, x_14); if (lean_obj_tag(x_17) == 0) { @@ -48591,7 +47819,7 @@ lean_object* x_18; lean_object* x_19; lean_object* x_20; x_18 = lean_ctor_get(x_17, 1); lean_inc(x_18); lean_dec(x_17); -x_19 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__5; +x_19 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__5; x_20 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_15, x_19, x_18); if (lean_obj_tag(x_20) == 0) { @@ -48599,7 +47827,7 @@ lean_object* x_21; lean_object* x_22; lean_object* x_23; x_21 = lean_ctor_get(x_20, 1); lean_inc(x_21); lean_dec(x_20); -x_22 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__6; +x_22 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__6; x_23 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_15, x_22, x_21); if (lean_obj_tag(x_23) == 0) { @@ -48608,7 +47836,7 @@ x_24 = lean_ctor_get(x_23, 1); lean_inc(x_24); lean_dec(x_23); x_25 = l_Lean_Parser_Tactic_suffices___closed__6; -x_26 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__7; +x_26 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__7; x_27 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_25, x_26, x_24); if (lean_obj_tag(x_27) == 0) { @@ -48616,7 +47844,7 @@ lean_object* x_28; lean_object* x_29; lean_object* x_30; x_28 = lean_ctor_get(x_27, 1); lean_inc(x_28); lean_dec(x_27); -x_29 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__8; +x_29 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__8; x_30 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_25, x_29, x_28); if (lean_obj_tag(x_30) == 0) { @@ -48624,7 +47852,7 @@ 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_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__9; +x_32 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__9; x_33 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_25, x_32, x_31); if (lean_obj_tag(x_33) == 0) { @@ -48633,7 +47861,7 @@ x_34 = lean_ctor_get(x_33, 1); lean_inc(x_34); lean_dec(x_33); x_35 = l_Lean_Parser_Tactic_letrec___closed__11; -x_36 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__10; +x_36 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__10; x_37 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_35, x_36, x_34); if (lean_obj_tag(x_37) == 0) { @@ -48641,7 +47869,7 @@ lean_object* x_38; lean_object* x_39; lean_object* x_40; x_38 = lean_ctor_get(x_37, 1); lean_inc(x_38); lean_dec(x_37); -x_39 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__11; +x_39 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__11; x_40 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_35, x_39, x_38); if (lean_obj_tag(x_40) == 0) { @@ -48649,7 +47877,7 @@ lean_object* x_41; lean_object* x_42; lean_object* x_43; x_41 = lean_ctor_get(x_40, 1); lean_inc(x_41); lean_dec(x_40); -x_42 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__12; +x_42 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__12; x_43 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_35, x_42, x_41); if (lean_obj_tag(x_43) == 0) { @@ -48658,7 +47886,7 @@ x_44 = lean_ctor_get(x_43, 1); lean_inc(x_44); lean_dec(x_43); x_45 = l_Lean_Parser_Tactic_inductionAlt___closed__15; -x_46 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__13; +x_46 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__13; x_47 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_45, x_46, x_44); if (lean_obj_tag(x_47) == 0) { @@ -48666,7 +47894,7 @@ lean_object* x_48; lean_object* x_49; lean_object* x_50; x_48 = lean_ctor_get(x_47, 1); lean_inc(x_48); lean_dec(x_47); -x_49 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__14; +x_49 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__14; x_50 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_45, x_49, x_48); if (lean_obj_tag(x_50) == 0) { @@ -48674,7 +47902,7 @@ lean_object* x_51; lean_object* x_52; lean_object* x_53; x_51 = lean_ctor_get(x_50, 1); lean_inc(x_51); lean_dec(x_50); -x_52 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__15; +x_52 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__15; x_53 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_45, x_52, x_51); if (lean_obj_tag(x_53) == 0) { @@ -48683,7 +47911,7 @@ x_54 = lean_ctor_get(x_53, 1); lean_inc(x_54); lean_dec(x_53); x_55 = l_Lean_Parser_Tactic_inductionAlt___closed__18; -x_56 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__16; +x_56 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__16; x_57 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_55, x_56, x_54); if (lean_obj_tag(x_57) == 0) { @@ -48691,7 +47919,7 @@ lean_object* x_58; lean_object* x_59; lean_object* x_60; x_58 = lean_ctor_get(x_57, 1); lean_inc(x_58); lean_dec(x_57); -x_59 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__17; +x_59 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__17; x_60 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_55, x_59, x_58); if (lean_obj_tag(x_60) == 0) { @@ -48699,7 +47927,7 @@ lean_object* x_61; lean_object* x_62; lean_object* x_63; x_61 = lean_ctor_get(x_60, 1); lean_inc(x_61); lean_dec(x_60); -x_62 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__18; +x_62 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__18; x_63 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_55, x_62, x_61); if (lean_obj_tag(x_63) == 0) { @@ -48707,8 +47935,8 @@ lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; x_64 = lean_ctor_get(x_63, 1); lean_inc(x_64); lean_dec(x_63); -x_65 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__19; -x_66 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__20; +x_65 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__19; +x_66 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__20; x_67 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_65, x_66, x_64); if (lean_obj_tag(x_67) == 0) { @@ -48716,7 +47944,7 @@ lean_object* x_68; lean_object* x_69; lean_object* x_70; x_68 = lean_ctor_get(x_67, 1); lean_inc(x_68); lean_dec(x_67); -x_69 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__21; +x_69 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__21; x_70 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_65, x_69, x_68); if (lean_obj_tag(x_70) == 0) { @@ -48724,7 +47952,7 @@ lean_object* x_71; lean_object* x_72; lean_object* x_73; x_71 = lean_ctor_get(x_70, 1); lean_inc(x_71); lean_dec(x_70); -x_72 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__22; +x_72 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__22; x_73 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_65, x_72, x_71); if (lean_obj_tag(x_73) == 0) { @@ -48733,7 +47961,7 @@ x_74 = lean_ctor_get(x_73, 1); lean_inc(x_74); lean_dec(x_73); x_75 = l_Lean_command__Unif__hint______Where___x7c_x2d_u22a2_____closed__12; -x_76 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__23; +x_76 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__23; x_77 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_75, x_76, x_74); if (lean_obj_tag(x_77) == 0) { @@ -48741,7 +47969,7 @@ lean_object* x_78; lean_object* x_79; lean_object* x_80; x_78 = lean_ctor_get(x_77, 1); lean_inc(x_78); lean_dec(x_77); -x_79 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__24; +x_79 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__24; x_80 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_75, x_79, x_78); if (lean_obj_tag(x_80) == 0) { @@ -48749,7 +47977,7 @@ lean_object* x_81; lean_object* x_82; lean_object* x_83; x_81 = lean_ctor_get(x_80, 1); lean_inc(x_81); lean_dec(x_80); -x_82 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__25; +x_82 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__25; x_83 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_75, x_82, x_81); if (lean_obj_tag(x_83) == 0) { @@ -48758,7 +47986,7 @@ x_84 = lean_ctor_get(x_83, 1); lean_inc(x_84); lean_dec(x_83); x_85 = l_Lean_command__Unif__hint______Where___x7c_x2d_u22a2_____closed__4; -x_86 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__26; +x_86 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__26; x_87 = l_Lean_Parser_registerAliasCore___rarg(x_2, x_85, x_86, x_84); if (lean_obj_tag(x_87) == 0) { @@ -48766,7 +47994,7 @@ lean_object* x_88; lean_object* x_89; lean_object* x_90; x_88 = lean_ctor_get(x_87, 1); lean_inc(x_88); lean_dec(x_87); -x_89 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__27; +x_89 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__27; x_90 = l_Lean_Parser_registerAliasCore___rarg(x_7, x_85, x_89, x_88); if (lean_obj_tag(x_90) == 0) { @@ -48774,7 +48002,7 @@ lean_object* x_91; lean_object* x_92; lean_object* x_93; x_91 = lean_ctor_get(x_90, 1); lean_inc(x_91); lean_dec(x_90); -x_92 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__28; +x_92 = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__28; x_93 = l_Lean_Parser_registerAliasCore___rarg(x_11, x_85, x_92, x_91); return x_93; } @@ -52630,154 +51858,6 @@ l_Lean_Parser_Term_optExprPrecedence___closed__5 = _init_l_Lean_Parser_Term_optE lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence___closed__5); l_Lean_Parser_Term_optExprPrecedence = _init_l_Lean_Parser_Term_optExprPrecedence(); lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__1 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__1); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__2 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__2); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__3 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__3); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__4 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__4); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__5 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__5); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__6 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__6(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__6); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__7 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__7(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__7); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__8 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__8(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__8); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__9 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__9(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__9); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__10 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__10(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__10); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__11 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__11(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__11); -l_Lean_Parser_Term_parser_x21___elambda__1___closed__12 = _init_l_Lean_Parser_Term_parser_x21___elambda__1___closed__12(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___elambda__1___closed__12); -l_Lean_Parser_Term_parser_x21___closed__1 = _init_l_Lean_Parser_Term_parser_x21___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__1); -l_Lean_Parser_Term_parser_x21___closed__2 = _init_l_Lean_Parser_Term_parser_x21___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__2); -l_Lean_Parser_Term_parser_x21___closed__3 = _init_l_Lean_Parser_Term_parser_x21___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__3); -l_Lean_Parser_Term_parser_x21___closed__4 = _init_l_Lean_Parser_Term_parser_x21___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__4); -l_Lean_Parser_Term_parser_x21___closed__5 = _init_l_Lean_Parser_Term_parser_x21___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__5); -l_Lean_Parser_Term_parser_x21___closed__6 = _init_l_Lean_Parser_Term_parser_x21___closed__6(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__6); -l_Lean_Parser_Term_parser_x21___closed__7 = _init_l_Lean_Parser_Term_parser_x21___closed__7(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__7); -l_Lean_Parser_Term_parser_x21___closed__8 = _init_l_Lean_Parser_Term_parser_x21___closed__8(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21___closed__8); -l_Lean_Parser_Term_parser_x21 = _init_l_Lean_Parser_Term_parser_x21(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21); -res = l___regBuiltinParser_Lean_Parser_Term_parser_x21(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); -l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1 = _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1); -l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2 = _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2); -l_Lean_Parser_Term_parser_x21_formatter___closed__1 = _init_l_Lean_Parser_Term_parser_x21_formatter___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_formatter___closed__1); -l_Lean_Parser_Term_parser_x21_formatter___closed__2 = _init_l_Lean_Parser_Term_parser_x21_formatter___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_formatter___closed__2); -l_Lean_Parser_Term_parser_x21_formatter___closed__3 = _init_l_Lean_Parser_Term_parser_x21_formatter___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_formatter___closed__3); -l_Lean_Parser_Term_parser_x21_formatter___closed__4 = _init_l_Lean_Parser_Term_parser_x21_formatter___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_formatter___closed__4); -l_Lean_Parser_Term_parser_x21_formatter___closed__5 = _init_l_Lean_Parser_Term_parser_x21_formatter___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_formatter___closed__5); -l_Lean_Parser_Term_parser_x21_formatter___closed__6 = _init_l_Lean_Parser_Term_parser_x21_formatter___closed__6(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_formatter___closed__6); -l___regBuiltin_Lean_Parser_Term_parser_x21_formatter___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_parser_x21_formatter___closed__1(); -lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_parser_x21_formatter___closed__1); -res = l___regBuiltin_Lean_Parser_Term_parser_x21_formatter(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); -l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1); -l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2); -l_Lean_Parser_Term_parser_x21_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_parenthesizer___closed__1); -l_Lean_Parser_Term_parser_x21_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_parenthesizer___closed__2); -l_Lean_Parser_Term_parser_x21_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_parenthesizer___closed__3); -l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_parenthesizer___closed__4); -l_Lean_Parser_Term_parser_x21_parenthesizer___closed__5 = _init_l_Lean_Parser_Term_parser_x21_parenthesizer___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_parser_x21_parenthesizer___closed__5); -l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer___closed__1(); -lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer___closed__1); -res = l___regBuiltin_Lean_Parser_Term_parser_x21_parenthesizer(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__1); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__3); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__5); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__7 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__7(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__7); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__9); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__10 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__10(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__10); -l_Lean_Parser_Term_tparser_x21___elambda__1___closed__11 = _init_l_Lean_Parser_Term_tparser_x21___elambda__1___closed__11(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___elambda__1___closed__11); -l_Lean_Parser_Term_tparser_x21___closed__1 = _init_l_Lean_Parser_Term_tparser_x21___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__1); -l_Lean_Parser_Term_tparser_x21___closed__2 = _init_l_Lean_Parser_Term_tparser_x21___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__2); -l_Lean_Parser_Term_tparser_x21___closed__3 = _init_l_Lean_Parser_Term_tparser_x21___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__3); -l_Lean_Parser_Term_tparser_x21___closed__4 = _init_l_Lean_Parser_Term_tparser_x21___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__4); -l_Lean_Parser_Term_tparser_x21___closed__5 = _init_l_Lean_Parser_Term_tparser_x21___closed__5(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__5); -l_Lean_Parser_Term_tparser_x21___closed__6 = _init_l_Lean_Parser_Term_tparser_x21___closed__6(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__6); -l_Lean_Parser_Term_tparser_x21___closed__7 = _init_l_Lean_Parser_Term_tparser_x21___closed__7(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21___closed__7); -l_Lean_Parser_Term_tparser_x21 = _init_l_Lean_Parser_Term_tparser_x21(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21); -res = l___regBuiltinParser_Lean_Parser_Term_tparser_x21(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); -l_Lean_Parser_Term_tparser_x21_formatter___closed__1 = _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21_formatter___closed__1); -l_Lean_Parser_Term_tparser_x21_formatter___closed__2 = _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21_formatter___closed__2); -l_Lean_Parser_Term_tparser_x21_formatter___closed__3 = _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21_formatter___closed__3); -l_Lean_Parser_Term_tparser_x21_formatter___closed__4 = _init_l_Lean_Parser_Term_tparser_x21_formatter___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21_formatter___closed__4); -l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter___closed__1(); -lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter___closed__1); -res = l___regBuiltin_Lean_Parser_Term_tparser_x21_formatter(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); -l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1); -l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_tparser_x21_parenthesizer___closed__2); -l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1(); -lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer___closed__1); -res = l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -lean_dec_ref(res); l_Lean_Parser_Term_leading__parser___elambda__1___closed__1 = _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser___elambda__1___closed__1); l_Lean_Parser_Term_leading__parser___elambda__1___closed__2 = _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__2(); @@ -52800,6 +51880,8 @@ l_Lean_Parser_Term_leading__parser___elambda__1___closed__10 = _init_l_Lean_Pars lean_mark_persistent(l_Lean_Parser_Term_leading__parser___elambda__1___closed__10); l_Lean_Parser_Term_leading__parser___elambda__1___closed__11 = _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__11(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser___elambda__1___closed__11); +l_Lean_Parser_Term_leading__parser___elambda__1___closed__12 = _init_l_Lean_Parser_Term_leading__parser___elambda__1___closed__12(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser___elambda__1___closed__12); l_Lean_Parser_Term_leading__parser___closed__1 = _init_l_Lean_Parser_Term_leading__parser___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser___closed__1); l_Lean_Parser_Term_leading__parser___closed__2 = _init_l_Lean_Parser_Term_leading__parser___closed__2(); @@ -52814,11 +51896,17 @@ l_Lean_Parser_Term_leading__parser___closed__6 = _init_l_Lean_Parser_Term_leadin lean_mark_persistent(l_Lean_Parser_Term_leading__parser___closed__6); l_Lean_Parser_Term_leading__parser___closed__7 = _init_l_Lean_Parser_Term_leading__parser___closed__7(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser___closed__7); +l_Lean_Parser_Term_leading__parser___closed__8 = _init_l_Lean_Parser_Term_leading__parser___closed__8(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser___closed__8); l_Lean_Parser_Term_leading__parser = _init_l_Lean_Parser_Term_leading__parser(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser); res = l___regBuiltinParser_Lean_Parser_Term_leading__parser(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1 = _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1(); +lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_formatter___closed__1); +l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2 = _init_l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2(); +lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_formatter___closed__2); l_Lean_Parser_Term_leading__parser_formatter___closed__1 = _init_l_Lean_Parser_Term_leading__parser_formatter___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser_formatter___closed__1); l_Lean_Parser_Term_leading__parser_formatter___closed__2 = _init_l_Lean_Parser_Term_leading__parser_formatter___closed__2(); @@ -52827,15 +51915,29 @@ l_Lean_Parser_Term_leading__parser_formatter___closed__3 = _init_l_Lean_Parser_T lean_mark_persistent(l_Lean_Parser_Term_leading__parser_formatter___closed__3); l_Lean_Parser_Term_leading__parser_formatter___closed__4 = _init_l_Lean_Parser_Term_leading__parser_formatter___closed__4(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser_formatter___closed__4); +l_Lean_Parser_Term_leading__parser_formatter___closed__5 = _init_l_Lean_Parser_Term_leading__parser_formatter___closed__5(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser_formatter___closed__5); +l_Lean_Parser_Term_leading__parser_formatter___closed__6 = _init_l_Lean_Parser_Term_leading__parser_formatter___closed__6(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser_formatter___closed__6); l___regBuiltin_Lean_Parser_Term_leading__parser_formatter___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_leading__parser_formatter___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_leading__parser_formatter___closed__1); res = l___regBuiltin_Lean_Parser_Term_leading__parser_formatter(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1(); +lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__1); +l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2(); +lean_mark_persistent(l_Lean_Parser_Term_optExprPrecedence_parenthesizer___closed__2); l_Lean_Parser_Term_leading__parser_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser_parenthesizer___closed__1); l_Lean_Parser_Term_leading__parser_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__2(); lean_mark_persistent(l_Lean_Parser_Term_leading__parser_parenthesizer___closed__2); +l_Lean_Parser_Term_leading__parser_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__3(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser_parenthesizer___closed__3); +l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser_parenthesizer___closed__4); +l_Lean_Parser_Term_leading__parser_parenthesizer___closed__5 = _init_l_Lean_Parser_Term_leading__parser_parenthesizer___closed__5(); +lean_mark_persistent(l_Lean_Parser_Term_leading__parser_parenthesizer___closed__5); l___regBuiltin_Lean_Parser_Term_leading__parser_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_leading__parser_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_leading__parser_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_leading__parser_parenthesizer(lean_io_mk_world()); @@ -56148,63 +55250,63 @@ lean_mark_persistent(l___regBuiltin_Lean_Parser_Level_quot_parenthesizer___close res = l___regBuiltin_Lean_Parser_Level_quot_parenthesizer(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__1 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__1(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__1); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__2 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__2(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__2); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__3 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__3(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__3); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__4 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__4(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__4); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__5 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__5(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__5); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__6 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__6(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__6); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__7 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__7(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__7); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__8 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__8(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__8); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__9 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__9(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__9); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__10 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__10(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__10); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__11 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__11(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__11); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__12 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__12(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__12); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__13 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__13(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__13); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__14 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__14(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__14); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__15 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__15(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__15); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__16 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__16(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__16); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__17 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__17(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__17); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__18 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__18(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__18); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__19 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__19(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__19); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__20 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__20(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__20); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__21 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__21(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__21); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__22 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__22(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__22); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__23 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__23(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__23); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__24 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__24(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__24); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__25 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__25(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__25); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__26 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__26(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__26); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__27 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__27(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__27); -l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__28 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__28(); -lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907____closed__28); -res = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3907_(lean_io_mk_world()); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__1 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__1(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__1); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__2 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__2(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__2); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__3 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__3(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__3); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__4 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__4(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__4); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__5 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__5(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__5); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__6 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__6(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__6); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__7 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__7(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__7); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__8 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__8(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__8); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__9 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__9(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__9); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__10 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__10(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__10); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__11 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__11(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__11); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__12 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__12(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__12); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__13 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__13(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__13); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__14 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__14(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__14); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__15 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__15(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__15); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__16 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__16(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__16); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__17 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__17(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__17); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__18 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__18(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__18); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__19 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__19(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__19); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__20 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__20(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__20); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__21 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__21(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__21); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__22 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__22(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__22); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__23 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__23(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__23); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__24 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__24(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__24); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__25 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__25(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__25); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__26 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__26(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__26); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__27 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__27(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__27); +l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__28 = _init_l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__28(); +lean_mark_persistent(l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835____closed__28); +res = l_Lean_Parser_initFn____x40_Lean_Parser_Term___hyg_3835_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0));