95 lines
4.8 KiB
Text
95 lines
4.8 KiB
Text
[Elab.definition.body] «term_+++_» : Lean.TrailingParserDescr :=
|
|
Lean.ParserDescr.trailingNode (Lean.Name.mkStr1 "term_+++_") 45 46
|
|
(Lean.ParserDescr.binary (Lean.Name.mkStr1 "andthen") (Lean.ParserDescr.symbol "+++")
|
|
(Lean.ParserDescr.cat (Lean.Name.mkStr1 "term") 46))
|
|
[Elab.definition.body] «_aux_ppNotationCode___macroRules_term_+++__1» : Lean.Macro :=
|
|
fun x =>
|
|
let discr := x;
|
|
if Lean.Syntax.isOfKind discr (Lean.Name.mkStr1 "term_+++_") = true then
|
|
let discr_1 := Lean.Syntax.getArg discr 0;
|
|
let discr_2 := Lean.Syntax.getArg discr 1;
|
|
let discr := Lean.Syntax.getArg discr 2;
|
|
let rhs := { raw := discr };
|
|
let lhs := { raw := discr_1 };
|
|
do
|
|
let info ← Lean.MonadRef.mkInfoFromRefPos
|
|
let scp ← Lean.getCurrMacroScope
|
|
let mainModule ← Lean.getMainModule
|
|
pure
|
|
{ raw :=
|
|
Lean.Syntax.node info (Lean.Name.mkStr4 "Lean" "Parser" "Term" "app")
|
|
(Array.mkArray2
|
|
(Lean.Syntax.ident info (String.toSubstring' "Nat.add")
|
|
(Lean.addMacroScope mainModule (Lean.Name.mkStr2 "Nat" "add") scp)
|
|
[Lean.Syntax.Preresolved.decl (Lean.Name.mkStr2 "Nat" "add") [],
|
|
Lean.Syntax.Preresolved.namespace (Lean.Name.mkStr2 "Nat" "add")])
|
|
(Lean.Syntax.node info (Lean.Name.mkStr1 "null") (Array.mkArray2 lhs.raw rhs.raw))) }.raw
|
|
else
|
|
let discr := x;
|
|
throw Lean.Macro.Exception.unsupportedSyntax
|
|
[Elab.definition.body] _aux_ppNotationCode___unexpand_Nat_add_1 : Lean.PrettyPrinter.Unexpander :=
|
|
fun x =>
|
|
let discr := x;
|
|
if Lean.Syntax.isOfKind discr (Lean.Name.mkStr4 "Lean" "Parser" "Term" "app") = true then
|
|
let discr_1 := Lean.Syntax.getArg discr 0;
|
|
bif false || Lean.Syntax.isOfKind discr_1 (Lean.Name.mkStr1 "ident") then
|
|
let discr_2 := Lean.Syntax.getArg discr 1;
|
|
if Lean.Syntax.matchesNull discr_2 2 = true then
|
|
let discr := Lean.Syntax.getArg discr_2 0;
|
|
let discr_3 := Lean.Syntax.getArg discr_2 1;
|
|
let rhs := { raw := discr_3 };
|
|
let lhs := { raw := discr };
|
|
let f := { raw := discr_1 };
|
|
Lean.withRef f.raw do
|
|
let info ← Lean.MonadRef.mkInfoFromRefPos
|
|
let _ ← Lean.getCurrMacroScope
|
|
let _ ← Lean.getMainModule
|
|
pure
|
|
{ raw :=
|
|
Lean.Syntax.node info (Lean.Name.mkStr1 "term_+++_")
|
|
(Array.mkArray3 lhs.raw (Lean.Syntax.atom info "+++") rhs.raw) }.raw
|
|
else
|
|
let discr := Lean.Syntax.getArg discr 1;
|
|
throw ()
|
|
else
|
|
let discr_2 := Lean.Syntax.getArg discr 0;
|
|
if Lean.Syntax.isOfKind discr_2 (Lean.Name.mkStr4 "Lean" "Parser" "Term" "app") = true then
|
|
let discr_3 := Lean.Syntax.getArg discr_2 0;
|
|
bif false || Lean.Syntax.isOfKind discr_3 (Lean.Name.mkStr1 "ident") then
|
|
let discr_4 := Lean.Syntax.getArg discr_2 1;
|
|
if Lean.Syntax.matchesNull discr_4 2 = true then
|
|
let discr_5 := Lean.Syntax.getArg discr_4 0;
|
|
let discr_6 := Lean.Syntax.getArg discr_4 1;
|
|
let discr := Lean.Syntax.getArg discr 1;
|
|
let moreArgs := Lean.TSyntaxArray.mk (Lean.Syntax.getArgs discr);
|
|
let rhs := { raw := discr_6 };
|
|
let lhs := { raw := discr_5 };
|
|
let f := { raw := discr_3 };
|
|
Lean.withRef f.raw do
|
|
let info ← Lean.MonadRef.mkInfoFromRefPos
|
|
let _ ← Lean.getCurrMacroScope
|
|
let _ ← Lean.getMainModule
|
|
pure
|
|
{ raw :=
|
|
Lean.Syntax.node info (Lean.Name.mkStr4 "Lean" "Parser" "Term" "app")
|
|
(Array.mkArray2
|
|
(Lean.Syntax.node info (Lean.Name.mkStr1 "term_+++_")
|
|
(Array.mkArray3 lhs.raw (Lean.Syntax.atom info "+++") rhs.raw))
|
|
(Lean.Syntax.node info (Lean.Name.mkStr1 "null")
|
|
(Array.append Array.mkArray0 (Lean.TSyntaxArray.raw moreArgs)))) }.raw
|
|
else
|
|
let discr_5 := Lean.Syntax.getArg discr_2 1;
|
|
let discr := Lean.Syntax.getArg discr 1;
|
|
throw ()
|
|
else
|
|
let discr_4 := Lean.Syntax.getArg discr_2 0;
|
|
let discr_5 := Lean.Syntax.getArg discr_2 1;
|
|
let discr := Lean.Syntax.getArg discr 1;
|
|
throw ()
|
|
else
|
|
let discr_3 := Lean.Syntax.getArg discr 0;
|
|
let discr := Lean.Syntax.getArg discr 1;
|
|
throw ()
|
|
else
|
|
let discr := x;
|
|
throw ()
|