From 2f7220402d4ba19a6b50a34fd19474aeff8d2b77 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 17 Jul 2019 18:54:47 -0700 Subject: [PATCH] chore(stage0): update --- library/init/lean/elaborator/basic.lean | 7 +- src/stage0/init/io.cpp | 72 + src/stage0/init/lean/elaborator/basic.cpp | 7994 ++++++++++++++++++++- src/stage0/init/lean/parser/command.cpp | 622 +- src/stage0/init/lean/parser/level.cpp | 47 +- src/stage0/init/lean/parser/module.cpp | 38 +- src/stage0/init/lean/parser/parser.cpp | 3062 ++++++-- src/stage0/init/lean/parser/term.cpp | 913 ++- 8 files changed, 11151 insertions(+), 1604 deletions(-) diff --git a/library/init/lean/elaborator/basic.lean b/library/init/lean/elaborator/basic.lean index aba065a447..8b120e547b 100644 --- a/library/init/lean/elaborator/basic.lean +++ b/library/init/lean/elaborator/basic.lean @@ -76,11 +76,10 @@ match attrParamSyntaxToIdentifier arg with throw (IO.userError ("invalid syntax node kind '" ++ toString k ++ "'")) | none => throw (IO.userError ("syntax node kind is missing")) - def declareBuiltinTermElab (env : Environment) (kind : SyntaxNodeKind) (declName : Name) : IO Environment := let name := `_regBuiltinTermElab ++ declName; let type := Expr.app (mkConst `IO) (mkConst `Unit); -let val := mkCApp `addBuiltinTermElab [toExpr kind, toExpr declName, mkConst declName]; +let val := mkCApp `Lean.addBuiltinTermElab [toExpr kind, toExpr declName, mkConst declName]; let decl := Declaration.defnDecl { name := name, lparams := [], type := type, value := val, hints := ReducibilityHints.opaque, isUnsafe := false }; match env.addAndCompile {} decl with | none => throw (IO.userError ("failed to emit registration code for builtin term elaborator '" ++ toString declName ++ "'")) @@ -103,6 +102,10 @@ registerAttribute { applicationTime := AttributeApplicationTime.afterCompilation } + +-- @[builtinTermElab «do»] def elabDo : TermElab := +-- fun stx => pure (default Expr) + namespace Elab /- Remark: in an ideal world where performance doesn't matter, we would define `Elab` as diff --git a/src/stage0/init/io.cpp b/src/stage0/init/io.cpp index 8799069035..5d72a50c4c 100644 --- a/src/stage0/init/io.cpp +++ b/src/stage0/init/io.cpp @@ -29,11 +29,13 @@ obj* l_IO_HasEval(obj*); obj* l_IO_Ref_modify(obj*); obj* l_IO_Fs_handle_isEof___rarg(obj*, obj*); obj* l_getModify___rarg___lambda__1___boxed(obj*, obj*, obj*); +obj* l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1(obj*, obj*); obj* l_IO_Fs_handle_close___rarg(obj*, obj*); obj* l_IO_Ref_swap(obj*, obj*); obj* l_EIO_Inhabited___rarg(obj*); obj* l_HasRepr_HasEval___rarg(obj*, obj*, obj*); obj* l_IO_Prim_Ref_swap___boxed(obj*, obj*, obj*, obj*); +obj* l_EIO_HasOrelse(obj*, obj*); obj* l_IO_Fs_handle_mk(obj*, obj*); extern "C" obj* lean_io_prim_handle_is_eof(obj*, obj*); obj* l_IO_println___at_HasRepr_HasEval___spec__1___boxed(obj*, obj*); @@ -50,6 +52,7 @@ obj* l_EIO_Inhabited(obj*, obj*); obj* l_unsafeIO(obj*); obj* l_IO_Prim_iterate___at_IO_Fs_handle_readToEnd___spec__3(obj*, obj*, obj*); obj* l_EIO_Monad(obj*); +obj* l_EIO_HasOrelse___closed__1; extern "C" obj* lean_io_prim_put_str(obj*, obj*); obj* l_IO_Ref_modify___rarg___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_IO_Ref_modify___boxed(obj*); @@ -66,6 +69,7 @@ obj* l_IO_Ref_swap___rarg(obj*, obj*, obj*, obj*); obj* l_IO_Fs_handle_flush(obj*, obj*); obj* l_IO_Prim_Ref_get___boxed(obj*, obj*, obj*); extern "C" obj* lean_io_prim_get_line(obj*); +obj* l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1___rarg(obj*, obj*, obj*); extern "C" obj* lean_io_allocprof(obj*, obj*, obj*, obj*); obj* l_IO_Ref_set___rarg(obj*, obj*, obj*, obj*); obj* l_IO_Error_HasToString; @@ -190,6 +194,71 @@ x_2 = l_EIO_MonadExcept___closed__1; return x_2; } } +obj* l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1___rarg(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = lean::apply_1(x_1, x_3); +if (lean::obj_tag(x_4) == 0) +{ +lean::dec(x_2); +return x_4; +} +else +{ +uint8 x_5; +x_5 = !lean::is_exclusive(x_4); +if (x_5 == 0) +{ +obj* x_6; obj* x_7; obj* x_8; +x_6 = lean::cnstr_get(x_4, 0); +lean::dec(x_6); +x_7 = lean::box(0); +lean::cnstr_set_tag(x_4, 0); +lean::cnstr_set(x_4, 0, x_7); +x_8 = lean::apply_1(x_2, x_4); +return x_8; +} +else +{ +obj* x_9; obj* x_10; obj* x_11; obj* x_12; +x_9 = lean::cnstr_get(x_4, 1); +lean::inc(x_9); +lean::dec(x_4); +x_10 = lean::box(0); +x_11 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_11, 0, x_10); +lean::cnstr_set(x_11, 1, x_9); +x_12 = lean::apply_1(x_2, x_11); +return x_12; +} +} +} +} +obj* l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = lean::alloc_closure(reinterpret_cast(l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1___rarg), 3, 0); +return x_3; +} +} +obj* _init_l_EIO_HasOrelse___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_MonadExcept_orelse___at_EIO_HasOrelse___spec__1___rarg), 3, 0); +return x_1; +} +} +obj* l_EIO_HasOrelse(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_EIO_HasOrelse___closed__1; +return x_3; +} +} obj* l_EIO_Inhabited___rarg(obj* x_1) { _start: { @@ -1749,6 +1818,9 @@ REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("EIO"), "Monad"), l_EIO_MonadExcept___closed__1 = _init_l_EIO_MonadExcept___closed__1(); lean::mark_persistent(l_EIO_MonadExcept___closed__1); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("EIO"), "MonadExcept"), 1, l_EIO_MonadExcept); +l_EIO_HasOrelse___closed__1 = _init_l_EIO_HasOrelse___closed__1(); +lean::mark_persistent(l_EIO_HasOrelse___closed__1); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("EIO"), "HasOrelse"), 2, l_EIO_HasOrelse); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("EIO"), "Inhabited"), 2, l_EIO_Inhabited); l_IO_Error_HasToString___closed__1 = _init_l_IO_Error_HasToString___closed__1(); lean::mark_persistent(l_IO_Error_HasToString___closed__1); diff --git a/src/stage0/init/lean/elaborator/basic.cpp b/src/stage0/init/lean/elaborator/basic.cpp index aed8ba41b3..794f121bfc 100644 --- a/src/stage0/init/lean/elaborator/basic.cpp +++ b/src/stage0/init/lean/elaborator/basic.cpp @@ -1,6 +1,6 @@ // Lean compiler output // Module: init.lean.elaborator.basic -// Imports: init.lean.namegenerator init.lean.parser.module +// Imports: init.lean.namegenerator init.lean.scopes init.lean.parser.module #include "runtime/object.h" #include "runtime/apply.h" typedef lean::object obj; typedef lean::usize usize; @@ -14,65 +14,162 @@ typedef lean::uint32 uint32; typedef lean::uint64 uint64; #pragma GCC diagnostic ignored "-Wunused-label" #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif +obj* l_Lean_checkSyntaxNodeKind___closed__1; obj* l_Lean_SMap_empty___at_Lean_mkBuiltinTermElabTable___spec__1___closed__2; +obj* l_RBNode_setBlack___main___rarg(obj*); +obj* l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(obj*, obj*, obj*); +obj* l_Lean_attrParamSyntaxToIdentifier(obj*); extern "C" uint8 lean_name_dec_eq(obj*, obj*); obj* l_Lean_Elab_runIO___rarg(obj*); obj* l_Lean_Elab_runIOUnsafe(obj*); obj* l_Lean_Elab_runIOUnsafe___rarg(obj*, obj*); +obj* l_Array_mkArray(obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__5; +obj* l_Lean_declareBuiltinTermElab___closed__2; extern obj* l_Lean_AttributeImpl_inhabited___closed__5; +obj* l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4(obj*, obj*); obj* l_Lean_Elab_runIO(obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1(obj*, obj*, obj*, uint8, obj*); +obj* l_Lean_addBuiltinTermElab___closed__2; obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__1; obj* l_Lean_registerBuiltinTermElabAttr___closed__7; obj* l_Lean_registerBuiltinTermElabAttr___closed__4; obj* l_Lean_registerAttribute(obj*, obj*); +uint8 l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1(obj*, obj*); +uint8 l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(obj*, obj*); +obj* l_Lean_declareBuiltinTermElab___closed__1; +obj* l_Lean_addBuiltinCommandElab(obj*, obj*, obj*, obj*); +namespace lean { +obj* get_namespaces_core(obj*); +} +obj* l_Array_uget(obj*, obj*, usize, obj*); obj* l_Lean_Name_toStringWithSep___main(obj*, obj*); extern obj* l_Lean_mkInitAttr___lambda__1___closed__1; +obj* l_Lean_checkSyntaxNodeKindAtNamespaces___main(obj*, obj*, obj*); +obj* l_Array_uset(obj*, obj*, usize, obj*, obj*); +obj* l_Lean_checkSyntaxNodeKindAtNamespaces___boxed(obj*, obj*, obj*); +obj* l_Lean_syntaxNodeKindOfAttrParam___closed__1; +obj* l_IO_Prim_Ref_set(obj*, obj*, obj*, obj*); +extern obj* l_Lean_Options_empty; +obj* l_Lean_addBuiltinCommandElab___boxed(obj*, obj*, obj*, obj*); +obj* l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(obj*, obj*); +obj* l_AssocList_mfoldl___main___at_Lean_addBuiltinCommandElab___spec__11(obj*, obj*); extern obj* l_Lean_AttributeImpl_inhabited___closed__4; obj* l_Lean_SMap_empty___at_Lean_mkBuiltinTermElabTable___spec__1; obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__4; +extern obj* l_Lean_initAttr; +extern obj* l_Lean_Parser_declareBuiltinParser___closed__5; obj* l_Lean_SMap_empty___at_Lean_mkBuiltinCommandElabTable___spec__1___closed__2; +obj* l_RBNode_insert___at_Lean_addBuiltinCommandElab___spec__6(obj*, obj*, obj*); +obj* l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(obj*, obj*, obj*); obj* l_Lean_Elab_runIO___boxed(obj*, obj*); obj* l_Lean_mkBuiltinCommandElabTable(obj*); -obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__6; +extern "C" obj* lean_expr_mk_const(obj*, obj*); +extern "C" usize lean_name_hash_usize(obj*); obj* l_Lean_registerBuiltinTermElabAttr(obj*); +obj* l_Lean_declareBuiltinTermElab___closed__4; namespace lean { obj* string_append(obj*, obj*); } +obj* l_HashMapImp_insert___at_Lean_addBuiltinCommandElab___spec__8(obj*, obj*, obj*); +obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(obj*, obj*); +obj* l_Lean_checkSyntaxNodeKind(obj*, obj*); +namespace lean { +uint8 nat_dec_lt(obj*, obj*); +} +obj* l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4___boxed(obj*, obj*); +obj* l_Lean_checkSyntaxNodeKindAtNamespaces___main___boxed(obj*, obj*, obj*); +extern obj* l_Char_HasRepr___closed__1; +obj* l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1___boxed(obj*, obj*); +obj* l_Lean_addBuiltinTermElab___closed__1; +obj* l_Lean_addBuiltinTermElab(obj*, obj*, obj*, obj*); +obj* l_HashMapImp_insert___at_Lean_addBuiltinTermElab___spec__8(obj*, obj*, obj*); +uint8 l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1(obj*, obj*); obj* l_Lean_SMap_empty___at_Lean_mkBuiltinCommandElabTable___spec__1; +obj* l_Array_fget(obj*, obj*, obj*); extern "C" obj* lean_name_mk_string(obj*, obj*); +obj* l_Lean_nameToExprAux___main(obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__6; +extern "C" obj* lean_add_and_compile(obj*, obj*, obj*); +namespace lean { +obj* nat_add(obj*, obj*); +} +uint8 l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(obj*, obj*); obj* l_Lean_ElabException_Inhabited; +extern obj* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; obj* l_mkHashMap___at_Lean_mkBuiltinCommandElabTable___spec__2(obj*); +uint8 l_RBNode_isRed___main___rarg(obj*); obj* l_Lean_mkBuiltinTermElabTable(obj*); -obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7; +obj* l_Lean_syntaxNodeKindOfAttrParam(obj*, obj*, obj*, obj*); +obj* l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3___boxed(obj*, obj*); obj* l_Lean_ElabException_Inhabited___closed__1; obj* l_mkHashMap___at_Lean_mkBuiltinTermElabTable___spec__2(obj*); obj* l_IO_Prim_mkRef(obj*, obj*, obj*); +obj* l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1___boxed(obj*, obj*); +obj* l_Lean_mkCApp(obj*, obj*); +obj* l_Lean_SMap_insert___main___at_Lean_addBuiltinCommandElab___spec__5(obj*, obj*, obj*); +obj* l_Lean_declareBuiltinTermElab___closed__5; +obj* l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2___boxed(obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; +obj* l_Lean_syntaxNodeKindOfAttrParam___boxed(obj*, obj*, obj*, obj*); +obj* l_HashMapImp_expand___at_Lean_addBuiltinCommandElab___spec__9(obj*, obj*); +uint8 l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2(obj*, obj*); +obj* l_HashMapImp_expand___at_Lean_addBuiltinTermElab___spec__9(obj*, obj*); obj* l_Lean_ElabException_Inhabited___closed__2; obj* l_Lean_registerTagAttribute___lambda__7___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_checkSyntaxNodeKindAtNamespaces(obj*, obj*, obj*); +obj* l_IO_Prim_Ref_get(obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +obj* l_AssocList_mfoldl___main___at_Lean_addBuiltinTermElab___spec__11(obj*, obj*); +obj* l_Lean_declareBuiltinTermElab___closed__3; +uint8 l_Lean_Name_quickLt(obj*, obj*); +obj* l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(obj*, obj*, obj*); +namespace lean { +usize usize_modn(usize, obj*); +} +obj* l_Lean_ParametricAttribute_setParam___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; obj* l_Lean_ConstantInfo_type(obj*); namespace lean { obj* environment_find_core(obj*, obj*); } obj* l_Lean_registerBuiltinTermElabAttr___closed__2; +obj* l_HashMapImp_moveEntries___main___at_Lean_addBuiltinTermElab___spec__10(obj*, obj*, obj*); extern obj* l_Lean_Parser_runBuiltinParserUnsafe___closed__2; +obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4___boxed(obj*, obj*); +obj* l_Lean_addBuiltinCommandElab___closed__1; +obj* l_Array_size(obj*, obj*); obj* l_Lean_declareBuiltinTermElab___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_declareBuiltinTermElab(obj*, obj*, obj*, obj*); +obj* l_Array_fset(obj*, obj*, obj*, obj*); obj* l_mkHashMapImp___rarg(obj*); +uint8 l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2(obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__1; obj* l_Lean_SMap_empty___at_Lean_mkBuiltinCommandElabTable___spec__1___closed__1; +obj* l_Lean_syntaxNodeKindOfAttrParam___closed__2; obj* l_Lean_SMap_empty___at_Lean_mkBuiltinTermElabTable___spec__1___closed__1; +obj* l_Lean_addBuiltinTermElab___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_builtinCommandElabTable; extern obj* l_Lean_nameToExprAux___main___closed__4; extern obj* l_Lean_Name_toString___closed__1; +namespace lean { +uint8 nat_dec_le(obj*, obj*); +} +obj* l_RBNode_insert___at_Lean_addBuiltinTermElab___spec__6(obj*, obj*, obj*); obj* l_Lean_registerBuiltinTermElabAttr___closed__3; obj* l_Lean_registerBuiltinTermElabAttr___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*); +obj* l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(obj*, obj*, obj*); +obj* l_HashMapImp_moveEntries___main___at_Lean_addBuiltinCommandElab___spec__10(obj*, obj*, obj*); +obj* l_Lean_Name_append___main(obj*, obj*); +obj* l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2___boxed(obj*, obj*); +namespace lean { +obj* nat_mul(obj*, obj*); +} +obj* l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3___boxed(obj*, obj*); +obj* l_IO_Prim_Ref_reset(obj*, obj*, obj*); obj* l_Lean_builtinTermElabTable; +obj* l_Lean_SMap_insert___main___at_Lean_addBuiltinTermElab___spec__5(obj*, obj*, obj*); +obj* l_Lean_Parser_isValidSyntaxNodeKind(obj*, obj*); obj* l_Lean_registerTagAttribute___lambda__6___boxed(obj*, obj*, obj*, obj*, obj*); obj* _init_l_Lean_ElabException_Inhabited___closed__1() { _start: @@ -196,29 +293,7348 @@ x_3 = lean::io_mk_ref(x_2, x_1); return x_3; } } -obj* l_Lean_declareBuiltinTermElab(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +uint8 l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(obj* x_1, obj* x_2) { _start: { -uint8 x_5; -x_5 = !lean::is_exclusive(x_4); +if (lean::obj_tag(x_2) == 0) +{ +uint8 x_3; +x_3 = 0; +return x_3; +} +else +{ +obj* x_4; obj* x_5; uint8 x_6; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 2); +x_6 = lean_name_dec_eq(x_4, x_1); +if (x_6 == 0) +{ +x_2 = x_5; +goto _start; +} +else +{ +uint8 x_8; +x_8 = 1; +return x_8; +} +} +} +} +uint8 l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; usize x_5; usize x_6; obj* x_7; usize x_8; obj* x_9; uint8 x_10; +x_3 = lean::cnstr_get(x_1, 1); +x_4 = lean::array_get_size(x_3); +x_5 = lean_name_hash_usize(x_2); +x_6 = lean::usize_modn(x_5, x_4); +lean::dec(x_4); +x_7 = lean::box_size_t(x_6); +x_8 = lean::unbox_size_t(x_7); +lean::dec(x_7); +x_9 = lean::array_uget(x_3, x_8); +x_10 = l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(x_2, x_9); +lean::dec(x_9); +return x_10; +} +} +obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +obj* x_3; +x_3 = lean::box(0); +return x_3; +} +else +{ +obj* x_4; obj* x_5; obj* x_6; obj* x_7; uint8 x_8; +x_4 = lean::cnstr_get(x_1, 0); +x_5 = lean::cnstr_get(x_1, 1); +x_6 = lean::cnstr_get(x_1, 2); +x_7 = lean::cnstr_get(x_1, 3); +x_8 = l_Lean_Name_quickLt(x_2, x_5); +if (x_8 == 0) +{ +uint8 x_9; +x_9 = l_Lean_Name_quickLt(x_5, x_2); +if (x_9 == 0) +{ +obj* x_10; +lean::inc(x_6); +x_10 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_10, 0, x_6); +return x_10; +} +else +{ +x_1 = x_7; +goto _start; +} +} +else +{ +x_1 = x_4; +goto _start; +} +} +} +} +uint8 l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; +x_3 = lean::cnstr_get_scalar(x_1, sizeof(void*)*2); +if (x_3 == 0) +{ +obj* x_4; obj* x_5; uint8 x_6; +x_4 = lean::cnstr_get(x_1, 0); +x_5 = lean::cnstr_get(x_1, 1); +x_6 = l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2(x_4, x_2); +if (x_6 == 0) +{ +obj* x_7; +x_7 = l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(x_5, x_2); +if (lean::obj_tag(x_7) == 0) +{ +uint8 x_8; +x_8 = 0; +return x_8; +} +else +{ +uint8 x_9; +lean::dec(x_7); +x_9 = 1; +return x_9; +} +} +else +{ +uint8 x_10; +x_10 = 1; +return x_10; +} +} +else +{ +obj* x_11; uint8 x_12; +x_11 = lean::cnstr_get(x_1, 0); +x_12 = l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2(x_11, x_2); +return x_12; +} +} +} +obj* l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +return x_5; +} +else +{ +uint8 x_6; +x_6 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_6 == 0) +{ +uint8 x_7; +x_7 = !lean::is_exclusive(x_1); +if (x_7 == 0) +{ +obj* x_8; obj* x_9; obj* x_10; obj* x_11; uint8 x_12; +x_8 = lean::cnstr_get(x_1, 0); +x_9 = lean::cnstr_get(x_1, 1); +x_10 = lean::cnstr_get(x_1, 2); +x_11 = lean::cnstr_get(x_1, 3); +x_12 = l_Lean_Name_quickLt(x_2, x_9); +if (x_12 == 0) +{ +uint8 x_13; +x_13 = l_Lean_Name_quickLt(x_9, x_2); +if (x_13 == 0) +{ +lean::dec(x_10); +lean::dec(x_9); +lean::cnstr_set(x_1, 2, x_3); +lean::cnstr_set(x_1, 1, x_2); +return x_1; +} +else +{ +obj* x_14; +x_14 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_11, x_2, x_3); +lean::cnstr_set(x_1, 3, x_14); +return x_1; +} +} +else +{ +obj* x_15; +x_15 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_8, x_2, x_3); +lean::cnstr_set(x_1, 0, x_15); +return x_1; +} +} +else +{ +obj* x_16; obj* x_17; obj* x_18; obj* x_19; uint8 x_20; +x_16 = lean::cnstr_get(x_1, 0); +x_17 = lean::cnstr_get(x_1, 1); +x_18 = lean::cnstr_get(x_1, 2); +x_19 = lean::cnstr_get(x_1, 3); +lean::inc(x_19); +lean::inc(x_18); +lean::inc(x_17); +lean::inc(x_16); +lean::dec(x_1); +x_20 = l_Lean_Name_quickLt(x_2, x_17); +if (x_20 == 0) +{ +uint8 x_21; +x_21 = l_Lean_Name_quickLt(x_17, x_2); +if (x_21 == 0) +{ +obj* x_22; +lean::dec(x_18); +lean::dec(x_17); +x_22 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_22, 0, x_16); +lean::cnstr_set(x_22, 1, x_2); +lean::cnstr_set(x_22, 2, x_3); +lean::cnstr_set(x_22, 3, x_19); +lean::cnstr_set_scalar(x_22, sizeof(void*)*4, x_6); +return x_22; +} +else +{ +obj* x_23; obj* x_24; +x_23 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_19, x_2, x_3); +x_24 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_24, 0, x_16); +lean::cnstr_set(x_24, 1, x_17); +lean::cnstr_set(x_24, 2, x_18); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_6); +return x_24; +} +} +else +{ +obj* x_25; obj* x_26; +x_25 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_16, x_2, x_3); +x_26 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_17); +lean::cnstr_set(x_26, 2, x_18); +lean::cnstr_set(x_26, 3, x_19); +lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); +return x_26; +} +} +} +else +{ +uint8 x_27; +x_27 = !lean::is_exclusive(x_1); +if (x_27 == 0) +{ +obj* x_28; obj* x_29; obj* x_30; obj* x_31; uint8 x_32; +x_28 = lean::cnstr_get(x_1, 0); +x_29 = lean::cnstr_get(x_1, 1); +x_30 = lean::cnstr_get(x_1, 2); +x_31 = lean::cnstr_get(x_1, 3); +x_32 = l_Lean_Name_quickLt(x_2, x_29); +if (x_32 == 0) +{ +uint8 x_33; +x_33 = l_Lean_Name_quickLt(x_29, x_2); +if (x_33 == 0) +{ +lean::dec(x_30); +lean::dec(x_29); +lean::cnstr_set(x_1, 2, x_3); +lean::cnstr_set(x_1, 1, x_2); +return x_1; +} +else +{ +uint8 x_34; +x_34 = l_RBNode_isRed___main___rarg(x_31); +if (x_34 == 0) +{ +obj* x_35; +x_35 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_31, x_2, x_3); +lean::cnstr_set(x_1, 3, x_35); +return x_1; +} +else +{ +obj* x_36; +x_36 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_31, x_2, x_3); +if (lean::obj_tag(x_36) == 0) +{ +lean::free_heap_obj(x_1); +lean::dec(x_30); +lean::dec(x_29); +lean::dec(x_28); +return x_36; +} +else +{ +obj* x_37; +x_37 = lean::cnstr_get(x_36, 0); +lean::inc(x_37); +if (lean::obj_tag(x_37) == 0) +{ +obj* x_38; +x_38 = lean::cnstr_get(x_36, 3); +lean::inc(x_38); +if (lean::obj_tag(x_38) == 0) +{ +uint8 x_39; +x_39 = !lean::is_exclusive(x_36); +if (x_39 == 0) +{ +obj* x_40; obj* x_41; uint8 x_42; uint8 x_43; +x_40 = lean::cnstr_get(x_36, 3); +lean::dec(x_40); +x_41 = lean::cnstr_get(x_36, 0); +lean::dec(x_41); +x_42 = 0; +lean::cnstr_set(x_36, 0, x_38); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_42); +x_43 = 1; +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_43); +return x_1; +} +else +{ +obj* x_44; obj* x_45; uint8 x_46; obj* x_47; uint8 x_48; +x_44 = lean::cnstr_get(x_36, 1); +x_45 = lean::cnstr_get(x_36, 2); +lean::inc(x_45); +lean::inc(x_44); +lean::dec(x_36); +x_46 = 0; +x_47 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_47, 0, x_38); +lean::cnstr_set(x_47, 1, x_44); +lean::cnstr_set(x_47, 2, x_45); +lean::cnstr_set(x_47, 3, x_38); +lean::cnstr_set_scalar(x_47, sizeof(void*)*4, x_46); +x_48 = 1; +lean::cnstr_set(x_1, 3, x_47); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_48); +return x_1; +} +} +else +{ +uint8 x_49; +x_49 = lean::cnstr_get_scalar(x_38, sizeof(void*)*4); +if (x_49 == 0) +{ +uint8 x_50; +x_50 = !lean::is_exclusive(x_36); +if (x_50 == 0) +{ +obj* x_51; obj* x_52; obj* x_53; obj* x_54; uint8 x_55; +x_51 = lean::cnstr_get(x_36, 1); +x_52 = lean::cnstr_get(x_36, 2); +x_53 = lean::cnstr_get(x_36, 3); +lean::dec(x_53); +x_54 = lean::cnstr_get(x_36, 0); +lean::dec(x_54); +x_55 = !lean::is_exclusive(x_38); +if (x_55 == 0) +{ +obj* x_56; obj* x_57; obj* x_58; obj* x_59; uint8 x_60; +x_56 = lean::cnstr_get(x_38, 0); +x_57 = lean::cnstr_get(x_38, 1); +x_58 = lean::cnstr_get(x_38, 2); +x_59 = lean::cnstr_get(x_38, 3); +x_60 = 1; +lean::cnstr_set(x_38, 3, x_37); +lean::cnstr_set(x_38, 2, x_30); +lean::cnstr_set(x_38, 1, x_29); +lean::cnstr_set(x_38, 0, x_28); +lean::cnstr_set_scalar(x_38, sizeof(void*)*4, x_60); +lean::cnstr_set(x_36, 3, x_59); +lean::cnstr_set(x_36, 2, x_58); +lean::cnstr_set(x_36, 1, x_57); +lean::cnstr_set(x_36, 0, x_56); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_60); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_52); +lean::cnstr_set(x_1, 1, x_51); +lean::cnstr_set(x_1, 0, x_38); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +else +{ +obj* x_61; obj* x_62; obj* x_63; obj* x_64; uint8 x_65; obj* x_66; +x_61 = lean::cnstr_get(x_38, 0); +x_62 = lean::cnstr_get(x_38, 1); +x_63 = lean::cnstr_get(x_38, 2); +x_64 = lean::cnstr_get(x_38, 3); +lean::inc(x_64); +lean::inc(x_63); +lean::inc(x_62); +lean::inc(x_61); +lean::dec(x_38); +x_65 = 1; +x_66 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_66, 0, x_28); +lean::cnstr_set(x_66, 1, x_29); +lean::cnstr_set(x_66, 2, x_30); +lean::cnstr_set(x_66, 3, x_37); +lean::cnstr_set_scalar(x_66, sizeof(void*)*4, x_65); +lean::cnstr_set(x_36, 3, x_64); +lean::cnstr_set(x_36, 2, x_63); +lean::cnstr_set(x_36, 1, x_62); +lean::cnstr_set(x_36, 0, x_61); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_65); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_52); +lean::cnstr_set(x_1, 1, x_51); +lean::cnstr_set(x_1, 0, x_66); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +else +{ +obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; uint8 x_74; obj* x_75; obj* x_76; +x_67 = lean::cnstr_get(x_36, 1); +x_68 = lean::cnstr_get(x_36, 2); +lean::inc(x_68); +lean::inc(x_67); +lean::dec(x_36); +x_69 = lean::cnstr_get(x_38, 0); +lean::inc(x_69); +x_70 = lean::cnstr_get(x_38, 1); +lean::inc(x_70); +x_71 = lean::cnstr_get(x_38, 2); +lean::inc(x_71); +x_72 = lean::cnstr_get(x_38, 3); +lean::inc(x_72); +if (lean::is_exclusive(x_38)) { + lean::cnstr_release(x_38, 0); + lean::cnstr_release(x_38, 1); + lean::cnstr_release(x_38, 2); + lean::cnstr_release(x_38, 3); + x_73 = x_38; +} else { + lean::dec_ref(x_38); + x_73 = lean::box(0); +} +x_74 = 1; +if (lean::is_scalar(x_73)) { + x_75 = lean::alloc_cnstr(1, 4, 1); +} else { + x_75 = x_73; +} +lean::cnstr_set(x_75, 0, x_28); +lean::cnstr_set(x_75, 1, x_29); +lean::cnstr_set(x_75, 2, x_30); +lean::cnstr_set(x_75, 3, x_37); +lean::cnstr_set_scalar(x_75, sizeof(void*)*4, x_74); +x_76 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_76, 0, x_69); +lean::cnstr_set(x_76, 1, x_70); +lean::cnstr_set(x_76, 2, x_71); +lean::cnstr_set(x_76, 3, x_72); +lean::cnstr_set_scalar(x_76, sizeof(void*)*4, x_74); +lean::cnstr_set(x_1, 3, x_76); +lean::cnstr_set(x_1, 2, x_68); +lean::cnstr_set(x_1, 1, x_67); +lean::cnstr_set(x_1, 0, x_75); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +else +{ +uint8 x_77; +x_77 = !lean::is_exclusive(x_36); +if (x_77 == 0) +{ +obj* x_78; obj* x_79; uint8 x_80; +x_78 = lean::cnstr_get(x_36, 3); +lean::dec(x_78); +x_79 = lean::cnstr_get(x_36, 0); +lean::dec(x_79); +x_80 = 0; +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_80); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +else +{ +obj* x_81; obj* x_82; uint8 x_83; obj* x_84; +x_81 = lean::cnstr_get(x_36, 1); +x_82 = lean::cnstr_get(x_36, 2); +lean::inc(x_82); +lean::inc(x_81); +lean::dec(x_36); +x_83 = 0; +x_84 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_84, 0, x_37); +lean::cnstr_set(x_84, 1, x_81); +lean::cnstr_set(x_84, 2, x_82); +lean::cnstr_set(x_84, 3, x_38); +lean::cnstr_set_scalar(x_84, sizeof(void*)*4, x_83); +lean::cnstr_set(x_1, 3, x_84); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +} +} +else +{ +uint8 x_85; +x_85 = lean::cnstr_get_scalar(x_37, sizeof(void*)*4); +if (x_85 == 0) +{ +uint8 x_86; +x_86 = !lean::is_exclusive(x_36); +if (x_86 == 0) +{ +obj* x_87; uint8 x_88; +x_87 = lean::cnstr_get(x_36, 0); +lean::dec(x_87); +x_88 = !lean::is_exclusive(x_37); +if (x_88 == 0) +{ +obj* x_89; obj* x_90; obj* x_91; obj* x_92; uint8 x_93; +x_89 = lean::cnstr_get(x_37, 0); +x_90 = lean::cnstr_get(x_37, 1); +x_91 = lean::cnstr_get(x_37, 2); +x_92 = lean::cnstr_get(x_37, 3); +x_93 = 1; +lean::cnstr_set(x_37, 3, x_89); +lean::cnstr_set(x_37, 2, x_30); +lean::cnstr_set(x_37, 1, x_29); +lean::cnstr_set(x_37, 0, x_28); +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_93); +lean::cnstr_set(x_36, 0, x_92); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_93); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_91); +lean::cnstr_set(x_1, 1, x_90); +lean::cnstr_set(x_1, 0, x_37); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +else +{ +obj* x_94; obj* x_95; obj* x_96; obj* x_97; uint8 x_98; obj* x_99; +x_94 = lean::cnstr_get(x_37, 0); +x_95 = lean::cnstr_get(x_37, 1); +x_96 = lean::cnstr_get(x_37, 2); +x_97 = lean::cnstr_get(x_37, 3); +lean::inc(x_97); +lean::inc(x_96); +lean::inc(x_95); +lean::inc(x_94); +lean::dec(x_37); +x_98 = 1; +x_99 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_99, 0, x_28); +lean::cnstr_set(x_99, 1, x_29); +lean::cnstr_set(x_99, 2, x_30); +lean::cnstr_set(x_99, 3, x_94); +lean::cnstr_set_scalar(x_99, sizeof(void*)*4, x_98); +lean::cnstr_set(x_36, 0, x_97); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_98); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_96); +lean::cnstr_set(x_1, 1, x_95); +lean::cnstr_set(x_1, 0, x_99); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +} +else +{ +obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; uint8 x_108; obj* x_109; obj* x_110; +x_100 = lean::cnstr_get(x_36, 1); +x_101 = lean::cnstr_get(x_36, 2); +x_102 = lean::cnstr_get(x_36, 3); +lean::inc(x_102); +lean::inc(x_101); +lean::inc(x_100); +lean::dec(x_36); +x_103 = lean::cnstr_get(x_37, 0); +lean::inc(x_103); +x_104 = lean::cnstr_get(x_37, 1); +lean::inc(x_104); +x_105 = lean::cnstr_get(x_37, 2); +lean::inc(x_105); +x_106 = lean::cnstr_get(x_37, 3); +lean::inc(x_106); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_107 = x_37; +} else { + lean::dec_ref(x_37); + x_107 = lean::box(0); +} +x_108 = 1; +if (lean::is_scalar(x_107)) { + x_109 = lean::alloc_cnstr(1, 4, 1); +} else { + x_109 = x_107; +} +lean::cnstr_set(x_109, 0, x_28); +lean::cnstr_set(x_109, 1, x_29); +lean::cnstr_set(x_109, 2, x_30); +lean::cnstr_set(x_109, 3, x_103); +lean::cnstr_set_scalar(x_109, sizeof(void*)*4, x_108); +x_110 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_110, 0, x_106); +lean::cnstr_set(x_110, 1, x_100); +lean::cnstr_set(x_110, 2, x_101); +lean::cnstr_set(x_110, 3, x_102); +lean::cnstr_set_scalar(x_110, sizeof(void*)*4, x_108); +lean::cnstr_set(x_1, 3, x_110); +lean::cnstr_set(x_1, 2, x_105); +lean::cnstr_set(x_1, 1, x_104); +lean::cnstr_set(x_1, 0, x_109); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +} +else +{ +obj* x_111; +x_111 = lean::cnstr_get(x_36, 3); +lean::inc(x_111); +if (lean::obj_tag(x_111) == 0) +{ +uint8 x_112; +x_112 = !lean::is_exclusive(x_36); +if (x_112 == 0) +{ +obj* x_113; obj* x_114; uint8 x_115; +x_113 = lean::cnstr_get(x_36, 3); +lean::dec(x_113); +x_114 = lean::cnstr_get(x_36, 0); +lean::dec(x_114); +x_115 = 0; +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_115); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +else +{ +obj* x_116; obj* x_117; uint8 x_118; obj* x_119; +x_116 = lean::cnstr_get(x_36, 1); +x_117 = lean::cnstr_get(x_36, 2); +lean::inc(x_117); +lean::inc(x_116); +lean::dec(x_36); +x_118 = 0; +x_119 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_119, 0, x_37); +lean::cnstr_set(x_119, 1, x_116); +lean::cnstr_set(x_119, 2, x_117); +lean::cnstr_set(x_119, 3, x_111); +lean::cnstr_set_scalar(x_119, sizeof(void*)*4, x_118); +lean::cnstr_set(x_1, 3, x_119); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +} +else +{ +uint8 x_120; +x_120 = lean::cnstr_get_scalar(x_111, sizeof(void*)*4); +if (x_120 == 0) +{ +uint8 x_121; +lean::free_heap_obj(x_1); +x_121 = !lean::is_exclusive(x_36); +if (x_121 == 0) +{ +obj* x_122; obj* x_123; uint8 x_124; +x_122 = lean::cnstr_get(x_36, 3); +lean::dec(x_122); +x_123 = lean::cnstr_get(x_36, 0); +lean::dec(x_123); +x_124 = !lean::is_exclusive(x_111); +if (x_124 == 0) +{ +obj* x_125; obj* x_126; obj* x_127; obj* x_128; uint8 x_129; +x_125 = lean::cnstr_get(x_111, 0); +x_126 = lean::cnstr_get(x_111, 1); +x_127 = lean::cnstr_get(x_111, 2); +x_128 = lean::cnstr_get(x_111, 3); +lean::inc(x_37); +lean::cnstr_set(x_111, 3, x_37); +lean::cnstr_set(x_111, 2, x_30); +lean::cnstr_set(x_111, 1, x_29); +lean::cnstr_set(x_111, 0, x_28); +x_129 = !lean::is_exclusive(x_37); +if (x_129 == 0) +{ +obj* x_130; obj* x_131; obj* x_132; obj* x_133; +x_130 = lean::cnstr_get(x_37, 3); +lean::dec(x_130); +x_131 = lean::cnstr_get(x_37, 2); +lean::dec(x_131); +x_132 = lean::cnstr_get(x_37, 1); +lean::dec(x_132); +x_133 = lean::cnstr_get(x_37, 0); +lean::dec(x_133); +lean::cnstr_set_scalar(x_111, sizeof(void*)*4, x_85); +lean::cnstr_set(x_37, 3, x_128); +lean::cnstr_set(x_37, 2, x_127); +lean::cnstr_set(x_37, 1, x_126); +lean::cnstr_set(x_37, 0, x_125); +lean::cnstr_set(x_36, 3, x_37); +lean::cnstr_set(x_36, 0, x_111); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_120); +return x_36; +} +else +{ +obj* x_134; +lean::dec(x_37); +lean::cnstr_set_scalar(x_111, sizeof(void*)*4, x_85); +x_134 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_134, 0, x_125); +lean::cnstr_set(x_134, 1, x_126); +lean::cnstr_set(x_134, 2, x_127); +lean::cnstr_set(x_134, 3, x_128); +lean::cnstr_set_scalar(x_134, sizeof(void*)*4, x_85); +lean::cnstr_set(x_36, 3, x_134); +lean::cnstr_set(x_36, 0, x_111); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_120); +return x_36; +} +} +else +{ +obj* x_135; obj* x_136; obj* x_137; obj* x_138; obj* x_139; obj* x_140; obj* x_141; +x_135 = lean::cnstr_get(x_111, 0); +x_136 = lean::cnstr_get(x_111, 1); +x_137 = lean::cnstr_get(x_111, 2); +x_138 = lean::cnstr_get(x_111, 3); +lean::inc(x_138); +lean::inc(x_137); +lean::inc(x_136); +lean::inc(x_135); +lean::dec(x_111); +lean::inc(x_37); +x_139 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_139, 0, x_28); +lean::cnstr_set(x_139, 1, x_29); +lean::cnstr_set(x_139, 2, x_30); +lean::cnstr_set(x_139, 3, x_37); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_140 = x_37; +} else { + lean::dec_ref(x_37); + x_140 = lean::box(0); +} +lean::cnstr_set_scalar(x_139, sizeof(void*)*4, x_85); +if (lean::is_scalar(x_140)) { + x_141 = lean::alloc_cnstr(1, 4, 1); +} else { + x_141 = x_140; +} +lean::cnstr_set(x_141, 0, x_135); +lean::cnstr_set(x_141, 1, x_136); +lean::cnstr_set(x_141, 2, x_137); +lean::cnstr_set(x_141, 3, x_138); +lean::cnstr_set_scalar(x_141, sizeof(void*)*4, x_85); +lean::cnstr_set(x_36, 3, x_141); +lean::cnstr_set(x_36, 0, x_139); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_120); +return x_36; +} +} +else +{ +obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; obj* x_147; obj* x_148; obj* x_149; obj* x_150; obj* x_151; obj* x_152; +x_142 = lean::cnstr_get(x_36, 1); +x_143 = lean::cnstr_get(x_36, 2); +lean::inc(x_143); +lean::inc(x_142); +lean::dec(x_36); +x_144 = lean::cnstr_get(x_111, 0); +lean::inc(x_144); +x_145 = lean::cnstr_get(x_111, 1); +lean::inc(x_145); +x_146 = lean::cnstr_get(x_111, 2); +lean::inc(x_146); +x_147 = lean::cnstr_get(x_111, 3); +lean::inc(x_147); +if (lean::is_exclusive(x_111)) { + lean::cnstr_release(x_111, 0); + lean::cnstr_release(x_111, 1); + lean::cnstr_release(x_111, 2); + lean::cnstr_release(x_111, 3); + x_148 = x_111; +} else { + lean::dec_ref(x_111); + x_148 = lean::box(0); +} +lean::inc(x_37); +if (lean::is_scalar(x_148)) { + x_149 = lean::alloc_cnstr(1, 4, 1); +} else { + x_149 = x_148; +} +lean::cnstr_set(x_149, 0, x_28); +lean::cnstr_set(x_149, 1, x_29); +lean::cnstr_set(x_149, 2, x_30); +lean::cnstr_set(x_149, 3, x_37); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_150 = x_37; +} else { + lean::dec_ref(x_37); + x_150 = lean::box(0); +} +lean::cnstr_set_scalar(x_149, sizeof(void*)*4, x_85); +if (lean::is_scalar(x_150)) { + x_151 = lean::alloc_cnstr(1, 4, 1); +} else { + x_151 = x_150; +} +lean::cnstr_set(x_151, 0, x_144); +lean::cnstr_set(x_151, 1, x_145); +lean::cnstr_set(x_151, 2, x_146); +lean::cnstr_set(x_151, 3, x_147); +lean::cnstr_set_scalar(x_151, sizeof(void*)*4, x_85); +x_152 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_152, 0, x_149); +lean::cnstr_set(x_152, 1, x_142); +lean::cnstr_set(x_152, 2, x_143); +lean::cnstr_set(x_152, 3, x_151); +lean::cnstr_set_scalar(x_152, sizeof(void*)*4, x_120); +return x_152; +} +} +else +{ +uint8 x_153; +x_153 = !lean::is_exclusive(x_36); +if (x_153 == 0) +{ +obj* x_154; obj* x_155; uint8 x_156; +x_154 = lean::cnstr_get(x_36, 3); +lean::dec(x_154); +x_155 = lean::cnstr_get(x_36, 0); +lean::dec(x_155); +x_156 = !lean::is_exclusive(x_37); +if (x_156 == 0) +{ +uint8 x_157; +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_120); +x_157 = 0; +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_157); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_120); +return x_1; +} +else +{ +obj* x_158; obj* x_159; obj* x_160; obj* x_161; obj* x_162; uint8 x_163; +x_158 = lean::cnstr_get(x_37, 0); +x_159 = lean::cnstr_get(x_37, 1); +x_160 = lean::cnstr_get(x_37, 2); +x_161 = lean::cnstr_get(x_37, 3); +lean::inc(x_161); +lean::inc(x_160); +lean::inc(x_159); +lean::inc(x_158); +lean::dec(x_37); +x_162 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_162, 0, x_158); +lean::cnstr_set(x_162, 1, x_159); +lean::cnstr_set(x_162, 2, x_160); +lean::cnstr_set(x_162, 3, x_161); +lean::cnstr_set_scalar(x_162, sizeof(void*)*4, x_120); +x_163 = 0; +lean::cnstr_set(x_36, 0, x_162); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_163); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_120); +return x_1; +} +} +else +{ +obj* x_164; obj* x_165; obj* x_166; obj* x_167; obj* x_168; obj* x_169; obj* x_170; obj* x_171; uint8 x_172; obj* x_173; +x_164 = lean::cnstr_get(x_36, 1); +x_165 = lean::cnstr_get(x_36, 2); +lean::inc(x_165); +lean::inc(x_164); +lean::dec(x_36); +x_166 = lean::cnstr_get(x_37, 0); +lean::inc(x_166); +x_167 = lean::cnstr_get(x_37, 1); +lean::inc(x_167); +x_168 = lean::cnstr_get(x_37, 2); +lean::inc(x_168); +x_169 = lean::cnstr_get(x_37, 3); +lean::inc(x_169); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_170 = x_37; +} else { + lean::dec_ref(x_37); + x_170 = lean::box(0); +} +if (lean::is_scalar(x_170)) { + x_171 = lean::alloc_cnstr(1, 4, 1); +} else { + x_171 = x_170; +} +lean::cnstr_set(x_171, 0, x_166); +lean::cnstr_set(x_171, 1, x_167); +lean::cnstr_set(x_171, 2, x_168); +lean::cnstr_set(x_171, 3, x_169); +lean::cnstr_set_scalar(x_171, sizeof(void*)*4, x_120); +x_172 = 0; +x_173 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_173, 0, x_171); +lean::cnstr_set(x_173, 1, x_164); +lean::cnstr_set(x_173, 2, x_165); +lean::cnstr_set(x_173, 3, x_111); +lean::cnstr_set_scalar(x_173, sizeof(void*)*4, x_172); +lean::cnstr_set(x_1, 3, x_173); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_120); +return x_1; +} +} +} +} +} +} +} +} +} +else +{ +uint8 x_174; +x_174 = l_RBNode_isRed___main___rarg(x_28); +if (x_174 == 0) +{ +obj* x_175; +x_175 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_28, x_2, x_3); +lean::cnstr_set(x_1, 0, x_175); +return x_1; +} +else +{ +obj* x_176; +x_176 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_28, x_2, x_3); +if (lean::obj_tag(x_176) == 0) +{ +lean::free_heap_obj(x_1); +lean::dec(x_31); +lean::dec(x_30); +lean::dec(x_29); +return x_176; +} +else +{ +obj* x_177; +x_177 = lean::cnstr_get(x_176, 0); +lean::inc(x_177); +if (lean::obj_tag(x_177) == 0) +{ +obj* x_178; +x_178 = lean::cnstr_get(x_176, 3); +lean::inc(x_178); +if (lean::obj_tag(x_178) == 0) +{ +uint8 x_179; +x_179 = !lean::is_exclusive(x_176); +if (x_179 == 0) +{ +obj* x_180; obj* x_181; uint8 x_182; uint8 x_183; +x_180 = lean::cnstr_get(x_176, 3); +lean::dec(x_180); +x_181 = lean::cnstr_get(x_176, 0); +lean::dec(x_181); +x_182 = 0; +lean::cnstr_set(x_176, 0, x_178); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_182); +x_183 = 1; +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_183); +return x_1; +} +else +{ +obj* x_184; obj* x_185; uint8 x_186; obj* x_187; uint8 x_188; +x_184 = lean::cnstr_get(x_176, 1); +x_185 = lean::cnstr_get(x_176, 2); +lean::inc(x_185); +lean::inc(x_184); +lean::dec(x_176); +x_186 = 0; +x_187 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_187, 0, x_178); +lean::cnstr_set(x_187, 1, x_184); +lean::cnstr_set(x_187, 2, x_185); +lean::cnstr_set(x_187, 3, x_178); +lean::cnstr_set_scalar(x_187, sizeof(void*)*4, x_186); +x_188 = 1; +lean::cnstr_set(x_1, 0, x_187); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_188); +return x_1; +} +} +else +{ +uint8 x_189; +x_189 = lean::cnstr_get_scalar(x_178, sizeof(void*)*4); +if (x_189 == 0) +{ +uint8 x_190; +x_190 = !lean::is_exclusive(x_176); +if (x_190 == 0) +{ +obj* x_191; obj* x_192; obj* x_193; obj* x_194; uint8 x_195; +x_191 = lean::cnstr_get(x_176, 1); +x_192 = lean::cnstr_get(x_176, 2); +x_193 = lean::cnstr_get(x_176, 3); +lean::dec(x_193); +x_194 = lean::cnstr_get(x_176, 0); +lean::dec(x_194); +x_195 = !lean::is_exclusive(x_178); +if (x_195 == 0) +{ +obj* x_196; obj* x_197; obj* x_198; obj* x_199; uint8 x_200; +x_196 = lean::cnstr_get(x_178, 0); +x_197 = lean::cnstr_get(x_178, 1); +x_198 = lean::cnstr_get(x_178, 2); +x_199 = lean::cnstr_get(x_178, 3); +x_200 = 1; +lean::cnstr_set(x_178, 3, x_196); +lean::cnstr_set(x_178, 2, x_192); +lean::cnstr_set(x_178, 1, x_191); +lean::cnstr_set(x_178, 0, x_177); +lean::cnstr_set_scalar(x_178, sizeof(void*)*4, x_200); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_199); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_200); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_198); +lean::cnstr_set(x_1, 1, x_197); +lean::cnstr_set(x_1, 0, x_178); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +else +{ +obj* x_201; obj* x_202; obj* x_203; obj* x_204; uint8 x_205; obj* x_206; +x_201 = lean::cnstr_get(x_178, 0); +x_202 = lean::cnstr_get(x_178, 1); +x_203 = lean::cnstr_get(x_178, 2); +x_204 = lean::cnstr_get(x_178, 3); +lean::inc(x_204); +lean::inc(x_203); +lean::inc(x_202); +lean::inc(x_201); +lean::dec(x_178); +x_205 = 1; +x_206 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_206, 0, x_177); +lean::cnstr_set(x_206, 1, x_191); +lean::cnstr_set(x_206, 2, x_192); +lean::cnstr_set(x_206, 3, x_201); +lean::cnstr_set_scalar(x_206, sizeof(void*)*4, x_205); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_204); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_205); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_203); +lean::cnstr_set(x_1, 1, x_202); +lean::cnstr_set(x_1, 0, x_206); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +else +{ +obj* x_207; obj* x_208; obj* x_209; obj* x_210; obj* x_211; obj* x_212; obj* x_213; uint8 x_214; obj* x_215; obj* x_216; +x_207 = lean::cnstr_get(x_176, 1); +x_208 = lean::cnstr_get(x_176, 2); +lean::inc(x_208); +lean::inc(x_207); +lean::dec(x_176); +x_209 = lean::cnstr_get(x_178, 0); +lean::inc(x_209); +x_210 = lean::cnstr_get(x_178, 1); +lean::inc(x_210); +x_211 = lean::cnstr_get(x_178, 2); +lean::inc(x_211); +x_212 = lean::cnstr_get(x_178, 3); +lean::inc(x_212); +if (lean::is_exclusive(x_178)) { + lean::cnstr_release(x_178, 0); + lean::cnstr_release(x_178, 1); + lean::cnstr_release(x_178, 2); + lean::cnstr_release(x_178, 3); + x_213 = x_178; +} else { + lean::dec_ref(x_178); + x_213 = lean::box(0); +} +x_214 = 1; +if (lean::is_scalar(x_213)) { + x_215 = lean::alloc_cnstr(1, 4, 1); +} else { + x_215 = x_213; +} +lean::cnstr_set(x_215, 0, x_177); +lean::cnstr_set(x_215, 1, x_207); +lean::cnstr_set(x_215, 2, x_208); +lean::cnstr_set(x_215, 3, x_209); +lean::cnstr_set_scalar(x_215, sizeof(void*)*4, x_214); +x_216 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_216, 0, x_212); +lean::cnstr_set(x_216, 1, x_29); +lean::cnstr_set(x_216, 2, x_30); +lean::cnstr_set(x_216, 3, x_31); +lean::cnstr_set_scalar(x_216, sizeof(void*)*4, x_214); +lean::cnstr_set(x_1, 3, x_216); +lean::cnstr_set(x_1, 2, x_211); +lean::cnstr_set(x_1, 1, x_210); +lean::cnstr_set(x_1, 0, x_215); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +else +{ +uint8 x_217; +x_217 = !lean::is_exclusive(x_176); +if (x_217 == 0) +{ +obj* x_218; obj* x_219; uint8 x_220; +x_218 = lean::cnstr_get(x_176, 3); +lean::dec(x_218); +x_219 = lean::cnstr_get(x_176, 0); +lean::dec(x_219); +x_220 = 0; +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_220); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +else +{ +obj* x_221; obj* x_222; uint8 x_223; obj* x_224; +x_221 = lean::cnstr_get(x_176, 1); +x_222 = lean::cnstr_get(x_176, 2); +lean::inc(x_222); +lean::inc(x_221); +lean::dec(x_176); +x_223 = 0; +x_224 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_224, 0, x_177); +lean::cnstr_set(x_224, 1, x_221); +lean::cnstr_set(x_224, 2, x_222); +lean::cnstr_set(x_224, 3, x_178); +lean::cnstr_set_scalar(x_224, sizeof(void*)*4, x_223); +lean::cnstr_set(x_1, 0, x_224); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +} +} +else +{ +uint8 x_225; +x_225 = lean::cnstr_get_scalar(x_177, sizeof(void*)*4); +if (x_225 == 0) +{ +uint8 x_226; +x_226 = !lean::is_exclusive(x_176); +if (x_226 == 0) +{ +obj* x_227; obj* x_228; obj* x_229; obj* x_230; uint8 x_231; +x_227 = lean::cnstr_get(x_176, 1); +x_228 = lean::cnstr_get(x_176, 2); +x_229 = lean::cnstr_get(x_176, 3); +x_230 = lean::cnstr_get(x_176, 0); +lean::dec(x_230); +x_231 = !lean::is_exclusive(x_177); +if (x_231 == 0) +{ +uint8 x_232; +x_232 = 1; +lean::cnstr_set_scalar(x_177, sizeof(void*)*4, x_232); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_229); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_232); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_228); +lean::cnstr_set(x_1, 1, x_227); +lean::cnstr_set(x_1, 0, x_177); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +else +{ +obj* x_233; obj* x_234; obj* x_235; obj* x_236; uint8 x_237; obj* x_238; +x_233 = lean::cnstr_get(x_177, 0); +x_234 = lean::cnstr_get(x_177, 1); +x_235 = lean::cnstr_get(x_177, 2); +x_236 = lean::cnstr_get(x_177, 3); +lean::inc(x_236); +lean::inc(x_235); +lean::inc(x_234); +lean::inc(x_233); +lean::dec(x_177); +x_237 = 1; +x_238 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_238, 0, x_233); +lean::cnstr_set(x_238, 1, x_234); +lean::cnstr_set(x_238, 2, x_235); +lean::cnstr_set(x_238, 3, x_236); +lean::cnstr_set_scalar(x_238, sizeof(void*)*4, x_237); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_229); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_237); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_228); +lean::cnstr_set(x_1, 1, x_227); +lean::cnstr_set(x_1, 0, x_238); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +} +else +{ +obj* x_239; obj* x_240; obj* x_241; obj* x_242; obj* x_243; obj* x_244; obj* x_245; obj* x_246; uint8 x_247; obj* x_248; obj* x_249; +x_239 = lean::cnstr_get(x_176, 1); +x_240 = lean::cnstr_get(x_176, 2); +x_241 = lean::cnstr_get(x_176, 3); +lean::inc(x_241); +lean::inc(x_240); +lean::inc(x_239); +lean::dec(x_176); +x_242 = lean::cnstr_get(x_177, 0); +lean::inc(x_242); +x_243 = lean::cnstr_get(x_177, 1); +lean::inc(x_243); +x_244 = lean::cnstr_get(x_177, 2); +lean::inc(x_244); +x_245 = lean::cnstr_get(x_177, 3); +lean::inc(x_245); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_246 = x_177; +} else { + lean::dec_ref(x_177); + x_246 = lean::box(0); +} +x_247 = 1; +if (lean::is_scalar(x_246)) { + x_248 = lean::alloc_cnstr(1, 4, 1); +} else { + x_248 = x_246; +} +lean::cnstr_set(x_248, 0, x_242); +lean::cnstr_set(x_248, 1, x_243); +lean::cnstr_set(x_248, 2, x_244); +lean::cnstr_set(x_248, 3, x_245); +lean::cnstr_set_scalar(x_248, sizeof(void*)*4, x_247); +x_249 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_249, 0, x_241); +lean::cnstr_set(x_249, 1, x_29); +lean::cnstr_set(x_249, 2, x_30); +lean::cnstr_set(x_249, 3, x_31); +lean::cnstr_set_scalar(x_249, sizeof(void*)*4, x_247); +lean::cnstr_set(x_1, 3, x_249); +lean::cnstr_set(x_1, 2, x_240); +lean::cnstr_set(x_1, 1, x_239); +lean::cnstr_set(x_1, 0, x_248); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +} +else +{ +obj* x_250; +x_250 = lean::cnstr_get(x_176, 3); +lean::inc(x_250); +if (lean::obj_tag(x_250) == 0) +{ +uint8 x_251; +x_251 = !lean::is_exclusive(x_176); +if (x_251 == 0) +{ +obj* x_252; obj* x_253; uint8 x_254; +x_252 = lean::cnstr_get(x_176, 3); +lean::dec(x_252); +x_253 = lean::cnstr_get(x_176, 0); +lean::dec(x_253); +x_254 = 0; +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_254); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +else +{ +obj* x_255; obj* x_256; uint8 x_257; obj* x_258; +x_255 = lean::cnstr_get(x_176, 1); +x_256 = lean::cnstr_get(x_176, 2); +lean::inc(x_256); +lean::inc(x_255); +lean::dec(x_176); +x_257 = 0; +x_258 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_258, 0, x_177); +lean::cnstr_set(x_258, 1, x_255); +lean::cnstr_set(x_258, 2, x_256); +lean::cnstr_set(x_258, 3, x_250); +lean::cnstr_set_scalar(x_258, sizeof(void*)*4, x_257); +lean::cnstr_set(x_1, 0, x_258); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +} +else +{ +uint8 x_259; +x_259 = lean::cnstr_get_scalar(x_250, sizeof(void*)*4); +if (x_259 == 0) +{ +uint8 x_260; +lean::free_heap_obj(x_1); +x_260 = !lean::is_exclusive(x_176); +if (x_260 == 0) +{ +obj* x_261; obj* x_262; obj* x_263; obj* x_264; uint8 x_265; +x_261 = lean::cnstr_get(x_176, 1); +x_262 = lean::cnstr_get(x_176, 2); +x_263 = lean::cnstr_get(x_176, 3); +lean::dec(x_263); +x_264 = lean::cnstr_get(x_176, 0); +lean::dec(x_264); +x_265 = !lean::is_exclusive(x_250); +if (x_265 == 0) +{ +obj* x_266; obj* x_267; obj* x_268; obj* x_269; uint8 x_270; +x_266 = lean::cnstr_get(x_250, 0); +x_267 = lean::cnstr_get(x_250, 1); +x_268 = lean::cnstr_get(x_250, 2); +x_269 = lean::cnstr_get(x_250, 3); +lean::inc(x_177); +lean::cnstr_set(x_250, 3, x_266); +lean::cnstr_set(x_250, 2, x_262); +lean::cnstr_set(x_250, 1, x_261); +lean::cnstr_set(x_250, 0, x_177); +x_270 = !lean::is_exclusive(x_177); +if (x_270 == 0) +{ +obj* x_271; obj* x_272; obj* x_273; obj* x_274; +x_271 = lean::cnstr_get(x_177, 3); +lean::dec(x_271); +x_272 = lean::cnstr_get(x_177, 2); +lean::dec(x_272); +x_273 = lean::cnstr_get(x_177, 1); +lean::dec(x_273); +x_274 = lean::cnstr_get(x_177, 0); +lean::dec(x_274); +lean::cnstr_set_scalar(x_250, sizeof(void*)*4, x_225); +lean::cnstr_set(x_177, 3, x_31); +lean::cnstr_set(x_177, 2, x_30); +lean::cnstr_set(x_177, 1, x_29); +lean::cnstr_set(x_177, 0, x_269); +lean::cnstr_set(x_176, 3, x_177); +lean::cnstr_set(x_176, 2, x_268); +lean::cnstr_set(x_176, 1, x_267); +lean::cnstr_set(x_176, 0, x_250); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_259); +return x_176; +} +else +{ +obj* x_275; +lean::dec(x_177); +lean::cnstr_set_scalar(x_250, sizeof(void*)*4, x_225); +x_275 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_275, 0, x_269); +lean::cnstr_set(x_275, 1, x_29); +lean::cnstr_set(x_275, 2, x_30); +lean::cnstr_set(x_275, 3, x_31); +lean::cnstr_set_scalar(x_275, sizeof(void*)*4, x_225); +lean::cnstr_set(x_176, 3, x_275); +lean::cnstr_set(x_176, 2, x_268); +lean::cnstr_set(x_176, 1, x_267); +lean::cnstr_set(x_176, 0, x_250); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_259); +return x_176; +} +} +else +{ +obj* x_276; obj* x_277; obj* x_278; obj* x_279; obj* x_280; obj* x_281; obj* x_282; +x_276 = lean::cnstr_get(x_250, 0); +x_277 = lean::cnstr_get(x_250, 1); +x_278 = lean::cnstr_get(x_250, 2); +x_279 = lean::cnstr_get(x_250, 3); +lean::inc(x_279); +lean::inc(x_278); +lean::inc(x_277); +lean::inc(x_276); +lean::dec(x_250); +lean::inc(x_177); +x_280 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_280, 0, x_177); +lean::cnstr_set(x_280, 1, x_261); +lean::cnstr_set(x_280, 2, x_262); +lean::cnstr_set(x_280, 3, x_276); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_281 = x_177; +} else { + lean::dec_ref(x_177); + x_281 = lean::box(0); +} +lean::cnstr_set_scalar(x_280, sizeof(void*)*4, x_225); +if (lean::is_scalar(x_281)) { + x_282 = lean::alloc_cnstr(1, 4, 1); +} else { + x_282 = x_281; +} +lean::cnstr_set(x_282, 0, x_279); +lean::cnstr_set(x_282, 1, x_29); +lean::cnstr_set(x_282, 2, x_30); +lean::cnstr_set(x_282, 3, x_31); +lean::cnstr_set_scalar(x_282, sizeof(void*)*4, x_225); +lean::cnstr_set(x_176, 3, x_282); +lean::cnstr_set(x_176, 2, x_278); +lean::cnstr_set(x_176, 1, x_277); +lean::cnstr_set(x_176, 0, x_280); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_259); +return x_176; +} +} +else +{ +obj* x_283; obj* x_284; obj* x_285; obj* x_286; obj* x_287; obj* x_288; obj* x_289; obj* x_290; obj* x_291; obj* x_292; obj* x_293; +x_283 = lean::cnstr_get(x_176, 1); +x_284 = lean::cnstr_get(x_176, 2); +lean::inc(x_284); +lean::inc(x_283); +lean::dec(x_176); +x_285 = lean::cnstr_get(x_250, 0); +lean::inc(x_285); +x_286 = lean::cnstr_get(x_250, 1); +lean::inc(x_286); +x_287 = lean::cnstr_get(x_250, 2); +lean::inc(x_287); +x_288 = lean::cnstr_get(x_250, 3); +lean::inc(x_288); +if (lean::is_exclusive(x_250)) { + lean::cnstr_release(x_250, 0); + lean::cnstr_release(x_250, 1); + lean::cnstr_release(x_250, 2); + lean::cnstr_release(x_250, 3); + x_289 = x_250; +} else { + lean::dec_ref(x_250); + x_289 = lean::box(0); +} +lean::inc(x_177); +if (lean::is_scalar(x_289)) { + x_290 = lean::alloc_cnstr(1, 4, 1); +} else { + x_290 = x_289; +} +lean::cnstr_set(x_290, 0, x_177); +lean::cnstr_set(x_290, 1, x_283); +lean::cnstr_set(x_290, 2, x_284); +lean::cnstr_set(x_290, 3, x_285); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_291 = x_177; +} else { + lean::dec_ref(x_177); + x_291 = lean::box(0); +} +lean::cnstr_set_scalar(x_290, sizeof(void*)*4, x_225); +if (lean::is_scalar(x_291)) { + x_292 = lean::alloc_cnstr(1, 4, 1); +} else { + x_292 = x_291; +} +lean::cnstr_set(x_292, 0, x_288); +lean::cnstr_set(x_292, 1, x_29); +lean::cnstr_set(x_292, 2, x_30); +lean::cnstr_set(x_292, 3, x_31); +lean::cnstr_set_scalar(x_292, sizeof(void*)*4, x_225); +x_293 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_293, 0, x_290); +lean::cnstr_set(x_293, 1, x_286); +lean::cnstr_set(x_293, 2, x_287); +lean::cnstr_set(x_293, 3, x_292); +lean::cnstr_set_scalar(x_293, sizeof(void*)*4, x_259); +return x_293; +} +} +else +{ +uint8 x_294; +x_294 = !lean::is_exclusive(x_176); +if (x_294 == 0) +{ +obj* x_295; obj* x_296; uint8 x_297; +x_295 = lean::cnstr_get(x_176, 3); +lean::dec(x_295); +x_296 = lean::cnstr_get(x_176, 0); +lean::dec(x_296); +x_297 = !lean::is_exclusive(x_177); +if (x_297 == 0) +{ +uint8 x_298; +lean::cnstr_set_scalar(x_177, sizeof(void*)*4, x_259); +x_298 = 0; +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_298); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_259); +return x_1; +} +else +{ +obj* x_299; obj* x_300; obj* x_301; obj* x_302; obj* x_303; uint8 x_304; +x_299 = lean::cnstr_get(x_177, 0); +x_300 = lean::cnstr_get(x_177, 1); +x_301 = lean::cnstr_get(x_177, 2); +x_302 = lean::cnstr_get(x_177, 3); +lean::inc(x_302); +lean::inc(x_301); +lean::inc(x_300); +lean::inc(x_299); +lean::dec(x_177); +x_303 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_303, 0, x_299); +lean::cnstr_set(x_303, 1, x_300); +lean::cnstr_set(x_303, 2, x_301); +lean::cnstr_set(x_303, 3, x_302); +lean::cnstr_set_scalar(x_303, sizeof(void*)*4, x_259); +x_304 = 0; +lean::cnstr_set(x_176, 0, x_303); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_304); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_259); +return x_1; +} +} +else +{ +obj* x_305; obj* x_306; obj* x_307; obj* x_308; obj* x_309; obj* x_310; obj* x_311; obj* x_312; uint8 x_313; obj* x_314; +x_305 = lean::cnstr_get(x_176, 1); +x_306 = lean::cnstr_get(x_176, 2); +lean::inc(x_306); +lean::inc(x_305); +lean::dec(x_176); +x_307 = lean::cnstr_get(x_177, 0); +lean::inc(x_307); +x_308 = lean::cnstr_get(x_177, 1); +lean::inc(x_308); +x_309 = lean::cnstr_get(x_177, 2); +lean::inc(x_309); +x_310 = lean::cnstr_get(x_177, 3); +lean::inc(x_310); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_311 = x_177; +} else { + lean::dec_ref(x_177); + x_311 = lean::box(0); +} +if (lean::is_scalar(x_311)) { + x_312 = lean::alloc_cnstr(1, 4, 1); +} else { + x_312 = x_311; +} +lean::cnstr_set(x_312, 0, x_307); +lean::cnstr_set(x_312, 1, x_308); +lean::cnstr_set(x_312, 2, x_309); +lean::cnstr_set(x_312, 3, x_310); +lean::cnstr_set_scalar(x_312, sizeof(void*)*4, x_259); +x_313 = 0; +x_314 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_314, 0, x_312); +lean::cnstr_set(x_314, 1, x_305); +lean::cnstr_set(x_314, 2, x_306); +lean::cnstr_set(x_314, 3, x_250); +lean::cnstr_set_scalar(x_314, sizeof(void*)*4, x_313); +lean::cnstr_set(x_1, 0, x_314); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_259); +return x_1; +} +} +} +} +} +} +} +} +} +else +{ +obj* x_315; obj* x_316; obj* x_317; obj* x_318; uint8 x_319; +x_315 = lean::cnstr_get(x_1, 0); +x_316 = lean::cnstr_get(x_1, 1); +x_317 = lean::cnstr_get(x_1, 2); +x_318 = lean::cnstr_get(x_1, 3); +lean::inc(x_318); +lean::inc(x_317); +lean::inc(x_316); +lean::inc(x_315); +lean::dec(x_1); +x_319 = l_Lean_Name_quickLt(x_2, x_316); +if (x_319 == 0) +{ +uint8 x_320; +x_320 = l_Lean_Name_quickLt(x_316, x_2); +if (x_320 == 0) +{ +obj* x_321; +lean::dec(x_317); +lean::dec(x_316); +x_321 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_321, 0, x_315); +lean::cnstr_set(x_321, 1, x_2); +lean::cnstr_set(x_321, 2, x_3); +lean::cnstr_set(x_321, 3, x_318); +lean::cnstr_set_scalar(x_321, sizeof(void*)*4, x_6); +return x_321; +} +else +{ +uint8 x_322; +x_322 = l_RBNode_isRed___main___rarg(x_318); +if (x_322 == 0) +{ +obj* x_323; obj* x_324; +x_323 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_318, x_2, x_3); +x_324 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_324, 0, x_315); +lean::cnstr_set(x_324, 1, x_316); +lean::cnstr_set(x_324, 2, x_317); +lean::cnstr_set(x_324, 3, x_323); +lean::cnstr_set_scalar(x_324, sizeof(void*)*4, x_6); +return x_324; +} +else +{ +obj* x_325; +x_325 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_318, x_2, x_3); +if (lean::obj_tag(x_325) == 0) +{ +lean::dec(x_317); +lean::dec(x_316); +lean::dec(x_315); +return x_325; +} +else +{ +obj* x_326; +x_326 = lean::cnstr_get(x_325, 0); +lean::inc(x_326); +if (lean::obj_tag(x_326) == 0) +{ +obj* x_327; +x_327 = lean::cnstr_get(x_325, 3); +lean::inc(x_327); +if (lean::obj_tag(x_327) == 0) +{ +obj* x_328; obj* x_329; obj* x_330; uint8 x_331; obj* x_332; uint8 x_333; obj* x_334; +x_328 = lean::cnstr_get(x_325, 1); +lean::inc(x_328); +x_329 = lean::cnstr_get(x_325, 2); +lean::inc(x_329); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_330 = x_325; +} else { + lean::dec_ref(x_325); + x_330 = lean::box(0); +} +x_331 = 0; +if (lean::is_scalar(x_330)) { + x_332 = lean::alloc_cnstr(1, 4, 1); +} else { + x_332 = x_330; +} +lean::cnstr_set(x_332, 0, x_327); +lean::cnstr_set(x_332, 1, x_328); +lean::cnstr_set(x_332, 2, x_329); +lean::cnstr_set(x_332, 3, x_327); +lean::cnstr_set_scalar(x_332, sizeof(void*)*4, x_331); +x_333 = 1; +x_334 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_334, 0, x_315); +lean::cnstr_set(x_334, 1, x_316); +lean::cnstr_set(x_334, 2, x_317); +lean::cnstr_set(x_334, 3, x_332); +lean::cnstr_set_scalar(x_334, sizeof(void*)*4, x_333); +return x_334; +} +else +{ +uint8 x_335; +x_335 = lean::cnstr_get_scalar(x_327, sizeof(void*)*4); +if (x_335 == 0) +{ +obj* x_336; obj* x_337; obj* x_338; obj* x_339; obj* x_340; obj* x_341; obj* x_342; obj* x_343; uint8 x_344; obj* x_345; obj* x_346; obj* x_347; +x_336 = lean::cnstr_get(x_325, 1); +lean::inc(x_336); +x_337 = lean::cnstr_get(x_325, 2); +lean::inc(x_337); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_338 = x_325; +} else { + lean::dec_ref(x_325); + x_338 = lean::box(0); +} +x_339 = lean::cnstr_get(x_327, 0); +lean::inc(x_339); +x_340 = lean::cnstr_get(x_327, 1); +lean::inc(x_340); +x_341 = lean::cnstr_get(x_327, 2); +lean::inc(x_341); +x_342 = lean::cnstr_get(x_327, 3); +lean::inc(x_342); +if (lean::is_exclusive(x_327)) { + lean::cnstr_release(x_327, 0); + lean::cnstr_release(x_327, 1); + lean::cnstr_release(x_327, 2); + lean::cnstr_release(x_327, 3); + x_343 = x_327; +} else { + lean::dec_ref(x_327); + x_343 = lean::box(0); +} +x_344 = 1; +if (lean::is_scalar(x_343)) { + x_345 = lean::alloc_cnstr(1, 4, 1); +} else { + x_345 = x_343; +} +lean::cnstr_set(x_345, 0, x_315); +lean::cnstr_set(x_345, 1, x_316); +lean::cnstr_set(x_345, 2, x_317); +lean::cnstr_set(x_345, 3, x_326); +lean::cnstr_set_scalar(x_345, sizeof(void*)*4, x_344); +if (lean::is_scalar(x_338)) { + x_346 = lean::alloc_cnstr(1, 4, 1); +} else { + x_346 = x_338; +} +lean::cnstr_set(x_346, 0, x_339); +lean::cnstr_set(x_346, 1, x_340); +lean::cnstr_set(x_346, 2, x_341); +lean::cnstr_set(x_346, 3, x_342); +lean::cnstr_set_scalar(x_346, sizeof(void*)*4, x_344); +x_347 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_347, 0, x_345); +lean::cnstr_set(x_347, 1, x_336); +lean::cnstr_set(x_347, 2, x_337); +lean::cnstr_set(x_347, 3, x_346); +lean::cnstr_set_scalar(x_347, sizeof(void*)*4, x_335); +return x_347; +} +else +{ +obj* x_348; obj* x_349; obj* x_350; uint8 x_351; obj* x_352; obj* x_353; +x_348 = lean::cnstr_get(x_325, 1); +lean::inc(x_348); +x_349 = lean::cnstr_get(x_325, 2); +lean::inc(x_349); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_350 = x_325; +} else { + lean::dec_ref(x_325); + x_350 = lean::box(0); +} +x_351 = 0; +if (lean::is_scalar(x_350)) { + x_352 = lean::alloc_cnstr(1, 4, 1); +} else { + x_352 = x_350; +} +lean::cnstr_set(x_352, 0, x_326); +lean::cnstr_set(x_352, 1, x_348); +lean::cnstr_set(x_352, 2, x_349); +lean::cnstr_set(x_352, 3, x_327); +lean::cnstr_set_scalar(x_352, sizeof(void*)*4, x_351); +x_353 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_353, 0, x_315); +lean::cnstr_set(x_353, 1, x_316); +lean::cnstr_set(x_353, 2, x_317); +lean::cnstr_set(x_353, 3, x_352); +lean::cnstr_set_scalar(x_353, sizeof(void*)*4, x_335); +return x_353; +} +} +} +else +{ +uint8 x_354; +x_354 = lean::cnstr_get_scalar(x_326, sizeof(void*)*4); +if (x_354 == 0) +{ +obj* x_355; obj* x_356; obj* x_357; obj* x_358; obj* x_359; obj* x_360; obj* x_361; obj* x_362; obj* x_363; uint8 x_364; obj* x_365; obj* x_366; obj* x_367; +x_355 = lean::cnstr_get(x_325, 1); +lean::inc(x_355); +x_356 = lean::cnstr_get(x_325, 2); +lean::inc(x_356); +x_357 = lean::cnstr_get(x_325, 3); +lean::inc(x_357); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_358 = x_325; +} else { + lean::dec_ref(x_325); + x_358 = lean::box(0); +} +x_359 = lean::cnstr_get(x_326, 0); +lean::inc(x_359); +x_360 = lean::cnstr_get(x_326, 1); +lean::inc(x_360); +x_361 = lean::cnstr_get(x_326, 2); +lean::inc(x_361); +x_362 = lean::cnstr_get(x_326, 3); +lean::inc(x_362); +if (lean::is_exclusive(x_326)) { + lean::cnstr_release(x_326, 0); + lean::cnstr_release(x_326, 1); + lean::cnstr_release(x_326, 2); + lean::cnstr_release(x_326, 3); + x_363 = x_326; +} else { + lean::dec_ref(x_326); + x_363 = lean::box(0); +} +x_364 = 1; +if (lean::is_scalar(x_363)) { + x_365 = lean::alloc_cnstr(1, 4, 1); +} else { + x_365 = x_363; +} +lean::cnstr_set(x_365, 0, x_315); +lean::cnstr_set(x_365, 1, x_316); +lean::cnstr_set(x_365, 2, x_317); +lean::cnstr_set(x_365, 3, x_359); +lean::cnstr_set_scalar(x_365, sizeof(void*)*4, x_364); +if (lean::is_scalar(x_358)) { + x_366 = lean::alloc_cnstr(1, 4, 1); +} else { + x_366 = x_358; +} +lean::cnstr_set(x_366, 0, x_362); +lean::cnstr_set(x_366, 1, x_355); +lean::cnstr_set(x_366, 2, x_356); +lean::cnstr_set(x_366, 3, x_357); +lean::cnstr_set_scalar(x_366, sizeof(void*)*4, x_364); +x_367 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_367, 0, x_365); +lean::cnstr_set(x_367, 1, x_360); +lean::cnstr_set(x_367, 2, x_361); +lean::cnstr_set(x_367, 3, x_366); +lean::cnstr_set_scalar(x_367, sizeof(void*)*4, x_354); +return x_367; +} +else +{ +obj* x_368; +x_368 = lean::cnstr_get(x_325, 3); +lean::inc(x_368); +if (lean::obj_tag(x_368) == 0) +{ +obj* x_369; obj* x_370; obj* x_371; uint8 x_372; obj* x_373; obj* x_374; +x_369 = lean::cnstr_get(x_325, 1); +lean::inc(x_369); +x_370 = lean::cnstr_get(x_325, 2); +lean::inc(x_370); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_371 = x_325; +} else { + lean::dec_ref(x_325); + x_371 = lean::box(0); +} +x_372 = 0; +if (lean::is_scalar(x_371)) { + x_373 = lean::alloc_cnstr(1, 4, 1); +} else { + x_373 = x_371; +} +lean::cnstr_set(x_373, 0, x_326); +lean::cnstr_set(x_373, 1, x_369); +lean::cnstr_set(x_373, 2, x_370); +lean::cnstr_set(x_373, 3, x_368); +lean::cnstr_set_scalar(x_373, sizeof(void*)*4, x_372); +x_374 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_374, 0, x_315); +lean::cnstr_set(x_374, 1, x_316); +lean::cnstr_set(x_374, 2, x_317); +lean::cnstr_set(x_374, 3, x_373); +lean::cnstr_set_scalar(x_374, sizeof(void*)*4, x_354); +return x_374; +} +else +{ +uint8 x_375; +x_375 = lean::cnstr_get_scalar(x_368, sizeof(void*)*4); +if (x_375 == 0) +{ +obj* x_376; obj* x_377; obj* x_378; obj* x_379; obj* x_380; obj* x_381; obj* x_382; obj* x_383; obj* x_384; obj* x_385; obj* x_386; obj* x_387; +x_376 = lean::cnstr_get(x_325, 1); +lean::inc(x_376); +x_377 = lean::cnstr_get(x_325, 2); +lean::inc(x_377); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_378 = x_325; +} else { + lean::dec_ref(x_325); + x_378 = lean::box(0); +} +x_379 = lean::cnstr_get(x_368, 0); +lean::inc(x_379); +x_380 = lean::cnstr_get(x_368, 1); +lean::inc(x_380); +x_381 = lean::cnstr_get(x_368, 2); +lean::inc(x_381); +x_382 = lean::cnstr_get(x_368, 3); +lean::inc(x_382); +if (lean::is_exclusive(x_368)) { + lean::cnstr_release(x_368, 0); + lean::cnstr_release(x_368, 1); + lean::cnstr_release(x_368, 2); + lean::cnstr_release(x_368, 3); + x_383 = x_368; +} else { + lean::dec_ref(x_368); + x_383 = lean::box(0); +} +lean::inc(x_326); +if (lean::is_scalar(x_383)) { + x_384 = lean::alloc_cnstr(1, 4, 1); +} else { + x_384 = x_383; +} +lean::cnstr_set(x_384, 0, x_315); +lean::cnstr_set(x_384, 1, x_316); +lean::cnstr_set(x_384, 2, x_317); +lean::cnstr_set(x_384, 3, x_326); +if (lean::is_exclusive(x_326)) { + lean::cnstr_release(x_326, 0); + lean::cnstr_release(x_326, 1); + lean::cnstr_release(x_326, 2); + lean::cnstr_release(x_326, 3); + x_385 = x_326; +} else { + lean::dec_ref(x_326); + x_385 = lean::box(0); +} +lean::cnstr_set_scalar(x_384, sizeof(void*)*4, x_354); +if (lean::is_scalar(x_385)) { + x_386 = lean::alloc_cnstr(1, 4, 1); +} else { + x_386 = x_385; +} +lean::cnstr_set(x_386, 0, x_379); +lean::cnstr_set(x_386, 1, x_380); +lean::cnstr_set(x_386, 2, x_381); +lean::cnstr_set(x_386, 3, x_382); +lean::cnstr_set_scalar(x_386, sizeof(void*)*4, x_354); +if (lean::is_scalar(x_378)) { + x_387 = lean::alloc_cnstr(1, 4, 1); +} else { + x_387 = x_378; +} +lean::cnstr_set(x_387, 0, x_384); +lean::cnstr_set(x_387, 1, x_376); +lean::cnstr_set(x_387, 2, x_377); +lean::cnstr_set(x_387, 3, x_386); +lean::cnstr_set_scalar(x_387, sizeof(void*)*4, x_375); +return x_387; +} +else +{ +obj* x_388; obj* x_389; obj* x_390; obj* x_391; obj* x_392; obj* x_393; obj* x_394; obj* x_395; obj* x_396; uint8 x_397; obj* x_398; obj* x_399; +x_388 = lean::cnstr_get(x_325, 1); +lean::inc(x_388); +x_389 = lean::cnstr_get(x_325, 2); +lean::inc(x_389); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_390 = x_325; +} else { + lean::dec_ref(x_325); + x_390 = lean::box(0); +} +x_391 = lean::cnstr_get(x_326, 0); +lean::inc(x_391); +x_392 = lean::cnstr_get(x_326, 1); +lean::inc(x_392); +x_393 = lean::cnstr_get(x_326, 2); +lean::inc(x_393); +x_394 = lean::cnstr_get(x_326, 3); +lean::inc(x_394); +if (lean::is_exclusive(x_326)) { + lean::cnstr_release(x_326, 0); + lean::cnstr_release(x_326, 1); + lean::cnstr_release(x_326, 2); + lean::cnstr_release(x_326, 3); + x_395 = x_326; +} else { + lean::dec_ref(x_326); + x_395 = lean::box(0); +} +if (lean::is_scalar(x_395)) { + x_396 = lean::alloc_cnstr(1, 4, 1); +} else { + x_396 = x_395; +} +lean::cnstr_set(x_396, 0, x_391); +lean::cnstr_set(x_396, 1, x_392); +lean::cnstr_set(x_396, 2, x_393); +lean::cnstr_set(x_396, 3, x_394); +lean::cnstr_set_scalar(x_396, sizeof(void*)*4, x_375); +x_397 = 0; +if (lean::is_scalar(x_390)) { + x_398 = lean::alloc_cnstr(1, 4, 1); +} else { + x_398 = x_390; +} +lean::cnstr_set(x_398, 0, x_396); +lean::cnstr_set(x_398, 1, x_388); +lean::cnstr_set(x_398, 2, x_389); +lean::cnstr_set(x_398, 3, x_368); +lean::cnstr_set_scalar(x_398, sizeof(void*)*4, x_397); +x_399 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_399, 0, x_315); +lean::cnstr_set(x_399, 1, x_316); +lean::cnstr_set(x_399, 2, x_317); +lean::cnstr_set(x_399, 3, x_398); +lean::cnstr_set_scalar(x_399, sizeof(void*)*4, x_375); +return x_399; +} +} +} +} +} +} +} +} +else +{ +uint8 x_400; +x_400 = l_RBNode_isRed___main___rarg(x_315); +if (x_400 == 0) +{ +obj* x_401; obj* x_402; +x_401 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_315, x_2, x_3); +x_402 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_402, 0, x_401); +lean::cnstr_set(x_402, 1, x_316); +lean::cnstr_set(x_402, 2, x_317); +lean::cnstr_set(x_402, 3, x_318); +lean::cnstr_set_scalar(x_402, sizeof(void*)*4, x_6); +return x_402; +} +else +{ +obj* x_403; +x_403 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_315, x_2, x_3); +if (lean::obj_tag(x_403) == 0) +{ +lean::dec(x_318); +lean::dec(x_317); +lean::dec(x_316); +return x_403; +} +else +{ +obj* x_404; +x_404 = lean::cnstr_get(x_403, 0); +lean::inc(x_404); +if (lean::obj_tag(x_404) == 0) +{ +obj* x_405; +x_405 = lean::cnstr_get(x_403, 3); +lean::inc(x_405); +if (lean::obj_tag(x_405) == 0) +{ +obj* x_406; obj* x_407; obj* x_408; uint8 x_409; obj* x_410; uint8 x_411; obj* x_412; +x_406 = lean::cnstr_get(x_403, 1); +lean::inc(x_406); +x_407 = lean::cnstr_get(x_403, 2); +lean::inc(x_407); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_408 = x_403; +} else { + lean::dec_ref(x_403); + x_408 = lean::box(0); +} +x_409 = 0; +if (lean::is_scalar(x_408)) { + x_410 = lean::alloc_cnstr(1, 4, 1); +} else { + x_410 = x_408; +} +lean::cnstr_set(x_410, 0, x_405); +lean::cnstr_set(x_410, 1, x_406); +lean::cnstr_set(x_410, 2, x_407); +lean::cnstr_set(x_410, 3, x_405); +lean::cnstr_set_scalar(x_410, sizeof(void*)*4, x_409); +x_411 = 1; +x_412 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_412, 0, x_410); +lean::cnstr_set(x_412, 1, x_316); +lean::cnstr_set(x_412, 2, x_317); +lean::cnstr_set(x_412, 3, x_318); +lean::cnstr_set_scalar(x_412, sizeof(void*)*4, x_411); +return x_412; +} +else +{ +uint8 x_413; +x_413 = lean::cnstr_get_scalar(x_405, sizeof(void*)*4); +if (x_413 == 0) +{ +obj* x_414; obj* x_415; obj* x_416; obj* x_417; obj* x_418; obj* x_419; obj* x_420; obj* x_421; uint8 x_422; obj* x_423; obj* x_424; obj* x_425; +x_414 = lean::cnstr_get(x_403, 1); +lean::inc(x_414); +x_415 = lean::cnstr_get(x_403, 2); +lean::inc(x_415); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_416 = x_403; +} else { + lean::dec_ref(x_403); + x_416 = lean::box(0); +} +x_417 = lean::cnstr_get(x_405, 0); +lean::inc(x_417); +x_418 = lean::cnstr_get(x_405, 1); +lean::inc(x_418); +x_419 = lean::cnstr_get(x_405, 2); +lean::inc(x_419); +x_420 = lean::cnstr_get(x_405, 3); +lean::inc(x_420); +if (lean::is_exclusive(x_405)) { + lean::cnstr_release(x_405, 0); + lean::cnstr_release(x_405, 1); + lean::cnstr_release(x_405, 2); + lean::cnstr_release(x_405, 3); + x_421 = x_405; +} else { + lean::dec_ref(x_405); + x_421 = lean::box(0); +} +x_422 = 1; +if (lean::is_scalar(x_421)) { + x_423 = lean::alloc_cnstr(1, 4, 1); +} else { + x_423 = x_421; +} +lean::cnstr_set(x_423, 0, x_404); +lean::cnstr_set(x_423, 1, x_414); +lean::cnstr_set(x_423, 2, x_415); +lean::cnstr_set(x_423, 3, x_417); +lean::cnstr_set_scalar(x_423, sizeof(void*)*4, x_422); +if (lean::is_scalar(x_416)) { + x_424 = lean::alloc_cnstr(1, 4, 1); +} else { + x_424 = x_416; +} +lean::cnstr_set(x_424, 0, x_420); +lean::cnstr_set(x_424, 1, x_316); +lean::cnstr_set(x_424, 2, x_317); +lean::cnstr_set(x_424, 3, x_318); +lean::cnstr_set_scalar(x_424, sizeof(void*)*4, x_422); +x_425 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_425, 0, x_423); +lean::cnstr_set(x_425, 1, x_418); +lean::cnstr_set(x_425, 2, x_419); +lean::cnstr_set(x_425, 3, x_424); +lean::cnstr_set_scalar(x_425, sizeof(void*)*4, x_413); +return x_425; +} +else +{ +obj* x_426; obj* x_427; obj* x_428; uint8 x_429; obj* x_430; obj* x_431; +x_426 = lean::cnstr_get(x_403, 1); +lean::inc(x_426); +x_427 = lean::cnstr_get(x_403, 2); +lean::inc(x_427); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_428 = x_403; +} else { + lean::dec_ref(x_403); + x_428 = lean::box(0); +} +x_429 = 0; +if (lean::is_scalar(x_428)) { + x_430 = lean::alloc_cnstr(1, 4, 1); +} else { + x_430 = x_428; +} +lean::cnstr_set(x_430, 0, x_404); +lean::cnstr_set(x_430, 1, x_426); +lean::cnstr_set(x_430, 2, x_427); +lean::cnstr_set(x_430, 3, x_405); +lean::cnstr_set_scalar(x_430, sizeof(void*)*4, x_429); +x_431 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_431, 0, x_430); +lean::cnstr_set(x_431, 1, x_316); +lean::cnstr_set(x_431, 2, x_317); +lean::cnstr_set(x_431, 3, x_318); +lean::cnstr_set_scalar(x_431, sizeof(void*)*4, x_413); +return x_431; +} +} +} +else +{ +uint8 x_432; +x_432 = lean::cnstr_get_scalar(x_404, sizeof(void*)*4); +if (x_432 == 0) +{ +obj* x_433; obj* x_434; obj* x_435; obj* x_436; obj* x_437; obj* x_438; obj* x_439; obj* x_440; obj* x_441; uint8 x_442; obj* x_443; obj* x_444; obj* x_445; +x_433 = lean::cnstr_get(x_403, 1); +lean::inc(x_433); +x_434 = lean::cnstr_get(x_403, 2); +lean::inc(x_434); +x_435 = lean::cnstr_get(x_403, 3); +lean::inc(x_435); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_436 = x_403; +} else { + lean::dec_ref(x_403); + x_436 = lean::box(0); +} +x_437 = lean::cnstr_get(x_404, 0); +lean::inc(x_437); +x_438 = lean::cnstr_get(x_404, 1); +lean::inc(x_438); +x_439 = lean::cnstr_get(x_404, 2); +lean::inc(x_439); +x_440 = lean::cnstr_get(x_404, 3); +lean::inc(x_440); +if (lean::is_exclusive(x_404)) { + lean::cnstr_release(x_404, 0); + lean::cnstr_release(x_404, 1); + lean::cnstr_release(x_404, 2); + lean::cnstr_release(x_404, 3); + x_441 = x_404; +} else { + lean::dec_ref(x_404); + x_441 = lean::box(0); +} +x_442 = 1; +if (lean::is_scalar(x_441)) { + x_443 = lean::alloc_cnstr(1, 4, 1); +} else { + x_443 = x_441; +} +lean::cnstr_set(x_443, 0, x_437); +lean::cnstr_set(x_443, 1, x_438); +lean::cnstr_set(x_443, 2, x_439); +lean::cnstr_set(x_443, 3, x_440); +lean::cnstr_set_scalar(x_443, sizeof(void*)*4, x_442); +if (lean::is_scalar(x_436)) { + x_444 = lean::alloc_cnstr(1, 4, 1); +} else { + x_444 = x_436; +} +lean::cnstr_set(x_444, 0, x_435); +lean::cnstr_set(x_444, 1, x_316); +lean::cnstr_set(x_444, 2, x_317); +lean::cnstr_set(x_444, 3, x_318); +lean::cnstr_set_scalar(x_444, sizeof(void*)*4, x_442); +x_445 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_445, 0, x_443); +lean::cnstr_set(x_445, 1, x_433); +lean::cnstr_set(x_445, 2, x_434); +lean::cnstr_set(x_445, 3, x_444); +lean::cnstr_set_scalar(x_445, sizeof(void*)*4, x_432); +return x_445; +} +else +{ +obj* x_446; +x_446 = lean::cnstr_get(x_403, 3); +lean::inc(x_446); +if (lean::obj_tag(x_446) == 0) +{ +obj* x_447; obj* x_448; obj* x_449; uint8 x_450; obj* x_451; obj* x_452; +x_447 = lean::cnstr_get(x_403, 1); +lean::inc(x_447); +x_448 = lean::cnstr_get(x_403, 2); +lean::inc(x_448); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_449 = x_403; +} else { + lean::dec_ref(x_403); + x_449 = lean::box(0); +} +x_450 = 0; +if (lean::is_scalar(x_449)) { + x_451 = lean::alloc_cnstr(1, 4, 1); +} else { + x_451 = x_449; +} +lean::cnstr_set(x_451, 0, x_404); +lean::cnstr_set(x_451, 1, x_447); +lean::cnstr_set(x_451, 2, x_448); +lean::cnstr_set(x_451, 3, x_446); +lean::cnstr_set_scalar(x_451, sizeof(void*)*4, x_450); +x_452 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_452, 0, x_451); +lean::cnstr_set(x_452, 1, x_316); +lean::cnstr_set(x_452, 2, x_317); +lean::cnstr_set(x_452, 3, x_318); +lean::cnstr_set_scalar(x_452, sizeof(void*)*4, x_432); +return x_452; +} +else +{ +uint8 x_453; +x_453 = lean::cnstr_get_scalar(x_446, sizeof(void*)*4); +if (x_453 == 0) +{ +obj* x_454; obj* x_455; obj* x_456; obj* x_457; obj* x_458; obj* x_459; obj* x_460; obj* x_461; obj* x_462; obj* x_463; obj* x_464; obj* x_465; +x_454 = lean::cnstr_get(x_403, 1); +lean::inc(x_454); +x_455 = lean::cnstr_get(x_403, 2); +lean::inc(x_455); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_456 = x_403; +} else { + lean::dec_ref(x_403); + x_456 = lean::box(0); +} +x_457 = lean::cnstr_get(x_446, 0); +lean::inc(x_457); +x_458 = lean::cnstr_get(x_446, 1); +lean::inc(x_458); +x_459 = lean::cnstr_get(x_446, 2); +lean::inc(x_459); +x_460 = lean::cnstr_get(x_446, 3); +lean::inc(x_460); +if (lean::is_exclusive(x_446)) { + lean::cnstr_release(x_446, 0); + lean::cnstr_release(x_446, 1); + lean::cnstr_release(x_446, 2); + lean::cnstr_release(x_446, 3); + x_461 = x_446; +} else { + lean::dec_ref(x_446); + x_461 = lean::box(0); +} +lean::inc(x_404); +if (lean::is_scalar(x_461)) { + x_462 = lean::alloc_cnstr(1, 4, 1); +} else { + x_462 = x_461; +} +lean::cnstr_set(x_462, 0, x_404); +lean::cnstr_set(x_462, 1, x_454); +lean::cnstr_set(x_462, 2, x_455); +lean::cnstr_set(x_462, 3, x_457); +if (lean::is_exclusive(x_404)) { + lean::cnstr_release(x_404, 0); + lean::cnstr_release(x_404, 1); + lean::cnstr_release(x_404, 2); + lean::cnstr_release(x_404, 3); + x_463 = x_404; +} else { + lean::dec_ref(x_404); + x_463 = lean::box(0); +} +lean::cnstr_set_scalar(x_462, sizeof(void*)*4, x_432); +if (lean::is_scalar(x_463)) { + x_464 = lean::alloc_cnstr(1, 4, 1); +} else { + x_464 = x_463; +} +lean::cnstr_set(x_464, 0, x_460); +lean::cnstr_set(x_464, 1, x_316); +lean::cnstr_set(x_464, 2, x_317); +lean::cnstr_set(x_464, 3, x_318); +lean::cnstr_set_scalar(x_464, sizeof(void*)*4, x_432); +if (lean::is_scalar(x_456)) { + x_465 = lean::alloc_cnstr(1, 4, 1); +} else { + x_465 = x_456; +} +lean::cnstr_set(x_465, 0, x_462); +lean::cnstr_set(x_465, 1, x_458); +lean::cnstr_set(x_465, 2, x_459); +lean::cnstr_set(x_465, 3, x_464); +lean::cnstr_set_scalar(x_465, sizeof(void*)*4, x_453); +return x_465; +} +else +{ +obj* x_466; obj* x_467; obj* x_468; obj* x_469; obj* x_470; obj* x_471; obj* x_472; obj* x_473; obj* x_474; uint8 x_475; obj* x_476; obj* x_477; +x_466 = lean::cnstr_get(x_403, 1); +lean::inc(x_466); +x_467 = lean::cnstr_get(x_403, 2); +lean::inc(x_467); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_468 = x_403; +} else { + lean::dec_ref(x_403); + x_468 = lean::box(0); +} +x_469 = lean::cnstr_get(x_404, 0); +lean::inc(x_469); +x_470 = lean::cnstr_get(x_404, 1); +lean::inc(x_470); +x_471 = lean::cnstr_get(x_404, 2); +lean::inc(x_471); +x_472 = lean::cnstr_get(x_404, 3); +lean::inc(x_472); +if (lean::is_exclusive(x_404)) { + lean::cnstr_release(x_404, 0); + lean::cnstr_release(x_404, 1); + lean::cnstr_release(x_404, 2); + lean::cnstr_release(x_404, 3); + x_473 = x_404; +} else { + lean::dec_ref(x_404); + x_473 = lean::box(0); +} +if (lean::is_scalar(x_473)) { + x_474 = lean::alloc_cnstr(1, 4, 1); +} else { + x_474 = x_473; +} +lean::cnstr_set(x_474, 0, x_469); +lean::cnstr_set(x_474, 1, x_470); +lean::cnstr_set(x_474, 2, x_471); +lean::cnstr_set(x_474, 3, x_472); +lean::cnstr_set_scalar(x_474, sizeof(void*)*4, x_453); +x_475 = 0; +if (lean::is_scalar(x_468)) { + x_476 = lean::alloc_cnstr(1, 4, 1); +} else { + x_476 = x_468; +} +lean::cnstr_set(x_476, 0, x_474); +lean::cnstr_set(x_476, 1, x_466); +lean::cnstr_set(x_476, 2, x_467); +lean::cnstr_set(x_476, 3, x_446); +lean::cnstr_set_scalar(x_476, sizeof(void*)*4, x_475); +x_477 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_477, 0, x_476); +lean::cnstr_set(x_477, 1, x_316); +lean::cnstr_set(x_477, 2, x_317); +lean::cnstr_set(x_477, 3, x_318); +lean::cnstr_set_scalar(x_477, sizeof(void*)*4, x_453); +return x_477; +} +} +} +} +} +} +} +} +} +} +} +} +obj* l_RBNode_insert___at_Lean_addBuiltinTermElab___spec__6(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_RBNode_isRed___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_RBNode_ins___main___at_Lean_addBuiltinTermElab___spec__7(x_1, x_2, x_3); +x_7 = l_RBNode_setBlack___main___rarg(x_6); +return x_7; +} +} +} +obj* l_AssocList_mfoldl___main___at_Lean_addBuiltinTermElab___spec__11(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +uint8 x_3; +x_3 = !lean::is_exclusive(x_2); +if (x_3 == 0) +{ +obj* x_4; obj* x_5; obj* x_6; usize x_7; usize x_8; obj* x_9; usize x_10; obj* x_11; usize x_12; obj* x_13; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 2); +x_6 = lean::array_get_size(x_1); +x_7 = lean_name_hash_usize(x_4); +x_8 = lean::usize_modn(x_7, x_6); +lean::dec(x_6); +x_9 = lean::box_size_t(x_8); +x_10 = lean::unbox_size_t(x_9); +x_11 = lean::array_uget(x_1, x_10); +lean::cnstr_set(x_2, 2, x_11); +x_12 = lean::unbox_size_t(x_9); +lean::dec(x_9); +x_13 = lean::array_uset(x_1, x_12, x_2); +x_1 = x_13; +x_2 = x_5; +goto _start; +} +else +{ +obj* x_15; obj* x_16; obj* x_17; obj* x_18; usize x_19; usize x_20; obj* x_21; usize x_22; obj* x_23; obj* x_24; usize x_25; obj* x_26; +x_15 = lean::cnstr_get(x_2, 0); +x_16 = lean::cnstr_get(x_2, 1); +x_17 = lean::cnstr_get(x_2, 2); +lean::inc(x_17); +lean::inc(x_16); +lean::inc(x_15); +lean::dec(x_2); +x_18 = lean::array_get_size(x_1); +x_19 = lean_name_hash_usize(x_15); +x_20 = lean::usize_modn(x_19, x_18); +lean::dec(x_18); +x_21 = lean::box_size_t(x_20); +x_22 = lean::unbox_size_t(x_21); +x_23 = lean::array_uget(x_1, x_22); +x_24 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_24, 0, x_15); +lean::cnstr_set(x_24, 1, x_16); +lean::cnstr_set(x_24, 2, x_23); +x_25 = lean::unbox_size_t(x_21); +lean::dec(x_21); +x_26 = lean::array_uset(x_1, x_25, x_24); +x_1 = x_26; +x_2 = x_17; +goto _start; +} +} +} +} +obj* l_HashMapImp_moveEntries___main___at_Lean_addBuiltinTermElab___spec__10(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; uint8 x_5; +x_4 = lean::array_get_size(x_2); +x_5 = lean::nat_dec_lt(x_1, x_4); +lean::dec(x_4); if (x_5 == 0) { -obj* x_6; -x_6 = lean::cnstr_get(x_4, 0); +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +else +{ +obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; +x_6 = lean::array_fget(x_2, x_1); +x_7 = lean::box(0); +x_8 = lean::array_fset(x_2, x_1, x_7); +x_9 = l_AssocList_mfoldl___main___at_Lean_addBuiltinTermElab___spec__11(x_3, x_6); +x_10 = lean::mk_nat_obj(1u); +x_11 = lean::nat_add(x_1, x_10); +lean::dec(x_1); +x_1 = x_11; +x_2 = x_8; +x_3 = x_9; +goto _start; +} +} +} +obj* l_HashMapImp_expand___at_Lean_addBuiltinTermElab___spec__9(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; +x_3 = lean::array_get_size(x_2); +x_4 = lean::mk_nat_obj(2u); +x_5 = lean::nat_mul(x_3, x_4); +lean::dec(x_3); +x_6 = lean::box(0); +x_7 = lean::mk_array(x_5, x_6); +x_8 = lean::mk_nat_obj(0u); +x_9 = l_HashMapImp_moveEntries___main___at_Lean_addBuiltinTermElab___spec__10(x_8, x_2, x_7); +x_10 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_10, 0, x_1); +lean::cnstr_set(x_10, 1, x_9); +return x_10; +} +} +obj* l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_3) == 0) +{ +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +else +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_3); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; uint8 x_8; +x_5 = lean::cnstr_get(x_3, 0); +x_6 = lean::cnstr_get(x_3, 1); +x_7 = lean::cnstr_get(x_3, 2); +x_8 = lean_name_dec_eq(x_5, x_1); +if (x_8 == 0) +{ +obj* x_9; +x_9 = l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(x_1, x_2, x_7); +lean::cnstr_set(x_3, 2, x_9); +return x_3; +} +else +{ lean::dec(x_6); -lean::cnstr_set(x_4, 0, x_1); +lean::dec(x_5); +lean::cnstr_set(x_3, 1, x_2); +lean::cnstr_set(x_3, 0, x_1); +return x_3; +} +} +else +{ +obj* x_10; obj* x_11; obj* x_12; uint8 x_13; +x_10 = lean::cnstr_get(x_3, 0); +x_11 = lean::cnstr_get(x_3, 1); +x_12 = lean::cnstr_get(x_3, 2); +lean::inc(x_12); +lean::inc(x_11); +lean::inc(x_10); +lean::dec(x_3); +x_13 = lean_name_dec_eq(x_10, x_1); +if (x_13 == 0) +{ +obj* x_14; obj* x_15; +x_14 = l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(x_1, x_2, x_12); +x_15 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_15, 0, x_10); +lean::cnstr_set(x_15, 1, x_11); +lean::cnstr_set(x_15, 2, x_14); +return x_15; +} +else +{ +obj* x_16; +lean::dec(x_11); +lean::dec(x_10); +x_16 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_16, 0, x_1); +lean::cnstr_set(x_16, 1, x_2); +lean::cnstr_set(x_16, 2, x_12); +return x_16; +} +} +} +} +} +obj* l_HashMapImp_insert___at_Lean_addBuiltinTermElab___spec__8(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_1); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; usize x_8; usize x_9; obj* x_10; usize x_11; obj* x_12; uint8 x_13; +x_5 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +x_7 = lean::array_get_size(x_6); +x_8 = lean_name_hash_usize(x_2); +x_9 = lean::usize_modn(x_8, x_7); +x_10 = lean::box_size_t(x_9); +x_11 = lean::unbox_size_t(x_10); +x_12 = lean::array_uget(x_6, x_11); +x_13 = l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(x_2, x_12); +if (x_13 == 0) +{ +obj* x_14; obj* x_15; obj* x_16; usize x_17; obj* x_18; uint8 x_19; +x_14 = lean::mk_nat_obj(1u); +x_15 = lean::nat_add(x_5, x_14); +lean::dec(x_5); +x_16 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_16, 0, x_2); +lean::cnstr_set(x_16, 1, x_3); +lean::cnstr_set(x_16, 2, x_12); +x_17 = lean::unbox_size_t(x_10); +lean::dec(x_10); +x_18 = lean::array_uset(x_6, x_17, x_16); +x_19 = lean::nat_dec_le(x_15, x_7); +lean::dec(x_7); +if (x_19 == 0) +{ +obj* x_20; +lean::free_heap_obj(x_1); +x_20 = l_HashMapImp_expand___at_Lean_addBuiltinTermElab___spec__9(x_15, x_18); +return x_20; +} +else +{ +lean::cnstr_set(x_1, 1, x_18); +lean::cnstr_set(x_1, 0, x_15); +return x_1; +} +} +else +{ +obj* x_21; usize x_22; obj* x_23; +lean::dec(x_7); +x_21 = l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(x_2, x_3, x_12); +x_22 = lean::unbox_size_t(x_10); +lean::dec(x_10); +x_23 = lean::array_uset(x_6, x_22, x_21); +lean::cnstr_set(x_1, 1, x_23); +return x_1; +} +} +else +{ +obj* x_24; obj* x_25; obj* x_26; usize x_27; usize x_28; obj* x_29; usize x_30; obj* x_31; uint8 x_32; +x_24 = lean::cnstr_get(x_1, 0); +x_25 = lean::cnstr_get(x_1, 1); +lean::inc(x_25); +lean::inc(x_24); +lean::dec(x_1); +x_26 = lean::array_get_size(x_25); +x_27 = lean_name_hash_usize(x_2); +x_28 = lean::usize_modn(x_27, x_26); +x_29 = lean::box_size_t(x_28); +x_30 = lean::unbox_size_t(x_29); +x_31 = lean::array_uget(x_25, x_30); +x_32 = l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(x_2, x_31); +if (x_32 == 0) +{ +obj* x_33; obj* x_34; obj* x_35; usize x_36; obj* x_37; uint8 x_38; +x_33 = lean::mk_nat_obj(1u); +x_34 = lean::nat_add(x_24, x_33); +lean::dec(x_24); +x_35 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_35, 0, x_2); +lean::cnstr_set(x_35, 1, x_3); +lean::cnstr_set(x_35, 2, x_31); +x_36 = lean::unbox_size_t(x_29); +lean::dec(x_29); +x_37 = lean::array_uset(x_25, x_36, x_35); +x_38 = lean::nat_dec_le(x_34, x_26); +lean::dec(x_26); +if (x_38 == 0) +{ +obj* x_39; +x_39 = l_HashMapImp_expand___at_Lean_addBuiltinTermElab___spec__9(x_34, x_37); +return x_39; +} +else +{ +obj* x_40; +x_40 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_40, 0, x_34); +lean::cnstr_set(x_40, 1, x_37); +return x_40; +} +} +else +{ +obj* x_41; usize x_42; obj* x_43; obj* x_44; +lean::dec(x_26); +x_41 = l_AssocList_replace___main___at_Lean_addBuiltinTermElab___spec__12(x_2, x_3, x_31); +x_42 = lean::unbox_size_t(x_29); +lean::dec(x_29); +x_43 = lean::array_uset(x_25, x_42, x_41); +x_44 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_44, 0, x_24); +lean::cnstr_set(x_44, 1, x_43); +return x_44; +} +} +} +} +obj* l_Lean_SMap_insert___main___at_Lean_addBuiltinTermElab___spec__5(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = lean::cnstr_get_scalar(x_1, sizeof(void*)*2); +if (x_4 == 0) +{ +uint8 x_5; +x_5 = !lean::is_exclusive(x_1); +if (x_5 == 0) +{ +obj* x_6; obj* x_7; +x_6 = lean::cnstr_get(x_1, 1); +x_7 = l_RBNode_insert___at_Lean_addBuiltinTermElab___spec__6(x_6, x_2, x_3); +lean::cnstr_set(x_1, 1, x_7); +return x_1; +} +else +{ +obj* x_8; obj* x_9; obj* x_10; obj* x_11; +x_8 = lean::cnstr_get(x_1, 0); +x_9 = lean::cnstr_get(x_1, 1); +lean::inc(x_9); +lean::inc(x_8); +lean::dec(x_1); +x_10 = l_RBNode_insert___at_Lean_addBuiltinTermElab___spec__6(x_9, x_2, x_3); +x_11 = lean::alloc_cnstr(0, 2, 1); +lean::cnstr_set(x_11, 0, x_8); +lean::cnstr_set(x_11, 1, x_10); +lean::cnstr_set_scalar(x_11, sizeof(void*)*2, x_4); +return x_11; +} +} +else +{ +uint8 x_12; +x_12 = !lean::is_exclusive(x_1); +if (x_12 == 0) +{ +obj* x_13; obj* x_14; +x_13 = lean::cnstr_get(x_1, 0); +x_14 = l_HashMapImp_insert___at_Lean_addBuiltinTermElab___spec__8(x_13, x_2, x_3); +lean::cnstr_set(x_1, 0, x_14); +return x_1; +} +else +{ +obj* x_15; obj* x_16; obj* x_17; obj* x_18; +x_15 = lean::cnstr_get(x_1, 0); +x_16 = lean::cnstr_get(x_1, 1); +lean::inc(x_16); +lean::inc(x_15); +lean::dec(x_1); +x_17 = l_HashMapImp_insert___at_Lean_addBuiltinTermElab___spec__8(x_15, x_2, x_3); +x_18 = lean::alloc_cnstr(0, 2, 1); +lean::cnstr_set(x_18, 0, x_17); +lean::cnstr_set(x_18, 1, x_16); +lean::cnstr_set_scalar(x_18, sizeof(void*)*2, x_4); +return x_18; +} +} +} +} +obj* _init_l_Lean_addBuiltinTermElab___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("invalid builtin term elaborator, elaborator for '"); +return x_1; +} +} +obj* _init_l_Lean_addBuiltinTermElab___closed__2() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("' has already been defined"); +return x_1; +} +} +obj* l_Lean_addBuiltinTermElab(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; obj* x_6; +x_5 = l_Lean_builtinTermElabTable; +x_6 = lean::io_ref_get(x_5, x_4); +if (lean::obj_tag(x_6) == 0) +{ +uint8 x_7; +x_7 = !lean::is_exclusive(x_6); +if (x_7 == 0) +{ +obj* x_8; uint8 x_9; +x_8 = lean::cnstr_get(x_6, 0); +x_9 = l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1(x_8, x_1); +lean::dec(x_8); +if (x_9 == 0) +{ +obj* x_10; obj* x_11; +x_10 = lean::box(0); +lean::cnstr_set(x_6, 0, x_10); +x_11 = lean::io_ref_get(x_5, x_6); +if (lean::obj_tag(x_11) == 0) +{ +uint8 x_12; +x_12 = !lean::is_exclusive(x_11); +if (x_12 == 0) +{ +obj* x_13; obj* x_14; +x_13 = lean::cnstr_get(x_11, 0); +lean::cnstr_set(x_11, 0, x_10); +x_14 = lean::io_ref_reset(x_5, x_11); +if (lean::obj_tag(x_14) == 0) +{ +uint8 x_15; +x_15 = !lean::is_exclusive(x_14); +if (x_15 == 0) +{ +obj* x_16; obj* x_17; obj* x_18; +x_16 = lean::cnstr_get(x_14, 0); +lean::dec(x_16); +lean::cnstr_set(x_14, 0, x_10); +x_17 = l_Lean_SMap_insert___main___at_Lean_addBuiltinTermElab___spec__5(x_13, x_1, x_3); +x_18 = lean::io_ref_set(x_5, x_17, x_14); +return x_18; +} +else +{ +obj* x_19; obj* x_20; obj* x_21; obj* x_22; +x_19 = lean::cnstr_get(x_14, 1); +lean::inc(x_19); +lean::dec(x_14); +x_20 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_20, 0, x_10); +lean::cnstr_set(x_20, 1, x_19); +x_21 = l_Lean_SMap_insert___main___at_Lean_addBuiltinTermElab___spec__5(x_13, x_1, x_3); +x_22 = lean::io_ref_set(x_5, x_21, x_20); +return x_22; +} +} +else +{ +uint8 x_23; +lean::dec(x_13); +lean::dec(x_3); +lean::dec(x_1); +x_23 = !lean::is_exclusive(x_14); +if (x_23 == 0) +{ +return x_14; +} +else +{ +obj* x_24; obj* x_25; obj* x_26; +x_24 = lean::cnstr_get(x_14, 0); +x_25 = lean::cnstr_get(x_14, 1); +lean::inc(x_25); +lean::inc(x_24); +lean::dec(x_14); +x_26 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_26, 0, x_24); +lean::cnstr_set(x_26, 1, x_25); +return x_26; +} +} +} +else +{ +obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_27 = lean::cnstr_get(x_11, 0); +x_28 = lean::cnstr_get(x_11, 1); +lean::inc(x_28); +lean::inc(x_27); +lean::dec(x_11); +x_29 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_29, 0, x_10); +lean::cnstr_set(x_29, 1, x_28); +x_30 = lean::io_ref_reset(x_5, x_29); +if (lean::obj_tag(x_30) == 0) +{ +obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; +x_31 = lean::cnstr_get(x_30, 1); +lean::inc(x_31); +if (lean::is_exclusive(x_30)) { + lean::cnstr_release(x_30, 0); + lean::cnstr_release(x_30, 1); + x_32 = x_30; +} else { + lean::dec_ref(x_30); + x_32 = lean::box(0); +} +if (lean::is_scalar(x_32)) { + x_33 = lean::alloc_cnstr(0, 2, 0); +} else { + x_33 = x_32; +} +lean::cnstr_set(x_33, 0, x_10); +lean::cnstr_set(x_33, 1, x_31); +x_34 = l_Lean_SMap_insert___main___at_Lean_addBuiltinTermElab___spec__5(x_27, x_1, x_3); +x_35 = lean::io_ref_set(x_5, x_34, x_33); +return x_35; +} +else +{ +obj* x_36; obj* x_37; obj* x_38; obj* x_39; +lean::dec(x_27); +lean::dec(x_3); +lean::dec(x_1); +x_36 = lean::cnstr_get(x_30, 0); +lean::inc(x_36); +x_37 = lean::cnstr_get(x_30, 1); +lean::inc(x_37); +if (lean::is_exclusive(x_30)) { + lean::cnstr_release(x_30, 0); + lean::cnstr_release(x_30, 1); + x_38 = x_30; +} else { + lean::dec_ref(x_30); + x_38 = lean::box(0); +} +if (lean::is_scalar(x_38)) { + x_39 = lean::alloc_cnstr(1, 2, 0); +} else { + x_39 = x_38; +} +lean::cnstr_set(x_39, 0, x_36); +lean::cnstr_set(x_39, 1, x_37); +return x_39; +} +} +} +else +{ +uint8 x_40; +lean::dec(x_3); +lean::dec(x_1); +x_40 = !lean::is_exclusive(x_11); +if (x_40 == 0) +{ +return x_11; +} +else +{ +obj* x_41; obj* x_42; obj* x_43; +x_41 = lean::cnstr_get(x_11, 0); +x_42 = lean::cnstr_get(x_11, 1); +lean::inc(x_42); +lean::inc(x_41); +lean::dec(x_11); +x_43 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_43, 0, x_41); +lean::cnstr_set(x_43, 1, x_42); +return x_43; +} +} +} +else +{ +obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; +lean::dec(x_3); +x_44 = l_Lean_Name_toString___closed__1; +x_45 = l_Lean_Name_toStringWithSep___main(x_44, x_1); +x_46 = l_Lean_addBuiltinTermElab___closed__1; +x_47 = lean::string_append(x_46, x_45); +lean::dec(x_45); +x_48 = l_Lean_addBuiltinTermElab___closed__2; +x_49 = lean::string_append(x_47, x_48); +lean::cnstr_set_tag(x_6, 1); +lean::cnstr_set(x_6, 0, x_49); +return x_6; +} +} +else +{ +obj* x_50; obj* x_51; uint8 x_52; +x_50 = lean::cnstr_get(x_6, 0); +x_51 = lean::cnstr_get(x_6, 1); +lean::inc(x_51); +lean::inc(x_50); +lean::dec(x_6); +x_52 = l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1(x_50, x_1); +lean::dec(x_50); +if (x_52 == 0) +{ +obj* x_53; obj* x_54; obj* x_55; +x_53 = lean::box(0); +x_54 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_54, 0, x_53); +lean::cnstr_set(x_54, 1, x_51); +x_55 = lean::io_ref_get(x_5, x_54); +if (lean::obj_tag(x_55) == 0) +{ +obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; +x_56 = lean::cnstr_get(x_55, 0); +lean::inc(x_56); +x_57 = lean::cnstr_get(x_55, 1); +lean::inc(x_57); +if (lean::is_exclusive(x_55)) { + lean::cnstr_release(x_55, 0); + lean::cnstr_release(x_55, 1); + x_58 = x_55; +} else { + lean::dec_ref(x_55); + x_58 = lean::box(0); +} +if (lean::is_scalar(x_58)) { + x_59 = lean::alloc_cnstr(0, 2, 0); +} else { + x_59 = x_58; +} +lean::cnstr_set(x_59, 0, x_53); +lean::cnstr_set(x_59, 1, x_57); +x_60 = lean::io_ref_reset(x_5, x_59); +if (lean::obj_tag(x_60) == 0) +{ +obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; +x_61 = lean::cnstr_get(x_60, 1); +lean::inc(x_61); +if (lean::is_exclusive(x_60)) { + lean::cnstr_release(x_60, 0); + lean::cnstr_release(x_60, 1); + x_62 = x_60; +} else { + lean::dec_ref(x_60); + x_62 = lean::box(0); +} +if (lean::is_scalar(x_62)) { + x_63 = lean::alloc_cnstr(0, 2, 0); +} else { + x_63 = x_62; +} +lean::cnstr_set(x_63, 0, x_53); +lean::cnstr_set(x_63, 1, x_61); +x_64 = l_Lean_SMap_insert___main___at_Lean_addBuiltinTermElab___spec__5(x_56, x_1, x_3); +x_65 = lean::io_ref_set(x_5, x_64, x_63); +return x_65; +} +else +{ +obj* x_66; obj* x_67; obj* x_68; obj* x_69; +lean::dec(x_56); +lean::dec(x_3); +lean::dec(x_1); +x_66 = lean::cnstr_get(x_60, 0); +lean::inc(x_66); +x_67 = lean::cnstr_get(x_60, 1); +lean::inc(x_67); +if (lean::is_exclusive(x_60)) { + lean::cnstr_release(x_60, 0); + lean::cnstr_release(x_60, 1); + x_68 = x_60; +} else { + lean::dec_ref(x_60); + x_68 = lean::box(0); +} +if (lean::is_scalar(x_68)) { + x_69 = lean::alloc_cnstr(1, 2, 0); +} else { + x_69 = x_68; +} +lean::cnstr_set(x_69, 0, x_66); +lean::cnstr_set(x_69, 1, x_67); +return x_69; +} +} +else +{ +obj* x_70; obj* x_71; obj* x_72; obj* x_73; +lean::dec(x_3); +lean::dec(x_1); +x_70 = lean::cnstr_get(x_55, 0); +lean::inc(x_70); +x_71 = lean::cnstr_get(x_55, 1); +lean::inc(x_71); +if (lean::is_exclusive(x_55)) { + lean::cnstr_release(x_55, 0); + lean::cnstr_release(x_55, 1); + x_72 = x_55; +} else { + lean::dec_ref(x_55); + x_72 = lean::box(0); +} +if (lean::is_scalar(x_72)) { + x_73 = lean::alloc_cnstr(1, 2, 0); +} else { + x_73 = x_72; +} +lean::cnstr_set(x_73, 0, x_70); +lean::cnstr_set(x_73, 1, x_71); +return x_73; +} +} +else +{ +obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; +lean::dec(x_3); +x_74 = l_Lean_Name_toString___closed__1; +x_75 = l_Lean_Name_toStringWithSep___main(x_74, x_1); +x_76 = l_Lean_addBuiltinTermElab___closed__1; +x_77 = lean::string_append(x_76, x_75); +lean::dec(x_75); +x_78 = l_Lean_addBuiltinTermElab___closed__2; +x_79 = lean::string_append(x_77, x_78); +x_80 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_80, 0, x_79); +lean::cnstr_set(x_80, 1, x_51); +return x_80; +} +} +} +else +{ +uint8 x_81; +lean::dec(x_3); +lean::dec(x_1); +x_81 = !lean::is_exclusive(x_6); +if (x_81 == 0) +{ +return x_6; +} +else +{ +obj* x_82; obj* x_83; obj* x_84; +x_82 = lean::cnstr_get(x_6, 0); +x_83 = lean::cnstr_get(x_6, 1); +lean::inc(x_83); +lean::inc(x_82); +lean::dec(x_6); +x_84 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_84, 0, x_82); +lean::cnstr_set(x_84, 1, x_83); +return x_84; +} +} +} +} +obj* l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_AssocList_contains___main___at_Lean_addBuiltinTermElab___spec__3(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_HashMapImp_contains___at_Lean_addBuiltinTermElab___spec__2(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_RBNode_find___main___at_Lean_addBuiltinTermElab___spec__4(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +} +obj* l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_Lean_SMap_contains___main___at_Lean_addBuiltinTermElab___spec__1(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_Lean_addBuiltinTermElab___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_Lean_addBuiltinTermElab(x_1, x_2, x_3, x_4); +lean::dec(x_2); +return x_5; +} +} +uint8 l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +uint8 x_3; +x_3 = 0; +return x_3; +} +else +{ +obj* x_4; obj* x_5; uint8 x_6; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 2); +x_6 = lean_name_dec_eq(x_4, x_1); +if (x_6 == 0) +{ +x_2 = x_5; +goto _start; +} +else +{ +uint8 x_8; +x_8 = 1; +return x_8; +} +} +} +} +uint8 l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; usize x_5; usize x_6; obj* x_7; usize x_8; obj* x_9; uint8 x_10; +x_3 = lean::cnstr_get(x_1, 1); +x_4 = lean::array_get_size(x_3); +x_5 = lean_name_hash_usize(x_2); +x_6 = lean::usize_modn(x_5, x_4); +lean::dec(x_4); +x_7 = lean::box_size_t(x_6); +x_8 = lean::unbox_size_t(x_7); +lean::dec(x_7); +x_9 = lean::array_uget(x_3, x_8); +x_10 = l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(x_2, x_9); +lean::dec(x_9); +return x_10; +} +} +obj* l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +obj* x_3; +x_3 = lean::box(0); +return x_3; +} +else +{ +obj* x_4; obj* x_5; obj* x_6; obj* x_7; uint8 x_8; +x_4 = lean::cnstr_get(x_1, 0); +x_5 = lean::cnstr_get(x_1, 1); +x_6 = lean::cnstr_get(x_1, 2); +x_7 = lean::cnstr_get(x_1, 3); +x_8 = l_Lean_Name_quickLt(x_2, x_5); +if (x_8 == 0) +{ +uint8 x_9; +x_9 = l_Lean_Name_quickLt(x_5, x_2); +if (x_9 == 0) +{ +obj* x_10; +lean::inc(x_6); +x_10 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_10, 0, x_6); +return x_10; +} +else +{ +x_1 = x_7; +goto _start; +} +} +else +{ +x_1 = x_4; +goto _start; +} +} +} +} +uint8 l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; +x_3 = lean::cnstr_get_scalar(x_1, sizeof(void*)*2); +if (x_3 == 0) +{ +obj* x_4; obj* x_5; uint8 x_6; +x_4 = lean::cnstr_get(x_1, 0); +x_5 = lean::cnstr_get(x_1, 1); +x_6 = l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2(x_4, x_2); +if (x_6 == 0) +{ +obj* x_7; +x_7 = l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4(x_5, x_2); +if (lean::obj_tag(x_7) == 0) +{ +uint8 x_8; +x_8 = 0; +return x_8; +} +else +{ +uint8 x_9; +lean::dec(x_7); +x_9 = 1; +return x_9; +} +} +else +{ +uint8 x_10; +x_10 = 1; +return x_10; +} +} +else +{ +obj* x_11; uint8 x_12; +x_11 = lean::cnstr_get(x_1, 0); +x_12 = l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2(x_11, x_2); +return x_12; +} +} +} +obj* l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_1) == 0) +{ +uint8 x_4; obj* x_5; +x_4 = 0; +x_5 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_5, 0, x_1); +lean::cnstr_set(x_5, 1, x_2); +lean::cnstr_set(x_5, 2, x_3); +lean::cnstr_set(x_5, 3, x_1); +lean::cnstr_set_scalar(x_5, sizeof(void*)*4, x_4); +return x_5; +} +else +{ +uint8 x_6; +x_6 = lean::cnstr_get_scalar(x_1, sizeof(void*)*4); +if (x_6 == 0) +{ +uint8 x_7; +x_7 = !lean::is_exclusive(x_1); +if (x_7 == 0) +{ +obj* x_8; obj* x_9; obj* x_10; obj* x_11; uint8 x_12; +x_8 = lean::cnstr_get(x_1, 0); +x_9 = lean::cnstr_get(x_1, 1); +x_10 = lean::cnstr_get(x_1, 2); +x_11 = lean::cnstr_get(x_1, 3); +x_12 = l_Lean_Name_quickLt(x_2, x_9); +if (x_12 == 0) +{ +uint8 x_13; +x_13 = l_Lean_Name_quickLt(x_9, x_2); +if (x_13 == 0) +{ +lean::dec(x_10); +lean::dec(x_9); +lean::cnstr_set(x_1, 2, x_3); +lean::cnstr_set(x_1, 1, x_2); +return x_1; +} +else +{ +obj* x_14; +x_14 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_11, x_2, x_3); +lean::cnstr_set(x_1, 3, x_14); +return x_1; +} +} +else +{ +obj* x_15; +x_15 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_8, x_2, x_3); +lean::cnstr_set(x_1, 0, x_15); +return x_1; +} +} +else +{ +obj* x_16; obj* x_17; obj* x_18; obj* x_19; uint8 x_20; +x_16 = lean::cnstr_get(x_1, 0); +x_17 = lean::cnstr_get(x_1, 1); +x_18 = lean::cnstr_get(x_1, 2); +x_19 = lean::cnstr_get(x_1, 3); +lean::inc(x_19); +lean::inc(x_18); +lean::inc(x_17); +lean::inc(x_16); +lean::dec(x_1); +x_20 = l_Lean_Name_quickLt(x_2, x_17); +if (x_20 == 0) +{ +uint8 x_21; +x_21 = l_Lean_Name_quickLt(x_17, x_2); +if (x_21 == 0) +{ +obj* x_22; +lean::dec(x_18); +lean::dec(x_17); +x_22 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_22, 0, x_16); +lean::cnstr_set(x_22, 1, x_2); +lean::cnstr_set(x_22, 2, x_3); +lean::cnstr_set(x_22, 3, x_19); +lean::cnstr_set_scalar(x_22, sizeof(void*)*4, x_6); +return x_22; +} +else +{ +obj* x_23; obj* x_24; +x_23 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_19, x_2, x_3); +x_24 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_24, 0, x_16); +lean::cnstr_set(x_24, 1, x_17); +lean::cnstr_set(x_24, 2, x_18); +lean::cnstr_set(x_24, 3, x_23); +lean::cnstr_set_scalar(x_24, sizeof(void*)*4, x_6); +return x_24; +} +} +else +{ +obj* x_25; obj* x_26; +x_25 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_16, x_2, x_3); +x_26 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_26, 0, x_25); +lean::cnstr_set(x_26, 1, x_17); +lean::cnstr_set(x_26, 2, x_18); +lean::cnstr_set(x_26, 3, x_19); +lean::cnstr_set_scalar(x_26, sizeof(void*)*4, x_6); +return x_26; +} +} +} +else +{ +uint8 x_27; +x_27 = !lean::is_exclusive(x_1); +if (x_27 == 0) +{ +obj* x_28; obj* x_29; obj* x_30; obj* x_31; uint8 x_32; +x_28 = lean::cnstr_get(x_1, 0); +x_29 = lean::cnstr_get(x_1, 1); +x_30 = lean::cnstr_get(x_1, 2); +x_31 = lean::cnstr_get(x_1, 3); +x_32 = l_Lean_Name_quickLt(x_2, x_29); +if (x_32 == 0) +{ +uint8 x_33; +x_33 = l_Lean_Name_quickLt(x_29, x_2); +if (x_33 == 0) +{ +lean::dec(x_30); +lean::dec(x_29); +lean::cnstr_set(x_1, 2, x_3); +lean::cnstr_set(x_1, 1, x_2); +return x_1; +} +else +{ +uint8 x_34; +x_34 = l_RBNode_isRed___main___rarg(x_31); +if (x_34 == 0) +{ +obj* x_35; +x_35 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_31, x_2, x_3); +lean::cnstr_set(x_1, 3, x_35); +return x_1; +} +else +{ +obj* x_36; +x_36 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_31, x_2, x_3); +if (lean::obj_tag(x_36) == 0) +{ +lean::free_heap_obj(x_1); +lean::dec(x_30); +lean::dec(x_29); +lean::dec(x_28); +return x_36; +} +else +{ +obj* x_37; +x_37 = lean::cnstr_get(x_36, 0); +lean::inc(x_37); +if (lean::obj_tag(x_37) == 0) +{ +obj* x_38; +x_38 = lean::cnstr_get(x_36, 3); +lean::inc(x_38); +if (lean::obj_tag(x_38) == 0) +{ +uint8 x_39; +x_39 = !lean::is_exclusive(x_36); +if (x_39 == 0) +{ +obj* x_40; obj* x_41; uint8 x_42; uint8 x_43; +x_40 = lean::cnstr_get(x_36, 3); +lean::dec(x_40); +x_41 = lean::cnstr_get(x_36, 0); +lean::dec(x_41); +x_42 = 0; +lean::cnstr_set(x_36, 0, x_38); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_42); +x_43 = 1; +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_43); +return x_1; +} +else +{ +obj* x_44; obj* x_45; uint8 x_46; obj* x_47; uint8 x_48; +x_44 = lean::cnstr_get(x_36, 1); +x_45 = lean::cnstr_get(x_36, 2); +lean::inc(x_45); +lean::inc(x_44); +lean::dec(x_36); +x_46 = 0; +x_47 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_47, 0, x_38); +lean::cnstr_set(x_47, 1, x_44); +lean::cnstr_set(x_47, 2, x_45); +lean::cnstr_set(x_47, 3, x_38); +lean::cnstr_set_scalar(x_47, sizeof(void*)*4, x_46); +x_48 = 1; +lean::cnstr_set(x_1, 3, x_47); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_48); +return x_1; +} +} +else +{ +uint8 x_49; +x_49 = lean::cnstr_get_scalar(x_38, sizeof(void*)*4); +if (x_49 == 0) +{ +uint8 x_50; +x_50 = !lean::is_exclusive(x_36); +if (x_50 == 0) +{ +obj* x_51; obj* x_52; obj* x_53; obj* x_54; uint8 x_55; +x_51 = lean::cnstr_get(x_36, 1); +x_52 = lean::cnstr_get(x_36, 2); +x_53 = lean::cnstr_get(x_36, 3); +lean::dec(x_53); +x_54 = lean::cnstr_get(x_36, 0); +lean::dec(x_54); +x_55 = !lean::is_exclusive(x_38); +if (x_55 == 0) +{ +obj* x_56; obj* x_57; obj* x_58; obj* x_59; uint8 x_60; +x_56 = lean::cnstr_get(x_38, 0); +x_57 = lean::cnstr_get(x_38, 1); +x_58 = lean::cnstr_get(x_38, 2); +x_59 = lean::cnstr_get(x_38, 3); +x_60 = 1; +lean::cnstr_set(x_38, 3, x_37); +lean::cnstr_set(x_38, 2, x_30); +lean::cnstr_set(x_38, 1, x_29); +lean::cnstr_set(x_38, 0, x_28); +lean::cnstr_set_scalar(x_38, sizeof(void*)*4, x_60); +lean::cnstr_set(x_36, 3, x_59); +lean::cnstr_set(x_36, 2, x_58); +lean::cnstr_set(x_36, 1, x_57); +lean::cnstr_set(x_36, 0, x_56); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_60); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_52); +lean::cnstr_set(x_1, 1, x_51); +lean::cnstr_set(x_1, 0, x_38); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +else +{ +obj* x_61; obj* x_62; obj* x_63; obj* x_64; uint8 x_65; obj* x_66; +x_61 = lean::cnstr_get(x_38, 0); +x_62 = lean::cnstr_get(x_38, 1); +x_63 = lean::cnstr_get(x_38, 2); +x_64 = lean::cnstr_get(x_38, 3); +lean::inc(x_64); +lean::inc(x_63); +lean::inc(x_62); +lean::inc(x_61); +lean::dec(x_38); +x_65 = 1; +x_66 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_66, 0, x_28); +lean::cnstr_set(x_66, 1, x_29); +lean::cnstr_set(x_66, 2, x_30); +lean::cnstr_set(x_66, 3, x_37); +lean::cnstr_set_scalar(x_66, sizeof(void*)*4, x_65); +lean::cnstr_set(x_36, 3, x_64); +lean::cnstr_set(x_36, 2, x_63); +lean::cnstr_set(x_36, 1, x_62); +lean::cnstr_set(x_36, 0, x_61); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_65); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_52); +lean::cnstr_set(x_1, 1, x_51); +lean::cnstr_set(x_1, 0, x_66); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +else +{ +obj* x_67; obj* x_68; obj* x_69; obj* x_70; obj* x_71; obj* x_72; obj* x_73; uint8 x_74; obj* x_75; obj* x_76; +x_67 = lean::cnstr_get(x_36, 1); +x_68 = lean::cnstr_get(x_36, 2); +lean::inc(x_68); +lean::inc(x_67); +lean::dec(x_36); +x_69 = lean::cnstr_get(x_38, 0); +lean::inc(x_69); +x_70 = lean::cnstr_get(x_38, 1); +lean::inc(x_70); +x_71 = lean::cnstr_get(x_38, 2); +lean::inc(x_71); +x_72 = lean::cnstr_get(x_38, 3); +lean::inc(x_72); +if (lean::is_exclusive(x_38)) { + lean::cnstr_release(x_38, 0); + lean::cnstr_release(x_38, 1); + lean::cnstr_release(x_38, 2); + lean::cnstr_release(x_38, 3); + x_73 = x_38; +} else { + lean::dec_ref(x_38); + x_73 = lean::box(0); +} +x_74 = 1; +if (lean::is_scalar(x_73)) { + x_75 = lean::alloc_cnstr(1, 4, 1); +} else { + x_75 = x_73; +} +lean::cnstr_set(x_75, 0, x_28); +lean::cnstr_set(x_75, 1, x_29); +lean::cnstr_set(x_75, 2, x_30); +lean::cnstr_set(x_75, 3, x_37); +lean::cnstr_set_scalar(x_75, sizeof(void*)*4, x_74); +x_76 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_76, 0, x_69); +lean::cnstr_set(x_76, 1, x_70); +lean::cnstr_set(x_76, 2, x_71); +lean::cnstr_set(x_76, 3, x_72); +lean::cnstr_set_scalar(x_76, sizeof(void*)*4, x_74); +lean::cnstr_set(x_1, 3, x_76); +lean::cnstr_set(x_1, 2, x_68); +lean::cnstr_set(x_1, 1, x_67); +lean::cnstr_set(x_1, 0, x_75); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +else +{ +uint8 x_77; +x_77 = !lean::is_exclusive(x_36); +if (x_77 == 0) +{ +obj* x_78; obj* x_79; uint8 x_80; +x_78 = lean::cnstr_get(x_36, 3); +lean::dec(x_78); +x_79 = lean::cnstr_get(x_36, 0); +lean::dec(x_79); +x_80 = 0; +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_80); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +else +{ +obj* x_81; obj* x_82; uint8 x_83; obj* x_84; +x_81 = lean::cnstr_get(x_36, 1); +x_82 = lean::cnstr_get(x_36, 2); +lean::inc(x_82); +lean::inc(x_81); +lean::dec(x_36); +x_83 = 0; +x_84 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_84, 0, x_37); +lean::cnstr_set(x_84, 1, x_81); +lean::cnstr_set(x_84, 2, x_82); +lean::cnstr_set(x_84, 3, x_38); +lean::cnstr_set_scalar(x_84, sizeof(void*)*4, x_83); +lean::cnstr_set(x_1, 3, x_84); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +} +} +else +{ +uint8 x_85; +x_85 = lean::cnstr_get_scalar(x_37, sizeof(void*)*4); +if (x_85 == 0) +{ +uint8 x_86; +x_86 = !lean::is_exclusive(x_36); +if (x_86 == 0) +{ +obj* x_87; uint8 x_88; +x_87 = lean::cnstr_get(x_36, 0); +lean::dec(x_87); +x_88 = !lean::is_exclusive(x_37); +if (x_88 == 0) +{ +obj* x_89; obj* x_90; obj* x_91; obj* x_92; uint8 x_93; +x_89 = lean::cnstr_get(x_37, 0); +x_90 = lean::cnstr_get(x_37, 1); +x_91 = lean::cnstr_get(x_37, 2); +x_92 = lean::cnstr_get(x_37, 3); +x_93 = 1; +lean::cnstr_set(x_37, 3, x_89); +lean::cnstr_set(x_37, 2, x_30); +lean::cnstr_set(x_37, 1, x_29); +lean::cnstr_set(x_37, 0, x_28); +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_93); +lean::cnstr_set(x_36, 0, x_92); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_93); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_91); +lean::cnstr_set(x_1, 1, x_90); +lean::cnstr_set(x_1, 0, x_37); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +else +{ +obj* x_94; obj* x_95; obj* x_96; obj* x_97; uint8 x_98; obj* x_99; +x_94 = lean::cnstr_get(x_37, 0); +x_95 = lean::cnstr_get(x_37, 1); +x_96 = lean::cnstr_get(x_37, 2); +x_97 = lean::cnstr_get(x_37, 3); +lean::inc(x_97); +lean::inc(x_96); +lean::inc(x_95); +lean::inc(x_94); +lean::dec(x_37); +x_98 = 1; +x_99 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_99, 0, x_28); +lean::cnstr_set(x_99, 1, x_29); +lean::cnstr_set(x_99, 2, x_30); +lean::cnstr_set(x_99, 3, x_94); +lean::cnstr_set_scalar(x_99, sizeof(void*)*4, x_98); +lean::cnstr_set(x_36, 0, x_97); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_98); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set(x_1, 2, x_96); +lean::cnstr_set(x_1, 1, x_95); +lean::cnstr_set(x_1, 0, x_99); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +} +else +{ +obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; obj* x_105; obj* x_106; obj* x_107; uint8 x_108; obj* x_109; obj* x_110; +x_100 = lean::cnstr_get(x_36, 1); +x_101 = lean::cnstr_get(x_36, 2); +x_102 = lean::cnstr_get(x_36, 3); +lean::inc(x_102); +lean::inc(x_101); +lean::inc(x_100); +lean::dec(x_36); +x_103 = lean::cnstr_get(x_37, 0); +lean::inc(x_103); +x_104 = lean::cnstr_get(x_37, 1); +lean::inc(x_104); +x_105 = lean::cnstr_get(x_37, 2); +lean::inc(x_105); +x_106 = lean::cnstr_get(x_37, 3); +lean::inc(x_106); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_107 = x_37; +} else { + lean::dec_ref(x_37); + x_107 = lean::box(0); +} +x_108 = 1; +if (lean::is_scalar(x_107)) { + x_109 = lean::alloc_cnstr(1, 4, 1); +} else { + x_109 = x_107; +} +lean::cnstr_set(x_109, 0, x_28); +lean::cnstr_set(x_109, 1, x_29); +lean::cnstr_set(x_109, 2, x_30); +lean::cnstr_set(x_109, 3, x_103); +lean::cnstr_set_scalar(x_109, sizeof(void*)*4, x_108); +x_110 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_110, 0, x_106); +lean::cnstr_set(x_110, 1, x_100); +lean::cnstr_set(x_110, 2, x_101); +lean::cnstr_set(x_110, 3, x_102); +lean::cnstr_set_scalar(x_110, sizeof(void*)*4, x_108); +lean::cnstr_set(x_1, 3, x_110); +lean::cnstr_set(x_1, 2, x_105); +lean::cnstr_set(x_1, 1, x_104); +lean::cnstr_set(x_1, 0, x_109); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +} +else +{ +obj* x_111; +x_111 = lean::cnstr_get(x_36, 3); +lean::inc(x_111); +if (lean::obj_tag(x_111) == 0) +{ +uint8 x_112; +x_112 = !lean::is_exclusive(x_36); +if (x_112 == 0) +{ +obj* x_113; obj* x_114; uint8 x_115; +x_113 = lean::cnstr_get(x_36, 3); +lean::dec(x_113); +x_114 = lean::cnstr_get(x_36, 0); +lean::dec(x_114); +x_115 = 0; +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_115); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +else +{ +obj* x_116; obj* x_117; uint8 x_118; obj* x_119; +x_116 = lean::cnstr_get(x_36, 1); +x_117 = lean::cnstr_get(x_36, 2); +lean::inc(x_117); +lean::inc(x_116); +lean::dec(x_36); +x_118 = 0; +x_119 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_119, 0, x_37); +lean::cnstr_set(x_119, 1, x_116); +lean::cnstr_set(x_119, 2, x_117); +lean::cnstr_set(x_119, 3, x_111); +lean::cnstr_set_scalar(x_119, sizeof(void*)*4, x_118); +lean::cnstr_set(x_1, 3, x_119); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_85); +return x_1; +} +} +else +{ +uint8 x_120; +x_120 = lean::cnstr_get_scalar(x_111, sizeof(void*)*4); +if (x_120 == 0) +{ +uint8 x_121; +lean::free_heap_obj(x_1); +x_121 = !lean::is_exclusive(x_36); +if (x_121 == 0) +{ +obj* x_122; obj* x_123; uint8 x_124; +x_122 = lean::cnstr_get(x_36, 3); +lean::dec(x_122); +x_123 = lean::cnstr_get(x_36, 0); +lean::dec(x_123); +x_124 = !lean::is_exclusive(x_111); +if (x_124 == 0) +{ +obj* x_125; obj* x_126; obj* x_127; obj* x_128; uint8 x_129; +x_125 = lean::cnstr_get(x_111, 0); +x_126 = lean::cnstr_get(x_111, 1); +x_127 = lean::cnstr_get(x_111, 2); +x_128 = lean::cnstr_get(x_111, 3); +lean::inc(x_37); +lean::cnstr_set(x_111, 3, x_37); +lean::cnstr_set(x_111, 2, x_30); +lean::cnstr_set(x_111, 1, x_29); +lean::cnstr_set(x_111, 0, x_28); +x_129 = !lean::is_exclusive(x_37); +if (x_129 == 0) +{ +obj* x_130; obj* x_131; obj* x_132; obj* x_133; +x_130 = lean::cnstr_get(x_37, 3); +lean::dec(x_130); +x_131 = lean::cnstr_get(x_37, 2); +lean::dec(x_131); +x_132 = lean::cnstr_get(x_37, 1); +lean::dec(x_132); +x_133 = lean::cnstr_get(x_37, 0); +lean::dec(x_133); +lean::cnstr_set_scalar(x_111, sizeof(void*)*4, x_85); +lean::cnstr_set(x_37, 3, x_128); +lean::cnstr_set(x_37, 2, x_127); +lean::cnstr_set(x_37, 1, x_126); +lean::cnstr_set(x_37, 0, x_125); +lean::cnstr_set(x_36, 3, x_37); +lean::cnstr_set(x_36, 0, x_111); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_120); +return x_36; +} +else +{ +obj* x_134; +lean::dec(x_37); +lean::cnstr_set_scalar(x_111, sizeof(void*)*4, x_85); +x_134 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_134, 0, x_125); +lean::cnstr_set(x_134, 1, x_126); +lean::cnstr_set(x_134, 2, x_127); +lean::cnstr_set(x_134, 3, x_128); +lean::cnstr_set_scalar(x_134, sizeof(void*)*4, x_85); +lean::cnstr_set(x_36, 3, x_134); +lean::cnstr_set(x_36, 0, x_111); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_120); +return x_36; +} +} +else +{ +obj* x_135; obj* x_136; obj* x_137; obj* x_138; obj* x_139; obj* x_140; obj* x_141; +x_135 = lean::cnstr_get(x_111, 0); +x_136 = lean::cnstr_get(x_111, 1); +x_137 = lean::cnstr_get(x_111, 2); +x_138 = lean::cnstr_get(x_111, 3); +lean::inc(x_138); +lean::inc(x_137); +lean::inc(x_136); +lean::inc(x_135); +lean::dec(x_111); +lean::inc(x_37); +x_139 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_139, 0, x_28); +lean::cnstr_set(x_139, 1, x_29); +lean::cnstr_set(x_139, 2, x_30); +lean::cnstr_set(x_139, 3, x_37); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_140 = x_37; +} else { + lean::dec_ref(x_37); + x_140 = lean::box(0); +} +lean::cnstr_set_scalar(x_139, sizeof(void*)*4, x_85); +if (lean::is_scalar(x_140)) { + x_141 = lean::alloc_cnstr(1, 4, 1); +} else { + x_141 = x_140; +} +lean::cnstr_set(x_141, 0, x_135); +lean::cnstr_set(x_141, 1, x_136); +lean::cnstr_set(x_141, 2, x_137); +lean::cnstr_set(x_141, 3, x_138); +lean::cnstr_set_scalar(x_141, sizeof(void*)*4, x_85); +lean::cnstr_set(x_36, 3, x_141); +lean::cnstr_set(x_36, 0, x_139); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_120); +return x_36; +} +} +else +{ +obj* x_142; obj* x_143; obj* x_144; obj* x_145; obj* x_146; obj* x_147; obj* x_148; obj* x_149; obj* x_150; obj* x_151; obj* x_152; +x_142 = lean::cnstr_get(x_36, 1); +x_143 = lean::cnstr_get(x_36, 2); +lean::inc(x_143); +lean::inc(x_142); +lean::dec(x_36); +x_144 = lean::cnstr_get(x_111, 0); +lean::inc(x_144); +x_145 = lean::cnstr_get(x_111, 1); +lean::inc(x_145); +x_146 = lean::cnstr_get(x_111, 2); +lean::inc(x_146); +x_147 = lean::cnstr_get(x_111, 3); +lean::inc(x_147); +if (lean::is_exclusive(x_111)) { + lean::cnstr_release(x_111, 0); + lean::cnstr_release(x_111, 1); + lean::cnstr_release(x_111, 2); + lean::cnstr_release(x_111, 3); + x_148 = x_111; +} else { + lean::dec_ref(x_111); + x_148 = lean::box(0); +} +lean::inc(x_37); +if (lean::is_scalar(x_148)) { + x_149 = lean::alloc_cnstr(1, 4, 1); +} else { + x_149 = x_148; +} +lean::cnstr_set(x_149, 0, x_28); +lean::cnstr_set(x_149, 1, x_29); +lean::cnstr_set(x_149, 2, x_30); +lean::cnstr_set(x_149, 3, x_37); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_150 = x_37; +} else { + lean::dec_ref(x_37); + x_150 = lean::box(0); +} +lean::cnstr_set_scalar(x_149, sizeof(void*)*4, x_85); +if (lean::is_scalar(x_150)) { + x_151 = lean::alloc_cnstr(1, 4, 1); +} else { + x_151 = x_150; +} +lean::cnstr_set(x_151, 0, x_144); +lean::cnstr_set(x_151, 1, x_145); +lean::cnstr_set(x_151, 2, x_146); +lean::cnstr_set(x_151, 3, x_147); +lean::cnstr_set_scalar(x_151, sizeof(void*)*4, x_85); +x_152 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_152, 0, x_149); +lean::cnstr_set(x_152, 1, x_142); +lean::cnstr_set(x_152, 2, x_143); +lean::cnstr_set(x_152, 3, x_151); +lean::cnstr_set_scalar(x_152, sizeof(void*)*4, x_120); +return x_152; +} +} +else +{ +uint8 x_153; +x_153 = !lean::is_exclusive(x_36); +if (x_153 == 0) +{ +obj* x_154; obj* x_155; uint8 x_156; +x_154 = lean::cnstr_get(x_36, 3); +lean::dec(x_154); +x_155 = lean::cnstr_get(x_36, 0); +lean::dec(x_155); +x_156 = !lean::is_exclusive(x_37); +if (x_156 == 0) +{ +uint8 x_157; +lean::cnstr_set_scalar(x_37, sizeof(void*)*4, x_120); +x_157 = 0; +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_157); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_120); +return x_1; +} +else +{ +obj* x_158; obj* x_159; obj* x_160; obj* x_161; obj* x_162; uint8 x_163; +x_158 = lean::cnstr_get(x_37, 0); +x_159 = lean::cnstr_get(x_37, 1); +x_160 = lean::cnstr_get(x_37, 2); +x_161 = lean::cnstr_get(x_37, 3); +lean::inc(x_161); +lean::inc(x_160); +lean::inc(x_159); +lean::inc(x_158); +lean::dec(x_37); +x_162 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_162, 0, x_158); +lean::cnstr_set(x_162, 1, x_159); +lean::cnstr_set(x_162, 2, x_160); +lean::cnstr_set(x_162, 3, x_161); +lean::cnstr_set_scalar(x_162, sizeof(void*)*4, x_120); +x_163 = 0; +lean::cnstr_set(x_36, 0, x_162); +lean::cnstr_set_scalar(x_36, sizeof(void*)*4, x_163); +lean::cnstr_set(x_1, 3, x_36); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_120); +return x_1; +} +} +else +{ +obj* x_164; obj* x_165; obj* x_166; obj* x_167; obj* x_168; obj* x_169; obj* x_170; obj* x_171; uint8 x_172; obj* x_173; +x_164 = lean::cnstr_get(x_36, 1); +x_165 = lean::cnstr_get(x_36, 2); +lean::inc(x_165); +lean::inc(x_164); +lean::dec(x_36); +x_166 = lean::cnstr_get(x_37, 0); +lean::inc(x_166); +x_167 = lean::cnstr_get(x_37, 1); +lean::inc(x_167); +x_168 = lean::cnstr_get(x_37, 2); +lean::inc(x_168); +x_169 = lean::cnstr_get(x_37, 3); +lean::inc(x_169); +if (lean::is_exclusive(x_37)) { + lean::cnstr_release(x_37, 0); + lean::cnstr_release(x_37, 1); + lean::cnstr_release(x_37, 2); + lean::cnstr_release(x_37, 3); + x_170 = x_37; +} else { + lean::dec_ref(x_37); + x_170 = lean::box(0); +} +if (lean::is_scalar(x_170)) { + x_171 = lean::alloc_cnstr(1, 4, 1); +} else { + x_171 = x_170; +} +lean::cnstr_set(x_171, 0, x_166); +lean::cnstr_set(x_171, 1, x_167); +lean::cnstr_set(x_171, 2, x_168); +lean::cnstr_set(x_171, 3, x_169); +lean::cnstr_set_scalar(x_171, sizeof(void*)*4, x_120); +x_172 = 0; +x_173 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_173, 0, x_171); +lean::cnstr_set(x_173, 1, x_164); +lean::cnstr_set(x_173, 2, x_165); +lean::cnstr_set(x_173, 3, x_111); +lean::cnstr_set_scalar(x_173, sizeof(void*)*4, x_172); +lean::cnstr_set(x_1, 3, x_173); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_120); +return x_1; +} +} +} +} +} +} +} +} +} +else +{ +uint8 x_174; +x_174 = l_RBNode_isRed___main___rarg(x_28); +if (x_174 == 0) +{ +obj* x_175; +x_175 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_28, x_2, x_3); +lean::cnstr_set(x_1, 0, x_175); +return x_1; +} +else +{ +obj* x_176; +x_176 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_28, x_2, x_3); +if (lean::obj_tag(x_176) == 0) +{ +lean::free_heap_obj(x_1); +lean::dec(x_31); +lean::dec(x_30); +lean::dec(x_29); +return x_176; +} +else +{ +obj* x_177; +x_177 = lean::cnstr_get(x_176, 0); +lean::inc(x_177); +if (lean::obj_tag(x_177) == 0) +{ +obj* x_178; +x_178 = lean::cnstr_get(x_176, 3); +lean::inc(x_178); +if (lean::obj_tag(x_178) == 0) +{ +uint8 x_179; +x_179 = !lean::is_exclusive(x_176); +if (x_179 == 0) +{ +obj* x_180; obj* x_181; uint8 x_182; uint8 x_183; +x_180 = lean::cnstr_get(x_176, 3); +lean::dec(x_180); +x_181 = lean::cnstr_get(x_176, 0); +lean::dec(x_181); +x_182 = 0; +lean::cnstr_set(x_176, 0, x_178); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_182); +x_183 = 1; +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_183); +return x_1; +} +else +{ +obj* x_184; obj* x_185; uint8 x_186; obj* x_187; uint8 x_188; +x_184 = lean::cnstr_get(x_176, 1); +x_185 = lean::cnstr_get(x_176, 2); +lean::inc(x_185); +lean::inc(x_184); +lean::dec(x_176); +x_186 = 0; +x_187 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_187, 0, x_178); +lean::cnstr_set(x_187, 1, x_184); +lean::cnstr_set(x_187, 2, x_185); +lean::cnstr_set(x_187, 3, x_178); +lean::cnstr_set_scalar(x_187, sizeof(void*)*4, x_186); +x_188 = 1; +lean::cnstr_set(x_1, 0, x_187); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_188); +return x_1; +} +} +else +{ +uint8 x_189; +x_189 = lean::cnstr_get_scalar(x_178, sizeof(void*)*4); +if (x_189 == 0) +{ +uint8 x_190; +x_190 = !lean::is_exclusive(x_176); +if (x_190 == 0) +{ +obj* x_191; obj* x_192; obj* x_193; obj* x_194; uint8 x_195; +x_191 = lean::cnstr_get(x_176, 1); +x_192 = lean::cnstr_get(x_176, 2); +x_193 = lean::cnstr_get(x_176, 3); +lean::dec(x_193); +x_194 = lean::cnstr_get(x_176, 0); +lean::dec(x_194); +x_195 = !lean::is_exclusive(x_178); +if (x_195 == 0) +{ +obj* x_196; obj* x_197; obj* x_198; obj* x_199; uint8 x_200; +x_196 = lean::cnstr_get(x_178, 0); +x_197 = lean::cnstr_get(x_178, 1); +x_198 = lean::cnstr_get(x_178, 2); +x_199 = lean::cnstr_get(x_178, 3); +x_200 = 1; +lean::cnstr_set(x_178, 3, x_196); +lean::cnstr_set(x_178, 2, x_192); +lean::cnstr_set(x_178, 1, x_191); +lean::cnstr_set(x_178, 0, x_177); +lean::cnstr_set_scalar(x_178, sizeof(void*)*4, x_200); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_199); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_200); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_198); +lean::cnstr_set(x_1, 1, x_197); +lean::cnstr_set(x_1, 0, x_178); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +else +{ +obj* x_201; obj* x_202; obj* x_203; obj* x_204; uint8 x_205; obj* x_206; +x_201 = lean::cnstr_get(x_178, 0); +x_202 = lean::cnstr_get(x_178, 1); +x_203 = lean::cnstr_get(x_178, 2); +x_204 = lean::cnstr_get(x_178, 3); +lean::inc(x_204); +lean::inc(x_203); +lean::inc(x_202); +lean::inc(x_201); +lean::dec(x_178); +x_205 = 1; +x_206 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_206, 0, x_177); +lean::cnstr_set(x_206, 1, x_191); +lean::cnstr_set(x_206, 2, x_192); +lean::cnstr_set(x_206, 3, x_201); +lean::cnstr_set_scalar(x_206, sizeof(void*)*4, x_205); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_204); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_205); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_203); +lean::cnstr_set(x_1, 1, x_202); +lean::cnstr_set(x_1, 0, x_206); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +else +{ +obj* x_207; obj* x_208; obj* x_209; obj* x_210; obj* x_211; obj* x_212; obj* x_213; uint8 x_214; obj* x_215; obj* x_216; +x_207 = lean::cnstr_get(x_176, 1); +x_208 = lean::cnstr_get(x_176, 2); +lean::inc(x_208); +lean::inc(x_207); +lean::dec(x_176); +x_209 = lean::cnstr_get(x_178, 0); +lean::inc(x_209); +x_210 = lean::cnstr_get(x_178, 1); +lean::inc(x_210); +x_211 = lean::cnstr_get(x_178, 2); +lean::inc(x_211); +x_212 = lean::cnstr_get(x_178, 3); +lean::inc(x_212); +if (lean::is_exclusive(x_178)) { + lean::cnstr_release(x_178, 0); + lean::cnstr_release(x_178, 1); + lean::cnstr_release(x_178, 2); + lean::cnstr_release(x_178, 3); + x_213 = x_178; +} else { + lean::dec_ref(x_178); + x_213 = lean::box(0); +} +x_214 = 1; +if (lean::is_scalar(x_213)) { + x_215 = lean::alloc_cnstr(1, 4, 1); +} else { + x_215 = x_213; +} +lean::cnstr_set(x_215, 0, x_177); +lean::cnstr_set(x_215, 1, x_207); +lean::cnstr_set(x_215, 2, x_208); +lean::cnstr_set(x_215, 3, x_209); +lean::cnstr_set_scalar(x_215, sizeof(void*)*4, x_214); +x_216 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_216, 0, x_212); +lean::cnstr_set(x_216, 1, x_29); +lean::cnstr_set(x_216, 2, x_30); +lean::cnstr_set(x_216, 3, x_31); +lean::cnstr_set_scalar(x_216, sizeof(void*)*4, x_214); +lean::cnstr_set(x_1, 3, x_216); +lean::cnstr_set(x_1, 2, x_211); +lean::cnstr_set(x_1, 1, x_210); +lean::cnstr_set(x_1, 0, x_215); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +else +{ +uint8 x_217; +x_217 = !lean::is_exclusive(x_176); +if (x_217 == 0) +{ +obj* x_218; obj* x_219; uint8 x_220; +x_218 = lean::cnstr_get(x_176, 3); +lean::dec(x_218); +x_219 = lean::cnstr_get(x_176, 0); +lean::dec(x_219); +x_220 = 0; +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_220); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +else +{ +obj* x_221; obj* x_222; uint8 x_223; obj* x_224; +x_221 = lean::cnstr_get(x_176, 1); +x_222 = lean::cnstr_get(x_176, 2); +lean::inc(x_222); +lean::inc(x_221); +lean::dec(x_176); +x_223 = 0; +x_224 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_224, 0, x_177); +lean::cnstr_set(x_224, 1, x_221); +lean::cnstr_set(x_224, 2, x_222); +lean::cnstr_set(x_224, 3, x_178); +lean::cnstr_set_scalar(x_224, sizeof(void*)*4, x_223); +lean::cnstr_set(x_1, 0, x_224); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +} +} +else +{ +uint8 x_225; +x_225 = lean::cnstr_get_scalar(x_177, sizeof(void*)*4); +if (x_225 == 0) +{ +uint8 x_226; +x_226 = !lean::is_exclusive(x_176); +if (x_226 == 0) +{ +obj* x_227; obj* x_228; obj* x_229; obj* x_230; uint8 x_231; +x_227 = lean::cnstr_get(x_176, 1); +x_228 = lean::cnstr_get(x_176, 2); +x_229 = lean::cnstr_get(x_176, 3); +x_230 = lean::cnstr_get(x_176, 0); +lean::dec(x_230); +x_231 = !lean::is_exclusive(x_177); +if (x_231 == 0) +{ +uint8 x_232; +x_232 = 1; +lean::cnstr_set_scalar(x_177, sizeof(void*)*4, x_232); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_229); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_232); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_228); +lean::cnstr_set(x_1, 1, x_227); +lean::cnstr_set(x_1, 0, x_177); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +else +{ +obj* x_233; obj* x_234; obj* x_235; obj* x_236; uint8 x_237; obj* x_238; +x_233 = lean::cnstr_get(x_177, 0); +x_234 = lean::cnstr_get(x_177, 1); +x_235 = lean::cnstr_get(x_177, 2); +x_236 = lean::cnstr_get(x_177, 3); +lean::inc(x_236); +lean::inc(x_235); +lean::inc(x_234); +lean::inc(x_233); +lean::dec(x_177); +x_237 = 1; +x_238 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_238, 0, x_233); +lean::cnstr_set(x_238, 1, x_234); +lean::cnstr_set(x_238, 2, x_235); +lean::cnstr_set(x_238, 3, x_236); +lean::cnstr_set_scalar(x_238, sizeof(void*)*4, x_237); +lean::cnstr_set(x_176, 3, x_31); +lean::cnstr_set(x_176, 2, x_30); +lean::cnstr_set(x_176, 1, x_29); +lean::cnstr_set(x_176, 0, x_229); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_237); +lean::cnstr_set(x_1, 3, x_176); +lean::cnstr_set(x_1, 2, x_228); +lean::cnstr_set(x_1, 1, x_227); +lean::cnstr_set(x_1, 0, x_238); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +} +else +{ +obj* x_239; obj* x_240; obj* x_241; obj* x_242; obj* x_243; obj* x_244; obj* x_245; obj* x_246; uint8 x_247; obj* x_248; obj* x_249; +x_239 = lean::cnstr_get(x_176, 1); +x_240 = lean::cnstr_get(x_176, 2); +x_241 = lean::cnstr_get(x_176, 3); +lean::inc(x_241); +lean::inc(x_240); +lean::inc(x_239); +lean::dec(x_176); +x_242 = lean::cnstr_get(x_177, 0); +lean::inc(x_242); +x_243 = lean::cnstr_get(x_177, 1); +lean::inc(x_243); +x_244 = lean::cnstr_get(x_177, 2); +lean::inc(x_244); +x_245 = lean::cnstr_get(x_177, 3); +lean::inc(x_245); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_246 = x_177; +} else { + lean::dec_ref(x_177); + x_246 = lean::box(0); +} +x_247 = 1; +if (lean::is_scalar(x_246)) { + x_248 = lean::alloc_cnstr(1, 4, 1); +} else { + x_248 = x_246; +} +lean::cnstr_set(x_248, 0, x_242); +lean::cnstr_set(x_248, 1, x_243); +lean::cnstr_set(x_248, 2, x_244); +lean::cnstr_set(x_248, 3, x_245); +lean::cnstr_set_scalar(x_248, sizeof(void*)*4, x_247); +x_249 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_249, 0, x_241); +lean::cnstr_set(x_249, 1, x_29); +lean::cnstr_set(x_249, 2, x_30); +lean::cnstr_set(x_249, 3, x_31); +lean::cnstr_set_scalar(x_249, sizeof(void*)*4, x_247); +lean::cnstr_set(x_1, 3, x_249); +lean::cnstr_set(x_1, 2, x_240); +lean::cnstr_set(x_1, 1, x_239); +lean::cnstr_set(x_1, 0, x_248); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +} +else +{ +obj* x_250; +x_250 = lean::cnstr_get(x_176, 3); +lean::inc(x_250); +if (lean::obj_tag(x_250) == 0) +{ +uint8 x_251; +x_251 = !lean::is_exclusive(x_176); +if (x_251 == 0) +{ +obj* x_252; obj* x_253; uint8 x_254; +x_252 = lean::cnstr_get(x_176, 3); +lean::dec(x_252); +x_253 = lean::cnstr_get(x_176, 0); +lean::dec(x_253); +x_254 = 0; +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_254); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +else +{ +obj* x_255; obj* x_256; uint8 x_257; obj* x_258; +x_255 = lean::cnstr_get(x_176, 1); +x_256 = lean::cnstr_get(x_176, 2); +lean::inc(x_256); +lean::inc(x_255); +lean::dec(x_176); +x_257 = 0; +x_258 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_258, 0, x_177); +lean::cnstr_set(x_258, 1, x_255); +lean::cnstr_set(x_258, 2, x_256); +lean::cnstr_set(x_258, 3, x_250); +lean::cnstr_set_scalar(x_258, sizeof(void*)*4, x_257); +lean::cnstr_set(x_1, 0, x_258); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_225); +return x_1; +} +} +else +{ +uint8 x_259; +x_259 = lean::cnstr_get_scalar(x_250, sizeof(void*)*4); +if (x_259 == 0) +{ +uint8 x_260; +lean::free_heap_obj(x_1); +x_260 = !lean::is_exclusive(x_176); +if (x_260 == 0) +{ +obj* x_261; obj* x_262; obj* x_263; obj* x_264; uint8 x_265; +x_261 = lean::cnstr_get(x_176, 1); +x_262 = lean::cnstr_get(x_176, 2); +x_263 = lean::cnstr_get(x_176, 3); +lean::dec(x_263); +x_264 = lean::cnstr_get(x_176, 0); +lean::dec(x_264); +x_265 = !lean::is_exclusive(x_250); +if (x_265 == 0) +{ +obj* x_266; obj* x_267; obj* x_268; obj* x_269; uint8 x_270; +x_266 = lean::cnstr_get(x_250, 0); +x_267 = lean::cnstr_get(x_250, 1); +x_268 = lean::cnstr_get(x_250, 2); +x_269 = lean::cnstr_get(x_250, 3); +lean::inc(x_177); +lean::cnstr_set(x_250, 3, x_266); +lean::cnstr_set(x_250, 2, x_262); +lean::cnstr_set(x_250, 1, x_261); +lean::cnstr_set(x_250, 0, x_177); +x_270 = !lean::is_exclusive(x_177); +if (x_270 == 0) +{ +obj* x_271; obj* x_272; obj* x_273; obj* x_274; +x_271 = lean::cnstr_get(x_177, 3); +lean::dec(x_271); +x_272 = lean::cnstr_get(x_177, 2); +lean::dec(x_272); +x_273 = lean::cnstr_get(x_177, 1); +lean::dec(x_273); +x_274 = lean::cnstr_get(x_177, 0); +lean::dec(x_274); +lean::cnstr_set_scalar(x_250, sizeof(void*)*4, x_225); +lean::cnstr_set(x_177, 3, x_31); +lean::cnstr_set(x_177, 2, x_30); +lean::cnstr_set(x_177, 1, x_29); +lean::cnstr_set(x_177, 0, x_269); +lean::cnstr_set(x_176, 3, x_177); +lean::cnstr_set(x_176, 2, x_268); +lean::cnstr_set(x_176, 1, x_267); +lean::cnstr_set(x_176, 0, x_250); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_259); +return x_176; +} +else +{ +obj* x_275; +lean::dec(x_177); +lean::cnstr_set_scalar(x_250, sizeof(void*)*4, x_225); +x_275 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_275, 0, x_269); +lean::cnstr_set(x_275, 1, x_29); +lean::cnstr_set(x_275, 2, x_30); +lean::cnstr_set(x_275, 3, x_31); +lean::cnstr_set_scalar(x_275, sizeof(void*)*4, x_225); +lean::cnstr_set(x_176, 3, x_275); +lean::cnstr_set(x_176, 2, x_268); +lean::cnstr_set(x_176, 1, x_267); +lean::cnstr_set(x_176, 0, x_250); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_259); +return x_176; +} +} +else +{ +obj* x_276; obj* x_277; obj* x_278; obj* x_279; obj* x_280; obj* x_281; obj* x_282; +x_276 = lean::cnstr_get(x_250, 0); +x_277 = lean::cnstr_get(x_250, 1); +x_278 = lean::cnstr_get(x_250, 2); +x_279 = lean::cnstr_get(x_250, 3); +lean::inc(x_279); +lean::inc(x_278); +lean::inc(x_277); +lean::inc(x_276); +lean::dec(x_250); +lean::inc(x_177); +x_280 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_280, 0, x_177); +lean::cnstr_set(x_280, 1, x_261); +lean::cnstr_set(x_280, 2, x_262); +lean::cnstr_set(x_280, 3, x_276); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_281 = x_177; +} else { + lean::dec_ref(x_177); + x_281 = lean::box(0); +} +lean::cnstr_set_scalar(x_280, sizeof(void*)*4, x_225); +if (lean::is_scalar(x_281)) { + x_282 = lean::alloc_cnstr(1, 4, 1); +} else { + x_282 = x_281; +} +lean::cnstr_set(x_282, 0, x_279); +lean::cnstr_set(x_282, 1, x_29); +lean::cnstr_set(x_282, 2, x_30); +lean::cnstr_set(x_282, 3, x_31); +lean::cnstr_set_scalar(x_282, sizeof(void*)*4, x_225); +lean::cnstr_set(x_176, 3, x_282); +lean::cnstr_set(x_176, 2, x_278); +lean::cnstr_set(x_176, 1, x_277); +lean::cnstr_set(x_176, 0, x_280); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_259); +return x_176; +} +} +else +{ +obj* x_283; obj* x_284; obj* x_285; obj* x_286; obj* x_287; obj* x_288; obj* x_289; obj* x_290; obj* x_291; obj* x_292; obj* x_293; +x_283 = lean::cnstr_get(x_176, 1); +x_284 = lean::cnstr_get(x_176, 2); +lean::inc(x_284); +lean::inc(x_283); +lean::dec(x_176); +x_285 = lean::cnstr_get(x_250, 0); +lean::inc(x_285); +x_286 = lean::cnstr_get(x_250, 1); +lean::inc(x_286); +x_287 = lean::cnstr_get(x_250, 2); +lean::inc(x_287); +x_288 = lean::cnstr_get(x_250, 3); +lean::inc(x_288); +if (lean::is_exclusive(x_250)) { + lean::cnstr_release(x_250, 0); + lean::cnstr_release(x_250, 1); + lean::cnstr_release(x_250, 2); + lean::cnstr_release(x_250, 3); + x_289 = x_250; +} else { + lean::dec_ref(x_250); + x_289 = lean::box(0); +} +lean::inc(x_177); +if (lean::is_scalar(x_289)) { + x_290 = lean::alloc_cnstr(1, 4, 1); +} else { + x_290 = x_289; +} +lean::cnstr_set(x_290, 0, x_177); +lean::cnstr_set(x_290, 1, x_283); +lean::cnstr_set(x_290, 2, x_284); +lean::cnstr_set(x_290, 3, x_285); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_291 = x_177; +} else { + lean::dec_ref(x_177); + x_291 = lean::box(0); +} +lean::cnstr_set_scalar(x_290, sizeof(void*)*4, x_225); +if (lean::is_scalar(x_291)) { + x_292 = lean::alloc_cnstr(1, 4, 1); +} else { + x_292 = x_291; +} +lean::cnstr_set(x_292, 0, x_288); +lean::cnstr_set(x_292, 1, x_29); +lean::cnstr_set(x_292, 2, x_30); +lean::cnstr_set(x_292, 3, x_31); +lean::cnstr_set_scalar(x_292, sizeof(void*)*4, x_225); +x_293 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_293, 0, x_290); +lean::cnstr_set(x_293, 1, x_286); +lean::cnstr_set(x_293, 2, x_287); +lean::cnstr_set(x_293, 3, x_292); +lean::cnstr_set_scalar(x_293, sizeof(void*)*4, x_259); +return x_293; +} +} +else +{ +uint8 x_294; +x_294 = !lean::is_exclusive(x_176); +if (x_294 == 0) +{ +obj* x_295; obj* x_296; uint8 x_297; +x_295 = lean::cnstr_get(x_176, 3); +lean::dec(x_295); +x_296 = lean::cnstr_get(x_176, 0); +lean::dec(x_296); +x_297 = !lean::is_exclusive(x_177); +if (x_297 == 0) +{ +uint8 x_298; +lean::cnstr_set_scalar(x_177, sizeof(void*)*4, x_259); +x_298 = 0; +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_298); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_259); +return x_1; +} +else +{ +obj* x_299; obj* x_300; obj* x_301; obj* x_302; obj* x_303; uint8 x_304; +x_299 = lean::cnstr_get(x_177, 0); +x_300 = lean::cnstr_get(x_177, 1); +x_301 = lean::cnstr_get(x_177, 2); +x_302 = lean::cnstr_get(x_177, 3); +lean::inc(x_302); +lean::inc(x_301); +lean::inc(x_300); +lean::inc(x_299); +lean::dec(x_177); +x_303 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_303, 0, x_299); +lean::cnstr_set(x_303, 1, x_300); +lean::cnstr_set(x_303, 2, x_301); +lean::cnstr_set(x_303, 3, x_302); +lean::cnstr_set_scalar(x_303, sizeof(void*)*4, x_259); +x_304 = 0; +lean::cnstr_set(x_176, 0, x_303); +lean::cnstr_set_scalar(x_176, sizeof(void*)*4, x_304); +lean::cnstr_set(x_1, 0, x_176); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_259); +return x_1; +} +} +else +{ +obj* x_305; obj* x_306; obj* x_307; obj* x_308; obj* x_309; obj* x_310; obj* x_311; obj* x_312; uint8 x_313; obj* x_314; +x_305 = lean::cnstr_get(x_176, 1); +x_306 = lean::cnstr_get(x_176, 2); +lean::inc(x_306); +lean::inc(x_305); +lean::dec(x_176); +x_307 = lean::cnstr_get(x_177, 0); +lean::inc(x_307); +x_308 = lean::cnstr_get(x_177, 1); +lean::inc(x_308); +x_309 = lean::cnstr_get(x_177, 2); +lean::inc(x_309); +x_310 = lean::cnstr_get(x_177, 3); +lean::inc(x_310); +if (lean::is_exclusive(x_177)) { + lean::cnstr_release(x_177, 0); + lean::cnstr_release(x_177, 1); + lean::cnstr_release(x_177, 2); + lean::cnstr_release(x_177, 3); + x_311 = x_177; +} else { + lean::dec_ref(x_177); + x_311 = lean::box(0); +} +if (lean::is_scalar(x_311)) { + x_312 = lean::alloc_cnstr(1, 4, 1); +} else { + x_312 = x_311; +} +lean::cnstr_set(x_312, 0, x_307); +lean::cnstr_set(x_312, 1, x_308); +lean::cnstr_set(x_312, 2, x_309); +lean::cnstr_set(x_312, 3, x_310); +lean::cnstr_set_scalar(x_312, sizeof(void*)*4, x_259); +x_313 = 0; +x_314 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_314, 0, x_312); +lean::cnstr_set(x_314, 1, x_305); +lean::cnstr_set(x_314, 2, x_306); +lean::cnstr_set(x_314, 3, x_250); +lean::cnstr_set_scalar(x_314, sizeof(void*)*4, x_313); +lean::cnstr_set(x_1, 0, x_314); +lean::cnstr_set_scalar(x_1, sizeof(void*)*4, x_259); +return x_1; +} +} +} +} +} +} +} +} +} +else +{ +obj* x_315; obj* x_316; obj* x_317; obj* x_318; uint8 x_319; +x_315 = lean::cnstr_get(x_1, 0); +x_316 = lean::cnstr_get(x_1, 1); +x_317 = lean::cnstr_get(x_1, 2); +x_318 = lean::cnstr_get(x_1, 3); +lean::inc(x_318); +lean::inc(x_317); +lean::inc(x_316); +lean::inc(x_315); +lean::dec(x_1); +x_319 = l_Lean_Name_quickLt(x_2, x_316); +if (x_319 == 0) +{ +uint8 x_320; +x_320 = l_Lean_Name_quickLt(x_316, x_2); +if (x_320 == 0) +{ +obj* x_321; +lean::dec(x_317); +lean::dec(x_316); +x_321 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_321, 0, x_315); +lean::cnstr_set(x_321, 1, x_2); +lean::cnstr_set(x_321, 2, x_3); +lean::cnstr_set(x_321, 3, x_318); +lean::cnstr_set_scalar(x_321, sizeof(void*)*4, x_6); +return x_321; +} +else +{ +uint8 x_322; +x_322 = l_RBNode_isRed___main___rarg(x_318); +if (x_322 == 0) +{ +obj* x_323; obj* x_324; +x_323 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_318, x_2, x_3); +x_324 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_324, 0, x_315); +lean::cnstr_set(x_324, 1, x_316); +lean::cnstr_set(x_324, 2, x_317); +lean::cnstr_set(x_324, 3, x_323); +lean::cnstr_set_scalar(x_324, sizeof(void*)*4, x_6); +return x_324; +} +else +{ +obj* x_325; +x_325 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_318, x_2, x_3); +if (lean::obj_tag(x_325) == 0) +{ +lean::dec(x_317); +lean::dec(x_316); +lean::dec(x_315); +return x_325; +} +else +{ +obj* x_326; +x_326 = lean::cnstr_get(x_325, 0); +lean::inc(x_326); +if (lean::obj_tag(x_326) == 0) +{ +obj* x_327; +x_327 = lean::cnstr_get(x_325, 3); +lean::inc(x_327); +if (lean::obj_tag(x_327) == 0) +{ +obj* x_328; obj* x_329; obj* x_330; uint8 x_331; obj* x_332; uint8 x_333; obj* x_334; +x_328 = lean::cnstr_get(x_325, 1); +lean::inc(x_328); +x_329 = lean::cnstr_get(x_325, 2); +lean::inc(x_329); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_330 = x_325; +} else { + lean::dec_ref(x_325); + x_330 = lean::box(0); +} +x_331 = 0; +if (lean::is_scalar(x_330)) { + x_332 = lean::alloc_cnstr(1, 4, 1); +} else { + x_332 = x_330; +} +lean::cnstr_set(x_332, 0, x_327); +lean::cnstr_set(x_332, 1, x_328); +lean::cnstr_set(x_332, 2, x_329); +lean::cnstr_set(x_332, 3, x_327); +lean::cnstr_set_scalar(x_332, sizeof(void*)*4, x_331); +x_333 = 1; +x_334 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_334, 0, x_315); +lean::cnstr_set(x_334, 1, x_316); +lean::cnstr_set(x_334, 2, x_317); +lean::cnstr_set(x_334, 3, x_332); +lean::cnstr_set_scalar(x_334, sizeof(void*)*4, x_333); +return x_334; +} +else +{ +uint8 x_335; +x_335 = lean::cnstr_get_scalar(x_327, sizeof(void*)*4); +if (x_335 == 0) +{ +obj* x_336; obj* x_337; obj* x_338; obj* x_339; obj* x_340; obj* x_341; obj* x_342; obj* x_343; uint8 x_344; obj* x_345; obj* x_346; obj* x_347; +x_336 = lean::cnstr_get(x_325, 1); +lean::inc(x_336); +x_337 = lean::cnstr_get(x_325, 2); +lean::inc(x_337); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_338 = x_325; +} else { + lean::dec_ref(x_325); + x_338 = lean::box(0); +} +x_339 = lean::cnstr_get(x_327, 0); +lean::inc(x_339); +x_340 = lean::cnstr_get(x_327, 1); +lean::inc(x_340); +x_341 = lean::cnstr_get(x_327, 2); +lean::inc(x_341); +x_342 = lean::cnstr_get(x_327, 3); +lean::inc(x_342); +if (lean::is_exclusive(x_327)) { + lean::cnstr_release(x_327, 0); + lean::cnstr_release(x_327, 1); + lean::cnstr_release(x_327, 2); + lean::cnstr_release(x_327, 3); + x_343 = x_327; +} else { + lean::dec_ref(x_327); + x_343 = lean::box(0); +} +x_344 = 1; +if (lean::is_scalar(x_343)) { + x_345 = lean::alloc_cnstr(1, 4, 1); +} else { + x_345 = x_343; +} +lean::cnstr_set(x_345, 0, x_315); +lean::cnstr_set(x_345, 1, x_316); +lean::cnstr_set(x_345, 2, x_317); +lean::cnstr_set(x_345, 3, x_326); +lean::cnstr_set_scalar(x_345, sizeof(void*)*4, x_344); +if (lean::is_scalar(x_338)) { + x_346 = lean::alloc_cnstr(1, 4, 1); +} else { + x_346 = x_338; +} +lean::cnstr_set(x_346, 0, x_339); +lean::cnstr_set(x_346, 1, x_340); +lean::cnstr_set(x_346, 2, x_341); +lean::cnstr_set(x_346, 3, x_342); +lean::cnstr_set_scalar(x_346, sizeof(void*)*4, x_344); +x_347 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_347, 0, x_345); +lean::cnstr_set(x_347, 1, x_336); +lean::cnstr_set(x_347, 2, x_337); +lean::cnstr_set(x_347, 3, x_346); +lean::cnstr_set_scalar(x_347, sizeof(void*)*4, x_335); +return x_347; +} +else +{ +obj* x_348; obj* x_349; obj* x_350; uint8 x_351; obj* x_352; obj* x_353; +x_348 = lean::cnstr_get(x_325, 1); +lean::inc(x_348); +x_349 = lean::cnstr_get(x_325, 2); +lean::inc(x_349); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_350 = x_325; +} else { + lean::dec_ref(x_325); + x_350 = lean::box(0); +} +x_351 = 0; +if (lean::is_scalar(x_350)) { + x_352 = lean::alloc_cnstr(1, 4, 1); +} else { + x_352 = x_350; +} +lean::cnstr_set(x_352, 0, x_326); +lean::cnstr_set(x_352, 1, x_348); +lean::cnstr_set(x_352, 2, x_349); +lean::cnstr_set(x_352, 3, x_327); +lean::cnstr_set_scalar(x_352, sizeof(void*)*4, x_351); +x_353 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_353, 0, x_315); +lean::cnstr_set(x_353, 1, x_316); +lean::cnstr_set(x_353, 2, x_317); +lean::cnstr_set(x_353, 3, x_352); +lean::cnstr_set_scalar(x_353, sizeof(void*)*4, x_335); +return x_353; +} +} +} +else +{ +uint8 x_354; +x_354 = lean::cnstr_get_scalar(x_326, sizeof(void*)*4); +if (x_354 == 0) +{ +obj* x_355; obj* x_356; obj* x_357; obj* x_358; obj* x_359; obj* x_360; obj* x_361; obj* x_362; obj* x_363; uint8 x_364; obj* x_365; obj* x_366; obj* x_367; +x_355 = lean::cnstr_get(x_325, 1); +lean::inc(x_355); +x_356 = lean::cnstr_get(x_325, 2); +lean::inc(x_356); +x_357 = lean::cnstr_get(x_325, 3); +lean::inc(x_357); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_358 = x_325; +} else { + lean::dec_ref(x_325); + x_358 = lean::box(0); +} +x_359 = lean::cnstr_get(x_326, 0); +lean::inc(x_359); +x_360 = lean::cnstr_get(x_326, 1); +lean::inc(x_360); +x_361 = lean::cnstr_get(x_326, 2); +lean::inc(x_361); +x_362 = lean::cnstr_get(x_326, 3); +lean::inc(x_362); +if (lean::is_exclusive(x_326)) { + lean::cnstr_release(x_326, 0); + lean::cnstr_release(x_326, 1); + lean::cnstr_release(x_326, 2); + lean::cnstr_release(x_326, 3); + x_363 = x_326; +} else { + lean::dec_ref(x_326); + x_363 = lean::box(0); +} +x_364 = 1; +if (lean::is_scalar(x_363)) { + x_365 = lean::alloc_cnstr(1, 4, 1); +} else { + x_365 = x_363; +} +lean::cnstr_set(x_365, 0, x_315); +lean::cnstr_set(x_365, 1, x_316); +lean::cnstr_set(x_365, 2, x_317); +lean::cnstr_set(x_365, 3, x_359); +lean::cnstr_set_scalar(x_365, sizeof(void*)*4, x_364); +if (lean::is_scalar(x_358)) { + x_366 = lean::alloc_cnstr(1, 4, 1); +} else { + x_366 = x_358; +} +lean::cnstr_set(x_366, 0, x_362); +lean::cnstr_set(x_366, 1, x_355); +lean::cnstr_set(x_366, 2, x_356); +lean::cnstr_set(x_366, 3, x_357); +lean::cnstr_set_scalar(x_366, sizeof(void*)*4, x_364); +x_367 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_367, 0, x_365); +lean::cnstr_set(x_367, 1, x_360); +lean::cnstr_set(x_367, 2, x_361); +lean::cnstr_set(x_367, 3, x_366); +lean::cnstr_set_scalar(x_367, sizeof(void*)*4, x_354); +return x_367; +} +else +{ +obj* x_368; +x_368 = lean::cnstr_get(x_325, 3); +lean::inc(x_368); +if (lean::obj_tag(x_368) == 0) +{ +obj* x_369; obj* x_370; obj* x_371; uint8 x_372; obj* x_373; obj* x_374; +x_369 = lean::cnstr_get(x_325, 1); +lean::inc(x_369); +x_370 = lean::cnstr_get(x_325, 2); +lean::inc(x_370); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_371 = x_325; +} else { + lean::dec_ref(x_325); + x_371 = lean::box(0); +} +x_372 = 0; +if (lean::is_scalar(x_371)) { + x_373 = lean::alloc_cnstr(1, 4, 1); +} else { + x_373 = x_371; +} +lean::cnstr_set(x_373, 0, x_326); +lean::cnstr_set(x_373, 1, x_369); +lean::cnstr_set(x_373, 2, x_370); +lean::cnstr_set(x_373, 3, x_368); +lean::cnstr_set_scalar(x_373, sizeof(void*)*4, x_372); +x_374 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_374, 0, x_315); +lean::cnstr_set(x_374, 1, x_316); +lean::cnstr_set(x_374, 2, x_317); +lean::cnstr_set(x_374, 3, x_373); +lean::cnstr_set_scalar(x_374, sizeof(void*)*4, x_354); +return x_374; +} +else +{ +uint8 x_375; +x_375 = lean::cnstr_get_scalar(x_368, sizeof(void*)*4); +if (x_375 == 0) +{ +obj* x_376; obj* x_377; obj* x_378; obj* x_379; obj* x_380; obj* x_381; obj* x_382; obj* x_383; obj* x_384; obj* x_385; obj* x_386; obj* x_387; +x_376 = lean::cnstr_get(x_325, 1); +lean::inc(x_376); +x_377 = lean::cnstr_get(x_325, 2); +lean::inc(x_377); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_378 = x_325; +} else { + lean::dec_ref(x_325); + x_378 = lean::box(0); +} +x_379 = lean::cnstr_get(x_368, 0); +lean::inc(x_379); +x_380 = lean::cnstr_get(x_368, 1); +lean::inc(x_380); +x_381 = lean::cnstr_get(x_368, 2); +lean::inc(x_381); +x_382 = lean::cnstr_get(x_368, 3); +lean::inc(x_382); +if (lean::is_exclusive(x_368)) { + lean::cnstr_release(x_368, 0); + lean::cnstr_release(x_368, 1); + lean::cnstr_release(x_368, 2); + lean::cnstr_release(x_368, 3); + x_383 = x_368; +} else { + lean::dec_ref(x_368); + x_383 = lean::box(0); +} +lean::inc(x_326); +if (lean::is_scalar(x_383)) { + x_384 = lean::alloc_cnstr(1, 4, 1); +} else { + x_384 = x_383; +} +lean::cnstr_set(x_384, 0, x_315); +lean::cnstr_set(x_384, 1, x_316); +lean::cnstr_set(x_384, 2, x_317); +lean::cnstr_set(x_384, 3, x_326); +if (lean::is_exclusive(x_326)) { + lean::cnstr_release(x_326, 0); + lean::cnstr_release(x_326, 1); + lean::cnstr_release(x_326, 2); + lean::cnstr_release(x_326, 3); + x_385 = x_326; +} else { + lean::dec_ref(x_326); + x_385 = lean::box(0); +} +lean::cnstr_set_scalar(x_384, sizeof(void*)*4, x_354); +if (lean::is_scalar(x_385)) { + x_386 = lean::alloc_cnstr(1, 4, 1); +} else { + x_386 = x_385; +} +lean::cnstr_set(x_386, 0, x_379); +lean::cnstr_set(x_386, 1, x_380); +lean::cnstr_set(x_386, 2, x_381); +lean::cnstr_set(x_386, 3, x_382); +lean::cnstr_set_scalar(x_386, sizeof(void*)*4, x_354); +if (lean::is_scalar(x_378)) { + x_387 = lean::alloc_cnstr(1, 4, 1); +} else { + x_387 = x_378; +} +lean::cnstr_set(x_387, 0, x_384); +lean::cnstr_set(x_387, 1, x_376); +lean::cnstr_set(x_387, 2, x_377); +lean::cnstr_set(x_387, 3, x_386); +lean::cnstr_set_scalar(x_387, sizeof(void*)*4, x_375); +return x_387; +} +else +{ +obj* x_388; obj* x_389; obj* x_390; obj* x_391; obj* x_392; obj* x_393; obj* x_394; obj* x_395; obj* x_396; uint8 x_397; obj* x_398; obj* x_399; +x_388 = lean::cnstr_get(x_325, 1); +lean::inc(x_388); +x_389 = lean::cnstr_get(x_325, 2); +lean::inc(x_389); +if (lean::is_exclusive(x_325)) { + lean::cnstr_release(x_325, 0); + lean::cnstr_release(x_325, 1); + lean::cnstr_release(x_325, 2); + lean::cnstr_release(x_325, 3); + x_390 = x_325; +} else { + lean::dec_ref(x_325); + x_390 = lean::box(0); +} +x_391 = lean::cnstr_get(x_326, 0); +lean::inc(x_391); +x_392 = lean::cnstr_get(x_326, 1); +lean::inc(x_392); +x_393 = lean::cnstr_get(x_326, 2); +lean::inc(x_393); +x_394 = lean::cnstr_get(x_326, 3); +lean::inc(x_394); +if (lean::is_exclusive(x_326)) { + lean::cnstr_release(x_326, 0); + lean::cnstr_release(x_326, 1); + lean::cnstr_release(x_326, 2); + lean::cnstr_release(x_326, 3); + x_395 = x_326; +} else { + lean::dec_ref(x_326); + x_395 = lean::box(0); +} +if (lean::is_scalar(x_395)) { + x_396 = lean::alloc_cnstr(1, 4, 1); +} else { + x_396 = x_395; +} +lean::cnstr_set(x_396, 0, x_391); +lean::cnstr_set(x_396, 1, x_392); +lean::cnstr_set(x_396, 2, x_393); +lean::cnstr_set(x_396, 3, x_394); +lean::cnstr_set_scalar(x_396, sizeof(void*)*4, x_375); +x_397 = 0; +if (lean::is_scalar(x_390)) { + x_398 = lean::alloc_cnstr(1, 4, 1); +} else { + x_398 = x_390; +} +lean::cnstr_set(x_398, 0, x_396); +lean::cnstr_set(x_398, 1, x_388); +lean::cnstr_set(x_398, 2, x_389); +lean::cnstr_set(x_398, 3, x_368); +lean::cnstr_set_scalar(x_398, sizeof(void*)*4, x_397); +x_399 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_399, 0, x_315); +lean::cnstr_set(x_399, 1, x_316); +lean::cnstr_set(x_399, 2, x_317); +lean::cnstr_set(x_399, 3, x_398); +lean::cnstr_set_scalar(x_399, sizeof(void*)*4, x_375); +return x_399; +} +} +} +} +} +} +} +} +else +{ +uint8 x_400; +x_400 = l_RBNode_isRed___main___rarg(x_315); +if (x_400 == 0) +{ +obj* x_401; obj* x_402; +x_401 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_315, x_2, x_3); +x_402 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_402, 0, x_401); +lean::cnstr_set(x_402, 1, x_316); +lean::cnstr_set(x_402, 2, x_317); +lean::cnstr_set(x_402, 3, x_318); +lean::cnstr_set_scalar(x_402, sizeof(void*)*4, x_6); +return x_402; +} +else +{ +obj* x_403; +x_403 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_315, x_2, x_3); +if (lean::obj_tag(x_403) == 0) +{ +lean::dec(x_318); +lean::dec(x_317); +lean::dec(x_316); +return x_403; +} +else +{ +obj* x_404; +x_404 = lean::cnstr_get(x_403, 0); +lean::inc(x_404); +if (lean::obj_tag(x_404) == 0) +{ +obj* x_405; +x_405 = lean::cnstr_get(x_403, 3); +lean::inc(x_405); +if (lean::obj_tag(x_405) == 0) +{ +obj* x_406; obj* x_407; obj* x_408; uint8 x_409; obj* x_410; uint8 x_411; obj* x_412; +x_406 = lean::cnstr_get(x_403, 1); +lean::inc(x_406); +x_407 = lean::cnstr_get(x_403, 2); +lean::inc(x_407); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_408 = x_403; +} else { + lean::dec_ref(x_403); + x_408 = lean::box(0); +} +x_409 = 0; +if (lean::is_scalar(x_408)) { + x_410 = lean::alloc_cnstr(1, 4, 1); +} else { + x_410 = x_408; +} +lean::cnstr_set(x_410, 0, x_405); +lean::cnstr_set(x_410, 1, x_406); +lean::cnstr_set(x_410, 2, x_407); +lean::cnstr_set(x_410, 3, x_405); +lean::cnstr_set_scalar(x_410, sizeof(void*)*4, x_409); +x_411 = 1; +x_412 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_412, 0, x_410); +lean::cnstr_set(x_412, 1, x_316); +lean::cnstr_set(x_412, 2, x_317); +lean::cnstr_set(x_412, 3, x_318); +lean::cnstr_set_scalar(x_412, sizeof(void*)*4, x_411); +return x_412; +} +else +{ +uint8 x_413; +x_413 = lean::cnstr_get_scalar(x_405, sizeof(void*)*4); +if (x_413 == 0) +{ +obj* x_414; obj* x_415; obj* x_416; obj* x_417; obj* x_418; obj* x_419; obj* x_420; obj* x_421; uint8 x_422; obj* x_423; obj* x_424; obj* x_425; +x_414 = lean::cnstr_get(x_403, 1); +lean::inc(x_414); +x_415 = lean::cnstr_get(x_403, 2); +lean::inc(x_415); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_416 = x_403; +} else { + lean::dec_ref(x_403); + x_416 = lean::box(0); +} +x_417 = lean::cnstr_get(x_405, 0); +lean::inc(x_417); +x_418 = lean::cnstr_get(x_405, 1); +lean::inc(x_418); +x_419 = lean::cnstr_get(x_405, 2); +lean::inc(x_419); +x_420 = lean::cnstr_get(x_405, 3); +lean::inc(x_420); +if (lean::is_exclusive(x_405)) { + lean::cnstr_release(x_405, 0); + lean::cnstr_release(x_405, 1); + lean::cnstr_release(x_405, 2); + lean::cnstr_release(x_405, 3); + x_421 = x_405; +} else { + lean::dec_ref(x_405); + x_421 = lean::box(0); +} +x_422 = 1; +if (lean::is_scalar(x_421)) { + x_423 = lean::alloc_cnstr(1, 4, 1); +} else { + x_423 = x_421; +} +lean::cnstr_set(x_423, 0, x_404); +lean::cnstr_set(x_423, 1, x_414); +lean::cnstr_set(x_423, 2, x_415); +lean::cnstr_set(x_423, 3, x_417); +lean::cnstr_set_scalar(x_423, sizeof(void*)*4, x_422); +if (lean::is_scalar(x_416)) { + x_424 = lean::alloc_cnstr(1, 4, 1); +} else { + x_424 = x_416; +} +lean::cnstr_set(x_424, 0, x_420); +lean::cnstr_set(x_424, 1, x_316); +lean::cnstr_set(x_424, 2, x_317); +lean::cnstr_set(x_424, 3, x_318); +lean::cnstr_set_scalar(x_424, sizeof(void*)*4, x_422); +x_425 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_425, 0, x_423); +lean::cnstr_set(x_425, 1, x_418); +lean::cnstr_set(x_425, 2, x_419); +lean::cnstr_set(x_425, 3, x_424); +lean::cnstr_set_scalar(x_425, sizeof(void*)*4, x_413); +return x_425; +} +else +{ +obj* x_426; obj* x_427; obj* x_428; uint8 x_429; obj* x_430; obj* x_431; +x_426 = lean::cnstr_get(x_403, 1); +lean::inc(x_426); +x_427 = lean::cnstr_get(x_403, 2); +lean::inc(x_427); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_428 = x_403; +} else { + lean::dec_ref(x_403); + x_428 = lean::box(0); +} +x_429 = 0; +if (lean::is_scalar(x_428)) { + x_430 = lean::alloc_cnstr(1, 4, 1); +} else { + x_430 = x_428; +} +lean::cnstr_set(x_430, 0, x_404); +lean::cnstr_set(x_430, 1, x_426); +lean::cnstr_set(x_430, 2, x_427); +lean::cnstr_set(x_430, 3, x_405); +lean::cnstr_set_scalar(x_430, sizeof(void*)*4, x_429); +x_431 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_431, 0, x_430); +lean::cnstr_set(x_431, 1, x_316); +lean::cnstr_set(x_431, 2, x_317); +lean::cnstr_set(x_431, 3, x_318); +lean::cnstr_set_scalar(x_431, sizeof(void*)*4, x_413); +return x_431; +} +} +} +else +{ +uint8 x_432; +x_432 = lean::cnstr_get_scalar(x_404, sizeof(void*)*4); +if (x_432 == 0) +{ +obj* x_433; obj* x_434; obj* x_435; obj* x_436; obj* x_437; obj* x_438; obj* x_439; obj* x_440; obj* x_441; uint8 x_442; obj* x_443; obj* x_444; obj* x_445; +x_433 = lean::cnstr_get(x_403, 1); +lean::inc(x_433); +x_434 = lean::cnstr_get(x_403, 2); +lean::inc(x_434); +x_435 = lean::cnstr_get(x_403, 3); +lean::inc(x_435); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_436 = x_403; +} else { + lean::dec_ref(x_403); + x_436 = lean::box(0); +} +x_437 = lean::cnstr_get(x_404, 0); +lean::inc(x_437); +x_438 = lean::cnstr_get(x_404, 1); +lean::inc(x_438); +x_439 = lean::cnstr_get(x_404, 2); +lean::inc(x_439); +x_440 = lean::cnstr_get(x_404, 3); +lean::inc(x_440); +if (lean::is_exclusive(x_404)) { + lean::cnstr_release(x_404, 0); + lean::cnstr_release(x_404, 1); + lean::cnstr_release(x_404, 2); + lean::cnstr_release(x_404, 3); + x_441 = x_404; +} else { + lean::dec_ref(x_404); + x_441 = lean::box(0); +} +x_442 = 1; +if (lean::is_scalar(x_441)) { + x_443 = lean::alloc_cnstr(1, 4, 1); +} else { + x_443 = x_441; +} +lean::cnstr_set(x_443, 0, x_437); +lean::cnstr_set(x_443, 1, x_438); +lean::cnstr_set(x_443, 2, x_439); +lean::cnstr_set(x_443, 3, x_440); +lean::cnstr_set_scalar(x_443, sizeof(void*)*4, x_442); +if (lean::is_scalar(x_436)) { + x_444 = lean::alloc_cnstr(1, 4, 1); +} else { + x_444 = x_436; +} +lean::cnstr_set(x_444, 0, x_435); +lean::cnstr_set(x_444, 1, x_316); +lean::cnstr_set(x_444, 2, x_317); +lean::cnstr_set(x_444, 3, x_318); +lean::cnstr_set_scalar(x_444, sizeof(void*)*4, x_442); +x_445 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_445, 0, x_443); +lean::cnstr_set(x_445, 1, x_433); +lean::cnstr_set(x_445, 2, x_434); +lean::cnstr_set(x_445, 3, x_444); +lean::cnstr_set_scalar(x_445, sizeof(void*)*4, x_432); +return x_445; +} +else +{ +obj* x_446; +x_446 = lean::cnstr_get(x_403, 3); +lean::inc(x_446); +if (lean::obj_tag(x_446) == 0) +{ +obj* x_447; obj* x_448; obj* x_449; uint8 x_450; obj* x_451; obj* x_452; +x_447 = lean::cnstr_get(x_403, 1); +lean::inc(x_447); +x_448 = lean::cnstr_get(x_403, 2); +lean::inc(x_448); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_449 = x_403; +} else { + lean::dec_ref(x_403); + x_449 = lean::box(0); +} +x_450 = 0; +if (lean::is_scalar(x_449)) { + x_451 = lean::alloc_cnstr(1, 4, 1); +} else { + x_451 = x_449; +} +lean::cnstr_set(x_451, 0, x_404); +lean::cnstr_set(x_451, 1, x_447); +lean::cnstr_set(x_451, 2, x_448); +lean::cnstr_set(x_451, 3, x_446); +lean::cnstr_set_scalar(x_451, sizeof(void*)*4, x_450); +x_452 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_452, 0, x_451); +lean::cnstr_set(x_452, 1, x_316); +lean::cnstr_set(x_452, 2, x_317); +lean::cnstr_set(x_452, 3, x_318); +lean::cnstr_set_scalar(x_452, sizeof(void*)*4, x_432); +return x_452; +} +else +{ +uint8 x_453; +x_453 = lean::cnstr_get_scalar(x_446, sizeof(void*)*4); +if (x_453 == 0) +{ +obj* x_454; obj* x_455; obj* x_456; obj* x_457; obj* x_458; obj* x_459; obj* x_460; obj* x_461; obj* x_462; obj* x_463; obj* x_464; obj* x_465; +x_454 = lean::cnstr_get(x_403, 1); +lean::inc(x_454); +x_455 = lean::cnstr_get(x_403, 2); +lean::inc(x_455); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_456 = x_403; +} else { + lean::dec_ref(x_403); + x_456 = lean::box(0); +} +x_457 = lean::cnstr_get(x_446, 0); +lean::inc(x_457); +x_458 = lean::cnstr_get(x_446, 1); +lean::inc(x_458); +x_459 = lean::cnstr_get(x_446, 2); +lean::inc(x_459); +x_460 = lean::cnstr_get(x_446, 3); +lean::inc(x_460); +if (lean::is_exclusive(x_446)) { + lean::cnstr_release(x_446, 0); + lean::cnstr_release(x_446, 1); + lean::cnstr_release(x_446, 2); + lean::cnstr_release(x_446, 3); + x_461 = x_446; +} else { + lean::dec_ref(x_446); + x_461 = lean::box(0); +} +lean::inc(x_404); +if (lean::is_scalar(x_461)) { + x_462 = lean::alloc_cnstr(1, 4, 1); +} else { + x_462 = x_461; +} +lean::cnstr_set(x_462, 0, x_404); +lean::cnstr_set(x_462, 1, x_454); +lean::cnstr_set(x_462, 2, x_455); +lean::cnstr_set(x_462, 3, x_457); +if (lean::is_exclusive(x_404)) { + lean::cnstr_release(x_404, 0); + lean::cnstr_release(x_404, 1); + lean::cnstr_release(x_404, 2); + lean::cnstr_release(x_404, 3); + x_463 = x_404; +} else { + lean::dec_ref(x_404); + x_463 = lean::box(0); +} +lean::cnstr_set_scalar(x_462, sizeof(void*)*4, x_432); +if (lean::is_scalar(x_463)) { + x_464 = lean::alloc_cnstr(1, 4, 1); +} else { + x_464 = x_463; +} +lean::cnstr_set(x_464, 0, x_460); +lean::cnstr_set(x_464, 1, x_316); +lean::cnstr_set(x_464, 2, x_317); +lean::cnstr_set(x_464, 3, x_318); +lean::cnstr_set_scalar(x_464, sizeof(void*)*4, x_432); +if (lean::is_scalar(x_456)) { + x_465 = lean::alloc_cnstr(1, 4, 1); +} else { + x_465 = x_456; +} +lean::cnstr_set(x_465, 0, x_462); +lean::cnstr_set(x_465, 1, x_458); +lean::cnstr_set(x_465, 2, x_459); +lean::cnstr_set(x_465, 3, x_464); +lean::cnstr_set_scalar(x_465, sizeof(void*)*4, x_453); +return x_465; +} +else +{ +obj* x_466; obj* x_467; obj* x_468; obj* x_469; obj* x_470; obj* x_471; obj* x_472; obj* x_473; obj* x_474; uint8 x_475; obj* x_476; obj* x_477; +x_466 = lean::cnstr_get(x_403, 1); +lean::inc(x_466); +x_467 = lean::cnstr_get(x_403, 2); +lean::inc(x_467); +if (lean::is_exclusive(x_403)) { + lean::cnstr_release(x_403, 0); + lean::cnstr_release(x_403, 1); + lean::cnstr_release(x_403, 2); + lean::cnstr_release(x_403, 3); + x_468 = x_403; +} else { + lean::dec_ref(x_403); + x_468 = lean::box(0); +} +x_469 = lean::cnstr_get(x_404, 0); +lean::inc(x_469); +x_470 = lean::cnstr_get(x_404, 1); +lean::inc(x_470); +x_471 = lean::cnstr_get(x_404, 2); +lean::inc(x_471); +x_472 = lean::cnstr_get(x_404, 3); +lean::inc(x_472); +if (lean::is_exclusive(x_404)) { + lean::cnstr_release(x_404, 0); + lean::cnstr_release(x_404, 1); + lean::cnstr_release(x_404, 2); + lean::cnstr_release(x_404, 3); + x_473 = x_404; +} else { + lean::dec_ref(x_404); + x_473 = lean::box(0); +} +if (lean::is_scalar(x_473)) { + x_474 = lean::alloc_cnstr(1, 4, 1); +} else { + x_474 = x_473; +} +lean::cnstr_set(x_474, 0, x_469); +lean::cnstr_set(x_474, 1, x_470); +lean::cnstr_set(x_474, 2, x_471); +lean::cnstr_set(x_474, 3, x_472); +lean::cnstr_set_scalar(x_474, sizeof(void*)*4, x_453); +x_475 = 0; +if (lean::is_scalar(x_468)) { + x_476 = lean::alloc_cnstr(1, 4, 1); +} else { + x_476 = x_468; +} +lean::cnstr_set(x_476, 0, x_474); +lean::cnstr_set(x_476, 1, x_466); +lean::cnstr_set(x_476, 2, x_467); +lean::cnstr_set(x_476, 3, x_446); +lean::cnstr_set_scalar(x_476, sizeof(void*)*4, x_475); +x_477 = lean::alloc_cnstr(1, 4, 1); +lean::cnstr_set(x_477, 0, x_476); +lean::cnstr_set(x_477, 1, x_316); +lean::cnstr_set(x_477, 2, x_317); +lean::cnstr_set(x_477, 3, x_318); +lean::cnstr_set_scalar(x_477, sizeof(void*)*4, x_453); +return x_477; +} +} +} +} +} +} +} +} +} +} +} +} +obj* l_RBNode_insert___at_Lean_addBuiltinCommandElab___spec__6(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = l_RBNode_isRed___main___rarg(x_1); +if (x_4 == 0) +{ +obj* x_5; +x_5 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_1, x_2, x_3); +return x_5; +} +else +{ +obj* x_6; obj* x_7; +x_6 = l_RBNode_ins___main___at_Lean_addBuiltinCommandElab___spec__7(x_1, x_2, x_3); +x_7 = l_RBNode_setBlack___main___rarg(x_6); +return x_7; +} +} +} +obj* l_AssocList_mfoldl___main___at_Lean_addBuiltinCommandElab___spec__11(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +uint8 x_3; +x_3 = !lean::is_exclusive(x_2); +if (x_3 == 0) +{ +obj* x_4; obj* x_5; obj* x_6; usize x_7; usize x_8; obj* x_9; usize x_10; obj* x_11; usize x_12; obj* x_13; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 2); +x_6 = lean::array_get_size(x_1); +x_7 = lean_name_hash_usize(x_4); +x_8 = lean::usize_modn(x_7, x_6); +lean::dec(x_6); +x_9 = lean::box_size_t(x_8); +x_10 = lean::unbox_size_t(x_9); +x_11 = lean::array_uget(x_1, x_10); +lean::cnstr_set(x_2, 2, x_11); +x_12 = lean::unbox_size_t(x_9); +lean::dec(x_9); +x_13 = lean::array_uset(x_1, x_12, x_2); +x_1 = x_13; +x_2 = x_5; +goto _start; +} +else +{ +obj* x_15; obj* x_16; obj* x_17; obj* x_18; usize x_19; usize x_20; obj* x_21; usize x_22; obj* x_23; obj* x_24; usize x_25; obj* x_26; +x_15 = lean::cnstr_get(x_2, 0); +x_16 = lean::cnstr_get(x_2, 1); +x_17 = lean::cnstr_get(x_2, 2); +lean::inc(x_17); +lean::inc(x_16); +lean::inc(x_15); +lean::dec(x_2); +x_18 = lean::array_get_size(x_1); +x_19 = lean_name_hash_usize(x_15); +x_20 = lean::usize_modn(x_19, x_18); +lean::dec(x_18); +x_21 = lean::box_size_t(x_20); +x_22 = lean::unbox_size_t(x_21); +x_23 = lean::array_uget(x_1, x_22); +x_24 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_24, 0, x_15); +lean::cnstr_set(x_24, 1, x_16); +lean::cnstr_set(x_24, 2, x_23); +x_25 = lean::unbox_size_t(x_21); +lean::dec(x_21); +x_26 = lean::array_uset(x_1, x_25, x_24); +x_1 = x_26; +x_2 = x_17; +goto _start; +} +} +} +} +obj* l_HashMapImp_moveEntries___main___at_Lean_addBuiltinCommandElab___spec__10(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; uint8 x_5; +x_4 = lean::array_get_size(x_2); +x_5 = lean::nat_dec_lt(x_1, x_4); +lean::dec(x_4); +if (x_5 == 0) +{ +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +else +{ +obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; +x_6 = lean::array_fget(x_2, x_1); +x_7 = lean::box(0); +x_8 = lean::array_fset(x_2, x_1, x_7); +x_9 = l_AssocList_mfoldl___main___at_Lean_addBuiltinCommandElab___spec__11(x_3, x_6); +x_10 = lean::mk_nat_obj(1u); +x_11 = lean::nat_add(x_1, x_10); +lean::dec(x_1); +x_1 = x_11; +x_2 = x_8; +x_3 = x_9; +goto _start; +} +} +} +obj* l_HashMapImp_expand___at_Lean_addBuiltinCommandElab___spec__9(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; +x_3 = lean::array_get_size(x_2); +x_4 = lean::mk_nat_obj(2u); +x_5 = lean::nat_mul(x_3, x_4); +lean::dec(x_3); +x_6 = lean::box(0); +x_7 = lean::mk_array(x_5, x_6); +x_8 = lean::mk_nat_obj(0u); +x_9 = l_HashMapImp_moveEntries___main___at_Lean_addBuiltinCommandElab___spec__10(x_8, x_2, x_7); +x_10 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_10, 0, x_1); +lean::cnstr_set(x_10, 1, x_9); +return x_10; +} +} +obj* l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_3) == 0) +{ +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +else +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_3); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; uint8 x_8; +x_5 = lean::cnstr_get(x_3, 0); +x_6 = lean::cnstr_get(x_3, 1); +x_7 = lean::cnstr_get(x_3, 2); +x_8 = lean_name_dec_eq(x_5, x_1); +if (x_8 == 0) +{ +obj* x_9; +x_9 = l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(x_1, x_2, x_7); +lean::cnstr_set(x_3, 2, x_9); +return x_3; +} +else +{ +lean::dec(x_6); +lean::dec(x_5); +lean::cnstr_set(x_3, 1, x_2); +lean::cnstr_set(x_3, 0, x_1); +return x_3; +} +} +else +{ +obj* x_10; obj* x_11; obj* x_12; uint8 x_13; +x_10 = lean::cnstr_get(x_3, 0); +x_11 = lean::cnstr_get(x_3, 1); +x_12 = lean::cnstr_get(x_3, 2); +lean::inc(x_12); +lean::inc(x_11); +lean::inc(x_10); +lean::dec(x_3); +x_13 = lean_name_dec_eq(x_10, x_1); +if (x_13 == 0) +{ +obj* x_14; obj* x_15; +x_14 = l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(x_1, x_2, x_12); +x_15 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_15, 0, x_10); +lean::cnstr_set(x_15, 1, x_11); +lean::cnstr_set(x_15, 2, x_14); +return x_15; +} +else +{ +obj* x_16; +lean::dec(x_11); +lean::dec(x_10); +x_16 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_16, 0, x_1); +lean::cnstr_set(x_16, 1, x_2); +lean::cnstr_set(x_16, 2, x_12); +return x_16; +} +} +} +} +} +obj* l_HashMapImp_insert___at_Lean_addBuiltinCommandElab___spec__8(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_1); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; usize x_8; usize x_9; obj* x_10; usize x_11; obj* x_12; uint8 x_13; +x_5 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +x_7 = lean::array_get_size(x_6); +x_8 = lean_name_hash_usize(x_2); +x_9 = lean::usize_modn(x_8, x_7); +x_10 = lean::box_size_t(x_9); +x_11 = lean::unbox_size_t(x_10); +x_12 = lean::array_uget(x_6, x_11); +x_13 = l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(x_2, x_12); +if (x_13 == 0) +{ +obj* x_14; obj* x_15; obj* x_16; usize x_17; obj* x_18; uint8 x_19; +x_14 = lean::mk_nat_obj(1u); +x_15 = lean::nat_add(x_5, x_14); +lean::dec(x_5); +x_16 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_16, 0, x_2); +lean::cnstr_set(x_16, 1, x_3); +lean::cnstr_set(x_16, 2, x_12); +x_17 = lean::unbox_size_t(x_10); +lean::dec(x_10); +x_18 = lean::array_uset(x_6, x_17, x_16); +x_19 = lean::nat_dec_le(x_15, x_7); +lean::dec(x_7); +if (x_19 == 0) +{ +obj* x_20; +lean::free_heap_obj(x_1); +x_20 = l_HashMapImp_expand___at_Lean_addBuiltinCommandElab___spec__9(x_15, x_18); +return x_20; +} +else +{ +lean::cnstr_set(x_1, 1, x_18); +lean::cnstr_set(x_1, 0, x_15); +return x_1; +} +} +else +{ +obj* x_21; usize x_22; obj* x_23; +lean::dec(x_7); +x_21 = l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(x_2, x_3, x_12); +x_22 = lean::unbox_size_t(x_10); +lean::dec(x_10); +x_23 = lean::array_uset(x_6, x_22, x_21); +lean::cnstr_set(x_1, 1, x_23); +return x_1; +} +} +else +{ +obj* x_24; obj* x_25; obj* x_26; usize x_27; usize x_28; obj* x_29; usize x_30; obj* x_31; uint8 x_32; +x_24 = lean::cnstr_get(x_1, 0); +x_25 = lean::cnstr_get(x_1, 1); +lean::inc(x_25); +lean::inc(x_24); +lean::dec(x_1); +x_26 = lean::array_get_size(x_25); +x_27 = lean_name_hash_usize(x_2); +x_28 = lean::usize_modn(x_27, x_26); +x_29 = lean::box_size_t(x_28); +x_30 = lean::unbox_size_t(x_29); +x_31 = lean::array_uget(x_25, x_30); +x_32 = l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(x_2, x_31); +if (x_32 == 0) +{ +obj* x_33; obj* x_34; obj* x_35; usize x_36; obj* x_37; uint8 x_38; +x_33 = lean::mk_nat_obj(1u); +x_34 = lean::nat_add(x_24, x_33); +lean::dec(x_24); +x_35 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_35, 0, x_2); +lean::cnstr_set(x_35, 1, x_3); +lean::cnstr_set(x_35, 2, x_31); +x_36 = lean::unbox_size_t(x_29); +lean::dec(x_29); +x_37 = lean::array_uset(x_25, x_36, x_35); +x_38 = lean::nat_dec_le(x_34, x_26); +lean::dec(x_26); +if (x_38 == 0) +{ +obj* x_39; +x_39 = l_HashMapImp_expand___at_Lean_addBuiltinCommandElab___spec__9(x_34, x_37); +return x_39; +} +else +{ +obj* x_40; +x_40 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_40, 0, x_34); +lean::cnstr_set(x_40, 1, x_37); +return x_40; +} +} +else +{ +obj* x_41; usize x_42; obj* x_43; obj* x_44; +lean::dec(x_26); +x_41 = l_AssocList_replace___main___at_Lean_addBuiltinCommandElab___spec__12(x_2, x_3, x_31); +x_42 = lean::unbox_size_t(x_29); +lean::dec(x_29); +x_43 = lean::array_uset(x_25, x_42, x_41); +x_44 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_44, 0, x_24); +lean::cnstr_set(x_44, 1, x_43); +return x_44; +} +} +} +} +obj* l_Lean_SMap_insert___main___at_Lean_addBuiltinCommandElab___spec__5(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = lean::cnstr_get_scalar(x_1, sizeof(void*)*2); +if (x_4 == 0) +{ +uint8 x_5; +x_5 = !lean::is_exclusive(x_1); +if (x_5 == 0) +{ +obj* x_6; obj* x_7; +x_6 = lean::cnstr_get(x_1, 1); +x_7 = l_RBNode_insert___at_Lean_addBuiltinCommandElab___spec__6(x_6, x_2, x_3); +lean::cnstr_set(x_1, 1, x_7); +return x_1; +} +else +{ +obj* x_8; obj* x_9; obj* x_10; obj* x_11; +x_8 = lean::cnstr_get(x_1, 0); +x_9 = lean::cnstr_get(x_1, 1); +lean::inc(x_9); +lean::inc(x_8); +lean::dec(x_1); +x_10 = l_RBNode_insert___at_Lean_addBuiltinCommandElab___spec__6(x_9, x_2, x_3); +x_11 = lean::alloc_cnstr(0, 2, 1); +lean::cnstr_set(x_11, 0, x_8); +lean::cnstr_set(x_11, 1, x_10); +lean::cnstr_set_scalar(x_11, sizeof(void*)*2, x_4); +return x_11; +} +} +else +{ +uint8 x_12; +x_12 = !lean::is_exclusive(x_1); +if (x_12 == 0) +{ +obj* x_13; obj* x_14; +x_13 = lean::cnstr_get(x_1, 0); +x_14 = l_HashMapImp_insert___at_Lean_addBuiltinCommandElab___spec__8(x_13, x_2, x_3); +lean::cnstr_set(x_1, 0, x_14); +return x_1; +} +else +{ +obj* x_15; obj* x_16; obj* x_17; obj* x_18; +x_15 = lean::cnstr_get(x_1, 0); +x_16 = lean::cnstr_get(x_1, 1); +lean::inc(x_16); +lean::inc(x_15); +lean::dec(x_1); +x_17 = l_HashMapImp_insert___at_Lean_addBuiltinCommandElab___spec__8(x_15, x_2, x_3); +x_18 = lean::alloc_cnstr(0, 2, 1); +lean::cnstr_set(x_18, 0, x_17); +lean::cnstr_set(x_18, 1, x_16); +lean::cnstr_set_scalar(x_18, sizeof(void*)*2, x_4); +return x_18; +} +} +} +} +obj* _init_l_Lean_addBuiltinCommandElab___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("invalid builtin command elaborator, elaborator for '"); +return x_1; +} +} +obj* l_Lean_addBuiltinCommandElab(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; obj* x_6; +x_5 = l_Lean_builtinCommandElabTable; +x_6 = lean::io_ref_get(x_5, x_4); +if (lean::obj_tag(x_6) == 0) +{ +uint8 x_7; +x_7 = !lean::is_exclusive(x_6); +if (x_7 == 0) +{ +obj* x_8; uint8 x_9; +x_8 = lean::cnstr_get(x_6, 0); +x_9 = l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1(x_8, x_1); +lean::dec(x_8); +if (x_9 == 0) +{ +obj* x_10; obj* x_11; +x_10 = lean::box(0); +lean::cnstr_set(x_6, 0, x_10); +x_11 = lean::io_ref_get(x_5, x_6); +if (lean::obj_tag(x_11) == 0) +{ +uint8 x_12; +x_12 = !lean::is_exclusive(x_11); +if (x_12 == 0) +{ +obj* x_13; obj* x_14; +x_13 = lean::cnstr_get(x_11, 0); +lean::cnstr_set(x_11, 0, x_10); +x_14 = lean::io_ref_reset(x_5, x_11); +if (lean::obj_tag(x_14) == 0) +{ +uint8 x_15; +x_15 = !lean::is_exclusive(x_14); +if (x_15 == 0) +{ +obj* x_16; obj* x_17; obj* x_18; +x_16 = lean::cnstr_get(x_14, 0); +lean::dec(x_16); +lean::cnstr_set(x_14, 0, x_10); +x_17 = l_Lean_SMap_insert___main___at_Lean_addBuiltinCommandElab___spec__5(x_13, x_1, x_3); +x_18 = lean::io_ref_set(x_5, x_17, x_14); +return x_18; +} +else +{ +obj* x_19; obj* x_20; obj* x_21; obj* x_22; +x_19 = lean::cnstr_get(x_14, 1); +lean::inc(x_19); +lean::dec(x_14); +x_20 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_20, 0, x_10); +lean::cnstr_set(x_20, 1, x_19); +x_21 = l_Lean_SMap_insert___main___at_Lean_addBuiltinCommandElab___spec__5(x_13, x_1, x_3); +x_22 = lean::io_ref_set(x_5, x_21, x_20); +return x_22; +} +} +else +{ +uint8 x_23; +lean::dec(x_13); +lean::dec(x_3); +lean::dec(x_1); +x_23 = !lean::is_exclusive(x_14); +if (x_23 == 0) +{ +return x_14; +} +else +{ +obj* x_24; obj* x_25; obj* x_26; +x_24 = lean::cnstr_get(x_14, 0); +x_25 = lean::cnstr_get(x_14, 1); +lean::inc(x_25); +lean::inc(x_24); +lean::dec(x_14); +x_26 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_26, 0, x_24); +lean::cnstr_set(x_26, 1, x_25); +return x_26; +} +} +} +else +{ +obj* x_27; obj* x_28; obj* x_29; obj* x_30; +x_27 = lean::cnstr_get(x_11, 0); +x_28 = lean::cnstr_get(x_11, 1); +lean::inc(x_28); +lean::inc(x_27); +lean::dec(x_11); +x_29 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_29, 0, x_10); +lean::cnstr_set(x_29, 1, x_28); +x_30 = lean::io_ref_reset(x_5, x_29); +if (lean::obj_tag(x_30) == 0) +{ +obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; +x_31 = lean::cnstr_get(x_30, 1); +lean::inc(x_31); +if (lean::is_exclusive(x_30)) { + lean::cnstr_release(x_30, 0); + lean::cnstr_release(x_30, 1); + x_32 = x_30; +} else { + lean::dec_ref(x_30); + x_32 = lean::box(0); +} +if (lean::is_scalar(x_32)) { + x_33 = lean::alloc_cnstr(0, 2, 0); +} else { + x_33 = x_32; +} +lean::cnstr_set(x_33, 0, x_10); +lean::cnstr_set(x_33, 1, x_31); +x_34 = l_Lean_SMap_insert___main___at_Lean_addBuiltinCommandElab___spec__5(x_27, x_1, x_3); +x_35 = lean::io_ref_set(x_5, x_34, x_33); +return x_35; +} +else +{ +obj* x_36; obj* x_37; obj* x_38; obj* x_39; +lean::dec(x_27); +lean::dec(x_3); +lean::dec(x_1); +x_36 = lean::cnstr_get(x_30, 0); +lean::inc(x_36); +x_37 = lean::cnstr_get(x_30, 1); +lean::inc(x_37); +if (lean::is_exclusive(x_30)) { + lean::cnstr_release(x_30, 0); + lean::cnstr_release(x_30, 1); + x_38 = x_30; +} else { + lean::dec_ref(x_30); + x_38 = lean::box(0); +} +if (lean::is_scalar(x_38)) { + x_39 = lean::alloc_cnstr(1, 2, 0); +} else { + x_39 = x_38; +} +lean::cnstr_set(x_39, 0, x_36); +lean::cnstr_set(x_39, 1, x_37); +return x_39; +} +} +} +else +{ +uint8 x_40; +lean::dec(x_3); +lean::dec(x_1); +x_40 = !lean::is_exclusive(x_11); +if (x_40 == 0) +{ +return x_11; +} +else +{ +obj* x_41; obj* x_42; obj* x_43; +x_41 = lean::cnstr_get(x_11, 0); +x_42 = lean::cnstr_get(x_11, 1); +lean::inc(x_42); +lean::inc(x_41); +lean::dec(x_11); +x_43 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_43, 0, x_41); +lean::cnstr_set(x_43, 1, x_42); +return x_43; +} +} +} +else +{ +obj* x_44; obj* x_45; obj* x_46; obj* x_47; obj* x_48; obj* x_49; +lean::dec(x_3); +x_44 = l_Lean_Name_toString___closed__1; +x_45 = l_Lean_Name_toStringWithSep___main(x_44, x_1); +x_46 = l_Lean_addBuiltinCommandElab___closed__1; +x_47 = lean::string_append(x_46, x_45); +lean::dec(x_45); +x_48 = l_Lean_addBuiltinTermElab___closed__2; +x_49 = lean::string_append(x_47, x_48); +lean::cnstr_set_tag(x_6, 1); +lean::cnstr_set(x_6, 0, x_49); +return x_6; +} +} +else +{ +obj* x_50; obj* x_51; uint8 x_52; +x_50 = lean::cnstr_get(x_6, 0); +x_51 = lean::cnstr_get(x_6, 1); +lean::inc(x_51); +lean::inc(x_50); +lean::dec(x_6); +x_52 = l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1(x_50, x_1); +lean::dec(x_50); +if (x_52 == 0) +{ +obj* x_53; obj* x_54; obj* x_55; +x_53 = lean::box(0); +x_54 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_54, 0, x_53); +lean::cnstr_set(x_54, 1, x_51); +x_55 = lean::io_ref_get(x_5, x_54); +if (lean::obj_tag(x_55) == 0) +{ +obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; +x_56 = lean::cnstr_get(x_55, 0); +lean::inc(x_56); +x_57 = lean::cnstr_get(x_55, 1); +lean::inc(x_57); +if (lean::is_exclusive(x_55)) { + lean::cnstr_release(x_55, 0); + lean::cnstr_release(x_55, 1); + x_58 = x_55; +} else { + lean::dec_ref(x_55); + x_58 = lean::box(0); +} +if (lean::is_scalar(x_58)) { + x_59 = lean::alloc_cnstr(0, 2, 0); +} else { + x_59 = x_58; +} +lean::cnstr_set(x_59, 0, x_53); +lean::cnstr_set(x_59, 1, x_57); +x_60 = lean::io_ref_reset(x_5, x_59); +if (lean::obj_tag(x_60) == 0) +{ +obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; +x_61 = lean::cnstr_get(x_60, 1); +lean::inc(x_61); +if (lean::is_exclusive(x_60)) { + lean::cnstr_release(x_60, 0); + lean::cnstr_release(x_60, 1); + x_62 = x_60; +} else { + lean::dec_ref(x_60); + x_62 = lean::box(0); +} +if (lean::is_scalar(x_62)) { + x_63 = lean::alloc_cnstr(0, 2, 0); +} else { + x_63 = x_62; +} +lean::cnstr_set(x_63, 0, x_53); +lean::cnstr_set(x_63, 1, x_61); +x_64 = l_Lean_SMap_insert___main___at_Lean_addBuiltinCommandElab___spec__5(x_56, x_1, x_3); +x_65 = lean::io_ref_set(x_5, x_64, x_63); +return x_65; +} +else +{ +obj* x_66; obj* x_67; obj* x_68; obj* x_69; +lean::dec(x_56); +lean::dec(x_3); +lean::dec(x_1); +x_66 = lean::cnstr_get(x_60, 0); +lean::inc(x_66); +x_67 = lean::cnstr_get(x_60, 1); +lean::inc(x_67); +if (lean::is_exclusive(x_60)) { + lean::cnstr_release(x_60, 0); + lean::cnstr_release(x_60, 1); + x_68 = x_60; +} else { + lean::dec_ref(x_60); + x_68 = lean::box(0); +} +if (lean::is_scalar(x_68)) { + x_69 = lean::alloc_cnstr(1, 2, 0); +} else { + x_69 = x_68; +} +lean::cnstr_set(x_69, 0, x_66); +lean::cnstr_set(x_69, 1, x_67); +return x_69; +} +} +else +{ +obj* x_70; obj* x_71; obj* x_72; obj* x_73; +lean::dec(x_3); +lean::dec(x_1); +x_70 = lean::cnstr_get(x_55, 0); +lean::inc(x_70); +x_71 = lean::cnstr_get(x_55, 1); +lean::inc(x_71); +if (lean::is_exclusive(x_55)) { + lean::cnstr_release(x_55, 0); + lean::cnstr_release(x_55, 1); + x_72 = x_55; +} else { + lean::dec_ref(x_55); + x_72 = lean::box(0); +} +if (lean::is_scalar(x_72)) { + x_73 = lean::alloc_cnstr(1, 2, 0); +} else { + x_73 = x_72; +} +lean::cnstr_set(x_73, 0, x_70); +lean::cnstr_set(x_73, 1, x_71); +return x_73; +} +} +else +{ +obj* x_74; obj* x_75; obj* x_76; obj* x_77; obj* x_78; obj* x_79; obj* x_80; +lean::dec(x_3); +x_74 = l_Lean_Name_toString___closed__1; +x_75 = l_Lean_Name_toStringWithSep___main(x_74, x_1); +x_76 = l_Lean_addBuiltinCommandElab___closed__1; +x_77 = lean::string_append(x_76, x_75); +lean::dec(x_75); +x_78 = l_Lean_addBuiltinTermElab___closed__2; +x_79 = lean::string_append(x_77, x_78); +x_80 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_80, 0, x_79); +lean::cnstr_set(x_80, 1, x_51); +return x_80; +} +} +} +else +{ +uint8 x_81; +lean::dec(x_3); +lean::dec(x_1); +x_81 = !lean::is_exclusive(x_6); +if (x_81 == 0) +{ +return x_6; +} +else +{ +obj* x_82; obj* x_83; obj* x_84; +x_82 = lean::cnstr_get(x_6, 0); +x_83 = lean::cnstr_get(x_6, 1); +lean::inc(x_83); +lean::inc(x_82); +lean::dec(x_6); +x_84 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_84, 0, x_82); +lean::cnstr_set(x_84, 1, x_83); +return x_84; +} +} +} +} +obj* l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_AssocList_contains___main___at_Lean_addBuiltinCommandElab___spec__3(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_HashMapImp_contains___at_Lean_addBuiltinCommandElab___spec__2(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_RBNode_find___main___at_Lean_addBuiltinCommandElab___spec__4(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +} +obj* l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_Lean_SMap_contains___main___at_Lean_addBuiltinCommandElab___spec__1(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_Lean_addBuiltinCommandElab___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_Lean_addBuiltinCommandElab(x_1, x_2, x_3, x_4); +lean::dec(x_2); +return x_5; +} +} +obj* _init_l_Lean_checkSyntaxNodeKind___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("failed"); +return x_1; +} +} +obj* l_Lean_checkSyntaxNodeKind(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_Lean_Parser_isValidSyntaxNodeKind(x_1, x_2); +if (lean::obj_tag(x_3) == 0) +{ +obj* x_4; uint8 x_5; +x_4 = lean::cnstr_get(x_3, 0); +lean::inc(x_4); +x_5 = lean::unbox(x_4); +lean::dec(x_4); +if (x_5 == 0) +{ +uint8 x_6; +lean::dec(x_1); +x_6 = !lean::is_exclusive(x_3); +if (x_6 == 0) +{ +obj* x_7; obj* x_8; +x_7 = lean::cnstr_get(x_3, 0); +lean::dec(x_7); +x_8 = l_Lean_checkSyntaxNodeKind___closed__1; +lean::cnstr_set_tag(x_3, 1); +lean::cnstr_set(x_3, 0, x_8); +return x_3; +} +else +{ +obj* x_9; obj* x_10; obj* x_11; +x_9 = lean::cnstr_get(x_3, 1); +lean::inc(x_9); +lean::dec(x_3); +x_10 = l_Lean_checkSyntaxNodeKind___closed__1; +x_11 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_11, 0, x_10); +lean::cnstr_set(x_11, 1, x_9); +return x_11; +} +} +else +{ +uint8 x_12; +x_12 = !lean::is_exclusive(x_3); +if (x_12 == 0) +{ +obj* x_13; +x_13 = lean::cnstr_get(x_3, 0); +lean::dec(x_13); +lean::cnstr_set(x_3, 0, x_1); +return x_3; +} +else +{ +obj* x_14; obj* x_15; +x_14 = lean::cnstr_get(x_3, 1); +lean::inc(x_14); +lean::dec(x_3); +x_15 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_15, 0, x_1); +lean::cnstr_set(x_15, 1, x_14); +return x_15; +} +} +} +else +{ +uint8 x_16; +lean::dec(x_1); +x_16 = !lean::is_exclusive(x_3); +if (x_16 == 0) +{ +return x_3; +} +else +{ +obj* x_17; obj* x_18; obj* x_19; +x_17 = lean::cnstr_get(x_3, 0); +x_18 = lean::cnstr_get(x_3, 1); +lean::inc(x_18); +lean::inc(x_17); +lean::dec(x_3); +x_19 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_19, 0, x_17); +lean::cnstr_set(x_19, 1, x_18); +return x_19; +} +} +} +} +obj* l_Lean_checkSyntaxNodeKindAtNamespaces___main(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +uint8 x_4; +lean::dec(x_1); +x_4 = !lean::is_exclusive(x_3); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; +x_5 = lean::cnstr_get(x_3, 0); +lean::dec(x_5); +x_6 = l_Lean_checkSyntaxNodeKind___closed__1; +lean::cnstr_set_tag(x_3, 1); +lean::cnstr_set(x_3, 0, x_6); +return x_3; +} +else +{ +obj* x_7; obj* x_8; obj* x_9; +x_7 = lean::cnstr_get(x_3, 1); +lean::inc(x_7); +lean::dec(x_3); +x_8 = l_Lean_checkSyntaxNodeKind___closed__1; +x_9 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_9, 0, x_8); +lean::cnstr_set(x_9, 1, x_7); +return x_9; +} +} +else +{ +obj* x_10; obj* x_11; obj* x_12; obj* x_13; +x_10 = lean::cnstr_get(x_2, 0); +x_11 = lean::cnstr_get(x_2, 1); +lean::inc(x_1); +x_12 = l_Lean_Name_append___main(x_10, x_1); +x_13 = l_Lean_checkSyntaxNodeKind(x_12, x_3); +if (lean::obj_tag(x_13) == 0) +{ +lean::dec(x_1); +return x_13; +} +else +{ +uint8 x_14; +x_14 = !lean::is_exclusive(x_13); +if (x_14 == 0) +{ +obj* x_15; obj* x_16; +x_15 = lean::cnstr_get(x_13, 0); +lean::dec(x_15); +x_16 = lean::box(0); +lean::cnstr_set_tag(x_13, 0); +lean::cnstr_set(x_13, 0, x_16); +x_2 = x_11; +x_3 = x_13; +goto _start; +} +else +{ +obj* x_18; obj* x_19; obj* x_20; +x_18 = lean::cnstr_get(x_13, 1); +lean::inc(x_18); +lean::dec(x_13); +x_19 = lean::box(0); +x_20 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_20, 0, x_19); +lean::cnstr_set(x_20, 1, x_18); +x_2 = x_11; +x_3 = x_20; +goto _start; +} +} +} +} +} +obj* l_Lean_checkSyntaxNodeKindAtNamespaces___main___boxed(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_Lean_checkSyntaxNodeKindAtNamespaces___main(x_1, x_2, x_3); +lean::dec(x_2); +return x_4; +} +} +obj* l_Lean_checkSyntaxNodeKindAtNamespaces(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_Lean_checkSyntaxNodeKindAtNamespaces___main(x_1, x_2, x_3); +return x_4; +} +} +obj* l_Lean_checkSyntaxNodeKindAtNamespaces___boxed(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; +x_4 = l_Lean_checkSyntaxNodeKindAtNamespaces(x_1, x_2, x_3); +lean::dec(x_2); +return x_4; +} +} +obj* _init_l_Lean_syntaxNodeKindOfAttrParam___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("syntax node kind is missing"); +return x_1; +} +} +obj* _init_l_Lean_syntaxNodeKindOfAttrParam___closed__2() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("invalid syntax node kind '"); +return x_1; +} +} +obj* l_Lean_syntaxNodeKindOfAttrParam(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_Lean_attrParamSyntaxToIdentifier(x_3); +if (lean::obj_tag(x_5) == 0) +{ +uint8 x_6; +lean::dec(x_1); +x_6 = !lean::is_exclusive(x_4); +if (x_6 == 0) +{ +obj* x_7; obj* x_8; +x_7 = lean::cnstr_get(x_4, 0); +lean::dec(x_7); +x_8 = l_Lean_syntaxNodeKindOfAttrParam___closed__1; +lean::cnstr_set_tag(x_4, 1); +lean::cnstr_set(x_4, 0, x_8); return x_4; } else { -obj* x_7; obj* x_8; -x_7 = lean::cnstr_get(x_4, 1); -lean::inc(x_7); +obj* x_9; obj* x_10; obj* x_11; +x_9 = lean::cnstr_get(x_4, 1); +lean::inc(x_9); lean::dec(x_4); -x_8 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_8, 0, x_1); -lean::cnstr_set(x_8, 1, x_7); -return x_8; +x_10 = l_Lean_syntaxNodeKindOfAttrParam___closed__1; +x_11 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_11, 0, x_10); +lean::cnstr_set(x_11, 1, x_9); +return x_11; +} +} +else +{ +obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; +x_12 = lean::cnstr_get(x_5, 0); +lean::inc(x_12); +lean::dec(x_5); +x_13 = lean::get_namespaces_core(x_1); +lean::inc(x_12); +x_14 = l_Lean_Name_append___main(x_2, x_12); +x_15 = l_Lean_Name_toString___closed__1; +lean::inc(x_12); +x_16 = l_Lean_Name_toStringWithSep___main(x_15, x_12); +x_17 = l_Lean_syntaxNodeKindOfAttrParam___closed__2; +x_18 = lean::string_append(x_17, x_16); +lean::dec(x_16); +x_19 = l_Char_HasRepr___closed__1; +x_20 = lean::string_append(x_18, x_19); +lean::inc(x_12); +x_21 = l_Lean_checkSyntaxNodeKind(x_12, x_4); +if (lean::obj_tag(x_21) == 0) +{ +lean::dec(x_20); +lean::dec(x_14); +lean::dec(x_13); +lean::dec(x_12); +return x_21; +} +else +{ +uint8 x_22; +x_22 = !lean::is_exclusive(x_21); +if (x_22 == 0) +{ +obj* x_23; obj* x_24; obj* x_25; +x_23 = lean::cnstr_get(x_21, 0); +lean::dec(x_23); +x_24 = lean::box(0); +lean::cnstr_set_tag(x_21, 0); +lean::cnstr_set(x_21, 0, x_24); +x_25 = l_Lean_checkSyntaxNodeKindAtNamespaces___main(x_12, x_13, x_21); +lean::dec(x_13); +if (lean::obj_tag(x_25) == 0) +{ +lean::dec(x_20); +lean::dec(x_14); +return x_25; +} +else +{ +uint8 x_26; +x_26 = !lean::is_exclusive(x_25); +if (x_26 == 0) +{ +obj* x_27; obj* x_28; +x_27 = lean::cnstr_get(x_25, 0); +lean::dec(x_27); +lean::cnstr_set_tag(x_25, 0); +lean::cnstr_set(x_25, 0, x_24); +x_28 = l_Lean_checkSyntaxNodeKind(x_14, x_25); +if (lean::obj_tag(x_28) == 0) +{ +lean::dec(x_20); +return x_28; +} +else +{ +uint8 x_29; +x_29 = !lean::is_exclusive(x_28); +if (x_29 == 0) +{ +obj* x_30; +x_30 = lean::cnstr_get(x_28, 0); +lean::dec(x_30); +lean::cnstr_set(x_28, 0, x_20); +return x_28; +} +else +{ +obj* x_31; obj* x_32; +x_31 = lean::cnstr_get(x_28, 1); +lean::inc(x_31); +lean::dec(x_28); +x_32 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_32, 0, x_20); +lean::cnstr_set(x_32, 1, x_31); +return x_32; +} +} +} +else +{ +obj* x_33; obj* x_34; obj* x_35; +x_33 = lean::cnstr_get(x_25, 1); +lean::inc(x_33); +lean::dec(x_25); +x_34 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_34, 0, x_24); +lean::cnstr_set(x_34, 1, x_33); +x_35 = l_Lean_checkSyntaxNodeKind(x_14, x_34); +if (lean::obj_tag(x_35) == 0) +{ +lean::dec(x_20); +return x_35; +} +else +{ +obj* x_36; obj* x_37; obj* x_38; +x_36 = lean::cnstr_get(x_35, 1); +lean::inc(x_36); +if (lean::is_exclusive(x_35)) { + lean::cnstr_release(x_35, 0); + lean::cnstr_release(x_35, 1); + x_37 = x_35; +} else { + lean::dec_ref(x_35); + x_37 = lean::box(0); +} +if (lean::is_scalar(x_37)) { + x_38 = lean::alloc_cnstr(1, 2, 0); +} else { + x_38 = x_37; +} +lean::cnstr_set(x_38, 0, x_20); +lean::cnstr_set(x_38, 1, x_36); +return x_38; +} +} +} +} +else +{ +obj* x_39; obj* x_40; obj* x_41; obj* x_42; +x_39 = lean::cnstr_get(x_21, 1); +lean::inc(x_39); +lean::dec(x_21); +x_40 = lean::box(0); +x_41 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_41, 0, x_40); +lean::cnstr_set(x_41, 1, x_39); +x_42 = l_Lean_checkSyntaxNodeKindAtNamespaces___main(x_12, x_13, x_41); +lean::dec(x_13); +if (lean::obj_tag(x_42) == 0) +{ +lean::dec(x_20); +lean::dec(x_14); +return x_42; +} +else +{ +obj* x_43; obj* x_44; obj* x_45; obj* x_46; +x_43 = lean::cnstr_get(x_42, 1); +lean::inc(x_43); +if (lean::is_exclusive(x_42)) { + lean::cnstr_release(x_42, 0); + lean::cnstr_release(x_42, 1); + x_44 = x_42; +} else { + lean::dec_ref(x_42); + x_44 = lean::box(0); +} +if (lean::is_scalar(x_44)) { + x_45 = lean::alloc_cnstr(0, 2, 0); +} else { + x_45 = x_44; + lean::cnstr_set_tag(x_45, 0); +} +lean::cnstr_set(x_45, 0, x_40); +lean::cnstr_set(x_45, 1, x_43); +x_46 = l_Lean_checkSyntaxNodeKind(x_14, x_45); +if (lean::obj_tag(x_46) == 0) +{ +lean::dec(x_20); +return x_46; +} +else +{ +obj* x_47; obj* x_48; obj* x_49; +x_47 = lean::cnstr_get(x_46, 1); +lean::inc(x_47); +if (lean::is_exclusive(x_46)) { + lean::cnstr_release(x_46, 0); + lean::cnstr_release(x_46, 1); + x_48 = x_46; +} else { + lean::dec_ref(x_46); + x_48 = lean::box(0); +} +if (lean::is_scalar(x_48)) { + x_49 = lean::alloc_cnstr(1, 2, 0); +} else { + x_49 = x_48; +} +lean::cnstr_set(x_49, 0, x_20); +lean::cnstr_set(x_49, 1, x_47); +return x_49; +} +} +} +} +} +} +} +obj* l_Lean_syntaxNodeKindOfAttrParam___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_Lean_syntaxNodeKindOfAttrParam(x_1, x_2, x_3, x_4); +lean::dec(x_3); +lean::dec(x_2); +return x_5; +} +} +obj* _init_l_Lean_declareBuiltinTermElab___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("_regBuiltinTermElab"); +return x_1; +} +} +obj* _init_l_Lean_declareBuiltinTermElab___closed__2() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = lean::box(0); +x_2 = l_Lean_declareBuiltinTermElab___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_declareBuiltinTermElab___closed__3() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("addBuiltinTermElab"); +return x_1; +} +} +obj* _init_l_Lean_declareBuiltinTermElab___closed__4() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_nameToExprAux___main___closed__4; +x_2 = l_Lean_declareBuiltinTermElab___closed__3; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +obj* _init_l_Lean_declareBuiltinTermElab___closed__5() { +_start: +{ +obj* x_1; +x_1 = lean::mk_string("failed to emit registration code for builtin term elaborator '"); +return x_1; +} +} +obj* l_Lean_declareBuiltinTermElab(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; uint8 x_19; obj* x_20; obj* x_21; obj* x_22; obj* x_23; +x_5 = l_Lean_declareBuiltinTermElab___closed__2; +lean::inc(x_3); +x_6 = l_Lean_Name_append___main(x_5, x_3); +x_7 = lean::box(0); +x_8 = l_Lean_nameToExprAux___main(x_2); +lean::inc(x_3); +x_9 = l_Lean_nameToExprAux___main(x_3); +lean::inc(x_3); +x_10 = lean_expr_mk_const(x_3, x_7); +x_11 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_11, 0, x_10); +lean::cnstr_set(x_11, 1, x_7); +x_12 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_12, 0, x_9); +lean::cnstr_set(x_12, 1, x_11); +x_13 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_13, 0, x_8); +lean::cnstr_set(x_13, 1, x_12); +x_14 = l_Lean_declareBuiltinTermElab___closed__4; +x_15 = l_Lean_mkCApp(x_14, x_13); +x_16 = l_Lean_Parser_declareBuiltinParser___closed__5; +lean::inc(x_6); +x_17 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_17, 0, x_6); +lean::cnstr_set(x_17, 1, x_7); +lean::cnstr_set(x_17, 2, x_16); +x_18 = lean::box(0); +x_19 = 0; +x_20 = lean::alloc_cnstr(0, 3, 1); +lean::cnstr_set(x_20, 0, x_17); +lean::cnstr_set(x_20, 1, x_15); +lean::cnstr_set(x_20, 2, x_18); +lean::cnstr_set_scalar(x_20, sizeof(void*)*3, x_19); +x_21 = lean::alloc_cnstr(1, 1, 0); +lean::cnstr_set(x_21, 0, x_20); +x_22 = l_Lean_Options_empty; +x_23 = lean_add_and_compile(x_1, x_22, x_21); +lean::dec(x_21); +if (lean::obj_tag(x_23) == 0) +{ +uint8 x_24; +lean::dec(x_6); +x_24 = !lean::is_exclusive(x_4); +if (x_24 == 0) +{ +obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; +x_25 = lean::cnstr_get(x_4, 0); +lean::dec(x_25); +x_26 = l_Lean_Name_toString___closed__1; +x_27 = l_Lean_Name_toStringWithSep___main(x_26, x_3); +x_28 = l_Lean_declareBuiltinTermElab___closed__5; +x_29 = lean::string_append(x_28, x_27); +lean::dec(x_27); +x_30 = l_Char_HasRepr___closed__1; +x_31 = lean::string_append(x_29, x_30); +lean::cnstr_set_tag(x_4, 1); +lean::cnstr_set(x_4, 0, x_31); +return x_4; +} +else +{ +obj* x_32; obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; +x_32 = lean::cnstr_get(x_4, 1); +lean::inc(x_32); +lean::dec(x_4); +x_33 = l_Lean_Name_toString___closed__1; +x_34 = l_Lean_Name_toStringWithSep___main(x_33, x_3); +x_35 = l_Lean_declareBuiltinTermElab___closed__5; +x_36 = lean::string_append(x_35, x_34); +lean::dec(x_34); +x_37 = l_Char_HasRepr___closed__1; +x_38 = lean::string_append(x_36, x_37); +x_39 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_39, 0, x_38); +lean::cnstr_set(x_39, 1, x_32); +return x_39; +} +} +else +{ +obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; +lean::dec(x_3); +x_40 = lean::cnstr_get(x_23, 0); +lean::inc(x_40); +lean::dec(x_23); +x_41 = l_Lean_initAttr; +x_42 = lean::box(0); +x_43 = l_Lean_ParametricAttribute_setParam___rarg(x_41, x_40, x_6, x_42); +x_44 = l_IO_ofExcept___at_Lean_Parser_declareBuiltinParser___spec__1(x_43, x_4); +lean::dec(x_43); +return x_44; } } } @@ -227,8 +7643,7 @@ _start: { obj* x_5; x_5 = l_Lean_declareBuiltinTermElab(x_1, x_2, x_3, x_4); -lean::dec(x_3); -lean::dec(x_2); +lean::dec(x_1); return x_5; } } @@ -274,24 +7689,6 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -obj* _init_l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__6() { -_start: -{ -obj* x_1; -x_1 = lean::mk_string("kind"); -return x_1; -} -} -obj* _init_l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7() { -_start: -{ -obj* x_1; obj* x_2; obj* x_3; -x_1 = lean::box(0); -x_2 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__6; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} obj* l_Lean_registerBuiltinTermElabAttr___lambda__1(obj* x_1, obj* x_2, obj* x_3, uint8 x_4, obj* x_5) { _start: { @@ -331,182 +7728,369 @@ x_12 = !lean::is_exclusive(x_5); if (x_12 == 0) { obj* x_13; obj* x_14; obj* x_15; obj* x_16; -x_13 = lean::cnstr_get(x_5, 1); -x_14 = lean::cnstr_get(x_5, 0); -lean::dec(x_14); -x_15 = lean::box(0); -lean::inc(x_13); -lean::cnstr_set(x_5, 0, x_15); -lean::inc(x_2); +x_13 = lean::cnstr_get(x_5, 0); +lean::dec(x_13); +x_14 = lean::box(0); +lean::cnstr_set(x_5, 0, x_14); +x_15 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; lean::inc(x_1); -x_16 = lean::environment_find_core(x_1, x_2); +x_16 = l_Lean_syntaxNodeKindOfAttrParam(x_1, x_15, x_3, x_5); if (lean::obj_tag(x_16) == 0) { -obj* x_17; obj* x_18; -lean::dec(x_5); -lean::dec(x_2); -lean::dec(x_1); -x_17 = l_Lean_mkInitAttr___lambda__1___closed__1; -x_18 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_18, 0, x_17); -lean::cnstr_set(x_18, 1, x_13); -return x_18; -} -else +uint8 x_17; +x_17 = !lean::is_exclusive(x_16); +if (x_17 == 0) { -obj* x_19; obj* x_20; -x_19 = lean::cnstr_get(x_16, 0); +obj* x_18; obj* x_19; obj* x_20; +x_18 = lean::cnstr_get(x_16, 0); +x_19 = lean::cnstr_get(x_16, 1); lean::inc(x_19); -lean::dec(x_16); -x_20 = l_Lean_ConstantInfo_type(x_19); -lean::dec(x_19); -if (lean::obj_tag(x_20) == 4) -{ -obj* x_21; obj* x_22; uint8 x_23; -x_21 = lean::cnstr_get(x_20, 0); -lean::inc(x_21); -lean::dec(x_20); -x_22 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; -x_23 = lean_name_dec_eq(x_21, x_22); -lean::dec(x_21); -if (x_23 == 0) -{ -obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; -lean::dec(x_5); -lean::dec(x_1); -x_24 = l_Lean_Name_toString___closed__1; -x_25 = l_Lean_Name_toStringWithSep___main(x_24, x_2); -x_26 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; -x_27 = lean::string_append(x_26, x_25); -lean::dec(x_25); -x_28 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; -x_29 = lean::string_append(x_27, x_28); -x_30 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_30, 0, x_29); -lean::cnstr_set(x_30, 1, x_13); -return x_30; -} -else -{ -obj* x_31; obj* x_32; -lean::dec(x_13); -x_31 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7; -x_32 = l_Lean_declareBuiltinTermElab(x_1, x_31, x_2, x_5); -lean::dec(x_2); -return x_32; -} -} -else -{ -obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; -lean::dec(x_20); -lean::dec(x_5); -lean::dec(x_1); -x_33 = l_Lean_Name_toString___closed__1; -x_34 = l_Lean_Name_toStringWithSep___main(x_33, x_2); -x_35 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; -x_36 = lean::string_append(x_35, x_34); -lean::dec(x_34); -x_37 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; -x_38 = lean::string_append(x_36, x_37); -x_39 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_39, 0, x_38); -lean::cnstr_set(x_39, 1, x_13); -return x_39; -} -} -} -else -{ -obj* x_40; obj* x_41; obj* x_42; obj* x_43; -x_40 = lean::cnstr_get(x_5, 1); -lean::inc(x_40); -lean::dec(x_5); -x_41 = lean::box(0); -lean::inc(x_40); -x_42 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_42, 0, x_41); -lean::cnstr_set(x_42, 1, x_40); +lean::cnstr_set(x_16, 0, x_14); lean::inc(x_2); lean::inc(x_1); -x_43 = lean::environment_find_core(x_1, x_2); -if (lean::obj_tag(x_43) == 0) +x_20 = lean::environment_find_core(x_1, x_2); +if (lean::obj_tag(x_20) == 0) { -obj* x_44; obj* x_45; -lean::dec(x_42); +obj* x_21; obj* x_22; +lean::dec(x_16); +lean::dec(x_18); lean::dec(x_2); lean::dec(x_1); -x_44 = l_Lean_mkInitAttr___lambda__1___closed__1; -x_45 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_45, 0, x_44); -lean::cnstr_set(x_45, 1, x_40); -return x_45; +x_21 = l_Lean_mkInitAttr___lambda__1___closed__1; +x_22 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_22, 0, x_21); +lean::cnstr_set(x_22, 1, x_19); +return x_22; } else { -obj* x_46; obj* x_47; -x_46 = lean::cnstr_get(x_43, 0); -lean::inc(x_46); +obj* x_23; obj* x_24; +x_23 = lean::cnstr_get(x_20, 0); +lean::inc(x_23); +lean::dec(x_20); +x_24 = l_Lean_ConstantInfo_type(x_23); +lean::dec(x_23); +if (lean::obj_tag(x_24) == 4) +{ +obj* x_25; obj* x_26; uint8 x_27; +x_25 = lean::cnstr_get(x_24, 0); +lean::inc(x_25); +lean::dec(x_24); +x_26 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; +x_27 = lean_name_dec_eq(x_25, x_26); +lean::dec(x_25); +if (x_27 == 0) +{ +obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; +lean::dec(x_16); +lean::dec(x_18); +lean::dec(x_1); +x_28 = l_Lean_Name_toString___closed__1; +x_29 = l_Lean_Name_toStringWithSep___main(x_28, x_2); +x_30 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +x_31 = lean::string_append(x_30, x_29); +lean::dec(x_29); +x_32 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; +x_33 = lean::string_append(x_31, x_32); +x_34 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_34, 0, x_33); +lean::cnstr_set(x_34, 1, x_19); +return x_34; +} +else +{ +obj* x_35; +lean::dec(x_19); +x_35 = l_Lean_declareBuiltinTermElab(x_1, x_18, x_2, x_16); +lean::dec(x_1); +return x_35; +} +} +else +{ +obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; +lean::dec(x_24); +lean::dec(x_16); +lean::dec(x_18); +lean::dec(x_1); +x_36 = l_Lean_Name_toString___closed__1; +x_37 = l_Lean_Name_toStringWithSep___main(x_36, x_2); +x_38 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +x_39 = lean::string_append(x_38, x_37); +lean::dec(x_37); +x_40 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; +x_41 = lean::string_append(x_39, x_40); +x_42 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_42, 0, x_41); +lean::cnstr_set(x_42, 1, x_19); +return x_42; +} +} +} +else +{ +obj* x_43; obj* x_44; obj* x_45; obj* x_46; +x_43 = lean::cnstr_get(x_16, 0); +x_44 = lean::cnstr_get(x_16, 1); +lean::inc(x_44); +lean::inc(x_43); +lean::dec(x_16); +lean::inc(x_44); +x_45 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_45, 0, x_14); +lean::cnstr_set(x_45, 1, x_44); +lean::inc(x_2); +lean::inc(x_1); +x_46 = lean::environment_find_core(x_1, x_2); +if (lean::obj_tag(x_46) == 0) +{ +obj* x_47; obj* x_48; +lean::dec(x_45); lean::dec(x_43); -x_47 = l_Lean_ConstantInfo_type(x_46); -lean::dec(x_46); -if (lean::obj_tag(x_47) == 4) -{ -obj* x_48; obj* x_49; uint8 x_50; -x_48 = lean::cnstr_get(x_47, 0); -lean::inc(x_48); -lean::dec(x_47); -x_49 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; -x_50 = lean_name_dec_eq(x_48, x_49); -lean::dec(x_48); -if (x_50 == 0) -{ -obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; -lean::dec(x_42); -lean::dec(x_1); -x_51 = l_Lean_Name_toString___closed__1; -x_52 = l_Lean_Name_toStringWithSep___main(x_51, x_2); -x_53 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; -x_54 = lean::string_append(x_53, x_52); -lean::dec(x_52); -x_55 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; -x_56 = lean::string_append(x_54, x_55); -x_57 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_57, 0, x_56); -lean::cnstr_set(x_57, 1, x_40); -return x_57; -} -else -{ -obj* x_58; obj* x_59; -lean::dec(x_40); -x_58 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7; -x_59 = l_Lean_declareBuiltinTermElab(x_1, x_58, x_2, x_42); lean::dec(x_2); -return x_59; +lean::dec(x_1); +x_47 = l_Lean_mkInitAttr___lambda__1___closed__1; +x_48 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_48, 0, x_47); +lean::cnstr_set(x_48, 1, x_44); +return x_48; +} +else +{ +obj* x_49; obj* x_50; +x_49 = lean::cnstr_get(x_46, 0); +lean::inc(x_49); +lean::dec(x_46); +x_50 = l_Lean_ConstantInfo_type(x_49); +lean::dec(x_49); +if (lean::obj_tag(x_50) == 4) +{ +obj* x_51; obj* x_52; uint8 x_53; +x_51 = lean::cnstr_get(x_50, 0); +lean::inc(x_51); +lean::dec(x_50); +x_52 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; +x_53 = lean_name_dec_eq(x_51, x_52); +lean::dec(x_51); +if (x_53 == 0) +{ +obj* x_54; obj* x_55; obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; +lean::dec(x_45); +lean::dec(x_43); +lean::dec(x_1); +x_54 = l_Lean_Name_toString___closed__1; +x_55 = l_Lean_Name_toStringWithSep___main(x_54, x_2); +x_56 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +x_57 = lean::string_append(x_56, x_55); +lean::dec(x_55); +x_58 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; +x_59 = lean::string_append(x_57, x_58); +x_60 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_60, 0, x_59); +lean::cnstr_set(x_60, 1, x_44); +return x_60; +} +else +{ +obj* x_61; +lean::dec(x_44); +x_61 = l_Lean_declareBuiltinTermElab(x_1, x_43, x_2, x_45); +lean::dec(x_1); +return x_61; } } else { -obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; -lean::dec(x_47); -lean::dec(x_42); +obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; obj* x_67; obj* x_68; +lean::dec(x_50); +lean::dec(x_45); +lean::dec(x_43); lean::dec(x_1); -x_60 = l_Lean_Name_toString___closed__1; -x_61 = l_Lean_Name_toStringWithSep___main(x_60, x_2); -x_62 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; -x_63 = lean::string_append(x_62, x_61); -lean::dec(x_61); -x_64 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; -x_65 = lean::string_append(x_63, x_64); -x_66 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_66, 0, x_65); -lean::cnstr_set(x_66, 1, x_40); -return x_66; +x_62 = l_Lean_Name_toString___closed__1; +x_63 = l_Lean_Name_toStringWithSep___main(x_62, x_2); +x_64 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +x_65 = lean::string_append(x_64, x_63); +lean::dec(x_63); +x_66 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; +x_67 = lean::string_append(x_65, x_66); +x_68 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_68, 0, x_67); +lean::cnstr_set(x_68, 1, x_44); +return x_68; } } } } +else +{ +uint8 x_69; +lean::dec(x_2); +lean::dec(x_1); +x_69 = !lean::is_exclusive(x_16); +if (x_69 == 0) +{ +return x_16; +} +else +{ +obj* x_70; obj* x_71; obj* x_72; +x_70 = lean::cnstr_get(x_16, 0); +x_71 = lean::cnstr_get(x_16, 1); +lean::inc(x_71); +lean::inc(x_70); +lean::dec(x_16); +x_72 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_72, 0, x_70); +lean::cnstr_set(x_72, 1, x_71); +return x_72; +} +} +} +else +{ +obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; +x_73 = lean::cnstr_get(x_5, 1); +lean::inc(x_73); +lean::dec(x_5); +x_74 = lean::box(0); +x_75 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_75, 0, x_74); +lean::cnstr_set(x_75, 1, x_73); +x_76 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; +lean::inc(x_1); +x_77 = l_Lean_syntaxNodeKindOfAttrParam(x_1, x_76, x_3, x_75); +if (lean::obj_tag(x_77) == 0) +{ +obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; +x_78 = lean::cnstr_get(x_77, 0); +lean::inc(x_78); +x_79 = lean::cnstr_get(x_77, 1); +lean::inc(x_79); +if (lean::is_exclusive(x_77)) { + lean::cnstr_release(x_77, 0); + lean::cnstr_release(x_77, 1); + x_80 = x_77; +} else { + lean::dec_ref(x_77); + x_80 = lean::box(0); +} +lean::inc(x_79); +if (lean::is_scalar(x_80)) { + x_81 = lean::alloc_cnstr(0, 2, 0); +} else { + x_81 = x_80; +} +lean::cnstr_set(x_81, 0, x_74); +lean::cnstr_set(x_81, 1, x_79); +lean::inc(x_2); +lean::inc(x_1); +x_82 = lean::environment_find_core(x_1, x_2); +if (lean::obj_tag(x_82) == 0) +{ +obj* x_83; obj* x_84; +lean::dec(x_81); +lean::dec(x_78); +lean::dec(x_2); +lean::dec(x_1); +x_83 = l_Lean_mkInitAttr___lambda__1___closed__1; +x_84 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_84, 0, x_83); +lean::cnstr_set(x_84, 1, x_79); +return x_84; +} +else +{ +obj* x_85; obj* x_86; +x_85 = lean::cnstr_get(x_82, 0); +lean::inc(x_85); +lean::dec(x_82); +x_86 = l_Lean_ConstantInfo_type(x_85); +lean::dec(x_85); +if (lean::obj_tag(x_86) == 4) +{ +obj* x_87; obj* x_88; uint8 x_89; +x_87 = lean::cnstr_get(x_86, 0); +lean::inc(x_87); +lean::dec(x_86); +x_88 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5; +x_89 = lean_name_dec_eq(x_87, x_88); +lean::dec(x_87); +if (x_89 == 0) +{ +obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; +lean::dec(x_81); +lean::dec(x_78); +lean::dec(x_1); +x_90 = l_Lean_Name_toString___closed__1; +x_91 = l_Lean_Name_toStringWithSep___main(x_90, x_2); +x_92 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +x_93 = lean::string_append(x_92, x_91); +lean::dec(x_91); +x_94 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; +x_95 = lean::string_append(x_93, x_94); +x_96 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_96, 0, x_95); +lean::cnstr_set(x_96, 1, x_79); +return x_96; +} +else +{ +obj* x_97; +lean::dec(x_79); +x_97 = l_Lean_declareBuiltinTermElab(x_1, x_78, x_2, x_81); +lean::dec(x_1); +return x_97; +} +} +else +{ +obj* x_98; obj* x_99; obj* x_100; obj* x_101; obj* x_102; obj* x_103; obj* x_104; +lean::dec(x_86); +lean::dec(x_81); +lean::dec(x_78); +lean::dec(x_1); +x_98 = l_Lean_Name_toString___closed__1; +x_99 = l_Lean_Name_toStringWithSep___main(x_98, x_2); +x_100 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__2; +x_101 = lean::string_append(x_100, x_99); +lean::dec(x_99); +x_102 = l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__3; +x_103 = lean::string_append(x_101, x_102); +x_104 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_104, 0, x_103); +lean::cnstr_set(x_104, 1, x_79); +return x_104; +} +} +} +else +{ +obj* x_105; obj* x_106; obj* x_107; obj* x_108; +lean::dec(x_2); +lean::dec(x_1); +x_105 = lean::cnstr_get(x_77, 0); +lean::inc(x_105); +x_106 = lean::cnstr_get(x_77, 1); +lean::inc(x_106); +if (lean::is_exclusive(x_77)) { + lean::cnstr_release(x_77, 0); + lean::cnstr_release(x_77, 1); + x_107 = x_77; +} else { + lean::dec_ref(x_77); + x_107 = lean::box(0); +} +if (lean::is_scalar(x_107)) { + x_108 = lean::alloc_cnstr(1, 2, 0); +} else { + x_108 = x_107; +} +lean::cnstr_set(x_108, 0, x_105); +lean::cnstr_set(x_108, 1, x_106); +return x_108; +} +} +} } } obj* _init_l_Lean_registerBuiltinTermElabAttr___closed__1() { @@ -730,6 +8314,7 @@ return x_3; } } obj* initialize_init_lean_namegenerator(obj*); +obj* initialize_init_lean_scopes(obj*); obj* initialize_init_lean_parser_module(obj*); static bool _G_initialized = false; obj* initialize_init_lean_elaborator_basic(obj* w) { @@ -738,6 +8323,8 @@ _G_initialized = true; if (io_result_is_error(w)) return w; w = initialize_init_lean_namegenerator(w); if (io_result_is_error(w)) return w; +w = initialize_init_lean_scopes(w); +if (io_result_is_error(w)) return w; w = initialize_init_lean_parser_module(w); if (io_result_is_error(w)) return w; l_Lean_ElabException_Inhabited___closed__1 = _init_l_Lean_ElabException_Inhabited___closed__1(); @@ -771,6 +8358,33 @@ if (io_result_is_error(w)) return w; l_Lean_builtinCommandElabTable = io_result_get_value(w); lean::mark_persistent(l_Lean_builtinCommandElabTable); lean::register_constant(lean::mk_const_name(lean::mk_const_name("Lean"), "builtinCommandElabTable"), l_Lean_builtinCommandElabTable); +l_Lean_addBuiltinTermElab___closed__1 = _init_l_Lean_addBuiltinTermElab___closed__1(); +lean::mark_persistent(l_Lean_addBuiltinTermElab___closed__1); +l_Lean_addBuiltinTermElab___closed__2 = _init_l_Lean_addBuiltinTermElab___closed__2(); +lean::mark_persistent(l_Lean_addBuiltinTermElab___closed__2); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "addBuiltinTermElab"), 4, l_Lean_addBuiltinTermElab___boxed); +l_Lean_addBuiltinCommandElab___closed__1 = _init_l_Lean_addBuiltinCommandElab___closed__1(); +lean::mark_persistent(l_Lean_addBuiltinCommandElab___closed__1); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "addBuiltinCommandElab"), 4, l_Lean_addBuiltinCommandElab___boxed); +l_Lean_checkSyntaxNodeKind___closed__1 = _init_l_Lean_checkSyntaxNodeKind___closed__1(); +lean::mark_persistent(l_Lean_checkSyntaxNodeKind___closed__1); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "checkSyntaxNodeKind"), 2, l_Lean_checkSyntaxNodeKind); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "checkSyntaxNodeKindAtNamespaces"), 3, l_Lean_checkSyntaxNodeKindAtNamespaces___boxed); +l_Lean_syntaxNodeKindOfAttrParam___closed__1 = _init_l_Lean_syntaxNodeKindOfAttrParam___closed__1(); +lean::mark_persistent(l_Lean_syntaxNodeKindOfAttrParam___closed__1); +l_Lean_syntaxNodeKindOfAttrParam___closed__2 = _init_l_Lean_syntaxNodeKindOfAttrParam___closed__2(); +lean::mark_persistent(l_Lean_syntaxNodeKindOfAttrParam___closed__2); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "syntaxNodeKindOfAttrParam"), 4, l_Lean_syntaxNodeKindOfAttrParam___boxed); +l_Lean_declareBuiltinTermElab___closed__1 = _init_l_Lean_declareBuiltinTermElab___closed__1(); +lean::mark_persistent(l_Lean_declareBuiltinTermElab___closed__1); +l_Lean_declareBuiltinTermElab___closed__2 = _init_l_Lean_declareBuiltinTermElab___closed__2(); +lean::mark_persistent(l_Lean_declareBuiltinTermElab___closed__2); +l_Lean_declareBuiltinTermElab___closed__3 = _init_l_Lean_declareBuiltinTermElab___closed__3(); +lean::mark_persistent(l_Lean_declareBuiltinTermElab___closed__3); +l_Lean_declareBuiltinTermElab___closed__4 = _init_l_Lean_declareBuiltinTermElab___closed__4(); +lean::mark_persistent(l_Lean_declareBuiltinTermElab___closed__4); +l_Lean_declareBuiltinTermElab___closed__5 = _init_l_Lean_declareBuiltinTermElab___closed__5(); +lean::mark_persistent(l_Lean_declareBuiltinTermElab___closed__5); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name("Lean"), "declareBuiltinTermElab"), 4, l_Lean_declareBuiltinTermElab___boxed); l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__1 = _init_l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__1(); lean::mark_persistent(l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__1); @@ -782,10 +8396,6 @@ l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__4 = _init_l_Lean_regist lean::mark_persistent(l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__4); l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5 = _init_l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5(); lean::mark_persistent(l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__5); -l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__6 = _init_l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__6(); -lean::mark_persistent(l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__6); -l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7 = _init_l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7(); -lean::mark_persistent(l_Lean_registerBuiltinTermElabAttr___lambda__1___closed__7); l_Lean_registerBuiltinTermElabAttr___closed__1 = _init_l_Lean_registerBuiltinTermElabAttr___closed__1(); lean::mark_persistent(l_Lean_registerBuiltinTermElabAttr___closed__1); l_Lean_registerBuiltinTermElabAttr___closed__2 = _init_l_Lean_registerBuiltinTermElabAttr___closed__2(); diff --git a/src/stage0/init/lean/parser/command.cpp b/src/stage0/init/lean/parser/command.cpp index 8726a46bca..6090f21c63 100644 --- a/src/stage0/init/lean/parser/command.cpp +++ b/src/stage0/init/lean/parser/command.cpp @@ -728,7 +728,6 @@ obj* l_Lean_Parser_Term_equation___elambda__1(obj*, obj*, obj*); obj* l_Lean_Parser_mkCommandParserAttribute___closed__4; obj* l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__5; obj* l_Lean_Parser_Command_def___elambda__1___closed__6; -extern obj* l_Lean_Parser_Term_haveAssign___closed__3; extern obj* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__14; namespace lean { uint8 string_dec_eq(obj*, obj*); @@ -944,7 +943,8 @@ obj* l_Lean_Parser_Command_strictInferMod___closed__4; extern obj* l_Lean_Parser_Term_haveAssign___elambda__1___rarg___closed__6; obj* l_Lean_Parser_Command_prefix___elambda__1(obj*); obj* l_Lean_Parser_Command_notation___elambda__1___closed__1; -obj* l_Lean_Parser_nodeInfo(obj*); +obj* l_Lean_Parser_nodeInfo(obj*, obj*); +obj* l_Lean_Parser_Command_declValSimple___closed__3; obj* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Command_declId___spec__1(uint8, uint8, obj*, obj*, obj*); obj* l_Lean_Parser_Command_universe___elambda__1___rarg(obj*, obj*); obj* l_Lean_Parser_Command_infixr___closed__2; @@ -1628,10 +1628,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_docComment___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_docComment___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_docComment___elambda__1___closed__4; +x_2 = l_Lean_Parser_Command_docComment___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_docComment___closed__4() { @@ -1976,10 +1977,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_attrInstance___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_attrInstance___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_attrInstance___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_attrInstance___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_attrInstance___closed__4() { @@ -2465,10 +2467,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_attributes___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_attributes___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_attributes___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_attributes___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_attributes___closed__6() { @@ -2707,10 +2710,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_private___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_private___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_private___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_private___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_private___closed__3() { @@ -2908,10 +2912,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_protected___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_protected___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_protected___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_protected___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_protected___closed__3() { @@ -3221,10 +3226,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_noncomputable___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_noncomputable___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_noncomputable___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_noncomputable___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_noncomputable___closed__3() { @@ -3422,10 +3428,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_unsafe___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_unsafe___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_unsafe___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_unsafe___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_unsafe___closed__3() { @@ -3623,10 +3630,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_partial___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_partial___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_partial___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_partial___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_partial___closed__3() { @@ -4185,10 +4193,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_declModifiers___closed__12() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_declModifiers___closed__11; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_declModifiers___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_declModifiers___closed__11; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_declModifiers___closed__13() { @@ -4680,10 +4689,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_declId___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_declId___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_declId___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_declId___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_declId___closed__7() { @@ -4835,10 +4845,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_declSig___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_declSig___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_declSig___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_declSig___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_declSig___closed__3() { @@ -4928,10 +4939,11 @@ return x_17; obj* _init_l_Lean_Parser_Command_optDeclSig___closed__1() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_letIdLhs___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_optDeclSig___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_letIdLhs___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_optDeclSig___closed__2() { @@ -5082,17 +5094,27 @@ return x_2; obj* _init_l_Lean_Parser_Command_declValSimple___closed__1() { _start: { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Command_declValSimple___elambda__1___boxed), 1, 0); -return x_1; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_declValSimple___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_haveAssign___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_declValSimple___closed__2() { _start: { +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Command_declValSimple___elambda__1___boxed), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_Command_declValSimple___closed__3() { +_start: +{ obj* x_1; obj* x_2; obj* x_3; -x_1 = l_Lean_Parser_Term_haveAssign___closed__3; -x_2 = l_Lean_Parser_Command_declValSimple___closed__1; +x_1 = l_Lean_Parser_Command_declValSimple___closed__1; +x_2 = l_Lean_Parser_Command_declValSimple___closed__2; x_3 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_3, 0, x_1); lean::cnstr_set(x_3, 1, x_2); @@ -5103,7 +5125,7 @@ obj* _init_l_Lean_Parser_Command_declValSimple() { _start: { obj* x_1; -x_1 = l_Lean_Parser_Command_declValSimple___closed__2; +x_1 = l_Lean_Parser_Command_declValSimple___closed__3; return x_1; } } @@ -5749,10 +5771,11 @@ return x_23; obj* _init_l_Lean_Parser_Command_declValEqns___closed__1() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_letEqns___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_declValEqns___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_letEqns___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_declValEqns___closed__2() { @@ -6188,10 +6211,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_abbrev___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_abbrev___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_abbrev___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_abbrev___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_abbrev___closed__6() { @@ -6440,10 +6464,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_def___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_def___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_def___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_def___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_def___closed__4() { @@ -6718,10 +6743,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_theorem___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_theorem___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_theorem___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_theorem___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_theorem___closed__6() { @@ -7046,10 +7072,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_constant___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_constant___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_constant___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_constant___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_constant___closed__7() { @@ -7437,10 +7464,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_instance___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_instance___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_instance___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_instance___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_instance___closed__6() { @@ -7683,10 +7711,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_axiom___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_axiom___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_axiom___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_axiom___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_axiom___closed__5() { @@ -7917,10 +7946,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_example___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_example___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_example___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_example___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_example___closed__4() { @@ -8204,10 +8234,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_relaxedInferMod___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_relaxedInferMod___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_relaxedInferMod___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_relaxedInferMod___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_relaxedInferMod___closed__3() { @@ -8500,10 +8531,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_strictInferMod___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_strictInferMod___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_strictInferMod___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_strictInferMod___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_strictInferMod___closed__3() { @@ -8923,10 +8955,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_introRule___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_introRule___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_introRule___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_introRule___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_introRule___closed__6() { @@ -9281,10 +9314,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_inductive___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_inductive___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_inductive___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_inductive___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_inductive___closed__7() { @@ -9686,10 +9720,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_classInductive___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_classInductive___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_classInductive___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_classInductive___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_classInductive___closed__5() { @@ -10191,10 +10226,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_structExplicitBinder___closed__8() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structExplicitBinder___closed__7; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structExplicitBinder___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_structExplicitBinder___closed__7; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structExplicitBinder___closed__9() { @@ -10550,10 +10586,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_structImplicitBinder___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structImplicitBinder___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structImplicitBinder___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_structImplicitBinder___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structImplicitBinder___closed__6() { @@ -10898,10 +10935,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_structInstBinder___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structInstBinder___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structInstBinder___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_structInstBinder___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structInstBinder___closed__6() { @@ -11156,10 +11194,11 @@ return x_2; obj* _init_l_Lean_Parser_Command_structFields___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structFields___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structFields___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_structFields___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structFields___closed__5() { @@ -11452,10 +11491,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_structCtor___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structCtor___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structCtor___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_structCtor___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structCtor___closed__5() { @@ -11653,10 +11693,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_structureTk___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structureTk___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structureTk___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_structureTk___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structureTk___closed__3() { @@ -11795,10 +11836,11 @@ return x_2; obj* _init_l_Lean_Parser_Command_classTk___closed__1() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_classInductive___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_classTk___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_classInductive___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_classTk___closed__2() { @@ -12019,10 +12061,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_extends___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_extends___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_extends___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_extends___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_extends___closed__4() { @@ -12573,10 +12616,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_structure___closed__11() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_structure___closed__10; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_structure___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_structure___closed__10; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_structure___closed__12() { @@ -13316,10 +13360,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_declaration___closed__11() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_declaration___closed__10; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_declaration___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_declaration___closed__10; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_declaration___closed__12() { @@ -13601,10 +13646,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_section___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_section___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_section___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_section___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_section___closed__5() { @@ -13842,10 +13888,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_namespace___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_namespace___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_namespace___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_namespace___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_namespace___closed__4() { @@ -14127,10 +14174,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_end___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_end___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_end___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_end___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_end___closed__4() { @@ -14367,10 +14415,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_variable___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_variable___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_variable___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_variable___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_variable___closed__4() { @@ -14628,10 +14677,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_variables___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_variables___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_variables___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_variables___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_variables___closed__4() { @@ -14860,10 +14910,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_universe___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_universe___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_universe___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_universe___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_universe___closed__4() { @@ -15119,10 +15170,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_universes___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_universes___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_universes___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_universes___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_universes___closed__4() { @@ -15362,10 +15414,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_check___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_check___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_check___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_check___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_check___closed__4() { @@ -15574,10 +15627,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_exit___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_exit___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_exit___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_exit___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_exit___closed__3() { @@ -15778,10 +15832,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_init__quot___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_init__quot___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_init__quot___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_init__quot___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_init__quot___closed__3() { @@ -16299,10 +16354,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_set__option___closed__8() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_set__option___closed__7; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_set__option___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_set__option___closed__7; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_set__option___closed__9() { @@ -16957,10 +17013,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_attribute___closed__9() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_attribute___closed__8; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_attribute___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_attribute___closed__8; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_attribute___closed__10() { @@ -17415,10 +17472,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_export___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_export___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_export___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_export___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_export___closed__7() { @@ -17750,10 +17808,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_openHiding___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_openHiding___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_openHiding___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_openHiding___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_openHiding___closed__5() { @@ -17990,10 +18049,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_openRenamingItem___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_openRenamingItem___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_openRenamingItem___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_openRenamingItem___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_openRenamingItem___closed__5() { @@ -18464,10 +18524,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_openRenaming___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_openRenaming___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_openRenaming___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_openRenaming___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_openRenaming___closed__6() { @@ -18847,10 +18908,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_openOnly___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_openOnly___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_openOnly___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_openOnly___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_openOnly___closed__4() { @@ -18949,10 +19011,11 @@ return x_17; obj* _init_l_Lean_Parser_Command_openSimple___closed__1() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_ident___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_openSimple___elambda__1___closed__2; +x_2 = l_Lean_Parser_ident___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_openSimple___closed__2() { @@ -19362,10 +19425,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_open___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_open___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_open___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_open___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_open___closed__7() { @@ -19461,10 +19525,11 @@ return x_2; obj* _init_l_Lean_Parser_Command_maxPrec___closed__1() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Level_max___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_maxPrec___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Level_max___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_maxPrec___closed__2() { @@ -19744,10 +19809,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_precedence___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_precedence___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_precedence___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_precedence___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_precedence___closed__3() { @@ -19914,10 +19980,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_quotedSymbolPrec___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_quotedSymbolPrec___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_quotedSymbolPrec___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_quotedSymbolPrec___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_quotedSymbolPrec___closed__5() { @@ -20220,10 +20287,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_prefix___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_prefix___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_prefix___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_prefix___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_prefix___closed__3() { @@ -20413,10 +20481,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_infix___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_infix___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_infix___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_infix___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_infix___closed__3() { @@ -20606,10 +20675,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_infixl___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_infixl___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_infixl___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_infixl___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_infixl___closed__3() { @@ -20799,10 +20869,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_infixr___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_infixr___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_infixr___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_infixr___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_infixr___closed__3() { @@ -20992,10 +21063,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_postfix___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_postfix___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_postfix___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_postfix___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_postfix___closed__3() { @@ -21537,10 +21609,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_reserve___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_reserve___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_reserve___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_reserve___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_reserve___closed__5() { @@ -21888,10 +21961,11 @@ return x_4; obj* _init_l_Lean_Parser_Command_mixfix___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_mixfix___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_mixfix___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_mixfix___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_mixfix___closed__4() { @@ -22056,10 +22130,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_identPrec___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_identPrec___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_identPrec___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Command_identPrec___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_identPrec___closed__3() { @@ -22617,10 +22692,11 @@ return x_3; obj* _init_l_Lean_Parser_Command_notation___closed__7() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Command_notation___closed__6; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Command_notation___elambda__1___closed__2; +x_2 = l_Lean_Parser_Command_notation___closed__6; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Command_notation___closed__8() { @@ -23047,6 +23123,8 @@ l_Lean_Parser_Command_declValSimple___closed__1 = _init_l_Lean_Parser_Command_de lean::mark_persistent(l_Lean_Parser_Command_declValSimple___closed__1); l_Lean_Parser_Command_declValSimple___closed__2 = _init_l_Lean_Parser_Command_declValSimple___closed__2(); lean::mark_persistent(l_Lean_Parser_Command_declValSimple___closed__2); +l_Lean_Parser_Command_declValSimple___closed__3 = _init_l_Lean_Parser_Command_declValSimple___closed__3(); +lean::mark_persistent(l_Lean_Parser_Command_declValSimple___closed__3); l_Lean_Parser_Command_declValSimple = _init_l_Lean_Parser_Command_declValSimple(); lean::mark_persistent(l_Lean_Parser_Command_declValSimple); lean::register_constant(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "Command"), "declValSimple"), l_Lean_Parser_Command_declValSimple); diff --git a/src/stage0/init/lean/parser/level.cpp b/src/stage0/init/lean/parser/level.cpp index bb6a5dbe72..28c06a649e 100644 --- a/src/stage0/init/lean/parser/level.cpp +++ b/src/stage0/init/lean/parser/level.cpp @@ -148,7 +148,7 @@ obj* l_Lean_Parser_Level_hole___elambda__1(obj*); obj* l___regBuiltinParser_Lean_Parser_Level_max(obj*); obj* l_Lean_Parser_symbolOrIdentInfo(obj*); obj* l_Lean_Parser_Level_paren___elambda__1___rarg___closed__10; -obj* l_Lean_Parser_nodeInfo(obj*); +obj* l_Lean_Parser_nodeInfo(obj*, obj*); obj* l_Lean_Parser_Level_addLit___elambda__1___closed__6; obj* l_Array_size(obj*, obj*); obj* l_Lean_Parser_mkLevelParserAttribute___closed__3; @@ -667,10 +667,11 @@ return x_3; obj* _init_l_Lean_Parser_Level_paren___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Level_paren___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Level_paren___elambda__1___rarg___closed__4; +x_2 = l_Lean_Parser_Level_paren___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Level_paren___closed__7() { @@ -907,10 +908,11 @@ return x_3; obj* _init_l_Lean_Parser_Level_max___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Level_max___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Level_max___elambda__1___closed__1; +x_2 = l_Lean_Parser_Level_max___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Level_max___closed__4() { @@ -1094,10 +1096,11 @@ return x_3; obj* _init_l_Lean_Parser_Level_imax___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Level_imax___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Level_imax___elambda__1___closed__1; +x_2 = l_Lean_Parser_Level_imax___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Level_imax___closed__4() { @@ -1298,10 +1301,11 @@ return x_3; obj* _init_l_Lean_Parser_Level_hole___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Level_hole___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Level_hole___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Level_hole___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Level_hole___closed__3() { @@ -1749,10 +1753,11 @@ return x_3; obj* _init_l_Lean_Parser_Level_addLit___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Level_addLit___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Level_addLit___elambda__1___closed__2; +x_2 = l_Lean_Parser_Level_addLit___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Level_addLit___closed__6() { diff --git a/src/stage0/init/lean/parser/module.cpp b/src/stage0/init/lean/parser/module.cpp index b936807822..5b16852a93 100644 --- a/src/stage0/init/lean/parser/module.cpp +++ b/src/stage0/init/lean/parser/module.cpp @@ -140,7 +140,7 @@ obj* l_Lean_Parser_Module_prelude___closed__4; obj* l_Lean_Parser_Module_prelude___elambda__1(obj*); extern obj* l_Lean_Parser_ParserContextCore_inhabited___closed__1; obj* l_List_mfor___main___at___private_init_lean_parser_module_4__testModuleParserAux___main___spec__5(obj*, obj*); -obj* l_Lean_Parser_nodeInfo(obj*); +obj* l_Lean_Parser_nodeInfo(obj*, obj*); obj* l_Lean_Message_toString(obj*); obj* l_Array_size(obj*, obj*); obj* l_Lean_Parser_Module_import___elambda__1___closed__5; @@ -335,10 +335,11 @@ return x_3; obj* _init_l_Lean_Parser_Module_prelude___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Module_prelude___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Module_prelude___elambda__1___rarg___closed__4; +x_2 = l_Lean_Parser_Module_prelude___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Module_prelude___closed__3() { @@ -526,10 +527,11 @@ return x_3; obj* _init_l_Lean_Parser_Module_importPath___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Module_importPath___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Module_importPath___elambda__1___closed__2; +x_2 = l_Lean_Parser_Module_importPath___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Module_importPath___closed__5() { @@ -850,10 +852,11 @@ return x_4; obj* _init_l_Lean_Parser_Module_import___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Module_import___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Module_import___elambda__1___closed__2; +x_2 = l_Lean_Parser_Module_import___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Module_import___closed__4() { @@ -1143,10 +1146,11 @@ return x_3; obj* _init_l_Lean_Parser_Module_header___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Module_header___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Module_header___elambda__1___closed__2; +x_2 = l_Lean_Parser_Module_header___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Module_header___closed__5() { diff --git a/src/stage0/init/lean/parser/parser.cpp b/src/stage0/init/lean/parser/parser.cpp index 1a60f5da9f..d73b211bf6 100644 --- a/src/stage0/init/lean/parser/parser.cpp +++ b/src/stage0/init/lean/parser/parser.cpp @@ -19,6 +19,7 @@ obj* l___private_init_lean_parser_parser_8__updateTokens___closed__1; obj* l_Lean_Parser_symbolNoWsFnAux___boxed(obj*, obj*, obj*, obj*, obj*); uint8 l_Lean_Parser_checkTailNoWs(obj*); obj* l_Lean_Parser_ParserState_mkUnexpectedErrorAt(obj*, obj*, obj*); +obj* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(obj*); obj* l_RBNode_setBlack___main___rarg(obj*); obj* l_Lean_Parser_checkLeadingFn___closed__1; obj* l_Lean_Parser_runParser(obj*, obj*, obj*, obj*, obj*); @@ -90,8 +91,10 @@ extern obj* l_Lean_Syntax_formatStx___main___closed__5; obj* l_Lean_Parser_longestMatchMkResult(obj*, obj*); obj* l_Lean_Parser_symbolOrIdent___boxed(obj*, obj*); obj* l_List_toString___main___at_Lean_Parser_FirstTokens_toStr___main___spec__1(obj*); +obj* l_Array_mkArray(obj*, obj*, obj*); obj* l_Lean_Parser_andthenFn___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__2; +obj* l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2___boxed(obj*, obj*, obj*, obj*); obj* l_String_intercalate(obj*, obj*); obj* l_Lean_Parser_ParserState_hasError___boxed(obj*); obj* l_Lean_Parser_mergeOrElseErrors(obj*, obj*, obj*); @@ -101,6 +104,7 @@ obj* l___private_init_lean_parser_parser_3__rawAux___rarg(obj*, uint8, obj*, obj obj* l_Lean_Parser_many1Fn(uint8, obj*, obj*, obj*, obj*); obj* l_Array_back___at___private_init_lean_parser_parser_6__updateCache___spec__1(obj*); obj* l_Lean_Parser_FirstTokens_toStr(obj*); +obj* l_Lean_Parser_symbolOrIdentInfo___elambda__2(obj*); obj* l_Lean_Parser_numLit(uint8); obj* l_Lean_Parser_decimalNumberFn(obj*, obj*, obj*); obj* l_Lean_Parser_checkColGe___boxed(obj*, obj*, obj*); @@ -113,10 +117,12 @@ obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_rawCh___elambda__1___spec__ obj* l_Lean_Parser_tryFn___main___boxed(obj*); obj* l_Lean_Parser_quotedSymbolFn___rarg___closed__1; obj* l_Lean_Parser_orelseInfo(obj*, obj*); +extern obj* l_mjoin___rarg___closed__1; obj* l_Lean_Parser_mkTokenAndFixPos___closed__1; extern obj* l_Lean_AttributeImpl_inhabited___closed__5; obj* l_Lean_Parser_lookaheadFn(uint8); extern obj* l_Lean_registerTagAttribute___lambda__5___closed__1; +obj* l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(obj*, obj*, obj*); obj* l_Lean_Parser_sepBy1Info___elambda__1(obj*, obj*, obj*); extern obj* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__2; obj* l_Lean_Parser_ParserAttribute_runParser(obj*, obj*, obj*, obj*); @@ -127,6 +133,7 @@ obj* l_Lean_Parser_hexDigitFn___main___boxed(obj*, obj*); obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3___boxed(obj*, obj*); obj* l_Lean_Parser_strLitFnAux___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_runBuiltinParser___rarg(obj*); +obj* l_Lean_Parser_sepByInfo___elambda__2(obj*, obj*, obj*); obj* l_Lean_Parser_many1___boxed(obj*, obj*); obj* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__6___rarg(obj*, obj*, obj*); extern obj* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3; @@ -134,6 +141,7 @@ obj* l_Lean_Parser_quotedSymbol___elambda__1(uint8); obj* l_Lean_Parser_mkParserContext(obj*, obj*, obj*); obj* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4___rarg(obj*, obj*, obj*); extern obj* l_Lean_strLitKind___closed__1; +obj* l_AssocList_mfoldl___main___at_Lean_Parser_nodeInfo___elambda__1___spec__5(obj*, obj*); obj* l_Lean_Parser_symbolNoWsFn(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_runBuiltinParserUnsafe___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_unquotedSymbolFn(uint8, obj*); @@ -147,6 +155,7 @@ obj* l_Lean_Parser_hexDigitFn___main(obj*, obj*); obj* l_Lean_Parser_ParserAttribute_inhabited___closed__6; obj* l_Lean_Parser_mkNodeToken___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_symbolNoWsAux(obj*, obj*); +obj* l_Lean_Parser_mkAtomicInfo___closed__2; obj* l_Lean_Parser_ParserState_mkUnexpectedError(obj*, obj*); obj* l_Lean_Parser_ParserState_keepLatest(obj*, obj*); obj* l_Lean_Parser_initCacheForInput(obj*); @@ -182,9 +191,11 @@ obj* l_Lean_Parser_addBuiltinLeadingParser___closed__1; obj* l___private_init_lean_parser_parser_2__sepByFnAux___main(uint8, obj*, obj*, uint8, obj*, uint8, obj*, obj*, obj*); obj* l_Lean_Parser_longestMatchFn___main___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Array_uget(obj*, obj*, usize, obj*); obj* l_Lean_Parser_quotedSymbol___elambda__1___rarg(obj*, obj*, obj*); obj* l_Lean_Name_toStringWithSep___main(obj*, obj*); obj* l_Lean_Parser_rawCh(uint8, uint32, uint8); +obj* l_mkHashMap___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1(obj*); obj* l_Lean_Parser_lookahead___boxed(obj*, obj*); obj* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__2___rarg(obj*, obj*, obj*); obj* l_Lean_Parser_registerParserAttribute___lambda__2___closed__1; @@ -198,12 +209,15 @@ obj* l_Lean_Parser_checkWsBefore___elambda__1___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_symbolFnAux___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_identFnAux___main___closed__1; obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_binNumberFn___spec__1___boxed(obj*, obj*, obj*); +obj* l_Lean_Parser_mkAtomicInfo___elambda__1___boxed(obj*); obj* l_Lean_Parser_symbolFnAux(obj*, obj*, obj*, obj*); +obj* l_HashMapImp_moveEntries___main___at_Lean_Parser_nodeInfo___elambda__1___spec__4(obj*, obj*, obj*); obj* l_Lean_Parser_sepBy1Fn___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_declareTrailingBuiltinParser___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_takeWhileFn(obj*, obj*, obj*); obj* l_Lean_Parser_unquotedSymbolFn___boxed(obj*, obj*); obj* l_Lean_Parser_symbolNoWsAux___boxed(obj*, obj*); +obj* l_Array_uset(obj*, obj*, usize, obj*, obj*); obj* l_Lean_Parser_quotedCharFn___main___boxed(obj*, obj*); obj* l_Lean_Parser_optional___boxed(obj*, obj*); obj* l_Lean_Parser_rawIdentFn___boxed(obj*, obj*); @@ -212,8 +226,10 @@ obj* l_Lean_Parser_charLitFnAux___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute(obj*, obj*, obj*); obj* l_Lean_Parser_checkLeadingFn(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_quotedCharFn(obj*, obj*); +obj* l_Lean_Parser_unicodeSymbolInfo___closed__1; obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_hexNumberFn___spec__3(obj*, obj*); obj* l_IO_Prim_Ref_set(obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_getSyntaxNodeKinds(obj*); obj* l_Lean_Parser_checkWsBeforeFn___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_takeUntilFn___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_getParsingTable(obj*); @@ -221,6 +237,7 @@ obj* l_Lean_Parser_longestMatchFn___main(uint8, obj*, obj*, obj*, obj*); extern obj* l_Lean_Options_empty; obj* l_Lean_Parser_longestMatchFn(uint8, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_symbolFn___boxed(obj*); +obj* l_Lean_Parser_epsilonInfo___closed__3; obj* l_Lean_Parser_takeWhileFn___at_Lean_Parser_octalNumberFn___spec__2___boxed(obj*, obj*); obj* l_Lean_Parser_ParserAttribute_inhabited___lambda__2___boxed(obj*); obj* l_Lean_Parser_currLbp(obj*, obj*, obj*); @@ -247,10 +264,12 @@ obj* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__5; obj* l_Lean_Parser_longestMatchFn___main___closed__1; obj* l_Lean_Parser_quotedSymbol___elambda__1___rarg___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_nodeFn___main___rarg(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_symbolInfo___elambda__2(obj*, obj*, obj*); obj* l_Lean_Parser_node___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_Error_Inhabited; obj* l_Lean_Parser_optional(uint8, obj*); obj* l_Lean_Parser_many1Indent___lambda__1___boxed(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_sepBy1Info___elambda__2(obj*, obj*, obj*); obj* l_Lean_Parser_FirstTokens_HasToString___closed__1; obj* l_Lean_Parser_whitespace___main___boxed(obj*, obj*); obj* l_Lean_Parser_anyOfFn___main___boxed(obj*, obj*, obj*, obj*, obj*); @@ -309,11 +328,14 @@ obj* l_Lean_Parser_symbolNoWsFn___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_ParserState_mkEOIError___closed__1; extern "C" obj* lean_expr_mk_const(obj*, obj*); obj* l_Lean_Parser_hashOrelse___boxed(obj*); +obj* l_Lean_Parser_symbolNoWsInfo___elambda__2(obj*, obj*, obj*); obj* l_Lean_Parser_ParserState_restore___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_rawCh___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_satisfyFn___boxed(obj*, obj*, obj*, obj*); +uint8 l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(obj*, obj*); obj* l_Lean_Parser_trailingNode(obj*, obj*); obj* l_Lean_Parser_ParserState_mkNode(obj*, obj*, obj*); +extern "C" usize lean_name_hash_usize(obj*); obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_octalNumberFn___spec__1(obj*, obj*, obj*); obj* l_Array_extract___rarg(obj*, obj*, obj*); obj* l_Lean_Parser_ParserState_next___boxed(obj*, obj*, obj*); @@ -326,7 +348,7 @@ obj* l_Lean_Parser_charLitFn(uint8, obj*); obj* l_Lean_Parser_checkNoWsBefore___boxed(obj*, obj*); obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__3(obj*, obj*); obj* l_Lean_Parser_declareLeadingBuiltinParser___closed__3; -obj* l_Lean_Parser_symbolInfo___elambda__1(obj*, obj*, obj*); +obj* l_Lean_Parser_symbolInfo___elambda__1(obj*); uint8 l_Lean_isIdBeginEscape(uint32); obj* l_Lean_Parser_mkEmptySubstringAt(obj*, obj*); obj* l_Lean_Parser_binNumberFn(obj*, obj*, obj*); @@ -335,6 +357,7 @@ obj* l_Lean_Parser_FirstTokens_toOptional___main(obj*); obj* l_Lean_Parser_TokenConfig_HasBeq; obj* l_Lean_Parser_manyAux___main___closed__1; obj* l_Lean_Parser_runBuiltinParserUnsafe(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_optionaInfo___elambda__2(obj*, obj*); obj* l_Lean_Parser_Parser_inhabited___closed__1; obj* l_Lean_Parser_FirstTokens_merge___main(obj*, obj*); obj* l_Lean_Parser_withPosition___boxed(obj*, obj*); @@ -350,6 +373,7 @@ obj* l___private_init_lean_parser_trie_3__findAux___main___rarg(obj*, obj*, obj* obj* l_Lean_Parser_takeWhile1Fn(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_rawCh___elambda__1___boxed(obj*); obj* l_Lean_Parser_manyAux___main(uint8, obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_symbolNoWsInfo___elambda__1___boxed(obj*); obj* l_Lean_Parser_manyFn___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_unicodeSymbol(uint8, obj*, obj*, obj*); obj* l_Lean_Parser_takeWhileFn___at_Lean_Parser_decimalNumberFn___spec__1___boxed(obj*, obj*); @@ -404,6 +428,7 @@ obj* l_Lean_Parser_whitespace___boxed(obj*, obj*); obj* l_List_append___rarg(obj*, obj*); obj* l_Lean_Parser_fieldIdxFn___boxed(obj*, obj*); obj* l___private_init_lean_parser_parser_1__expectedToString(obj*); +obj* l_Array_fget(obj*, obj*, obj*); obj* l_Lean_Parser_declareBuiltinParser___closed__2; obj* l_Lean_Parser_orelseFn___main___boxed(obj*); extern "C" obj* lean_name_mk_string(obj*, obj*); @@ -424,6 +449,7 @@ namespace lean { obj* nat_add(obj*, obj*); } obj* l_Lean_Parser_symbolNoWs(obj*, obj*); +obj* l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2___boxed(obj*, obj*); obj* l_Lean_Parser_binNumberFn___boxed(obj*, obj*, obj*); extern obj* l_Lean_charLitKind___closed__1; extern obj* l_Lean_nullKind; @@ -443,6 +469,7 @@ obj* l_Lean_Parser_runBuiltinParser___boxed(obj*, obj*, obj*, obj*); namespace lean { uint8 nat_dec_eq(obj*, obj*); } +obj* l_HashMapImp_expand___at_Lean_Parser_nodeInfo___elambda__1___spec__3(obj*, obj*); obj* l_Lean_Parser_octalNumberFn___closed__1; obj* l_Lean_Parser_rawFn(uint8); obj* l_Lean_Parser_declareBuiltinParser___closed__1; @@ -468,6 +495,7 @@ obj* l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(obj* extern obj* l_Lean_strLitKind; obj* l_Lean_Parser_ident___closed__1; obj* l_Lean_Parser_Parser_inhabited___lambda__1___boxed(obj*, obj*, obj*); +obj* l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_TokenConfig_toStr___main___closed__2; obj* l_Lean_Parser_symbolOrIdent___lambda__1(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_quotedSymbol(uint8); @@ -492,13 +520,15 @@ obj* l_Lean_Parser_longestMatchFn___boxed(obj*, obj*, obj*, obj*, obj*); uint8 l_Lean_Parser_checkTailWs(obj*); obj* l_Lean_Parser_TokenTableAttribute_inhabited___closed__1; obj* l_Lean_Parser_unicodeSymbolCheckPrecFnAux(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); -obj* l_Lean_Parser_symbolNoWsInfo___elambda__1(obj*, obj*, obj*); +obj* l_Lean_Parser_symbolNoWsInfo___elambda__1(obj*); obj* l_Lean_Parser_strAux___main(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_getBuiltinTokenTable(obj*); obj* l_Lean_Parser_ParserAttribute_inhabited___closed__1; obj* l_Lean_Parser_takeWhile1Fn___boxed(obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_epsilonInfo___elambda__1___boxed(obj*); obj* l_Lean_Parser_leadingNode(obj*, obj*); obj* l_Lean_Parser_hexDigitFn___main___closed__1; +obj* l_Lean_Parser_symbolOrIdentInfo___closed__5; obj* l_Lean_Parser_takeWhileFn___at_Lean_Parser_hexNumberFn___spec__2(obj*, obj*); obj* l_Lean_Parser_getParsingTable___boxed(obj*); namespace lean { @@ -518,6 +548,7 @@ obj* l_Lean_Parser_string2basic(uint8, obj*); obj* l_Lean_Parser_many(uint8, obj*); obj* l_Lean_Parser_rawIdent___boxed(obj*); obj* l_Lean_Parser_finishCommentBlock___main(obj*, obj*, obj*); +obj* l_Lean_Parser_mkAtomicInfo___elambda__2(obj*); obj* l_Lean_Parser_lookahead(uint8, obj*); uint8 l_Lean_Parser_TokenConfig_beq(obj*, obj*); obj* l_Lean_Parser_quotedSymbolFn___rarg___closed__2; @@ -525,6 +556,7 @@ obj* l_Lean_mkCApp(obj*, obj*); obj* l_Lean_Parser_numLitFn___rarg(obj*, obj*); obj* l_Lean_Parser_ParsingTables_inhabited___closed__1; obj* l_Lean_Parser_unquotedSymbol___boxed(obj*); +obj* l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1; obj* l_Lean_Parser_noFirstTokenInfo(obj*); extern obj* l_Lean_registerTagAttribute___lambda__5___closed__2; obj* l_Lean_Parser_ParserState_pushSyntax(obj*, obj*); @@ -540,12 +572,14 @@ obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_hexNumberFn___spec__3___b obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_binNumberFn___spec__3(obj*, obj*); uint8 l_Char_isDigit(uint32); obj* l_Lean_Parser_FirstTokens_HasToString; +obj* l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1___boxed(obj*, obj*); obj* l_Lean_Parser_pushLeading___closed__1; obj* l_Lean_Parser_try(uint8, obj*); obj* l_Lean_Parser_getParsingTableUnsafe(obj*); obj* l_Lean_Parser_insertNoWsToken(obj*, obj*, obj*); obj* l_Lean_Parser_mkTokenTableAttribute___lambda__1___boxed(obj*); obj* l_Lean_Parser_checkColGe___lambda__1(obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_unicodeSymbolInfo___elambda__2(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_numLit___closed__1; obj* l_Lean_Parser_ParserState_keepNewError(obj*, obj*); obj* l_Lean_Parser_identFnAux___main(obj*, obj*, obj*, obj*, obj*); @@ -568,6 +602,7 @@ obj* l_String_trim(obj*); obj* l_Lean_Parser_checkLeading(obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__3; obj* l_Lean_Parser_TokenConfig_toStr___main___closed__1; +obj* l_Lean_Parser_andthenInfo___elambda__2(obj*, obj*, obj*); obj* l_Lean_Parser_registerParserAttribute___closed__1; obj* l_Lean_Parser_optionalFn___rarg(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute___closed__1; @@ -581,6 +616,8 @@ obj* l_Lean_registerTagAttribute___lambda__7___boxed(obj*, obj*, obj*, obj*, obj obj* l_Lean_Parser_unicodeSymbolFn___boxed(obj*); obj* l_Lean_Parser_fieldIdx___boxed(obj*); obj* l_Lean_Parser_numLitFn___boxed(obj*, obj*); +obj* l_Lean_Parser_syntaxNodeKindSetRef; +uint8 l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(obj*, obj*); obj* l_Lean_Parser_unquotedSymbol___elambda__1(uint8, obj*); obj* l_Lean_Parser_andthenAux(obj*, obj*, obj*, obj*); obj* l_IO_Prim_Ref_get(obj*, obj*, obj*); @@ -592,11 +629,15 @@ obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_octalNumberFn___spec__1___b obj* l_Lean_Parser_checkNoWsBefore___elambda__1___rarg(obj*, obj*, obj*, obj*); obj* l_Array_pop(obj*, obj*); uint8 l_Lean_Name_quickLt(obj*, obj*); +obj* l_Lean_Parser_epsilonInfo___elambda__2(obj*); obj* l_Lean_Parser_symbolNoWsInfo(obj*, obj*); obj* l_Lean_Parser_unicodeSymbolCheckPrecFn___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_identFnAux(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_strAux(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_quotedSymbolFn___spec__1___boxed(obj*, obj*, obj*, obj*); +namespace lean { +usize usize_modn(usize, obj*); +} obj* l_Lean_Parser_declareBuiltinParser___closed__3; obj* l_Lean_Parser_checkColGeFn(obj*, obj*, obj*, obj*); obj* l_Lean_ParametricAttribute_setParam___rarg(obj*, obj*, obj*, obj*); @@ -630,7 +671,7 @@ obj* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__7(obj*); obj* l_Lean_Parser_quotedCharFn___main(obj*, obj*); obj* l_Lean_Parser_checkNoWsBefore___elambda__1___boxed(obj*); obj* l_RBNode_insert___at_Lean_Parser_TokenMap_insert___spec__5___rarg(obj*, obj*, obj*); -obj* l_Lean_Parser_nodeInfo(obj*); +obj* l_Lean_Parser_nodeInfo(obj*, obj*); obj* l_Lean_Parser_declareLeadingBuiltinParser___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_PersistentEnvExtension_inhabited___rarg___lambda__2___boxed(obj*); obj* l_Lean_Parser_sepBy1Fn(uint8, uint8, obj*, obj*, obj*, obj*, obj*); @@ -643,6 +684,7 @@ obj* l_Lean_Parser_many1Indent___lambda__1(obj*, obj*, uint8, obj*, obj*, obj*); obj* l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; extern obj* l_Lean_fieldIdxKind___closed__1; obj* l_Lean_Parser_satisfySymbolFn(obj*, obj*, obj*, obj*); +obj* l_AssocList_mfoldl___main___at_Lean_Parser_getSyntaxNodeKinds___spec__1(obj*, obj*); extern obj* l_Lean_Parser_Trie_empty___closed__1; uint8 l_Char_isWhitespace(uint32); obj* l_Lean_Parser_Error_toString___closed__1; @@ -650,6 +692,7 @@ obj* l_Lean_Parser_ParserState_keepNewError___boxed(obj*, obj*); obj* l_Lean_Parser_rawCh___elambda__1___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_ParserState_keepPrevError___boxed(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_FirstTokens_toOptional(obj*); +obj* l_Array_fset(obj*, obj*, obj*, obj*); obj* l_Lean_Parser_charLit(uint8); obj* l_Lean_Parser_manyAux(uint8, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_chFn___spec__1(uint32, obj*, obj*, obj*); @@ -663,11 +706,14 @@ obj* l_Lean_Parser_peekToken(obj*, obj*); uint8 l_Lean_Parser_Error_beq(obj*, obj*); obj* l_RBNode_find___main___at_Lean_Parser_TokenMap_insert___spec__1___rarg(obj*, obj*); obj* l_Lean_Parser_prattParser(obj*, obj*, obj*, obj*, obj*); +obj* l_mkHashMapImp___rarg(obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__6; obj* l___private_init_lean_parser_parser_7__mkResult(obj*, obj*); obj* l_Lean_Parser_strLit___closed__1; +obj* l_AssocList_mfoldl___main___at_Lean_Parser_getSyntaxNodeKinds___spec__1___boxed(obj*, obj*); obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_quotedSymbolFn___spec__2___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_Error_toString___closed__4; +obj* l_Lean_Parser_unicodeSymbolInfo___elambda__1___boxed(obj*); obj* l_Lean_Parser_TokenTableAttribute_inhabited___closed__3; obj* l_Lean_Parser_symbolNoWs___boxed(obj*, obj*); uint8 l_List_hasDecEq___main___at_Lean_Parser_Error_toString___spec__1(obj*, obj*); @@ -680,6 +726,7 @@ obj* l_RBNode_ins___main___at_Lean_Parser_TokenMap_insert___spec__4(obj*); obj* l_Lean_Parser_TokenConfig_HasBeq___closed__1; obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_hexNumberFn___spec__1(obj*, obj*, obj*); extern obj* l_Lean_registerTagAttribute___lambda__5___closed__3; +obj* l_Lean_Parser_symbolInfo___elambda__1___boxed(obj*); obj* l_Lean_Parser_mkIdResult(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_symbolOrIdentInfo___closed__3; obj* l_Lean_Parser_quotedSymbol___elambda__1___boxed(obj*); @@ -691,6 +738,7 @@ obj* string_utf8_next(obj*, obj*); obj* l_Lean_Parser_fieldIdx___lambda__1___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_unicodeSymbolCheckPrecFnAux___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*, obj*); uint8 l_Lean_Parser_ParserState_hasError(obj*); +obj* l_Lean_Parser_isValidSyntaxNodeKind___boxed(obj*, obj*); obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_identFnAux___main___spec__4___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_indexed(obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1(obj*, obj*, obj*, obj*, obj*, uint8, obj*); @@ -698,6 +746,7 @@ obj* l_Lean_Parser_satisfyFn___main___at_Lean_Parser_hexNumberFn___spec__1___box obj* l_Lean_Parser_chFn___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_manyAux___main___boxed(obj*, obj*, obj*, obj*, obj*); extern obj* l_Lean_nameToExprAux___main___closed__4; +obj* l_Lean_Parser_symbolNoWsInfo___closed__1; extern obj* l_Lean_Name_toString___closed__1; obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_quotedSymbolFn___spec__2(uint32, obj*, obj*); namespace lean { @@ -733,6 +782,7 @@ obj* l_Lean_Parser_takeWhileFn___at_Lean_Parser_hexNumberFn___spec__2___boxed(ob obj* l_Lean_Parser_rawFn___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_takeWhileFn___spec__1(obj*, obj*, obj*); obj* l_Lean_Parser_ParserState_stackSize___boxed(obj*); +obj* l_Lean_Parser_mkSyntaxNodeKindSetRef(obj*); obj* l_Lean_Parser_fieldIdxFn___closed__1; obj* l_Lean_Parser_identFn(uint8, obj*); obj* l_Lean_Parser_identFnAux___boxed(obj*, obj*, obj*, obj*, obj*); @@ -761,6 +811,7 @@ obj* l_Lean_Parser_checkWsBefore___elambda__1(uint8); obj* l_Lean_Parser_checkWsBeforeFn(obj*, obj*, obj*); obj* l_Lean_Parser_identFn___rarg___closed__1; obj* l_Lean_Parser_hexNumberFn(obj*, obj*, obj*); +obj* l_Lean_Parser_updateSyntaxNodeKinds(obj*, obj*); obj* l_Lean_Parser_runBuiltinParserUnsafe___closed__1; obj* l_Lean_Parser_orelse(uint8, obj*, obj*); obj* l_Lean_registerPersistentEnvExtensionUnsafe___rarg(obj*, obj*); @@ -780,18 +831,24 @@ obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_octalNumberFn___spec__3(o extern obj* l_Lean_numLitKind___closed__1; obj* l___private_init_lean_parser_parser_3__rawAux___main___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_registerBuiltinParserAttribute___lambda__1___closed__1; +obj* l_Lean_Parser_symbolInfo___closed__1; +obj* l_Lean_Parser_noFirstTokenInfo___elambda__2(obj*, obj*); obj* l_Lean_Parser_hexDigitFn(obj*, obj*); obj* l_Lean_Parser_takeWhileFn___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_insertToken(obj*, obj*, obj*); obj* l_Lean_mkLit(obj*, obj*, obj*); obj* l_Lean_Name_append___main(obj*, obj*); obj* l_Lean_Parser_TokenConfig_HasToString___closed__1; +obj* l_HashMapImp_insert___at_Lean_Parser_nodeInfo___elambda__1___spec__1(obj*, obj*, obj*); obj* l_List_toStringAux___main___at_Lean_Parser_FirstTokens_toStr___main___spec__2___boxed(obj*, obj*); uint8 l_Lean_isIdFirst(uint32); obj* l_RBNode_find___main___at_Lean_Parser_indexed___spec__1(obj*); obj* l_Lean_Parser_mkTokenAndFixPos(obj*, obj*, obj*, obj*); +namespace lean { +obj* nat_mul(obj*, obj*); +} obj* l_Lean_Parser_takeWhileFn___at_Lean_Parser_decimalNumberFn___spec__1(obj*, obj*); -obj* l_Lean_Parser_unicodeSymbolInfo___elambda__1(obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_unicodeSymbolInfo___elambda__1(obj*); obj* l_Lean_Parser_mkImportedTokenTable___boxed(obj*); obj* l_Lean_Parser_leadingParser(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_unicodeSymbolCheckPrec___boxed(obj*, obj*, obj*); @@ -804,6 +861,7 @@ obj* l_Lean_FileMap_ofString(obj*); obj* l_Lean_Parser_charLitFnAux___main___boxed(obj*, obj*, obj*); obj* l_Lean_Parser_isIdCont___main___boxed(obj*, obj*); obj* l_Lean_Parser_charLitFnAux___main___closed__1; +obj* l_Lean_Parser_orelseInfo___elambda__2(obj*, obj*, obj*); obj* l_Lean_Parser_FirstTokens_toStr___main___closed__3; obj* l_Lean_Parser_withPosition(uint8, obj*); obj* l_Lean_Parser_sepByFn___main___boxed(obj*, obj*, obj*, obj*, obj*, obj*, obj*); @@ -815,6 +873,7 @@ obj* l_Lean_Parser_ParserState_mkErrorsAt(obj*, obj*, obj*); obj* l_Lean_Parser_quotedSymbolFn___rarg(obj*, obj*, obj*); obj* l___private_init_lean_parser_parser_1__expectedToString___main(obj*); obj* l_Lean_Parser_longestMatchStep___rarg(obj*, obj*, obj*, obj*, obj*, obj*); +obj* l_Lean_Parser_nodeInfo___elambda__2(obj*, obj*); obj* l_Lean_Parser_fieldIdx___closed__2; extern obj* l_Lean_charLitKind; obj* l_Lean_Parser_takeWhileFn___at_Lean_Parser_binNumberFn___spec__2(obj*, obj*); @@ -834,6 +893,7 @@ obj* l_Lean_Parser_unquotedSymbolFn___rarg(obj*, obj*); obj* l_Lean_Parser_takeUntilFn___main___at_Lean_Parser_identFnAux___main___spec__3___boxed(obj*, obj*); obj* l_Lean_Parser_lookaheadFn___rarg(obj*, obj*, obj*, obj*); obj* l___private_init_lean_parser_parser_3__rawAux(uint8); +obj* l_Lean_Parser_isValidSyntaxNodeKind(obj*, obj*); obj* l_Lean_Parser_ParserState_replaceLongest___boxed(obj*, obj*, obj*); obj* l_Lean_registerTagAttribute___lambda__6___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_Lean_Parser_sepByInfo(obj*, obj*); @@ -2852,13 +2912,15 @@ return x_3; obj* _init_l_Lean_Parser_Parser_inhabited___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_ExceptT_lift___rarg___closed__1; -x_2 = lean::box(1); -x_3 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_3, 0, x_1); -lean::cnstr_set(x_3, 1, x_2); -return x_3; +x_2 = l_mjoin___rarg___closed__1; +x_3 = lean::box(1); +x_4 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_4, 0, x_1); +lean::cnstr_set(x_4, 1, x_2); +lean::cnstr_set(x_4, 2, x_3); +return x_4; } } obj* _init_l_Lean_Parser_Parser_inhabited___closed__2() { @@ -2905,6 +2967,13 @@ return x_3; obj* l_Lean_Parser_epsilonInfo___elambda__1(obj* x_1) { _start: { +lean::inc(x_1); +return x_1; +} +} +obj* l_Lean_Parser_epsilonInfo___elambda__2(obj* x_1) { +_start: +{ obj* x_2; x_2 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_2, 0, x_1); @@ -2915,30 +2984,49 @@ obj* _init_l_Lean_Parser_epsilonInfo___closed__1() { _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_epsilonInfo___elambda__1), 1, 0); +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_epsilonInfo___elambda__2), 1, 0); return x_1; } } obj* _init_l_Lean_Parser_epsilonInfo___closed__2() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_epsilonInfo___elambda__1___boxed), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_epsilonInfo___closed__3() { +_start: +{ +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_epsilonInfo___closed__1; -x_2 = lean::box(0); -x_3 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_3, 0, x_1); -lean::cnstr_set(x_3, 1, x_2); -return x_3; +x_2 = l_Lean_Parser_epsilonInfo___closed__2; +x_3 = lean::box(0); +x_4 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_4, 0, x_1); +lean::cnstr_set(x_4, 1, x_2); +lean::cnstr_set(x_4, 2, x_3); +return x_4; } } obj* _init_l_Lean_Parser_epsilonInfo() { _start: { obj* x_1; -x_1 = l_Lean_Parser_epsilonInfo___closed__2; +x_1 = l_Lean_Parser_epsilonInfo___closed__3; return x_1; } } +obj* l_Lean_Parser_epsilonInfo___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_epsilonInfo___elambda__1(x_1); +lean::dec(x_1); +return x_2; +} +} obj* l_Lean_Parser_pushLeadingFn(obj* x_1, obj* x_2, obj* x_3) { _start: { @@ -3104,6 +3192,15 @@ obj* l_Lean_Parser_andthenInfo___elambda__1(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_5; +x_4 = lean::apply_1(x_2, x_3); +x_5 = lean::apply_1(x_1, x_4); +return x_5; +} +} +obj* l_Lean_Parser_andthenInfo___elambda__2(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; obj* x_5; x_4 = lean::cnstr_get(x_2, 0); lean::inc(x_4); lean::dec(x_2); @@ -3145,23 +3242,31 @@ return x_11; obj* l_Lean_Parser_andthenInfo(obj* x_1, obj* x_2) { _start: { -obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; lean::inc(x_2); lean::inc(x_1); -x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_andthenInfo___elambda__1), 3, 2); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_andthenInfo___elambda__2), 3, 2); lean::closure_set(x_3, 0, x_1); lean::closure_set(x_3, 1, x_2); x_4 = lean::cnstr_get(x_1, 1); lean::inc(x_4); -lean::dec(x_1); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); +x_6 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_andthenInfo___elambda__1), 3, 2); +lean::closure_set(x_6, 0, x_4); +lean::closure_set(x_6, 1, x_5); +x_7 = lean::cnstr_get(x_1, 2); +lean::inc(x_7); +lean::dec(x_1); +x_8 = lean::cnstr_get(x_2, 2); +lean::inc(x_8); lean::dec(x_2); -x_6 = l_Lean_Parser_FirstTokens_seq___main(x_4, x_5); -x_7 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_7, 0, x_3); -lean::cnstr_set(x_7, 1, x_6); -return x_7; +x_9 = l_Lean_Parser_FirstTokens_seq___main(x_7, x_8); +x_10 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_10, 0, x_3); +lean::cnstr_set(x_10, 1, x_6); +lean::cnstr_set(x_10, 2, x_9); +return x_10; } } obj* l_Lean_Parser_andthen(uint8 x_1, obj* x_2, obj* x_3) { @@ -3280,10 +3385,349 @@ x_3 = l_Lean_Parser_nodeFn(x_2); return x_3; } } +uint8 l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +uint8 x_3; +x_3 = 0; +return x_3; +} +else +{ +obj* x_4; obj* x_5; uint8 x_6; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 2); +x_6 = lean_name_dec_eq(x_4, x_1); +if (x_6 == 0) +{ +x_2 = x_5; +goto _start; +} +else +{ +uint8 x_8; +x_8 = 1; +return x_8; +} +} +} +} +obj* l_AssocList_mfoldl___main___at_Lean_Parser_nodeInfo___elambda__1___spec__5(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +uint8 x_3; +x_3 = !lean::is_exclusive(x_2); +if (x_3 == 0) +{ +obj* x_4; obj* x_5; obj* x_6; usize x_7; usize x_8; obj* x_9; usize x_10; obj* x_11; usize x_12; obj* x_13; +x_4 = lean::cnstr_get(x_2, 0); +x_5 = lean::cnstr_get(x_2, 2); +x_6 = lean::array_get_size(x_1); +x_7 = lean_name_hash_usize(x_4); +x_8 = lean::usize_modn(x_7, x_6); +lean::dec(x_6); +x_9 = lean::box_size_t(x_8); +x_10 = lean::unbox_size_t(x_9); +x_11 = lean::array_uget(x_1, x_10); +lean::cnstr_set(x_2, 2, x_11); +x_12 = lean::unbox_size_t(x_9); +lean::dec(x_9); +x_13 = lean::array_uset(x_1, x_12, x_2); +x_1 = x_13; +x_2 = x_5; +goto _start; +} +else +{ +obj* x_15; obj* x_16; obj* x_17; obj* x_18; usize x_19; usize x_20; obj* x_21; usize x_22; obj* x_23; obj* x_24; usize x_25; obj* x_26; +x_15 = lean::cnstr_get(x_2, 0); +x_16 = lean::cnstr_get(x_2, 1); +x_17 = lean::cnstr_get(x_2, 2); +lean::inc(x_17); +lean::inc(x_16); +lean::inc(x_15); +lean::dec(x_2); +x_18 = lean::array_get_size(x_1); +x_19 = lean_name_hash_usize(x_15); +x_20 = lean::usize_modn(x_19, x_18); +lean::dec(x_18); +x_21 = lean::box_size_t(x_20); +x_22 = lean::unbox_size_t(x_21); +x_23 = lean::array_uget(x_1, x_22); +x_24 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_24, 0, x_15); +lean::cnstr_set(x_24, 1, x_16); +lean::cnstr_set(x_24, 2, x_23); +x_25 = lean::unbox_size_t(x_21); +lean::dec(x_21); +x_26 = lean::array_uset(x_1, x_25, x_24); +x_1 = x_26; +x_2 = x_17; +goto _start; +} +} +} +} +obj* l_HashMapImp_moveEntries___main___at_Lean_Parser_nodeInfo___elambda__1___spec__4(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; uint8 x_5; +x_4 = lean::array_get_size(x_2); +x_5 = lean::nat_dec_lt(x_1, x_4); +lean::dec(x_4); +if (x_5 == 0) +{ +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +else +{ +obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; +x_6 = lean::array_fget(x_2, x_1); +x_7 = lean::box(0); +x_8 = lean::array_fset(x_2, x_1, x_7); +x_9 = l_AssocList_mfoldl___main___at_Lean_Parser_nodeInfo___elambda__1___spec__5(x_3, x_6); +x_10 = lean::mk_nat_obj(1u); +x_11 = lean::nat_add(x_1, x_10); +lean::dec(x_1); +x_1 = x_11; +x_2 = x_8; +x_3 = x_9; +goto _start; +} +} +} +obj* l_HashMapImp_expand___at_Lean_Parser_nodeInfo___elambda__1___spec__3(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; +x_3 = lean::array_get_size(x_2); +x_4 = lean::mk_nat_obj(2u); +x_5 = lean::nat_mul(x_3, x_4); +lean::dec(x_3); +x_6 = lean::box(0); +x_7 = lean::mk_array(x_5, x_6); +x_8 = lean::mk_nat_obj(0u); +x_9 = l_HashMapImp_moveEntries___main___at_Lean_Parser_nodeInfo___elambda__1___spec__4(x_8, x_2, x_7); +x_10 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_10, 0, x_1); +lean::cnstr_set(x_10, 1, x_9); +return x_10; +} +} +obj* l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +if (lean::obj_tag(x_3) == 0) +{ +lean::dec(x_2); +lean::dec(x_1); +return x_3; +} +else +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_3); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; uint8 x_8; +x_5 = lean::cnstr_get(x_3, 0); +x_6 = lean::cnstr_get(x_3, 1); +x_7 = lean::cnstr_get(x_3, 2); +x_8 = lean_name_dec_eq(x_5, x_1); +if (x_8 == 0) +{ +obj* x_9; +x_9 = l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(x_1, x_2, x_7); +lean::cnstr_set(x_3, 2, x_9); +return x_3; +} +else +{ +lean::dec(x_6); +lean::dec(x_5); +lean::cnstr_set(x_3, 1, x_2); +lean::cnstr_set(x_3, 0, x_1); +return x_3; +} +} +else +{ +obj* x_10; obj* x_11; obj* x_12; uint8 x_13; +x_10 = lean::cnstr_get(x_3, 0); +x_11 = lean::cnstr_get(x_3, 1); +x_12 = lean::cnstr_get(x_3, 2); +lean::inc(x_12); +lean::inc(x_11); +lean::inc(x_10); +lean::dec(x_3); +x_13 = lean_name_dec_eq(x_10, x_1); +if (x_13 == 0) +{ +obj* x_14; obj* x_15; +x_14 = l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(x_1, x_2, x_12); +x_15 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_15, 0, x_10); +lean::cnstr_set(x_15, 1, x_11); +lean::cnstr_set(x_15, 2, x_14); +return x_15; +} +else +{ +obj* x_16; +lean::dec(x_11); +lean::dec(x_10); +x_16 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_16, 0, x_1); +lean::cnstr_set(x_16, 1, x_2); +lean::cnstr_set(x_16, 2, x_12); +return x_16; +} +} +} +} +} +obj* l_HashMapImp_insert___at_Lean_Parser_nodeInfo___elambda__1___spec__1(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_1); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; usize x_8; usize x_9; obj* x_10; usize x_11; obj* x_12; uint8 x_13; +x_5 = lean::cnstr_get(x_1, 0); +x_6 = lean::cnstr_get(x_1, 1); +x_7 = lean::array_get_size(x_6); +x_8 = lean_name_hash_usize(x_2); +x_9 = lean::usize_modn(x_8, x_7); +x_10 = lean::box_size_t(x_9); +x_11 = lean::unbox_size_t(x_10); +x_12 = lean::array_uget(x_6, x_11); +x_13 = l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(x_2, x_12); +if (x_13 == 0) +{ +obj* x_14; obj* x_15; obj* x_16; usize x_17; obj* x_18; uint8 x_19; +x_14 = lean::mk_nat_obj(1u); +x_15 = lean::nat_add(x_5, x_14); +lean::dec(x_5); +x_16 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_16, 0, x_2); +lean::cnstr_set(x_16, 1, x_3); +lean::cnstr_set(x_16, 2, x_12); +x_17 = lean::unbox_size_t(x_10); +lean::dec(x_10); +x_18 = lean::array_uset(x_6, x_17, x_16); +x_19 = lean::nat_dec_le(x_15, x_7); +lean::dec(x_7); +if (x_19 == 0) +{ +obj* x_20; +lean::free_heap_obj(x_1); +x_20 = l_HashMapImp_expand___at_Lean_Parser_nodeInfo___elambda__1___spec__3(x_15, x_18); +return x_20; +} +else +{ +lean::cnstr_set(x_1, 1, x_18); +lean::cnstr_set(x_1, 0, x_15); +return x_1; +} +} +else +{ +obj* x_21; usize x_22; obj* x_23; +lean::dec(x_7); +x_21 = l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(x_2, x_3, x_12); +x_22 = lean::unbox_size_t(x_10); +lean::dec(x_10); +x_23 = lean::array_uset(x_6, x_22, x_21); +lean::cnstr_set(x_1, 1, x_23); +return x_1; +} +} +else +{ +obj* x_24; obj* x_25; obj* x_26; usize x_27; usize x_28; obj* x_29; usize x_30; obj* x_31; uint8 x_32; +x_24 = lean::cnstr_get(x_1, 0); +x_25 = lean::cnstr_get(x_1, 1); +lean::inc(x_25); +lean::inc(x_24); +lean::dec(x_1); +x_26 = lean::array_get_size(x_25); +x_27 = lean_name_hash_usize(x_2); +x_28 = lean::usize_modn(x_27, x_26); +x_29 = lean::box_size_t(x_28); +x_30 = lean::unbox_size_t(x_29); +x_31 = lean::array_uget(x_25, x_30); +x_32 = l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(x_2, x_31); +if (x_32 == 0) +{ +obj* x_33; obj* x_34; obj* x_35; usize x_36; obj* x_37; uint8 x_38; +x_33 = lean::mk_nat_obj(1u); +x_34 = lean::nat_add(x_24, x_33); +lean::dec(x_24); +x_35 = lean::alloc_cnstr(1, 3, 0); +lean::cnstr_set(x_35, 0, x_2); +lean::cnstr_set(x_35, 1, x_3); +lean::cnstr_set(x_35, 2, x_31); +x_36 = lean::unbox_size_t(x_29); +lean::dec(x_29); +x_37 = lean::array_uset(x_25, x_36, x_35); +x_38 = lean::nat_dec_le(x_34, x_26); +lean::dec(x_26); +if (x_38 == 0) +{ +obj* x_39; +x_39 = l_HashMapImp_expand___at_Lean_Parser_nodeInfo___elambda__1___spec__3(x_34, x_37); +return x_39; +} +else +{ +obj* x_40; +x_40 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_40, 0, x_34); +lean::cnstr_set(x_40, 1, x_37); +return x_40; +} +} +else +{ +obj* x_41; usize x_42; obj* x_43; obj* x_44; +lean::dec(x_26); +x_41 = l_AssocList_replace___main___at_Lean_Parser_nodeInfo___elambda__1___spec__6(x_2, x_3, x_31); +x_42 = lean::unbox_size_t(x_29); +lean::dec(x_29); +x_43 = lean::array_uset(x_25, x_42, x_41); +x_44 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_44, 0, x_24); +lean::cnstr_set(x_44, 1, x_43); +return x_44; +} +} +} +} obj* l_Lean_Parser_nodeInfo___elambda__1(obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_4; +x_3 = lean::box(0); +x_4 = l_HashMapImp_insert___at_Lean_Parser_nodeInfo___elambda__1___spec__1(x_2, x_1, x_3); +return x_4; +} +} +obj* l_Lean_Parser_nodeInfo___elambda__2(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; x_3 = lean::cnstr_get(x_1, 0); lean::inc(x_3); lean::dec(x_1); @@ -3291,42 +3735,60 @@ x_4 = lean::apply_1(x_3, x_2); return x_4; } } -obj* l_Lean_Parser_nodeInfo(obj* x_1) { +obj* l_Lean_Parser_nodeInfo(obj* x_1, obj* x_2) { _start: { -obj* x_2; uint8 x_3; -lean::inc(x_1); -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_nodeInfo___elambda__1), 2, 1); -lean::closure_set(x_2, 0, x_1); -x_3 = !lean::is_exclusive(x_1); -if (x_3 == 0) +obj* x_3; obj* x_4; uint8 x_5; +lean::inc(x_2); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_nodeInfo___elambda__2), 2, 1); +lean::closure_set(x_3, 0, x_2); +x_4 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_nodeInfo___elambda__1), 2, 1); +lean::closure_set(x_4, 0, x_1); +x_5 = !lean::is_exclusive(x_2); +if (x_5 == 0) { -obj* x_4; -x_4 = lean::cnstr_get(x_1, 0); -lean::dec(x_4); -lean::cnstr_set(x_1, 0, x_2); -return x_1; +obj* x_6; obj* x_7; +x_6 = lean::cnstr_get(x_2, 1); +lean::dec(x_6); +x_7 = lean::cnstr_get(x_2, 0); +lean::dec(x_7); +lean::cnstr_set(x_2, 1, x_4); +lean::cnstr_set(x_2, 0, x_3); +return x_2; } else { -obj* x_5; obj* x_6; -x_5 = lean::cnstr_get(x_1, 1); -lean::inc(x_5); -lean::dec(x_1); -x_6 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_6, 0, x_2); -lean::cnstr_set(x_6, 1, x_5); -return x_6; +obj* x_8; obj* x_9; +x_8 = lean::cnstr_get(x_2, 2); +lean::inc(x_8); +lean::dec(x_2); +x_9 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_9, 0, x_3); +lean::cnstr_set(x_9, 1, x_4); +lean::cnstr_set(x_9, 2, x_8); +return x_9; } } } +obj* l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} obj* l_Lean_Parser_node(uint8 x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; x_4 = lean::cnstr_get(x_3, 0); lean::inc(x_4); -x_5 = l_Lean_Parser_nodeInfo(x_4); +lean::inc(x_2); +x_5 = l_Lean_Parser_nodeInfo(x_2, x_4); x_6 = lean::cnstr_get(x_3, 1); lean::inc(x_6); lean::dec(x_3); @@ -3355,7 +3817,8 @@ _start: obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); -x_4 = l_Lean_Parser_nodeInfo(x_3); +lean::inc(x_1); +x_4 = l_Lean_Parser_nodeInfo(x_1, x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); @@ -3374,7 +3837,8 @@ _start: obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); -x_4 = l_Lean_Parser_nodeInfo(x_3); +lean::inc(x_1); +x_4 = l_Lean_Parser_nodeInfo(x_1, x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); @@ -3669,6 +4133,15 @@ obj* l_Lean_Parser_orelseInfo___elambda__1(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_5; +x_4 = lean::apply_1(x_2, x_3); +x_5 = lean::apply_1(x_1, x_4); +return x_5; +} +} +obj* l_Lean_Parser_orelseInfo___elambda__2(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; obj* x_5; x_4 = lean::cnstr_get(x_2, 0); lean::inc(x_4); lean::dec(x_2); @@ -3710,23 +4183,31 @@ return x_11; obj* l_Lean_Parser_orelseInfo(obj* x_1, obj* x_2) { _start: { -obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; lean::inc(x_2); lean::inc(x_1); -x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_orelseInfo___elambda__1), 3, 2); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_orelseInfo___elambda__2), 3, 2); lean::closure_set(x_3, 0, x_1); lean::closure_set(x_3, 1, x_2); x_4 = lean::cnstr_get(x_1, 1); lean::inc(x_4); -lean::dec(x_1); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); +x_6 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_orelseInfo___elambda__1), 3, 2); +lean::closure_set(x_6, 0, x_4); +lean::closure_set(x_6, 1, x_5); +x_7 = lean::cnstr_get(x_1, 2); +lean::inc(x_7); +lean::dec(x_1); +x_8 = lean::cnstr_get(x_2, 2); +lean::inc(x_8); lean::dec(x_2); -x_6 = l_Lean_Parser_FirstTokens_merge___main(x_4, x_5); -x_7 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_7, 0, x_3); -lean::cnstr_set(x_7, 1, x_6); -return x_7; +x_9 = l_Lean_Parser_FirstTokens_merge___main(x_7, x_8); +x_10 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_10, 0, x_3); +lean::cnstr_set(x_10, 1, x_6); +lean::cnstr_set(x_10, 2, x_9); +return x_10; } } obj* l_Lean_Parser_orelse(uint8 x_1, obj* x_2, obj* x_3) { @@ -3787,6 +4268,17 @@ obj* l_Lean_Parser_noFirstTokenInfo___elambda__1(obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_4; +x_3 = lean::cnstr_get(x_1, 1); +lean::inc(x_3); +lean::dec(x_1); +x_4 = lean::apply_1(x_3, x_2); +return x_4; +} +} +obj* l_Lean_Parser_noFirstTokenInfo___elambda__2(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; x_3 = lean::cnstr_get(x_1, 0); lean::inc(x_3); lean::dec(x_1); @@ -3797,14 +4289,18 @@ return x_4; obj* l_Lean_Parser_noFirstTokenInfo(obj* x_1) { _start: { -obj* x_2; obj* x_3; obj* x_4; -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_noFirstTokenInfo___elambda__1), 2, 1); +obj* x_2; obj* x_3; obj* x_4; obj* x_5; +lean::inc(x_1); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_noFirstTokenInfo___elambda__2), 2, 1); lean::closure_set(x_2, 0, x_1); -x_3 = lean::box(1); -x_4 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_4, 0, x_2); -lean::cnstr_set(x_4, 1, x_3); -return x_4; +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_noFirstTokenInfo___elambda__1), 2, 1); +lean::closure_set(x_3, 0, x_1); +x_4 = lean::box(1); +x_5 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_5, 0, x_2); +lean::cnstr_set(x_5, 1, x_3); +lean::cnstr_set(x_5, 2, x_4); +return x_5; } } obj* l_Lean_Parser_tryFn___main___rarg(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -4068,6 +4564,17 @@ obj* l_Lean_Parser_optionaInfo___elambda__1(obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_4; +x_3 = lean::cnstr_get(x_1, 1); +lean::inc(x_3); +lean::dec(x_1); +x_4 = lean::apply_1(x_3, x_2); +return x_4; +} +} +obj* l_Lean_Parser_optionaInfo___elambda__2(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; x_3 = lean::cnstr_get(x_1, 0); lean::inc(x_3); lean::dec(x_1); @@ -4078,18 +4585,22 @@ return x_4; obj* l_Lean_Parser_optionaInfo(obj* x_1) { _start: { -obj* x_2; obj* x_3; obj* x_4; obj* x_5; +obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; lean::inc(x_1); -x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_optionaInfo___elambda__1), 2, 1); +x_2 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_optionaInfo___elambda__2), 2, 1); lean::closure_set(x_2, 0, x_1); -x_3 = lean::cnstr_get(x_1, 1); -lean::inc(x_3); +lean::inc(x_1); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_optionaInfo___elambda__1), 2, 1); +lean::closure_set(x_3, 0, x_1); +x_4 = lean::cnstr_get(x_1, 2); +lean::inc(x_4); lean::dec(x_1); -x_4 = l_Lean_Parser_FirstTokens_toOptional___main(x_3); -x_5 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_5, 0, x_2); -lean::cnstr_set(x_5, 1, x_4); -return x_5; +x_5 = l_Lean_Parser_FirstTokens_toOptional___main(x_4); +x_6 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_6, 0, x_2); +lean::cnstr_set(x_6, 1, x_3); +lean::cnstr_set(x_6, 2, x_5); +return x_6; } } obj* l_Lean_Parser_optional(uint8 x_1, obj* x_2) { @@ -4676,6 +5187,15 @@ obj* l_Lean_Parser_sepByInfo___elambda__1(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_5; +x_4 = lean::apply_1(x_2, x_3); +x_5 = lean::apply_1(x_1, x_4); +return x_5; +} +} +obj* l_Lean_Parser_sepByInfo___elambda__2(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; obj* x_5; x_4 = lean::cnstr_get(x_1, 0); lean::inc(x_4); lean::dec(x_1); @@ -4717,21 +5237,42 @@ return x_11; obj* l_Lean_Parser_sepByInfo(obj* x_1, obj* x_2) { _start: { -obj* x_3; obj* x_4; obj* x_5; -x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepByInfo___elambda__1), 3, 2); +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; +lean::inc(x_2); +lean::inc(x_1); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepByInfo___elambda__2), 3, 2); lean::closure_set(x_3, 0, x_1); lean::closure_set(x_3, 1, x_2); -x_4 = lean::box(1); -x_5 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_5, 0, x_3); -lean::cnstr_set(x_5, 1, x_4); -return x_5; +x_4 = lean::cnstr_get(x_1, 1); +lean::inc(x_4); +lean::dec(x_1); +x_5 = lean::cnstr_get(x_2, 1); +lean::inc(x_5); +lean::dec(x_2); +x_6 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepByInfo___elambda__1), 3, 2); +lean::closure_set(x_6, 0, x_4); +lean::closure_set(x_6, 1, x_5); +x_7 = lean::box(1); +x_8 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_8, 0, x_3); +lean::cnstr_set(x_8, 1, x_6); +lean::cnstr_set(x_8, 2, x_7); +return x_8; } } obj* l_Lean_Parser_sepBy1Info___elambda__1(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_5; +x_4 = lean::apply_1(x_2, x_3); +x_5 = lean::apply_1(x_1, x_4); +return x_5; +} +} +obj* l_Lean_Parser_sepBy1Info___elambda__2(obj* x_1, obj* x_2, obj* x_3) { +_start: +{ +obj* x_4; obj* x_5; x_4 = lean::cnstr_get(x_1, 0); lean::inc(x_4); lean::dec(x_1); @@ -4774,29 +5315,47 @@ obj* l_Lean_Parser_sepBy1Info(obj* x_1, obj* x_2) { _start: { obj* x_3; uint8 x_4; +lean::inc(x_2); lean::inc(x_1); -x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepBy1Info___elambda__1), 3, 2); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepBy1Info___elambda__2), 3, 2); lean::closure_set(x_3, 0, x_1); lean::closure_set(x_3, 1, x_2); x_4 = !lean::is_exclusive(x_1); if (x_4 == 0) { -obj* x_5; -x_5 = lean::cnstr_get(x_1, 0); -lean::dec(x_5); +obj* x_5; obj* x_6; obj* x_7; obj* x_8; +x_5 = lean::cnstr_get(x_1, 1); +x_6 = lean::cnstr_get(x_1, 0); +lean::dec(x_6); +x_7 = lean::cnstr_get(x_2, 1); +lean::inc(x_7); +lean::dec(x_2); +x_8 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepBy1Info___elambda__1), 3, 2); +lean::closure_set(x_8, 0, x_5); +lean::closure_set(x_8, 1, x_7); +lean::cnstr_set(x_1, 1, x_8); lean::cnstr_set(x_1, 0, x_3); return x_1; } else { -obj* x_6; obj* x_7; -x_6 = lean::cnstr_get(x_1, 1); -lean::inc(x_6); +obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; +x_9 = lean::cnstr_get(x_1, 1); +x_10 = lean::cnstr_get(x_1, 2); +lean::inc(x_10); +lean::inc(x_9); lean::dec(x_1); -x_7 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_7, 0, x_3); -lean::cnstr_set(x_7, 1, x_6); -return x_7; +x_11 = lean::cnstr_get(x_2, 1); +lean::inc(x_11); +lean::dec(x_2); +x_12 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_sepBy1Info___elambda__1), 3, 2); +lean::closure_set(x_12, 0, x_9); +lean::closure_set(x_12, 1, x_11); +x_13 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_13, 0, x_3); +lean::cnstr_set(x_13, 1, x_12); +lean::cnstr_set(x_13, 2, x_10); +return x_13; } } } @@ -8969,7 +9528,14 @@ return x_39; } } } -obj* l_Lean_Parser_symbolInfo___elambda__1(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Parser_symbolInfo___elambda__1(obj* x_1) { +_start: +{ +lean::inc(x_1); +return x_1; +} +} +obj* l_Lean_Parser_symbolInfo___elambda__2(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; @@ -8977,13 +9543,21 @@ x_4 = l_Lean_Parser_insertToken(x_1, x_2, x_3); return x_4; } } +obj* _init_l_Lean_Parser_symbolInfo___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolInfo___elambda__1___boxed), 1, 0); +return x_1; +} +} obj* l_Lean_Parser_symbolInfo(obj* x_1, obj* x_2) { _start: { -obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; lean::inc(x_2); lean::inc(x_1); -x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolInfo___elambda__1), 3, 2); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolInfo___elambda__2), 3, 2); lean::closure_set(x_3, 0, x_1); lean::closure_set(x_3, 1, x_2); x_4 = lean::box(0); @@ -8997,10 +9571,21 @@ lean::cnstr_set(x_7, 0, x_5); lean::cnstr_set(x_7, 1, x_6); x_8 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_8, 0, x_7); -x_9 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_9, 0, x_3); -lean::cnstr_set(x_9, 1, x_8); -return x_9; +x_9 = l_Lean_Parser_symbolInfo___closed__1; +x_10 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_10, 0, x_3); +lean::cnstr_set(x_10, 1, x_9); +lean::cnstr_set(x_10, 2, x_8); +return x_10; +} +} +obj* l_Lean_Parser_symbolInfo___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_symbolInfo___elambda__1(x_1); +lean::dec(x_1); +return x_2; } } obj* l_Lean_Parser_symbolFn___rarg(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -9261,6 +9846,13 @@ return x_7; obj* l_Lean_Parser_symbolOrIdentInfo___elambda__1(obj* x_1) { _start: { +lean::inc(x_1); +return x_1; +} +} +obj* l_Lean_Parser_symbolOrIdentInfo___elambda__2(obj* x_1) { +_start: +{ obj* x_2; x_2 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_2, 0, x_1); @@ -9304,14 +9896,22 @@ obj* _init_l_Lean_Parser_symbolOrIdentInfo___closed__4() { _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolOrIdentInfo___elambda__1), 1, 0); +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolOrIdentInfo___elambda__2), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_symbolOrIdentInfo___closed__5() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed), 1, 0); return x_1; } } obj* l_Lean_Parser_symbolOrIdentInfo(obj* x_1) { _start: { -obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; +obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; x_2 = lean::box(0); x_3 = lean::alloc_cnstr(0, 3, 0); lean::cnstr_set(x_3, 0, x_1); @@ -9324,10 +9924,21 @@ lean::cnstr_set(x_5, 1, x_4); x_6 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_6, 0, x_5); x_7 = l_Lean_Parser_symbolOrIdentInfo___closed__4; -x_8 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_8, 0, x_7); -lean::cnstr_set(x_8, 1, x_6); -return x_8; +x_8 = l_Lean_Parser_symbolOrIdentInfo___closed__5; +x_9 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_9, 0, x_7); +lean::cnstr_set(x_9, 1, x_8); +lean::cnstr_set(x_9, 2, x_6); +return x_9; +} +} +obj* l_Lean_Parser_symbolOrIdentInfo___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_symbolOrIdentInfo___elambda__1(x_1); +lean::dec(x_1); +return x_2; } } obj* l_Lean_Parser_symbolOrIdent___lambda__1(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { @@ -9872,7 +10483,14 @@ return x_39; } } } -obj* l_Lean_Parser_symbolNoWsInfo___elambda__1(obj* x_1, obj* x_2, obj* x_3) { +obj* l_Lean_Parser_symbolNoWsInfo___elambda__1(obj* x_1) { +_start: +{ +lean::inc(x_1); +return x_1; +} +} +obj* l_Lean_Parser_symbolNoWsInfo___elambda__2(obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; @@ -9880,13 +10498,21 @@ x_4 = l_Lean_Parser_insertNoWsToken(x_1, x_2, x_3); return x_4; } } +obj* _init_l_Lean_Parser_symbolNoWsInfo___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolNoWsInfo___elambda__1___boxed), 1, 0); +return x_1; +} +} obj* l_Lean_Parser_symbolNoWsInfo(obj* x_1, obj* x_2) { _start: { -obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; +obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; lean::inc(x_2); lean::inc(x_1); -x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolNoWsInfo___elambda__1), 3, 2); +x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_symbolNoWsInfo___elambda__2), 3, 2); lean::closure_set(x_3, 0, x_1); lean::closure_set(x_3, 1, x_2); x_4 = lean::box(0); @@ -9900,10 +10526,21 @@ lean::cnstr_set(x_7, 0, x_5); lean::cnstr_set(x_7, 1, x_6); x_8 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_8, 0, x_7); -x_9 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_9, 0, x_3); -lean::cnstr_set(x_9, 1, x_8); -return x_9; +x_9 = l_Lean_Parser_symbolNoWsInfo___closed__1; +x_10 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_10, 0, x_3); +lean::cnstr_set(x_10, 1, x_9); +lean::cnstr_set(x_10, 2, x_8); +return x_10; +} +} +obj* l_Lean_Parser_symbolNoWsInfo___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_symbolNoWsInfo___elambda__1(x_1); +lean::dec(x_1); +return x_2; } } obj* l_Lean_Parser_symbolNoWsFnAux(obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { @@ -10106,7 +10743,14 @@ lean::dec(x_1); return x_6; } } -obj* l_Lean_Parser_unicodeSymbolInfo___elambda__1(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +obj* l_Lean_Parser_unicodeSymbolInfo___elambda__1(obj* x_1) { +_start: +{ +lean::inc(x_1); +return x_1; +} +} +obj* l_Lean_Parser_unicodeSymbolInfo___elambda__2(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_5; @@ -10144,14 +10788,22 @@ return x_10; } } } +obj* _init_l_Lean_Parser_unicodeSymbolInfo___closed__1() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_unicodeSymbolInfo___elambda__1___boxed), 1, 0); +return x_1; +} +} obj* l_Lean_Parser_unicodeSymbolInfo(obj* x_1, obj* x_2, obj* x_3) { _start: { -obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; +obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; lean::inc(x_3); lean::inc(x_2); lean::inc(x_1); -x_4 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_unicodeSymbolInfo___elambda__1), 4, 3); +x_4 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_unicodeSymbolInfo___elambda__2), 4, 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); @@ -10174,10 +10826,21 @@ lean::cnstr_set(x_10, 0, x_6); lean::cnstr_set(x_10, 1, x_9); x_11 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_11, 0, x_10); -x_12 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_12, 0, x_4); -lean::cnstr_set(x_12, 1, x_11); -return x_12; +x_12 = l_Lean_Parser_unicodeSymbolInfo___closed__1; +x_13 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_13, 0, x_4); +lean::cnstr_set(x_13, 1, x_12); +lean::cnstr_set(x_13, 2, x_11); +return x_13; +} +} +obj* l_Lean_Parser_unicodeSymbolInfo___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_unicodeSymbolInfo___elambda__1(x_1); +lean::dec(x_1); +return x_2; } } obj* _init_l_Lean_Parser_unicodeSymbolFn___rarg___closed__1() { @@ -10444,6 +11107,13 @@ return x_4; obj* l_Lean_Parser_mkAtomicInfo___elambda__1(obj* x_1) { _start: { +lean::inc(x_1); +return x_1; +} +} +obj* l_Lean_Parser_mkAtomicInfo___elambda__2(obj* x_1) { +_start: +{ obj* x_2; x_2 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_2, 0, x_1); @@ -10454,14 +11124,22 @@ obj* _init_l_Lean_Parser_mkAtomicInfo___closed__1() { _start: { obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_mkAtomicInfo___elambda__1), 1, 0); +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_mkAtomicInfo___elambda__2), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_mkAtomicInfo___closed__2() { +_start: +{ +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_mkAtomicInfo___elambda__1___boxed), 1, 0); return x_1; } } obj* l_Lean_Parser_mkAtomicInfo(obj* x_1) { _start: { -obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; +obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; x_2 = lean::box(0); x_3 = lean::alloc_cnstr(0, 3, 0); lean::cnstr_set(x_3, 0, x_1); @@ -10474,10 +11152,21 @@ lean::cnstr_set(x_5, 1, x_4); x_6 = lean::alloc_cnstr(2, 1, 0); lean::cnstr_set(x_6, 0, x_5); x_7 = l_Lean_Parser_mkAtomicInfo___closed__1; -x_8 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_8, 0, x_7); -lean::cnstr_set(x_8, 1, x_6); -return x_8; +x_8 = l_Lean_Parser_mkAtomicInfo___closed__2; +x_9 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_9, 0, x_7); +lean::cnstr_set(x_9, 1, x_8); +lean::cnstr_set(x_9, 2, x_6); +return x_9; +} +} +obj* l_Lean_Parser_mkAtomicInfo___elambda__1___boxed(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_Lean_Parser_mkAtomicInfo___elambda__1(x_1); +lean::dec(x_1); +return x_2; } } obj* l_Lean_Parser_numLitFn___rarg(obj* x_1, obj* x_2) { @@ -11295,26 +11984,22 @@ x_10 = l_Lean_Syntax_isOfKind___main(x_7, x_9); if (x_10 == 0) { obj* x_11; uint8 x_12; -x_11 = l_Lean_numLitKind; +x_11 = l_Lean_charLitKind; x_12 = l_Lean_Syntax_isOfKind___main(x_7, x_11); -lean::dec(x_7); if (x_12 == 0) { +obj* x_13; uint8 x_14; +x_13 = l_Lean_numLitKind; +x_14 = l_Lean_Syntax_isOfKind___main(x_7, x_13); +lean::dec(x_7); +if (x_14 == 0) +{ lean::dec(x_3); return x_4; } else { -obj* x_13; obj* x_14; -x_13 = l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; -x_14 = l_Lean_Parser_ParserState_mkErrorAt(x_4, x_13, x_3); -return x_14; -} -} -else -{ obj* x_15; obj* x_16; -lean::dec(x_7); x_15 = l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; x_16 = l_Lean_Parser_ParserState_mkErrorAt(x_4, x_15, x_3); return x_16; @@ -11332,12 +12017,30 @@ return x_18; else { obj* x_19; obj* x_20; -lean::dec(x_5); +lean::dec(x_7); x_19 = l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; x_20 = l_Lean_Parser_ParserState_mkErrorAt(x_4, x_19, x_3); return x_20; } } +else +{ +obj* x_21; obj* x_22; +lean::dec(x_7); +x_21 = l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; +x_22 = l_Lean_Parser_ParserState_mkErrorAt(x_4, x_21, x_3); +return x_22; +} +} +else +{ +obj* x_23; obj* x_24; +lean::dec(x_5); +x_23 = l_Lean_Parser_unquotedSymbolFn___rarg___closed__1; +x_24 = l_Lean_Parser_ParserState_mkErrorAt(x_4, x_23, x_3); +return x_24; +} +} } obj* l_Lean_Parser_unquotedSymbolFn(uint8 x_1, obj* x_2) { _start: @@ -24425,6 +25128,431 @@ lean::dec(x_1); return x_2; } } +obj* l_mkHashMap___at_Lean_Parser_mkSyntaxNodeKindSetRef___spec__1(obj* x_1) { +_start: +{ +obj* x_2; +x_2 = l_mkHashMapImp___rarg(x_1); +return x_2; +} +} +obj* _init_l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1() { +_start: +{ +obj* x_1; obj* x_2; +x_1 = lean::mk_nat_obj(8u); +x_2 = l_mkHashMapImp___rarg(x_1); +return x_2; +} +} +obj* l_Lean_Parser_mkSyntaxNodeKindSetRef(obj* x_1) { +_start: +{ +obj* x_2; obj* x_3; +x_2 = l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1; +x_3 = lean::io_mk_ref(x_2, x_1); +return x_3; +} +} +obj* l_Lean_Parser_updateSyntaxNodeKinds(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; obj* x_5; +x_3 = lean::cnstr_get(x_1, 1); +lean::inc(x_3); +lean::dec(x_1); +x_4 = l_Lean_Parser_syntaxNodeKindSetRef; +x_5 = lean::io_ref_get(x_4, x_2); +if (lean::obj_tag(x_5) == 0) +{ +uint8 x_6; +x_6 = !lean::is_exclusive(x_5); +if (x_6 == 0) +{ +obj* x_7; obj* x_8; obj* x_9; +x_7 = lean::cnstr_get(x_5, 0); +x_8 = lean::box(0); +lean::cnstr_set(x_5, 0, x_8); +x_9 = lean::io_ref_reset(x_4, x_5); +if (lean::obj_tag(x_9) == 0) +{ +uint8 x_10; +x_10 = !lean::is_exclusive(x_9); +if (x_10 == 0) +{ +obj* x_11; obj* x_12; obj* x_13; +x_11 = lean::cnstr_get(x_9, 0); +lean::dec(x_11); +lean::cnstr_set(x_9, 0, x_8); +x_12 = lean::apply_1(x_3, x_7); +x_13 = lean::io_ref_set(x_4, x_12, x_9); +return x_13; +} +else +{ +obj* x_14; obj* x_15; obj* x_16; obj* x_17; +x_14 = lean::cnstr_get(x_9, 1); +lean::inc(x_14); +lean::dec(x_9); +x_15 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_15, 0, x_8); +lean::cnstr_set(x_15, 1, x_14); +x_16 = lean::apply_1(x_3, x_7); +x_17 = lean::io_ref_set(x_4, x_16, x_15); +return x_17; +} +} +else +{ +uint8 x_18; +lean::dec(x_7); +lean::dec(x_3); +x_18 = !lean::is_exclusive(x_9); +if (x_18 == 0) +{ +return x_9; +} +else +{ +obj* x_19; obj* x_20; obj* x_21; +x_19 = lean::cnstr_get(x_9, 0); +x_20 = lean::cnstr_get(x_9, 1); +lean::inc(x_20); +lean::inc(x_19); +lean::dec(x_9); +x_21 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_21, 0, x_19); +lean::cnstr_set(x_21, 1, x_20); +return x_21; +} +} +} +else +{ +obj* x_22; obj* x_23; obj* x_24; obj* x_25; obj* x_26; +x_22 = lean::cnstr_get(x_5, 0); +x_23 = lean::cnstr_get(x_5, 1); +lean::inc(x_23); +lean::inc(x_22); +lean::dec(x_5); +x_24 = lean::box(0); +x_25 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_25, 0, x_24); +lean::cnstr_set(x_25, 1, x_23); +x_26 = lean::io_ref_reset(x_4, x_25); +if (lean::obj_tag(x_26) == 0) +{ +obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; +x_27 = lean::cnstr_get(x_26, 1); +lean::inc(x_27); +if (lean::is_exclusive(x_26)) { + lean::cnstr_release(x_26, 0); + lean::cnstr_release(x_26, 1); + x_28 = x_26; +} else { + lean::dec_ref(x_26); + x_28 = lean::box(0); +} +if (lean::is_scalar(x_28)) { + x_29 = lean::alloc_cnstr(0, 2, 0); +} else { + x_29 = x_28; +} +lean::cnstr_set(x_29, 0, x_24); +lean::cnstr_set(x_29, 1, x_27); +x_30 = lean::apply_1(x_3, x_22); +x_31 = lean::io_ref_set(x_4, x_30, x_29); +return x_31; +} +else +{ +obj* x_32; obj* x_33; obj* x_34; obj* x_35; +lean::dec(x_22); +lean::dec(x_3); +x_32 = lean::cnstr_get(x_26, 0); +lean::inc(x_32); +x_33 = lean::cnstr_get(x_26, 1); +lean::inc(x_33); +if (lean::is_exclusive(x_26)) { + lean::cnstr_release(x_26, 0); + lean::cnstr_release(x_26, 1); + x_34 = x_26; +} else { + lean::dec_ref(x_26); + x_34 = lean::box(0); +} +if (lean::is_scalar(x_34)) { + x_35 = lean::alloc_cnstr(1, 2, 0); +} else { + x_35 = x_34; +} +lean::cnstr_set(x_35, 0, x_32); +lean::cnstr_set(x_35, 1, x_33); +return x_35; +} +} +} +else +{ +uint8 x_36; +lean::dec(x_3); +x_36 = !lean::is_exclusive(x_5); +if (x_36 == 0) +{ +return x_5; +} +else +{ +obj* x_37; obj* x_38; obj* x_39; +x_37 = lean::cnstr_get(x_5, 0); +x_38 = lean::cnstr_get(x_5, 1); +lean::inc(x_38); +lean::inc(x_37); +lean::dec(x_5); +x_39 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_39, 0, x_37); +lean::cnstr_set(x_39, 1, x_38); +return x_39; +} +} +} +} +uint8 l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; usize x_5; usize x_6; obj* x_7; usize x_8; obj* x_9; uint8 x_10; +x_3 = lean::cnstr_get(x_1, 1); +x_4 = lean::array_get_size(x_3); +x_5 = lean_name_hash_usize(x_2); +x_6 = lean::usize_modn(x_5, x_4); +lean::dec(x_4); +x_7 = lean::box_size_t(x_6); +x_8 = lean::unbox_size_t(x_7); +lean::dec(x_7); +x_9 = lean::array_uget(x_3, x_8); +x_10 = l_AssocList_contains___main___at_Lean_Parser_nodeInfo___elambda__1___spec__2(x_2, x_9); +lean::dec(x_9); +return x_10; +} +} +obj* l_Lean_Parser_isValidSyntaxNodeKind(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; obj* x_4; +x_3 = l_Lean_Parser_syntaxNodeKindSetRef; +x_4 = lean::io_ref_get(x_3, x_2); +if (lean::obj_tag(x_4) == 0) +{ +uint8 x_5; +x_5 = !lean::is_exclusive(x_4); +if (x_5 == 0) +{ +obj* x_6; uint8 x_7; obj* x_8; +x_6 = lean::cnstr_get(x_4, 0); +x_7 = l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_6, x_1); +lean::dec(x_6); +x_8 = lean::box(x_7); +lean::cnstr_set(x_4, 0, x_8); +return x_4; +} +else +{ +obj* x_9; obj* x_10; uint8 x_11; obj* x_12; obj* x_13; +x_9 = lean::cnstr_get(x_4, 0); +x_10 = lean::cnstr_get(x_4, 1); +lean::inc(x_10); +lean::inc(x_9); +lean::dec(x_4); +x_11 = l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_9, x_1); +lean::dec(x_9); +x_12 = lean::box(x_11); +x_13 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_13, 0, x_12); +lean::cnstr_set(x_13, 1, x_10); +return x_13; +} +} +else +{ +uint8 x_14; +x_14 = !lean::is_exclusive(x_4); +if (x_14 == 0) +{ +return x_4; +} +else +{ +obj* x_15; obj* x_16; obj* x_17; +x_15 = lean::cnstr_get(x_4, 0); +x_16 = lean::cnstr_get(x_4, 1); +lean::inc(x_16); +lean::inc(x_15); +lean::dec(x_4); +x_17 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_17, 0, x_15); +lean::cnstr_set(x_17, 1, x_16); +return x_17; +} +} +} +} +obj* l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1___boxed(obj* x_1, obj* x_2) { +_start: +{ +uint8 x_3; obj* x_4; +x_3 = l_HashMapImp_contains___at_Lean_Parser_isValidSyntaxNodeKind___spec__1(x_1, x_2); +lean::dec(x_2); +lean::dec(x_1); +x_4 = lean::box(x_3); +return x_4; +} +} +obj* l_Lean_Parser_isValidSyntaxNodeKind___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_Lean_Parser_isValidSyntaxNodeKind(x_1, x_2); +lean::dec(x_1); +return x_3; +} +} +obj* l_AssocList_mfoldl___main___at_Lean_Parser_getSyntaxNodeKinds___spec__1(obj* x_1, obj* x_2) { +_start: +{ +if (lean::obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +obj* x_3; obj* x_4; obj* x_5; +x_3 = lean::cnstr_get(x_2, 0); +x_4 = lean::cnstr_get(x_2, 2); +lean::inc(x_3); +x_5 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_5, 0, x_3); +lean::cnstr_set(x_5, 1, x_1); +x_1 = x_5; +x_2 = x_4; +goto _start; +} +} +} +obj* l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; uint8 x_6; +x_5 = lean::array_get_size(x_2); +x_6 = lean::nat_dec_lt(x_3, x_5); +lean::dec(x_5); +if (x_6 == 0) +{ +lean::dec(x_3); +return x_4; +} +else +{ +obj* x_7; obj* x_8; obj* x_9; obj* x_10; +x_7 = lean::array_fget(x_2, x_3); +x_8 = l_AssocList_mfoldl___main___at_Lean_Parser_getSyntaxNodeKinds___spec__1(x_4, x_7); +lean::dec(x_7); +x_9 = lean::mk_nat_obj(1u); +x_10 = lean::nat_add(x_3, x_9); +lean::dec(x_3); +x_3 = x_10; +x_4 = x_8; +goto _start; +} +} +} +obj* l_Lean_Parser_getSyntaxNodeKinds(obj* x_1) { +_start: +{ +obj* x_2; obj* x_3; +x_2 = l_Lean_Parser_syntaxNodeKindSetRef; +x_3 = lean::io_ref_get(x_2, x_1); +if (lean::obj_tag(x_3) == 0) +{ +uint8 x_4; +x_4 = !lean::is_exclusive(x_3); +if (x_4 == 0) +{ +obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; +x_5 = lean::cnstr_get(x_3, 0); +x_6 = lean::box(0); +x_7 = lean::cnstr_get(x_5, 1); +lean::inc(x_7); +x_8 = lean::mk_nat_obj(0u); +x_9 = l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_5, x_7, x_8, x_6); +lean::dec(x_7); +lean::dec(x_5); +lean::cnstr_set(x_3, 0, x_9); +return x_3; +} +else +{ +obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; +x_10 = lean::cnstr_get(x_3, 0); +x_11 = lean::cnstr_get(x_3, 1); +lean::inc(x_11); +lean::inc(x_10); +lean::dec(x_3); +x_12 = lean::box(0); +x_13 = lean::cnstr_get(x_10, 1); +lean::inc(x_13); +x_14 = lean::mk_nat_obj(0u); +x_15 = l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_10, x_13, x_14, x_12); +lean::dec(x_13); +lean::dec(x_10); +x_16 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_16, 0, x_15); +lean::cnstr_set(x_16, 1, x_11); +return x_16; +} +} +else +{ +uint8 x_17; +x_17 = !lean::is_exclusive(x_3); +if (x_17 == 0) +{ +return x_3; +} +else +{ +obj* x_18; obj* x_19; obj* x_20; +x_18 = lean::cnstr_get(x_3, 0); +x_19 = lean::cnstr_get(x_3, 1); +lean::inc(x_19); +lean::inc(x_18); +lean::dec(x_3); +x_20 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_20, 0, x_18); +lean::cnstr_set(x_20, 1, x_19); +return x_20; +} +} +} +} +obj* l_AssocList_mfoldl___main___at_Lean_Parser_getSyntaxNodeKinds___spec__1___boxed(obj* x_1, obj* x_2) { +_start: +{ +obj* x_3; +x_3 = l_AssocList_mfoldl___main___at_Lean_Parser_getSyntaxNodeKinds___spec__1(x_1, x_2); +lean::dec(x_2); +return x_3; +} +} +obj* l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2___boxed(obj* x_1, obj* x_2, obj* x_3, obj* x_4) { +_start: +{ +obj* x_5; +x_5 = l_Array_miterateAux___main___at_Lean_Parser_getSyntaxNodeKinds___spec__2(x_1, x_2, x_3, x_4); +lean::dec(x_2); +lean::dec(x_1); +return x_5; +} +} obj* l_Lean_Parser_mkParserContext(obj* x_1, obj* x_2, obj* x_3) { _start: { @@ -24761,297 +25889,305 @@ lean::inc(x_12); x_13 = l___private_init_lean_parser_parser_8__updateTokens(x_12, x_2, x_9); if (lean::obj_tag(x_13) == 0) { -obj* x_14; -x_14 = lean::cnstr_get(x_12, 1); -lean::inc(x_14); -lean::dec(x_12); -if (lean::obj_tag(x_14) == 2) +uint8 x_14; +x_14 = !lean::is_exclusive(x_13); +if (x_14 == 0) { -uint8 x_15; -lean::dec(x_2); -x_15 = !lean::is_exclusive(x_13); -if (x_15 == 0) -{ -obj* x_16; obj* x_17; obj* x_18; obj* x_19; -x_16 = lean::cnstr_get(x_13, 0); -lean::dec(x_16); -x_17 = lean::cnstr_get(x_14, 0); -lean::inc(x_17); -lean::dec(x_14); +obj* x_15; obj* x_16; +x_15 = lean::cnstr_get(x_13, 0); +lean::dec(x_15); lean::cnstr_set(x_13, 0, x_8); -x_18 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_17); -x_19 = lean::io_ref_set(x_1, x_18, x_13); -return x_19; -} -else +lean::inc(x_12); +x_16 = l_Lean_Parser_updateSyntaxNodeKinds(x_12, x_13); +if (lean::obj_tag(x_16) == 0) { -obj* x_20; obj* x_21; obj* x_22; obj* x_23; obj* x_24; -x_20 = lean::cnstr_get(x_13, 1); +obj* x_17; +x_17 = lean::cnstr_get(x_12, 2); +lean::inc(x_17); +lean::dec(x_12); +if (lean::obj_tag(x_17) == 2) +{ +uint8 x_18; +lean::dec(x_2); +x_18 = !lean::is_exclusive(x_16); +if (x_18 == 0) +{ +obj* x_19; obj* x_20; obj* x_21; obj* x_22; +x_19 = lean::cnstr_get(x_16, 0); +lean::dec(x_19); +x_20 = lean::cnstr_get(x_17, 0); lean::inc(x_20); -lean::dec(x_13); -x_21 = lean::cnstr_get(x_14, 0); -lean::inc(x_21); -lean::dec(x_14); -x_22 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_22, 0, x_8); -lean::cnstr_set(x_22, 1, x_20); -x_23 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_21); -x_24 = lean::io_ref_set(x_1, x_23, x_22); -return x_24; +lean::dec(x_17); +lean::cnstr_set(x_16, 0, x_8); +x_21 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_20); +x_22 = lean::io_ref_set(x_1, x_21, x_16); +return x_22; +} +else +{ +obj* x_23; obj* x_24; obj* x_25; obj* x_26; obj* x_27; +x_23 = lean::cnstr_get(x_16, 1); +lean::inc(x_23); +lean::dec(x_16); +x_24 = lean::cnstr_get(x_17, 0); +lean::inc(x_24); +lean::dec(x_17); +x_25 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_25, 0, x_8); +lean::cnstr_set(x_25, 1, x_23); +x_26 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_24); +x_27 = lean::io_ref_set(x_1, x_26, x_25); +return x_27; } } else { -uint8 x_25; -lean::dec(x_14); +uint8 x_28; +lean::dec(x_17); lean::dec(x_7); lean::dec(x_3); -x_25 = !lean::is_exclusive(x_13); -if (x_25 == 0) +x_28 = !lean::is_exclusive(x_16); +if (x_28 == 0) { -obj* x_26; obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; -x_26 = lean::cnstr_get(x_13, 0); -lean::dec(x_26); -x_27 = l_Lean_Name_toString___closed__1; -x_28 = l_Lean_Name_toStringWithSep___main(x_27, x_2); -x_29 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; -x_30 = lean::string_append(x_29, x_28); -lean::dec(x_28); -x_31 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; -x_32 = lean::string_append(x_30, x_31); -lean::cnstr_set_tag(x_13, 1); -lean::cnstr_set(x_13, 0, x_32); -return x_13; +obj* x_29; obj* x_30; obj* x_31; obj* x_32; obj* x_33; obj* x_34; obj* x_35; +x_29 = lean::cnstr_get(x_16, 0); +lean::dec(x_29); +x_30 = l_Lean_Name_toString___closed__1; +x_31 = l_Lean_Name_toStringWithSep___main(x_30, x_2); +x_32 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; +x_33 = lean::string_append(x_32, x_31); +lean::dec(x_31); +x_34 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; +x_35 = lean::string_append(x_33, x_34); +lean::cnstr_set_tag(x_16, 1); +lean::cnstr_set(x_16, 0, x_35); +return x_16; } else { -obj* x_33; obj* x_34; obj* x_35; obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; -x_33 = lean::cnstr_get(x_13, 1); -lean::inc(x_33); -lean::dec(x_13); -x_34 = l_Lean_Name_toString___closed__1; -x_35 = l_Lean_Name_toStringWithSep___main(x_34, x_2); -x_36 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; -x_37 = lean::string_append(x_36, x_35); -lean::dec(x_35); -x_38 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; -x_39 = lean::string_append(x_37, x_38); -x_40 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_40, 0, x_39); -lean::cnstr_set(x_40, 1, x_33); -return x_40; +obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; +x_36 = lean::cnstr_get(x_16, 1); +lean::inc(x_36); +lean::dec(x_16); +x_37 = l_Lean_Name_toString___closed__1; +x_38 = l_Lean_Name_toStringWithSep___main(x_37, x_2); +x_39 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; +x_40 = lean::string_append(x_39, x_38); +lean::dec(x_38); +x_41 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; +x_42 = lean::string_append(x_40, x_41); +x_43 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_43, 0, x_42); +lean::cnstr_set(x_43, 1, x_36); +return x_43; } } } else { -uint8 x_41; +uint8 x_44; lean::dec(x_12); lean::dec(x_7); lean::dec(x_3); lean::dec(x_2); -x_41 = !lean::is_exclusive(x_13); -if (x_41 == 0) +x_44 = !lean::is_exclusive(x_16); +if (x_44 == 0) +{ +return x_16; +} +else +{ +obj* x_45; obj* x_46; obj* x_47; +x_45 = lean::cnstr_get(x_16, 0); +x_46 = lean::cnstr_get(x_16, 1); +lean::inc(x_46); +lean::inc(x_45); +lean::dec(x_16); +x_47 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_47, 0, x_45); +lean::cnstr_set(x_47, 1, x_46); +return x_47; +} +} +} +else +{ +obj* x_48; obj* x_49; obj* x_50; +x_48 = lean::cnstr_get(x_13, 1); +lean::inc(x_48); +lean::dec(x_13); +x_49 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_49, 0, x_8); +lean::cnstr_set(x_49, 1, x_48); +lean::inc(x_12); +x_50 = l_Lean_Parser_updateSyntaxNodeKinds(x_12, x_49); +if (lean::obj_tag(x_50) == 0) +{ +obj* x_51; +x_51 = lean::cnstr_get(x_12, 2); +lean::inc(x_51); +lean::dec(x_12); +if (lean::obj_tag(x_51) == 2) +{ +obj* x_52; obj* x_53; obj* x_54; obj* x_55; obj* x_56; obj* x_57; +lean::dec(x_2); +x_52 = lean::cnstr_get(x_50, 1); +lean::inc(x_52); +if (lean::is_exclusive(x_50)) { + lean::cnstr_release(x_50, 0); + lean::cnstr_release(x_50, 1); + x_53 = x_50; +} else { + lean::dec_ref(x_50); + x_53 = lean::box(0); +} +x_54 = lean::cnstr_get(x_51, 0); +lean::inc(x_54); +lean::dec(x_51); +if (lean::is_scalar(x_53)) { + x_55 = lean::alloc_cnstr(0, 2, 0); +} else { + x_55 = x_53; +} +lean::cnstr_set(x_55, 0, x_8); +lean::cnstr_set(x_55, 1, x_52); +x_56 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_54); +x_57 = lean::io_ref_set(x_1, x_56, x_55); +return x_57; +} +else +{ +obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; +lean::dec(x_51); +lean::dec(x_7); +lean::dec(x_3); +x_58 = lean::cnstr_get(x_50, 1); +lean::inc(x_58); +if (lean::is_exclusive(x_50)) { + lean::cnstr_release(x_50, 0); + lean::cnstr_release(x_50, 1); + x_59 = x_50; +} else { + lean::dec_ref(x_50); + x_59 = lean::box(0); +} +x_60 = l_Lean_Name_toString___closed__1; +x_61 = l_Lean_Name_toStringWithSep___main(x_60, x_2); +x_62 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; +x_63 = lean::string_append(x_62, x_61); +lean::dec(x_61); +x_64 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; +x_65 = lean::string_append(x_63, x_64); +if (lean::is_scalar(x_59)) { + x_66 = lean::alloc_cnstr(1, 2, 0); +} else { + x_66 = x_59; + lean::cnstr_set_tag(x_66, 1); +} +lean::cnstr_set(x_66, 0, x_65); +lean::cnstr_set(x_66, 1, x_58); +return x_66; +} +} +else +{ +obj* x_67; obj* x_68; obj* x_69; obj* x_70; +lean::dec(x_12); +lean::dec(x_7); +lean::dec(x_3); +lean::dec(x_2); +x_67 = lean::cnstr_get(x_50, 0); +lean::inc(x_67); +x_68 = lean::cnstr_get(x_50, 1); +lean::inc(x_68); +if (lean::is_exclusive(x_50)) { + lean::cnstr_release(x_50, 0); + lean::cnstr_release(x_50, 1); + x_69 = x_50; +} else { + lean::dec_ref(x_50); + x_69 = lean::box(0); +} +if (lean::is_scalar(x_69)) { + x_70 = lean::alloc_cnstr(1, 2, 0); +} else { + x_70 = x_69; +} +lean::cnstr_set(x_70, 0, x_67); +lean::cnstr_set(x_70, 1, x_68); +return x_70; +} +} +} +else +{ +uint8 x_71; +lean::dec(x_12); +lean::dec(x_7); +lean::dec(x_3); +lean::dec(x_2); +x_71 = !lean::is_exclusive(x_13); +if (x_71 == 0) { return x_13; } else { -obj* x_42; obj* x_43; obj* x_44; -x_42 = lean::cnstr_get(x_13, 0); -x_43 = lean::cnstr_get(x_13, 1); -lean::inc(x_43); -lean::inc(x_42); -lean::dec(x_13); -x_44 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_44, 0, x_42); -lean::cnstr_set(x_44, 1, x_43); -return x_44; -} -} -} -else -{ -obj* x_45; obj* x_46; obj* x_47; obj* x_48; -x_45 = lean::cnstr_get(x_9, 1); -lean::inc(x_45); -lean::dec(x_9); -x_46 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_46, 0, x_8); -lean::cnstr_set(x_46, 1, x_45); -x_47 = lean::cnstr_get(x_3, 0); -lean::inc(x_47); -lean::inc(x_2); -lean::inc(x_47); -x_48 = l___private_init_lean_parser_parser_8__updateTokens(x_47, x_2, x_46); -if (lean::obj_tag(x_48) == 0) -{ -obj* x_49; -x_49 = lean::cnstr_get(x_47, 1); -lean::inc(x_49); -lean::dec(x_47); -if (lean::obj_tag(x_49) == 2) -{ -obj* x_50; obj* x_51; obj* x_52; obj* x_53; obj* x_54; obj* x_55; -lean::dec(x_2); -x_50 = lean::cnstr_get(x_48, 1); -lean::inc(x_50); -if (lean::is_exclusive(x_48)) { - lean::cnstr_release(x_48, 0); - lean::cnstr_release(x_48, 1); - x_51 = x_48; -} else { - lean::dec_ref(x_48); - x_51 = lean::box(0); -} -x_52 = lean::cnstr_get(x_49, 0); -lean::inc(x_52); -lean::dec(x_49); -if (lean::is_scalar(x_51)) { - x_53 = lean::alloc_cnstr(0, 2, 0); -} else { - x_53 = x_51; -} -lean::cnstr_set(x_53, 0, x_8); -lean::cnstr_set(x_53, 1, x_50); -x_54 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_52); -x_55 = lean::io_ref_set(x_1, x_54, x_53); -return x_55; -} -else -{ -obj* x_56; obj* x_57; obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; -lean::dec(x_49); -lean::dec(x_7); -lean::dec(x_3); -x_56 = lean::cnstr_get(x_48, 1); -lean::inc(x_56); -if (lean::is_exclusive(x_48)) { - lean::cnstr_release(x_48, 0); - lean::cnstr_release(x_48, 1); - x_57 = x_48; -} else { - lean::dec_ref(x_48); - x_57 = lean::box(0); -} -x_58 = l_Lean_Name_toString___closed__1; -x_59 = l_Lean_Name_toStringWithSep___main(x_58, x_2); -x_60 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; -x_61 = lean::string_append(x_60, x_59); -lean::dec(x_59); -x_62 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; -x_63 = lean::string_append(x_61, x_62); -if (lean::is_scalar(x_57)) { - x_64 = lean::alloc_cnstr(1, 2, 0); -} else { - x_64 = x_57; - lean::cnstr_set_tag(x_64, 1); -} -lean::cnstr_set(x_64, 0, x_63); -lean::cnstr_set(x_64, 1, x_56); -return x_64; -} -} -else -{ -obj* x_65; obj* x_66; obj* x_67; obj* x_68; -lean::dec(x_47); -lean::dec(x_7); -lean::dec(x_3); -lean::dec(x_2); -x_65 = lean::cnstr_get(x_48, 0); -lean::inc(x_65); -x_66 = lean::cnstr_get(x_48, 1); -lean::inc(x_66); -if (lean::is_exclusive(x_48)) { - lean::cnstr_release(x_48, 0); - lean::cnstr_release(x_48, 1); - x_67 = x_48; -} else { - lean::dec_ref(x_48); - x_67 = lean::box(0); -} -if (lean::is_scalar(x_67)) { - x_68 = lean::alloc_cnstr(1, 2, 0); -} else { - x_68 = x_67; -} -lean::cnstr_set(x_68, 0, x_65); -lean::cnstr_set(x_68, 1, x_66); -return x_68; -} -} -} -else -{ -uint8 x_69; -lean::dec(x_7); -lean::dec(x_3); -lean::dec(x_2); -x_69 = !lean::is_exclusive(x_9); -if (x_69 == 0) -{ -return x_9; -} -else -{ -obj* x_70; obj* x_71; obj* x_72; -x_70 = lean::cnstr_get(x_9, 0); -x_71 = lean::cnstr_get(x_9, 1); -lean::inc(x_71); -lean::inc(x_70); -lean::dec(x_9); -x_72 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_72, 0, x_70); -lean::cnstr_set(x_72, 1, x_71); -return x_72; -} -} -} -else -{ -obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; -x_73 = lean::cnstr_get(x_5, 0); -x_74 = lean::cnstr_get(x_5, 1); -lean::inc(x_74); +obj* x_72; obj* x_73; obj* x_74; +x_72 = lean::cnstr_get(x_13, 0); +x_73 = lean::cnstr_get(x_13, 1); lean::inc(x_73); -lean::dec(x_5); -x_75 = lean::box(0); -x_76 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_76, 0, x_75); -lean::cnstr_set(x_76, 1, x_74); -x_77 = lean::io_ref_reset(x_1, x_76); -if (lean::obj_tag(x_77) == 0) +lean::inc(x_72); +lean::dec(x_13); +x_74 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_74, 0, x_72); +lean::cnstr_set(x_74, 1, x_73); +return x_74; +} +} +} +else { -obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; -x_78 = lean::cnstr_get(x_77, 1); -lean::inc(x_78); -if (lean::is_exclusive(x_77)) { - lean::cnstr_release(x_77, 0); - lean::cnstr_release(x_77, 1); - x_79 = x_77; -} else { - lean::dec_ref(x_77); - x_79 = lean::box(0); -} -if (lean::is_scalar(x_79)) { - x_80 = lean::alloc_cnstr(0, 2, 0); -} else { - x_80 = x_79; -} -lean::cnstr_set(x_80, 0, x_75); -lean::cnstr_set(x_80, 1, x_78); -x_81 = lean::cnstr_get(x_3, 0); -lean::inc(x_81); +obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_75 = lean::cnstr_get(x_9, 1); +lean::inc(x_75); +lean::dec(x_9); +x_76 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_76, 0, x_8); +lean::cnstr_set(x_76, 1, x_75); +x_77 = lean::cnstr_get(x_3, 0); +lean::inc(x_77); lean::inc(x_2); -lean::inc(x_81); -x_82 = l___private_init_lean_parser_parser_8__updateTokens(x_81, x_2, x_80); +lean::inc(x_77); +x_78 = l___private_init_lean_parser_parser_8__updateTokens(x_77, x_2, x_76); +if (lean::obj_tag(x_78) == 0) +{ +obj* x_79; obj* x_80; obj* x_81; obj* x_82; +x_79 = lean::cnstr_get(x_78, 1); +lean::inc(x_79); +if (lean::is_exclusive(x_78)) { + lean::cnstr_release(x_78, 0); + lean::cnstr_release(x_78, 1); + x_80 = x_78; +} else { + lean::dec_ref(x_78); + x_80 = lean::box(0); +} +if (lean::is_scalar(x_80)) { + x_81 = lean::alloc_cnstr(0, 2, 0); +} else { + x_81 = x_80; +} +lean::cnstr_set(x_81, 0, x_8); +lean::cnstr_set(x_81, 1, x_79); +lean::inc(x_77); +x_82 = l_Lean_Parser_updateSyntaxNodeKinds(x_77, x_81); if (lean::obj_tag(x_82) == 0) { obj* x_83; -x_83 = lean::cnstr_get(x_81, 1); +x_83 = lean::cnstr_get(x_77, 2); lean::inc(x_83); -lean::dec(x_81); +lean::dec(x_77); if (lean::obj_tag(x_83) == 2) { obj* x_84; obj* x_85; obj* x_86; obj* x_87; obj* x_88; obj* x_89; @@ -25074,9 +26210,9 @@ if (lean::is_scalar(x_85)) { } else { x_87 = x_85; } -lean::cnstr_set(x_87, 0, x_75); +lean::cnstr_set(x_87, 0, x_8); lean::cnstr_set(x_87, 1, x_84); -x_88 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_73, x_86); +x_88 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_7, x_86); x_89 = lean::io_ref_set(x_1, x_88, x_87); return x_89; } @@ -25084,7 +26220,7 @@ else { obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; obj* x_97; obj* x_98; lean::dec(x_83); -lean::dec(x_73); +lean::dec(x_7); lean::dec(x_3); x_90 = lean::cnstr_get(x_82, 1); lean::inc(x_90); @@ -25117,8 +26253,8 @@ return x_98; else { obj* x_99; obj* x_100; obj* x_101; obj* x_102; -lean::dec(x_81); -lean::dec(x_73); +lean::dec(x_77); +lean::dec(x_7); lean::dec(x_3); lean::dec(x_2); x_99 = lean::cnstr_get(x_82, 0); @@ -25146,19 +26282,20 @@ return x_102; else { obj* x_103; obj* x_104; obj* x_105; obj* x_106; -lean::dec(x_73); +lean::dec(x_77); +lean::dec(x_7); lean::dec(x_3); lean::dec(x_2); -x_103 = lean::cnstr_get(x_77, 0); +x_103 = lean::cnstr_get(x_78, 0); lean::inc(x_103); -x_104 = lean::cnstr_get(x_77, 1); +x_104 = lean::cnstr_get(x_78, 1); lean::inc(x_104); -if (lean::is_exclusive(x_77)) { - lean::cnstr_release(x_77, 0); - lean::cnstr_release(x_77, 1); - x_105 = x_77; +if (lean::is_exclusive(x_78)) { + lean::cnstr_release(x_78, 0); + lean::cnstr_release(x_78, 1); + x_105 = x_78; } else { - lean::dec_ref(x_77); + lean::dec_ref(x_78); x_105 = lean::box(0); } if (lean::is_scalar(x_105)) { @@ -25175,25 +26312,266 @@ return x_106; else { uint8 x_107; +lean::dec(x_7); lean::dec(x_3); lean::dec(x_2); -x_107 = !lean::is_exclusive(x_5); +x_107 = !lean::is_exclusive(x_9); if (x_107 == 0) { +return x_9; +} +else +{ +obj* x_108; obj* x_109; obj* x_110; +x_108 = lean::cnstr_get(x_9, 0); +x_109 = lean::cnstr_get(x_9, 1); +lean::inc(x_109); +lean::inc(x_108); +lean::dec(x_9); +x_110 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_110, 0, x_108); +lean::cnstr_set(x_110, 1, x_109); +return x_110; +} +} +} +else +{ +obj* x_111; obj* x_112; obj* x_113; obj* x_114; obj* x_115; +x_111 = lean::cnstr_get(x_5, 0); +x_112 = lean::cnstr_get(x_5, 1); +lean::inc(x_112); +lean::inc(x_111); +lean::dec(x_5); +x_113 = lean::box(0); +x_114 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_114, 0, x_113); +lean::cnstr_set(x_114, 1, x_112); +x_115 = lean::io_ref_reset(x_1, x_114); +if (lean::obj_tag(x_115) == 0) +{ +obj* x_116; obj* x_117; obj* x_118; obj* x_119; obj* x_120; +x_116 = lean::cnstr_get(x_115, 1); +lean::inc(x_116); +if (lean::is_exclusive(x_115)) { + lean::cnstr_release(x_115, 0); + lean::cnstr_release(x_115, 1); + x_117 = x_115; +} else { + lean::dec_ref(x_115); + x_117 = lean::box(0); +} +if (lean::is_scalar(x_117)) { + x_118 = lean::alloc_cnstr(0, 2, 0); +} else { + x_118 = x_117; +} +lean::cnstr_set(x_118, 0, x_113); +lean::cnstr_set(x_118, 1, x_116); +x_119 = lean::cnstr_get(x_3, 0); +lean::inc(x_119); +lean::inc(x_2); +lean::inc(x_119); +x_120 = l___private_init_lean_parser_parser_8__updateTokens(x_119, x_2, x_118); +if (lean::obj_tag(x_120) == 0) +{ +obj* x_121; obj* x_122; obj* x_123; obj* x_124; +x_121 = lean::cnstr_get(x_120, 1); +lean::inc(x_121); +if (lean::is_exclusive(x_120)) { + lean::cnstr_release(x_120, 0); + lean::cnstr_release(x_120, 1); + x_122 = x_120; +} else { + lean::dec_ref(x_120); + x_122 = lean::box(0); +} +if (lean::is_scalar(x_122)) { + x_123 = lean::alloc_cnstr(0, 2, 0); +} else { + x_123 = x_122; +} +lean::cnstr_set(x_123, 0, x_113); +lean::cnstr_set(x_123, 1, x_121); +lean::inc(x_119); +x_124 = l_Lean_Parser_updateSyntaxNodeKinds(x_119, x_123); +if (lean::obj_tag(x_124) == 0) +{ +obj* x_125; +x_125 = lean::cnstr_get(x_119, 2); +lean::inc(x_125); +lean::dec(x_119); +if (lean::obj_tag(x_125) == 2) +{ +obj* x_126; obj* x_127; obj* x_128; obj* x_129; obj* x_130; obj* x_131; +lean::dec(x_2); +x_126 = lean::cnstr_get(x_124, 1); +lean::inc(x_126); +if (lean::is_exclusive(x_124)) { + lean::cnstr_release(x_124, 0); + lean::cnstr_release(x_124, 1); + x_127 = x_124; +} else { + lean::dec_ref(x_124); + x_127 = lean::box(0); +} +x_128 = lean::cnstr_get(x_125, 0); +lean::inc(x_128); +lean::dec(x_125); +if (lean::is_scalar(x_127)) { + x_129 = lean::alloc_cnstr(0, 2, 0); +} else { + x_129 = x_127; +} +lean::cnstr_set(x_129, 0, x_113); +lean::cnstr_set(x_129, 1, x_126); +x_130 = l_List_foldl___main___at_Lean_Parser_addBuiltinLeadingParser___spec__1(x_3, x_111, x_128); +x_131 = lean::io_ref_set(x_1, x_130, x_129); +return x_131; +} +else +{ +obj* x_132; obj* x_133; obj* x_134; obj* x_135; obj* x_136; obj* x_137; obj* x_138; obj* x_139; obj* x_140; +lean::dec(x_125); +lean::dec(x_111); +lean::dec(x_3); +x_132 = lean::cnstr_get(x_124, 1); +lean::inc(x_132); +if (lean::is_exclusive(x_124)) { + lean::cnstr_release(x_124, 0); + lean::cnstr_release(x_124, 1); + x_133 = x_124; +} else { + lean::dec_ref(x_124); + x_133 = lean::box(0); +} +x_134 = l_Lean_Name_toString___closed__1; +x_135 = l_Lean_Name_toStringWithSep___main(x_134, x_2); +x_136 = l___private_init_lean_parser_parser_8__updateTokens___closed__1; +x_137 = lean::string_append(x_136, x_135); +lean::dec(x_135); +x_138 = l_Lean_Parser_addBuiltinLeadingParser___closed__1; +x_139 = lean::string_append(x_137, x_138); +if (lean::is_scalar(x_133)) { + x_140 = lean::alloc_cnstr(1, 2, 0); +} else { + x_140 = x_133; + lean::cnstr_set_tag(x_140, 1); +} +lean::cnstr_set(x_140, 0, x_139); +lean::cnstr_set(x_140, 1, x_132); +return x_140; +} +} +else +{ +obj* x_141; obj* x_142; obj* x_143; obj* x_144; +lean::dec(x_119); +lean::dec(x_111); +lean::dec(x_3); +lean::dec(x_2); +x_141 = lean::cnstr_get(x_124, 0); +lean::inc(x_141); +x_142 = lean::cnstr_get(x_124, 1); +lean::inc(x_142); +if (lean::is_exclusive(x_124)) { + lean::cnstr_release(x_124, 0); + lean::cnstr_release(x_124, 1); + x_143 = x_124; +} else { + lean::dec_ref(x_124); + x_143 = lean::box(0); +} +if (lean::is_scalar(x_143)) { + x_144 = lean::alloc_cnstr(1, 2, 0); +} else { + x_144 = x_143; +} +lean::cnstr_set(x_144, 0, x_141); +lean::cnstr_set(x_144, 1, x_142); +return x_144; +} +} +else +{ +obj* x_145; obj* x_146; obj* x_147; obj* x_148; +lean::dec(x_119); +lean::dec(x_111); +lean::dec(x_3); +lean::dec(x_2); +x_145 = lean::cnstr_get(x_120, 0); +lean::inc(x_145); +x_146 = lean::cnstr_get(x_120, 1); +lean::inc(x_146); +if (lean::is_exclusive(x_120)) { + lean::cnstr_release(x_120, 0); + lean::cnstr_release(x_120, 1); + x_147 = x_120; +} else { + lean::dec_ref(x_120); + x_147 = lean::box(0); +} +if (lean::is_scalar(x_147)) { + x_148 = lean::alloc_cnstr(1, 2, 0); +} else { + x_148 = x_147; +} +lean::cnstr_set(x_148, 0, x_145); +lean::cnstr_set(x_148, 1, x_146); +return x_148; +} +} +else +{ +obj* x_149; obj* x_150; obj* x_151; obj* x_152; +lean::dec(x_111); +lean::dec(x_3); +lean::dec(x_2); +x_149 = lean::cnstr_get(x_115, 0); +lean::inc(x_149); +x_150 = lean::cnstr_get(x_115, 1); +lean::inc(x_150); +if (lean::is_exclusive(x_115)) { + lean::cnstr_release(x_115, 0); + lean::cnstr_release(x_115, 1); + x_151 = x_115; +} else { + lean::dec_ref(x_115); + x_151 = lean::box(0); +} +if (lean::is_scalar(x_151)) { + x_152 = lean::alloc_cnstr(1, 2, 0); +} else { + x_152 = x_151; +} +lean::cnstr_set(x_152, 0, x_149); +lean::cnstr_set(x_152, 1, x_150); +return x_152; +} +} +} +else +{ +uint8 x_153; +lean::dec(x_3); +lean::dec(x_2); +x_153 = !lean::is_exclusive(x_5); +if (x_153 == 0) +{ return x_5; } else { -obj* x_108; obj* x_109; obj* x_110; -x_108 = lean::cnstr_get(x_5, 0); -x_109 = lean::cnstr_get(x_5, 1); -lean::inc(x_109); -lean::inc(x_108); +obj* x_154; obj* x_155; obj* x_156; +x_154 = lean::cnstr_get(x_5, 0); +x_155 = lean::cnstr_get(x_5, 1); +lean::inc(x_155); +lean::inc(x_154); lean::dec(x_5); -x_110 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_110, 0, x_108); -lean::cnstr_set(x_110, 1, x_109); -return x_110; +x_156 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_156, 0, x_154); +lean::cnstr_set(x_156, 1, x_155); +return x_156; } } } @@ -25307,312 +26685,320 @@ obj* x_15; obj* x_16; x_15 = lean::cnstr_get(x_13, 0); lean::dec(x_15); lean::cnstr_set(x_13, 0, x_8); -x_16 = lean::cnstr_get(x_12, 1); -lean::inc(x_16); +lean::inc(x_12); +x_16 = l_Lean_Parser_updateSyntaxNodeKinds(x_12, x_13); +if (lean::obj_tag(x_16) == 0) +{ +uint8 x_17; +x_17 = !lean::is_exclusive(x_16); +if (x_17 == 0) +{ +obj* x_18; obj* x_19; +x_18 = lean::cnstr_get(x_16, 0); +lean::dec(x_18); +lean::cnstr_set(x_16, 0, x_8); +x_19 = lean::cnstr_get(x_12, 2); +lean::inc(x_19); lean::dec(x_12); -if (lean::obj_tag(x_16) == 2) +if (lean::obj_tag(x_19) == 2) { -obj* x_17; obj* x_18; obj* x_19; -x_17 = lean::cnstr_get(x_16, 0); -lean::inc(x_17); -lean::dec(x_16); -x_18 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_17); -x_19 = lean::io_ref_set(x_1, x_18, x_13); -return x_19; +obj* x_20; obj* x_21; obj* x_22; +x_20 = lean::cnstr_get(x_19, 0); +lean::inc(x_20); +lean::dec(x_19); +x_21 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_20); +x_22 = lean::io_ref_set(x_1, x_21, x_16); +return x_22; } else { -uint8 x_20; -lean::dec(x_16); -x_20 = !lean::is_exclusive(x_7); -if (x_20 == 0) +uint8 x_23; +lean::dec(x_19); +x_23 = !lean::is_exclusive(x_7); +if (x_23 == 0) { -obj* x_21; obj* x_22; obj* x_23; -x_21 = lean::cnstr_get(x_7, 2); -x_22 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_22, 0, x_3); -lean::cnstr_set(x_22, 1, x_21); -lean::cnstr_set(x_7, 2, x_22); -x_23 = lean::io_ref_set(x_1, x_7, x_13); -return x_23; +obj* x_24; obj* x_25; obj* x_26; +x_24 = lean::cnstr_get(x_7, 2); +x_25 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_25, 0, x_3); +lean::cnstr_set(x_25, 1, x_24); +lean::cnstr_set(x_7, 2, x_25); +x_26 = lean::io_ref_set(x_1, x_7, x_16); +return x_26; } else { -obj* x_24; obj* x_25; obj* x_26; obj* x_27; obj* x_28; obj* x_29; -x_24 = lean::cnstr_get(x_7, 0); -x_25 = lean::cnstr_get(x_7, 1); -x_26 = lean::cnstr_get(x_7, 2); -lean::inc(x_26); -lean::inc(x_25); -lean::inc(x_24); +obj* x_27; obj* x_28; obj* x_29; obj* x_30; obj* x_31; obj* x_32; +x_27 = lean::cnstr_get(x_7, 0); +x_28 = lean::cnstr_get(x_7, 1); +x_29 = lean::cnstr_get(x_7, 2); +lean::inc(x_29); +lean::inc(x_28); +lean::inc(x_27); lean::dec(x_7); -x_27 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_27, 0, x_3); -lean::cnstr_set(x_27, 1, x_26); -x_28 = lean::alloc_cnstr(0, 3, 0); -lean::cnstr_set(x_28, 0, x_24); -lean::cnstr_set(x_28, 1, x_25); -lean::cnstr_set(x_28, 2, x_27); -x_29 = lean::io_ref_set(x_1, x_28, x_13); -return x_29; +x_30 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_30, 0, x_3); +lean::cnstr_set(x_30, 1, x_29); +x_31 = lean::alloc_cnstr(0, 3, 0); +lean::cnstr_set(x_31, 0, x_27); +lean::cnstr_set(x_31, 1, x_28); +lean::cnstr_set(x_31, 2, x_30); +x_32 = lean::io_ref_set(x_1, x_31, x_16); +return x_32; } } } else { -obj* x_30; obj* x_31; obj* x_32; -x_30 = lean::cnstr_get(x_13, 1); -lean::inc(x_30); -lean::dec(x_13); -x_31 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_31, 0, x_8); -lean::cnstr_set(x_31, 1, x_30); -x_32 = lean::cnstr_get(x_12, 1); -lean::inc(x_32); -lean::dec(x_12); -if (lean::obj_tag(x_32) == 2) -{ obj* x_33; obj* x_34; obj* x_35; -x_33 = lean::cnstr_get(x_32, 0); +x_33 = lean::cnstr_get(x_16, 1); lean::inc(x_33); -lean::dec(x_32); -x_34 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_33); -x_35 = lean::io_ref_set(x_1, x_34, x_31); -return x_35; +lean::dec(x_16); +x_34 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_34, 0, x_8); +lean::cnstr_set(x_34, 1, x_33); +x_35 = lean::cnstr_get(x_12, 2); +lean::inc(x_35); +lean::dec(x_12); +if (lean::obj_tag(x_35) == 2) +{ +obj* x_36; obj* x_37; obj* x_38; +x_36 = lean::cnstr_get(x_35, 0); +lean::inc(x_36); +lean::dec(x_35); +x_37 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_36); +x_38 = lean::io_ref_set(x_1, x_37, x_34); +return x_38; } else { -obj* x_36; obj* x_37; obj* x_38; obj* x_39; obj* x_40; obj* x_41; obj* x_42; -lean::dec(x_32); -x_36 = lean::cnstr_get(x_7, 0); -lean::inc(x_36); -x_37 = lean::cnstr_get(x_7, 1); -lean::inc(x_37); -x_38 = lean::cnstr_get(x_7, 2); -lean::inc(x_38); +obj* x_39; obj* x_40; obj* x_41; obj* x_42; obj* x_43; obj* x_44; obj* x_45; +lean::dec(x_35); +x_39 = lean::cnstr_get(x_7, 0); +lean::inc(x_39); +x_40 = lean::cnstr_get(x_7, 1); +lean::inc(x_40); +x_41 = lean::cnstr_get(x_7, 2); +lean::inc(x_41); if (lean::is_exclusive(x_7)) { lean::cnstr_release(x_7, 0); lean::cnstr_release(x_7, 1); lean::cnstr_release(x_7, 2); - x_39 = x_7; + x_42 = x_7; } else { lean::dec_ref(x_7); - x_39 = lean::box(0); + x_42 = lean::box(0); } -x_40 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_40, 0, x_3); -lean::cnstr_set(x_40, 1, x_38); -if (lean::is_scalar(x_39)) { - x_41 = lean::alloc_cnstr(0, 3, 0); +x_43 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_43, 0, x_3); +lean::cnstr_set(x_43, 1, x_41); +if (lean::is_scalar(x_42)) { + x_44 = lean::alloc_cnstr(0, 3, 0); } else { - x_41 = x_39; + x_44 = x_42; } -lean::cnstr_set(x_41, 0, x_36); -lean::cnstr_set(x_41, 1, x_37); -lean::cnstr_set(x_41, 2, x_40); -x_42 = lean::io_ref_set(x_1, x_41, x_31); -return x_42; +lean::cnstr_set(x_44, 0, x_39); +lean::cnstr_set(x_44, 1, x_40); +lean::cnstr_set(x_44, 2, x_43); +x_45 = lean::io_ref_set(x_1, x_44, x_34); +return x_45; } } } else { -uint8 x_43; +uint8 x_46; lean::dec(x_12); lean::dec(x_7); lean::dec(x_3); -x_43 = !lean::is_exclusive(x_13); -if (x_43 == 0) +x_46 = !lean::is_exclusive(x_16); +if (x_46 == 0) +{ +return x_16; +} +else +{ +obj* x_47; obj* x_48; obj* x_49; +x_47 = lean::cnstr_get(x_16, 0); +x_48 = lean::cnstr_get(x_16, 1); +lean::inc(x_48); +lean::inc(x_47); +lean::dec(x_16); +x_49 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_49, 0, x_47); +lean::cnstr_set(x_49, 1, x_48); +return x_49; +} +} +} +else +{ +obj* x_50; obj* x_51; obj* x_52; +x_50 = lean::cnstr_get(x_13, 1); +lean::inc(x_50); +lean::dec(x_13); +x_51 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_51, 0, x_8); +lean::cnstr_set(x_51, 1, x_50); +lean::inc(x_12); +x_52 = l_Lean_Parser_updateSyntaxNodeKinds(x_12, x_51); +if (lean::obj_tag(x_52) == 0) +{ +obj* x_53; obj* x_54; obj* x_55; obj* x_56; +x_53 = lean::cnstr_get(x_52, 1); +lean::inc(x_53); +if (lean::is_exclusive(x_52)) { + lean::cnstr_release(x_52, 0); + lean::cnstr_release(x_52, 1); + x_54 = x_52; +} else { + lean::dec_ref(x_52); + x_54 = lean::box(0); +} +if (lean::is_scalar(x_54)) { + x_55 = lean::alloc_cnstr(0, 2, 0); +} else { + x_55 = x_54; +} +lean::cnstr_set(x_55, 0, x_8); +lean::cnstr_set(x_55, 1, x_53); +x_56 = lean::cnstr_get(x_12, 2); +lean::inc(x_56); +lean::dec(x_12); +if (lean::obj_tag(x_56) == 2) +{ +obj* x_57; obj* x_58; obj* x_59; +x_57 = lean::cnstr_get(x_56, 0); +lean::inc(x_57); +lean::dec(x_56); +x_58 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_57); +x_59 = lean::io_ref_set(x_1, x_58, x_55); +return x_59; +} +else +{ +obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; obj* x_65; obj* x_66; +lean::dec(x_56); +x_60 = lean::cnstr_get(x_7, 0); +lean::inc(x_60); +x_61 = lean::cnstr_get(x_7, 1); +lean::inc(x_61); +x_62 = lean::cnstr_get(x_7, 2); +lean::inc(x_62); +if (lean::is_exclusive(x_7)) { + lean::cnstr_release(x_7, 0); + lean::cnstr_release(x_7, 1); + lean::cnstr_release(x_7, 2); + x_63 = x_7; +} else { + lean::dec_ref(x_7); + x_63 = lean::box(0); +} +x_64 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_64, 0, x_3); +lean::cnstr_set(x_64, 1, x_62); +if (lean::is_scalar(x_63)) { + x_65 = lean::alloc_cnstr(0, 3, 0); +} else { + x_65 = x_63; +} +lean::cnstr_set(x_65, 0, x_60); +lean::cnstr_set(x_65, 1, x_61); +lean::cnstr_set(x_65, 2, x_64); +x_66 = lean::io_ref_set(x_1, x_65, x_55); +return x_66; +} +} +else +{ +obj* x_67; obj* x_68; obj* x_69; obj* x_70; +lean::dec(x_12); +lean::dec(x_7); +lean::dec(x_3); +x_67 = lean::cnstr_get(x_52, 0); +lean::inc(x_67); +x_68 = lean::cnstr_get(x_52, 1); +lean::inc(x_68); +if (lean::is_exclusive(x_52)) { + lean::cnstr_release(x_52, 0); + lean::cnstr_release(x_52, 1); + x_69 = x_52; +} else { + lean::dec_ref(x_52); + x_69 = lean::box(0); +} +if (lean::is_scalar(x_69)) { + x_70 = lean::alloc_cnstr(1, 2, 0); +} else { + x_70 = x_69; +} +lean::cnstr_set(x_70, 0, x_67); +lean::cnstr_set(x_70, 1, x_68); +return x_70; +} +} +} +else +{ +uint8 x_71; +lean::dec(x_12); +lean::dec(x_7); +lean::dec(x_3); +x_71 = !lean::is_exclusive(x_13); +if (x_71 == 0) { return x_13; } else { -obj* x_44; obj* x_45; obj* x_46; -x_44 = lean::cnstr_get(x_13, 0); -x_45 = lean::cnstr_get(x_13, 1); -lean::inc(x_45); -lean::inc(x_44); -lean::dec(x_13); -x_46 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_46, 0, x_44); -lean::cnstr_set(x_46, 1, x_45); -return x_46; -} -} -} -else -{ -obj* x_47; obj* x_48; obj* x_49; obj* x_50; -x_47 = lean::cnstr_get(x_9, 1); -lean::inc(x_47); -lean::dec(x_9); -x_48 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_48, 0, x_8); -lean::cnstr_set(x_48, 1, x_47); -x_49 = lean::cnstr_get(x_3, 0); -lean::inc(x_49); -lean::inc(x_49); -x_50 = l___private_init_lean_parser_parser_8__updateTokens(x_49, x_2, x_48); -if (lean::obj_tag(x_50) == 0) -{ -obj* x_51; obj* x_52; obj* x_53; obj* x_54; -x_51 = lean::cnstr_get(x_50, 1); -lean::inc(x_51); -if (lean::is_exclusive(x_50)) { - lean::cnstr_release(x_50, 0); - lean::cnstr_release(x_50, 1); - x_52 = x_50; -} else { - lean::dec_ref(x_50); - x_52 = lean::box(0); -} -if (lean::is_scalar(x_52)) { - x_53 = lean::alloc_cnstr(0, 2, 0); -} else { - x_53 = x_52; -} -lean::cnstr_set(x_53, 0, x_8); -lean::cnstr_set(x_53, 1, x_51); -x_54 = lean::cnstr_get(x_49, 1); -lean::inc(x_54); -lean::dec(x_49); -if (lean::obj_tag(x_54) == 2) -{ -obj* x_55; obj* x_56; obj* x_57; -x_55 = lean::cnstr_get(x_54, 0); -lean::inc(x_55); -lean::dec(x_54); -x_56 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_55); -x_57 = lean::io_ref_set(x_1, x_56, x_53); -return x_57; -} -else -{ -obj* x_58; obj* x_59; obj* x_60; obj* x_61; obj* x_62; obj* x_63; obj* x_64; -lean::dec(x_54); -x_58 = lean::cnstr_get(x_7, 0); -lean::inc(x_58); -x_59 = lean::cnstr_get(x_7, 1); -lean::inc(x_59); -x_60 = lean::cnstr_get(x_7, 2); -lean::inc(x_60); -if (lean::is_exclusive(x_7)) { - lean::cnstr_release(x_7, 0); - lean::cnstr_release(x_7, 1); - lean::cnstr_release(x_7, 2); - x_61 = x_7; -} else { - lean::dec_ref(x_7); - x_61 = lean::box(0); -} -x_62 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_62, 0, x_3); -lean::cnstr_set(x_62, 1, x_60); -if (lean::is_scalar(x_61)) { - x_63 = lean::alloc_cnstr(0, 3, 0); -} else { - x_63 = x_61; -} -lean::cnstr_set(x_63, 0, x_58); -lean::cnstr_set(x_63, 1, x_59); -lean::cnstr_set(x_63, 2, x_62); -x_64 = lean::io_ref_set(x_1, x_63, x_53); -return x_64; -} -} -else -{ -obj* x_65; obj* x_66; obj* x_67; obj* x_68; -lean::dec(x_49); -lean::dec(x_7); -lean::dec(x_3); -x_65 = lean::cnstr_get(x_50, 0); -lean::inc(x_65); -x_66 = lean::cnstr_get(x_50, 1); -lean::inc(x_66); -if (lean::is_exclusive(x_50)) { - lean::cnstr_release(x_50, 0); - lean::cnstr_release(x_50, 1); - x_67 = x_50; -} else { - lean::dec_ref(x_50); - x_67 = lean::box(0); -} -if (lean::is_scalar(x_67)) { - x_68 = lean::alloc_cnstr(1, 2, 0); -} else { - x_68 = x_67; -} -lean::cnstr_set(x_68, 0, x_65); -lean::cnstr_set(x_68, 1, x_66); -return x_68; -} -} -} -else -{ -uint8 x_69; -lean::dec(x_7); -lean::dec(x_3); -lean::dec(x_2); -x_69 = !lean::is_exclusive(x_9); -if (x_69 == 0) -{ -return x_9; -} -else -{ -obj* x_70; obj* x_71; obj* x_72; -x_70 = lean::cnstr_get(x_9, 0); -x_71 = lean::cnstr_get(x_9, 1); -lean::inc(x_71); -lean::inc(x_70); -lean::dec(x_9); -x_72 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_72, 0, x_70); -lean::cnstr_set(x_72, 1, x_71); -return x_72; -} -} -} -else -{ -obj* x_73; obj* x_74; obj* x_75; obj* x_76; obj* x_77; -x_73 = lean::cnstr_get(x_5, 0); -x_74 = lean::cnstr_get(x_5, 1); -lean::inc(x_74); +obj* x_72; obj* x_73; obj* x_74; +x_72 = lean::cnstr_get(x_13, 0); +x_73 = lean::cnstr_get(x_13, 1); lean::inc(x_73); -lean::dec(x_5); -x_75 = lean::box(0); -x_76 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_76, 0, x_75); -lean::cnstr_set(x_76, 1, x_74); -x_77 = lean::io_ref_reset(x_1, x_76); -if (lean::obj_tag(x_77) == 0) +lean::inc(x_72); +lean::dec(x_13); +x_74 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_74, 0, x_72); +lean::cnstr_set(x_74, 1, x_73); +return x_74; +} +} +} +else { -obj* x_78; obj* x_79; obj* x_80; obj* x_81; obj* x_82; -x_78 = lean::cnstr_get(x_77, 1); -lean::inc(x_78); -if (lean::is_exclusive(x_77)) { - lean::cnstr_release(x_77, 0); - lean::cnstr_release(x_77, 1); - x_79 = x_77; +obj* x_75; obj* x_76; obj* x_77; obj* x_78; +x_75 = lean::cnstr_get(x_9, 1); +lean::inc(x_75); +lean::dec(x_9); +x_76 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_76, 0, x_8); +lean::cnstr_set(x_76, 1, x_75); +x_77 = lean::cnstr_get(x_3, 0); +lean::inc(x_77); +lean::inc(x_77); +x_78 = l___private_init_lean_parser_parser_8__updateTokens(x_77, x_2, x_76); +if (lean::obj_tag(x_78) == 0) +{ +obj* x_79; obj* x_80; obj* x_81; obj* x_82; +x_79 = lean::cnstr_get(x_78, 1); +lean::inc(x_79); +if (lean::is_exclusive(x_78)) { + lean::cnstr_release(x_78, 0); + lean::cnstr_release(x_78, 1); + x_80 = x_78; } else { - lean::dec_ref(x_77); - x_79 = lean::box(0); + lean::dec_ref(x_78); + x_80 = lean::box(0); } -if (lean::is_scalar(x_79)) { - x_80 = lean::alloc_cnstr(0, 2, 0); +if (lean::is_scalar(x_80)) { + x_81 = lean::alloc_cnstr(0, 2, 0); } else { - x_80 = x_79; + x_81 = x_80; } -lean::cnstr_set(x_80, 0, x_75); -lean::cnstr_set(x_80, 1, x_78); -x_81 = lean::cnstr_get(x_3, 0); -lean::inc(x_81); -lean::inc(x_81); -x_82 = l___private_init_lean_parser_parser_8__updateTokens(x_81, x_2, x_80); +lean::cnstr_set(x_81, 0, x_8); +lean::cnstr_set(x_81, 1, x_79); +lean::inc(x_77); +x_82 = l_Lean_Parser_updateSyntaxNodeKinds(x_77, x_81); if (lean::obj_tag(x_82) == 0) { obj* x_83; obj* x_84; obj* x_85; obj* x_86; @@ -25631,18 +27017,18 @@ if (lean::is_scalar(x_84)) { } else { x_85 = x_84; } -lean::cnstr_set(x_85, 0, x_75); +lean::cnstr_set(x_85, 0, x_8); lean::cnstr_set(x_85, 1, x_83); -x_86 = lean::cnstr_get(x_81, 1); +x_86 = lean::cnstr_get(x_77, 2); lean::inc(x_86); -lean::dec(x_81); +lean::dec(x_77); if (lean::obj_tag(x_86) == 2) { obj* x_87; obj* x_88; obj* x_89; x_87 = lean::cnstr_get(x_86, 0); lean::inc(x_87); lean::dec(x_86); -x_88 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_73, x_87); +x_88 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_7, x_87); x_89 = lean::io_ref_set(x_1, x_88, x_85); return x_89; } @@ -25650,19 +27036,19 @@ else { obj* x_90; obj* x_91; obj* x_92; obj* x_93; obj* x_94; obj* x_95; obj* x_96; lean::dec(x_86); -x_90 = lean::cnstr_get(x_73, 0); +x_90 = lean::cnstr_get(x_7, 0); lean::inc(x_90); -x_91 = lean::cnstr_get(x_73, 1); +x_91 = lean::cnstr_get(x_7, 1); lean::inc(x_91); -x_92 = lean::cnstr_get(x_73, 2); +x_92 = lean::cnstr_get(x_7, 2); lean::inc(x_92); -if (lean::is_exclusive(x_73)) { - lean::cnstr_release(x_73, 0); - lean::cnstr_release(x_73, 1); - lean::cnstr_release(x_73, 2); - x_93 = x_73; +if (lean::is_exclusive(x_7)) { + lean::cnstr_release(x_7, 0); + lean::cnstr_release(x_7, 1); + lean::cnstr_release(x_7, 2); + x_93 = x_7; } else { - lean::dec_ref(x_73); + lean::dec_ref(x_7); x_93 = lean::box(0); } x_94 = lean::alloc_cnstr(1, 2, 0); @@ -25683,8 +27069,8 @@ return x_96; else { obj* x_97; obj* x_98; obj* x_99; obj* x_100; -lean::dec(x_81); -lean::dec(x_73); +lean::dec(x_77); +lean::dec(x_7); lean::dec(x_3); x_97 = lean::cnstr_get(x_82, 0); lean::inc(x_97); @@ -25711,19 +27097,19 @@ return x_100; else { obj* x_101; obj* x_102; obj* x_103; obj* x_104; -lean::dec(x_73); +lean::dec(x_77); +lean::dec(x_7); lean::dec(x_3); -lean::dec(x_2); -x_101 = lean::cnstr_get(x_77, 0); +x_101 = lean::cnstr_get(x_78, 0); lean::inc(x_101); -x_102 = lean::cnstr_get(x_77, 1); +x_102 = lean::cnstr_get(x_78, 1); lean::inc(x_102); -if (lean::is_exclusive(x_77)) { - lean::cnstr_release(x_77, 0); - lean::cnstr_release(x_77, 1); - x_103 = x_77; +if (lean::is_exclusive(x_78)) { + lean::cnstr_release(x_78, 0); + lean::cnstr_release(x_78, 1); + x_103 = x_78; } else { - lean::dec_ref(x_77); + lean::dec_ref(x_78); x_103 = lean::box(0); } if (lean::is_scalar(x_103)) { @@ -25740,25 +27126,262 @@ return x_104; else { uint8 x_105; +lean::dec(x_7); lean::dec(x_3); lean::dec(x_2); -x_105 = !lean::is_exclusive(x_5); +x_105 = !lean::is_exclusive(x_9); if (x_105 == 0) { +return x_9; +} +else +{ +obj* x_106; obj* x_107; obj* x_108; +x_106 = lean::cnstr_get(x_9, 0); +x_107 = lean::cnstr_get(x_9, 1); +lean::inc(x_107); +lean::inc(x_106); +lean::dec(x_9); +x_108 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_108, 0, x_106); +lean::cnstr_set(x_108, 1, x_107); +return x_108; +} +} +} +else +{ +obj* x_109; obj* x_110; obj* x_111; obj* x_112; obj* x_113; +x_109 = lean::cnstr_get(x_5, 0); +x_110 = lean::cnstr_get(x_5, 1); +lean::inc(x_110); +lean::inc(x_109); +lean::dec(x_5); +x_111 = lean::box(0); +x_112 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_112, 0, x_111); +lean::cnstr_set(x_112, 1, x_110); +x_113 = lean::io_ref_reset(x_1, x_112); +if (lean::obj_tag(x_113) == 0) +{ +obj* x_114; obj* x_115; obj* x_116; obj* x_117; obj* x_118; +x_114 = lean::cnstr_get(x_113, 1); +lean::inc(x_114); +if (lean::is_exclusive(x_113)) { + lean::cnstr_release(x_113, 0); + lean::cnstr_release(x_113, 1); + x_115 = x_113; +} else { + lean::dec_ref(x_113); + x_115 = lean::box(0); +} +if (lean::is_scalar(x_115)) { + x_116 = lean::alloc_cnstr(0, 2, 0); +} else { + x_116 = x_115; +} +lean::cnstr_set(x_116, 0, x_111); +lean::cnstr_set(x_116, 1, x_114); +x_117 = lean::cnstr_get(x_3, 0); +lean::inc(x_117); +lean::inc(x_117); +x_118 = l___private_init_lean_parser_parser_8__updateTokens(x_117, x_2, x_116); +if (lean::obj_tag(x_118) == 0) +{ +obj* x_119; obj* x_120; obj* x_121; obj* x_122; +x_119 = lean::cnstr_get(x_118, 1); +lean::inc(x_119); +if (lean::is_exclusive(x_118)) { + lean::cnstr_release(x_118, 0); + lean::cnstr_release(x_118, 1); + x_120 = x_118; +} else { + lean::dec_ref(x_118); + x_120 = lean::box(0); +} +if (lean::is_scalar(x_120)) { + x_121 = lean::alloc_cnstr(0, 2, 0); +} else { + x_121 = x_120; +} +lean::cnstr_set(x_121, 0, x_111); +lean::cnstr_set(x_121, 1, x_119); +lean::inc(x_117); +x_122 = l_Lean_Parser_updateSyntaxNodeKinds(x_117, x_121); +if (lean::obj_tag(x_122) == 0) +{ +obj* x_123; obj* x_124; obj* x_125; obj* x_126; +x_123 = lean::cnstr_get(x_122, 1); +lean::inc(x_123); +if (lean::is_exclusive(x_122)) { + lean::cnstr_release(x_122, 0); + lean::cnstr_release(x_122, 1); + x_124 = x_122; +} else { + lean::dec_ref(x_122); + x_124 = lean::box(0); +} +if (lean::is_scalar(x_124)) { + x_125 = lean::alloc_cnstr(0, 2, 0); +} else { + x_125 = x_124; +} +lean::cnstr_set(x_125, 0, x_111); +lean::cnstr_set(x_125, 1, x_123); +x_126 = lean::cnstr_get(x_117, 2); +lean::inc(x_126); +lean::dec(x_117); +if (lean::obj_tag(x_126) == 2) +{ +obj* x_127; obj* x_128; obj* x_129; +x_127 = lean::cnstr_get(x_126, 0); +lean::inc(x_127); +lean::dec(x_126); +x_128 = l_List_foldl___main___at_Lean_Parser_addBuiltinTrailingParser___spec__1(x_3, x_109, x_127); +x_129 = lean::io_ref_set(x_1, x_128, x_125); +return x_129; +} +else +{ +obj* x_130; obj* x_131; obj* x_132; obj* x_133; obj* x_134; obj* x_135; obj* x_136; +lean::dec(x_126); +x_130 = lean::cnstr_get(x_109, 0); +lean::inc(x_130); +x_131 = lean::cnstr_get(x_109, 1); +lean::inc(x_131); +x_132 = lean::cnstr_get(x_109, 2); +lean::inc(x_132); +if (lean::is_exclusive(x_109)) { + lean::cnstr_release(x_109, 0); + lean::cnstr_release(x_109, 1); + lean::cnstr_release(x_109, 2); + x_133 = x_109; +} else { + lean::dec_ref(x_109); + x_133 = lean::box(0); +} +x_134 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_134, 0, x_3); +lean::cnstr_set(x_134, 1, x_132); +if (lean::is_scalar(x_133)) { + x_135 = lean::alloc_cnstr(0, 3, 0); +} else { + x_135 = x_133; +} +lean::cnstr_set(x_135, 0, x_130); +lean::cnstr_set(x_135, 1, x_131); +lean::cnstr_set(x_135, 2, x_134); +x_136 = lean::io_ref_set(x_1, x_135, x_125); +return x_136; +} +} +else +{ +obj* x_137; obj* x_138; obj* x_139; obj* x_140; +lean::dec(x_117); +lean::dec(x_109); +lean::dec(x_3); +x_137 = lean::cnstr_get(x_122, 0); +lean::inc(x_137); +x_138 = lean::cnstr_get(x_122, 1); +lean::inc(x_138); +if (lean::is_exclusive(x_122)) { + lean::cnstr_release(x_122, 0); + lean::cnstr_release(x_122, 1); + x_139 = x_122; +} else { + lean::dec_ref(x_122); + x_139 = lean::box(0); +} +if (lean::is_scalar(x_139)) { + x_140 = lean::alloc_cnstr(1, 2, 0); +} else { + x_140 = x_139; +} +lean::cnstr_set(x_140, 0, x_137); +lean::cnstr_set(x_140, 1, x_138); +return x_140; +} +} +else +{ +obj* x_141; obj* x_142; obj* x_143; obj* x_144; +lean::dec(x_117); +lean::dec(x_109); +lean::dec(x_3); +x_141 = lean::cnstr_get(x_118, 0); +lean::inc(x_141); +x_142 = lean::cnstr_get(x_118, 1); +lean::inc(x_142); +if (lean::is_exclusive(x_118)) { + lean::cnstr_release(x_118, 0); + lean::cnstr_release(x_118, 1); + x_143 = x_118; +} else { + lean::dec_ref(x_118); + x_143 = lean::box(0); +} +if (lean::is_scalar(x_143)) { + x_144 = lean::alloc_cnstr(1, 2, 0); +} else { + x_144 = x_143; +} +lean::cnstr_set(x_144, 0, x_141); +lean::cnstr_set(x_144, 1, x_142); +return x_144; +} +} +else +{ +obj* x_145; obj* x_146; obj* x_147; obj* x_148; +lean::dec(x_109); +lean::dec(x_3); +lean::dec(x_2); +x_145 = lean::cnstr_get(x_113, 0); +lean::inc(x_145); +x_146 = lean::cnstr_get(x_113, 1); +lean::inc(x_146); +if (lean::is_exclusive(x_113)) { + lean::cnstr_release(x_113, 0); + lean::cnstr_release(x_113, 1); + x_147 = x_113; +} else { + lean::dec_ref(x_113); + x_147 = lean::box(0); +} +if (lean::is_scalar(x_147)) { + x_148 = lean::alloc_cnstr(1, 2, 0); +} else { + x_148 = x_147; +} +lean::cnstr_set(x_148, 0, x_145); +lean::cnstr_set(x_148, 1, x_146); +return x_148; +} +} +} +else +{ +uint8 x_149; +lean::dec(x_3); +lean::dec(x_2); +x_149 = !lean::is_exclusive(x_5); +if (x_149 == 0) +{ return x_5; } else { -obj* x_106; obj* x_107; obj* x_108; -x_106 = lean::cnstr_get(x_5, 0); -x_107 = lean::cnstr_get(x_5, 1); -lean::inc(x_107); -lean::inc(x_106); +obj* x_150; obj* x_151; obj* x_152; +x_150 = lean::cnstr_get(x_5, 0); +x_151 = lean::cnstr_get(x_5, 1); +lean::inc(x_151); +lean::inc(x_150); lean::dec(x_5); -x_108 = lean::alloc_cnstr(1, 2, 0); -lean::cnstr_set(x_108, 0, x_106); -lean::cnstr_set(x_108, 1, x_107); -return x_108; +x_152 = lean::alloc_cnstr(1, 2, 0); +lean::cnstr_set(x_152, 0, x_150); +lean::cnstr_set(x_152, 1, x_151); +return x_152; } } } @@ -27405,6 +29028,8 @@ l_Lean_Parser_epsilonInfo___closed__1 = _init_l_Lean_Parser_epsilonInfo___closed lean::mark_persistent(l_Lean_Parser_epsilonInfo___closed__1); l_Lean_Parser_epsilonInfo___closed__2 = _init_l_Lean_Parser_epsilonInfo___closed__2(); lean::mark_persistent(l_Lean_Parser_epsilonInfo___closed__2); +l_Lean_Parser_epsilonInfo___closed__3 = _init_l_Lean_Parser_epsilonInfo___closed__3(); +lean::mark_persistent(l_Lean_Parser_epsilonInfo___closed__3); l_Lean_Parser_epsilonInfo = _init_l_Lean_Parser_epsilonInfo(); lean::mark_persistent(l_Lean_Parser_epsilonInfo); lean::register_constant(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "epsilonInfo"), l_Lean_Parser_epsilonInfo); @@ -27426,7 +29051,7 @@ REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_na REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "andthen"), 3, l_Lean_Parser_andthen___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "hashAndthen"), 1, l_Lean_Parser_hashAndthen___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "nodeFn"), 1, l_Lean_Parser_nodeFn___boxed); -REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "nodeInfo"), 1, l_Lean_Parser_nodeInfo); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "nodeInfo"), 2, l_Lean_Parser_nodeInfo); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "node"), 3, l_Lean_Parser_node___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "leadingNode"), 2, l_Lean_Parser_leadingNode); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "trailingNode"), 2, l_Lean_Parser_trailingNode); @@ -27514,6 +29139,8 @@ lean::mark_persistent(l_Lean_Parser_insertToken___closed__4); l_Lean_Parser_insertToken___closed__5 = _init_l_Lean_Parser_insertToken___closed__5(); lean::mark_persistent(l_Lean_Parser_insertToken___closed__5); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "insertToken"), 3, l_Lean_Parser_insertToken); +l_Lean_Parser_symbolInfo___closed__1 = _init_l_Lean_Parser_symbolInfo___closed__1(); +lean::mark_persistent(l_Lean_Parser_symbolInfo___closed__1); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolInfo"), 2, l_Lean_Parser_symbolInfo); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolFn"), 1, l_Lean_Parser_symbolFn___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolAux"), 3, l_Lean_Parser_symbolAux___boxed); @@ -27528,6 +29155,8 @@ l_Lean_Parser_symbolOrIdentInfo___closed__3 = _init_l_Lean_Parser_symbolOrIdentI lean::mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__3); l_Lean_Parser_symbolOrIdentInfo___closed__4 = _init_l_Lean_Parser_symbolOrIdentInfo___closed__4(); lean::mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__4); +l_Lean_Parser_symbolOrIdentInfo___closed__5 = _init_l_Lean_Parser_symbolOrIdentInfo___closed__5(); +lean::mark_persistent(l_Lean_Parser_symbolOrIdentInfo___closed__5); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolOrIdentInfo"), 1, l_Lean_Parser_symbolOrIdentInfo); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolOrIdent"), 2, l_Lean_Parser_symbolOrIdent___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "strAux"), 5, l_Lean_Parser_strAux___boxed); @@ -27540,6 +29169,8 @@ REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_na l_Lean_Parser_insertNoWsToken___closed__1 = _init_l_Lean_Parser_insertNoWsToken___closed__1(); lean::mark_persistent(l_Lean_Parser_insertNoWsToken___closed__1); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "insertNoWsToken"), 3, l_Lean_Parser_insertNoWsToken); +l_Lean_Parser_symbolNoWsInfo___closed__1 = _init_l_Lean_Parser_symbolNoWsInfo___closed__1(); +lean::mark_persistent(l_Lean_Parser_symbolNoWsInfo___closed__1); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolNoWsInfo"), 2, l_Lean_Parser_symbolNoWsInfo); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolNoWsFnAux"), 5, l_Lean_Parser_symbolNoWsFnAux___boxed); l_Lean_Parser_symbolNoWsFn___closed__1 = _init_l_Lean_Parser_symbolNoWsFn___closed__1(); @@ -27548,6 +29179,8 @@ REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_na REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolNoWsAux"), 2, l_Lean_Parser_symbolNoWsAux___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "symbolNoWs"), 2, l_Lean_Parser_symbolNoWs___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "unicodeSymbolFnAux"), 5, l_Lean_Parser_unicodeSymbolFnAux___boxed); +l_Lean_Parser_unicodeSymbolInfo___closed__1 = _init_l_Lean_Parser_unicodeSymbolInfo___closed__1(); +lean::mark_persistent(l_Lean_Parser_unicodeSymbolInfo___closed__1); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "unicodeSymbolInfo"), 3, l_Lean_Parser_unicodeSymbolInfo); l_Lean_Parser_unicodeSymbolFn___rarg___closed__1 = _init_l_Lean_Parser_unicodeSymbolFn___rarg___closed__1(); lean::mark_persistent(l_Lean_Parser_unicodeSymbolFn___rarg___closed__1); @@ -27562,6 +29195,8 @@ REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_na REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "unicodeSymbolCheckPrec"), 3, l_Lean_Parser_unicodeSymbolCheckPrec___boxed); l_Lean_Parser_mkAtomicInfo___closed__1 = _init_l_Lean_Parser_mkAtomicInfo___closed__1(); lean::mark_persistent(l_Lean_Parser_mkAtomicInfo___closed__1); +l_Lean_Parser_mkAtomicInfo___closed__2 = _init_l_Lean_Parser_mkAtomicInfo___closed__2(); +lean::mark_persistent(l_Lean_Parser_mkAtomicInfo___closed__2); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "mkAtomicInfo"), 1, l_Lean_Parser_mkAtomicInfo); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "numLitFn"), 2, l_Lean_Parser_numLitFn___boxed); l_Lean_Parser_numLit___closed__1 = _init_l_Lean_Parser_numLit___closed__1(); @@ -27681,6 +29316,17 @@ if (io_result_is_error(w)) return w; l_Lean_Parser_tokenTableAttribute = io_result_get_value(w); lean::mark_persistent(l_Lean_Parser_tokenTableAttribute); lean::register_constant(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "tokenTableAttribute"), l_Lean_Parser_tokenTableAttribute); +l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1 = _init_l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1(); +lean::mark_persistent(l_Lean_Parser_mkSyntaxNodeKindSetRef___closed__1); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "mkSyntaxNodeKindSetRef"), 1, l_Lean_Parser_mkSyntaxNodeKindSetRef); +w = l_Lean_Parser_mkSyntaxNodeKindSetRef(w); +if (io_result_is_error(w)) return w; +l_Lean_Parser_syntaxNodeKindSetRef = io_result_get_value(w); +lean::mark_persistent(l_Lean_Parser_syntaxNodeKindSetRef); +lean::register_constant(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "syntaxNodeKindSetRef"), l_Lean_Parser_syntaxNodeKindSetRef); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "updateSyntaxNodeKinds"), 2, l_Lean_Parser_updateSyntaxNodeKinds); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "isValidSyntaxNodeKind"), 2, l_Lean_Parser_isValidSyntaxNodeKind___boxed); +REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "getSyntaxNodeKinds"), 1, l_Lean_Parser_getSyntaxNodeKinds); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "mkParserContext"), 3, l_Lean_Parser_mkParserContext); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "mkParserState"), 1, l_Lean_Parser_mkParserState___boxed); REGISTER_LEAN_FUNCTION(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "runParser"), 5, l_Lean_Parser_runParser); diff --git a/src/stage0/init/lean/parser/term.cpp b/src/stage0/init/lean/parser/term.cpp index 5131abfc6e..db5bc36661 100644 --- a/src/stage0/init/lean/parser/term.cpp +++ b/src/stage0/init/lean/parser/term.cpp @@ -1282,6 +1282,7 @@ obj* l_Lean_Parser_Term_subst___elambda__1___closed__4; obj* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__11; obj* l_Lean_Parser_Term_div___elambda__1(obj*, obj*, obj*); obj* l_Lean_Parser_Term_parser_x21___closed__2; +obj* l_Lean_Parser_Term_binderDefault___closed__3; obj* l_Lean_Parser_Term_arrow___elambda__1___closed__3; obj* l_Lean_Parser_Term_parser_x21; obj* l_Lean_Parser_Term_mod___closed__1; @@ -1309,7 +1310,7 @@ obj* l_Lean_Parser_Term_gt___elambda__1___closed__1; obj* l_Lean_Parser_Term_haveAssign___elambda__1___rarg___closed__6; obj* l_Lean_Parser_Term_fromTerm___closed__5; obj* l_Lean_Parser_Term_doExpr___elambda__1___rarg(obj*, obj*); -obj* l_Lean_Parser_nodeInfo(obj*); +obj* l_Lean_Parser_nodeInfo(obj*, obj*); obj* l_Lean_Parser_Term_subst___closed__2; obj* l_Lean_Parser_Term_optIdent___closed__4; obj* l_Lean_Parser_Term_proj___elambda__1___closed__2; @@ -1540,6 +1541,7 @@ obj* l_Lean_Parser_Term_le___elambda__1___closed__1; obj* l_Lean_Parser_Term_typeAscription___elambda__1___boxed(obj*); obj* l_Lean_Parser_Term_explicit___closed__5; obj* l_Lean_Parser_Term_matchAlt___closed__6; +obj* l_Lean_Parser_Term_typeSpec___closed__3; obj* l_Lean_Parser_unicodeSymbolInfo(obj*, obj*, obj*); obj* l_Lean_Parser_Term_type; obj* l___regBuiltinParser_Lean_Parser_Term_subtype(obj*); @@ -2731,10 +2733,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_explicitUniv___closed__7() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_explicitUniv___closed__6; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_explicitUniv___elambda__1___closed__4; +x_2 = l_Lean_Parser_Term_explicitUniv___closed__6; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_explicitUniv___closed__8() { @@ -3076,10 +3079,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_namedPattern___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_namedPattern___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_namedPattern___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_namedPattern___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_namedPattern___closed__5() { @@ -3293,10 +3297,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_id___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_id___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_id___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_id___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_id___closed__5() { @@ -3743,10 +3748,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_type___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_type___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_type___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_type___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_type___closed__3() { @@ -3955,10 +3961,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_sort___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_sort___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_sort___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_sort___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_sort___closed__3() { @@ -4167,10 +4174,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_prop___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_prop___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_prop___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_prop___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_prop___closed__3() { @@ -4322,10 +4330,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_hole___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_hole___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_hole___elambda__1___rarg___closed__1; +x_2 = l_Lean_Parser_Term_hole___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_hole___closed__3() { @@ -4526,10 +4535,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_sorry___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_sorry___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_sorry___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_sorry___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_sorry___closed__3() { @@ -4738,10 +4748,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_cdot___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_cdot___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_cdot___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_cdot___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_cdot___closed__3() { @@ -4950,10 +4961,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_emptyC___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_emptyC___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_emptyC___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_emptyC___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_emptyC___closed__3() { @@ -5193,10 +5205,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_typeAscription___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_typeAscription___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_typeAscription___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_typeAscription___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_typeAscription___closed__4() { @@ -5529,10 +5542,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_tupleTail___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_tupleTail___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_tupleTail___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_tupleTail___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_tupleTail___closed__4() { @@ -6063,10 +6077,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_paren___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_paren___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_paren___elambda__1___closed__1; +x_2 = l_Lean_Parser_Term_paren___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_paren___closed__6() { @@ -6455,10 +6470,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_anonymousCtor___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_anonymousCtor___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_anonymousCtor___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_anonymousCtor___closed__7() { @@ -7363,10 +7379,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_if___closed__10() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_if___closed__9; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_if___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_if___closed__9; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_if___closed__11() { @@ -7606,10 +7623,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_fromTerm___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_fromTerm___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_fromTerm___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_fromTerm___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_fromTerm___closed__4() { @@ -7830,10 +7848,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_haveAssign___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_haveAssign___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_haveAssign___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_haveAssign___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_haveAssign___closed__4() { @@ -8385,10 +8404,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_have___closed__9() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_have___closed__8; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_have___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_have___closed__8; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_have___closed__10() { @@ -8819,10 +8839,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_suffices___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_suffices___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_suffices___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_suffices___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_suffices___closed__7() { @@ -9091,10 +9112,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_show___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_show___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_show___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_show___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_show___closed__5() { @@ -9582,10 +9604,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_fun___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_fun___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_fun___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_fun___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_fun___closed__7() { @@ -9831,10 +9854,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_structInstField___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_structInstField___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_structInstField___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_structInstField___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_structInstField___closed__3() { @@ -10116,10 +10140,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_structInstSource___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_structInstSource___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_structInstSource___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_structInstSource___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_structInstSource___closed__5() { @@ -10920,10 +10945,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_structInst___closed__10() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_structInst___closed__9; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_structInst___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_structInst___closed__9; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_structInst___closed__11() { @@ -11135,17 +11161,27 @@ return x_2; obj* _init_l_Lean_Parser_Term_typeSpec___closed__1() { _start: { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_typeSpec___elambda__1___boxed), 1, 0); -return x_1; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_typeSpec___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_typeAscription___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_typeSpec___closed__2() { _start: { +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_typeSpec___elambda__1___boxed), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_Term_typeSpec___closed__3() { +_start: +{ obj* x_1; obj* x_2; obj* x_3; -x_1 = l_Lean_Parser_Term_typeAscription___closed__3; -x_2 = l_Lean_Parser_Term_typeSpec___closed__1; +x_1 = l_Lean_Parser_Term_typeSpec___closed__1; +x_2 = l_Lean_Parser_Term_typeSpec___closed__2; x_3 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_3, 0, x_1); lean::cnstr_set(x_3, 1, x_2); @@ -11156,7 +11192,7 @@ obj* _init_l_Lean_Parser_Term_typeSpec() { _start: { obj* x_1; -x_1 = l_Lean_Parser_Term_typeSpec___closed__2; +x_1 = l_Lean_Parser_Term_typeSpec___closed__3; return x_1; } } @@ -11696,10 +11732,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_subtype___closed__8() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_subtype___closed__7; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_subtype___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_subtype___closed__7; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_subtype___closed__9() { @@ -12279,10 +12316,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_list___closed__7() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_list___closed__6; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_list___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_list___closed__6; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_list___closed__8() { @@ -12506,10 +12544,11 @@ return x_4; obj* _init_l_Lean_Parser_Term_explicit___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_explicit___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_explicit___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_explicit___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_explicit___closed__4() { @@ -12822,10 +12861,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_inaccessible___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_inaccessible___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_inaccessible___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_inaccessible___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_inaccessible___closed__4() { @@ -13465,17 +13505,27 @@ return x_2; obj* _init_l_Lean_Parser_Term_binderDefault___closed__1() { _start: { -obj* x_1; -x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_binderDefault___elambda__1___boxed), 1, 0); -return x_1; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_binderDefault___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_haveAssign___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_binderDefault___closed__2() { _start: { +obj* x_1; +x_1 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_binderDefault___elambda__1___boxed), 1, 0); +return x_1; +} +} +obj* _init_l_Lean_Parser_Term_binderDefault___closed__3() { +_start: +{ obj* x_1; obj* x_2; obj* x_3; -x_1 = l_Lean_Parser_Term_haveAssign___closed__3; -x_2 = l_Lean_Parser_Term_binderDefault___closed__1; +x_1 = l_Lean_Parser_Term_binderDefault___closed__1; +x_2 = l_Lean_Parser_Term_binderDefault___closed__2; x_3 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_3, 0, x_1); lean::cnstr_set(x_3, 1, x_2); @@ -13486,7 +13536,7 @@ obj* _init_l_Lean_Parser_Term_binderDefault() { _start: { obj* x_1; -x_1 = l_Lean_Parser_Term_binderDefault___closed__2; +x_1 = l_Lean_Parser_Term_binderDefault___closed__3; return x_1; } } @@ -13629,10 +13679,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_binderTactic___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_binderTactic___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_binderTactic___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_binderTactic___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_binderTactic___closed__3() { @@ -13755,7 +13806,7 @@ obj* _init_l_Lean_Parser_Term_explicitBinder___closed__5() { _start: { obj* x_1; obj* x_2; obj* x_3; -x_1 = l_Lean_Parser_Term_binderDefault___closed__1; +x_1 = l_Lean_Parser_Term_binderDefault___closed__2; x_2 = l_Lean_Parser_Term_binderTactic___closed__3; x_3 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_orelseFn___rarg), 5, 2); lean::closure_set(x_3, 0, x_1); @@ -13817,7 +13868,7 @@ return x_3; obj* l_Lean_Parser_Term_explicitBinder(uint8 x_1) { _start: { -obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; +obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; x_2 = l_Lean_Parser_Term_binderIdent; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); @@ -13844,13 +13895,14 @@ x_16 = l_Lean_Parser_Term_explicitBinder___closed__2; x_17 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_andthenFn___rarg), 5, 2); lean::closure_set(x_17, 0, x_16); lean::closure_set(x_17, 1, x_13); -x_18 = l_Lean_Parser_nodeInfo(x_15); -x_19 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_explicitBinder___elambda__1), 4, 1); -lean::closure_set(x_19, 0, x_17); -x_20 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_20, 0, x_18); -lean::cnstr_set(x_20, 1, x_19); -return x_20; +x_18 = l_Lean_Parser_Term_explicitBinder___elambda__1___closed__2; +x_19 = l_Lean_Parser_nodeInfo(x_18, x_15); +x_20 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_explicitBinder___elambda__1), 4, 1); +lean::closure_set(x_20, 0, x_17); +x_21 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_21, 0, x_19); +lean::cnstr_set(x_21, 1, x_20); +return x_21; } } obj* l_Lean_Parser_Term_explicitBinder___boxed(obj* x_1) { @@ -13918,7 +13970,7 @@ return x_2; obj* l_Lean_Parser_Term_implicitBinder(uint8 x_1) { _start: { -obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; +obj* x_2; obj* x_3; obj* x_4; obj* x_5; obj* x_6; obj* x_7; obj* x_8; obj* x_9; obj* x_10; obj* x_11; obj* x_12; obj* x_13; obj* x_14; obj* x_15; obj* x_16; obj* x_17; obj* x_18; obj* x_19; obj* x_20; obj* x_21; x_2 = l_Lean_Parser_Term_binderIdent; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); @@ -13945,13 +13997,14 @@ x_16 = l_Lean_Parser_Term_implicitBinder___closed__1; x_17 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_andthenFn___rarg), 5, 2); lean::closure_set(x_17, 0, x_16); lean::closure_set(x_17, 1, x_13); -x_18 = l_Lean_Parser_nodeInfo(x_15); -x_19 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_implicitBinder___elambda__1), 4, 1); -lean::closure_set(x_19, 0, x_17); -x_20 = lean::alloc_cnstr(0, 2, 0); -lean::cnstr_set(x_20, 0, x_18); -lean::cnstr_set(x_20, 1, x_19); -return x_20; +x_18 = l_Lean_Parser_Term_implicitBinder___elambda__1___closed__2; +x_19 = l_Lean_Parser_nodeInfo(x_18, x_15); +x_20 = lean::alloc_closure(reinterpret_cast(l_Lean_Parser_Term_implicitBinder___elambda__1), 4, 1); +lean::closure_set(x_20, 0, x_17); +x_21 = lean::alloc_cnstr(0, 2, 0); +lean::cnstr_set(x_21, 0, x_19); +lean::cnstr_set(x_21, 1, x_20); +return x_21; } } obj* l_Lean_Parser_Term_implicitBinder___boxed(obj* x_1) { @@ -14216,10 +14269,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_instBinder___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_instBinder___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_instBinder___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_instBinder___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_instBinder___closed__6() { @@ -14613,10 +14667,11 @@ return x_4; obj* _init_l_Lean_Parser_Term_depArrow___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_depArrow___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_depArrow___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_depArrow___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_depArrow___closed__6() { @@ -14779,12 +14834,13 @@ return x_17; obj* _init_l_Lean_Parser_Term_simpleBinder___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_binderIdent; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_simpleBinder___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_simpleBinder___closed__2() { @@ -15359,10 +15415,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_forall___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_forall___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_forall___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_forall___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_forall___closed__7() { @@ -15805,10 +15862,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_matchAlt___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_matchAlt___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_matchAlt___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_matchAlt___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_matchAlt___closed__7() { @@ -16827,10 +16885,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_match___closed__8() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_match___closed__7; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_match___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_match___closed__7; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_match___closed__9() { @@ -17118,10 +17177,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_nomatch___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_nomatch___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_nomatch___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_nomatch___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_nomatch___closed__4() { @@ -17361,10 +17421,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_parser_x21___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_parser_x21___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_parser_x21___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_parser_x21___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_parser_x21___closed__4() { @@ -17604,10 +17665,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_tparser_x21___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_tparser_x21___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_tparser_x21___elambda__1___rarg___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; } } obj* _init_l_Lean_Parser_Term_tparser_x21___closed__4() { @@ -17857,10 +17919,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_borrowed___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_borrowed___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_borrowed___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_borrowed___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_borrowed___closed__4() { @@ -18091,10 +18154,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_quotedName___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_quotedName___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_quotedName___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_quotedName___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_quotedName___closed__4() { @@ -18491,10 +18555,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_letIdDecl___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_letIdDecl___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_letIdDecl___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_letIdDecl___closed__4() { @@ -18828,10 +18893,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_equation___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_equation___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_equation___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_equation___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_equation___closed__5() { @@ -19729,10 +19795,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_letEqns___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_letEqns___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_letEqns___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_letEqns___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_letEqns___closed__5() { @@ -20018,10 +20085,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_letPatDecl___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_letPatDecl___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_letPatDecl___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_letPatDecl___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_letPatDecl___closed__4() { @@ -20599,10 +20667,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_let___closed__5() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_let___closed__4; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_let___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_let___closed__4; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_let___closed__6() { @@ -20920,10 +20989,11 @@ return x_4; obj* _init_l_Lean_Parser_Term_doLet___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_doLet___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_doLet___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_doLet___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_doLet___closed__3() { @@ -21213,10 +21283,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_doId___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_doId___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_doId___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_doId___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_doId___closed__5() { @@ -21635,10 +21706,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_doPat___closed__6() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_doPat___closed__5; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_doPat___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_doPat___closed__5; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_doPat___closed__7() { @@ -21723,10 +21795,11 @@ return x_2; obj* _init_l_Lean_Parser_Term_doExpr___closed__1() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Parser_inhabited___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_doExpr___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Parser_inhabited___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_doExpr___closed__2() { @@ -22190,10 +22263,11 @@ return x_4; obj* _init_l_Lean_Parser_Term_doSeq___closed__2() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_doSeq___closed__1; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_doSeq___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_doSeq___closed__1; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_doSeq___closed__3() { @@ -22468,10 +22542,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_bracketedDoSeq___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_bracketedDoSeq___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_bracketedDoSeq___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_bracketedDoSeq___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_bracketedDoSeq___closed__4() { @@ -22750,10 +22825,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_do___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_do___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_do___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_do___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_do___closed__5() { @@ -22994,10 +23070,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_not___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_not___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_not___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_not___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_not___closed__5() { @@ -23237,10 +23314,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_bnot___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_bnot___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_bnot___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_bnot___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_bnot___closed__4() { @@ -23472,10 +23550,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_uminus___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_uminus___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_uminus___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_uminus___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_uminus___closed__4() { @@ -23918,10 +23997,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_namedArgument___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_namedArgument___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_namedArgument___elambda__1___rarg___closed__2; +x_2 = l_Lean_Parser_Term_namedArgument___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_namedArgument___closed__5() { @@ -24090,10 +24170,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_app___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_app___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_app___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_app___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_app___closed__4() { @@ -24277,10 +24358,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_sortApp___closed__3() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_sortApp___closed__2; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_sortApp___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_sortApp___closed__2; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_sortApp___closed__4() { @@ -24616,10 +24698,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_proj___closed__7() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_proj___closed__6; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_proj___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_proj___closed__6; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_proj___closed__8() { @@ -24710,12 +24793,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_arrow___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_arrow___elambda__1___closed__3; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_arrow___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_arrow___closed__2() { @@ -24966,10 +25050,11 @@ return x_3; obj* _init_l_Lean_Parser_Term_array___closed__4() { _start: { -obj* x_1; obj* x_2; -x_1 = l_Lean_Parser_Term_array___closed__3; -x_2 = l_Lean_Parser_nodeInfo(x_1); -return x_2; +obj* x_1; obj* x_2; obj* x_3; +x_1 = l_Lean_Parser_Term_array___elambda__1___closed__2; +x_2 = l_Lean_Parser_Term_array___closed__3; +x_3 = l_Lean_Parser_nodeInfo(x_1, x_2); +return x_3; } } obj* _init_l_Lean_Parser_Term_array___closed__5() { @@ -25067,12 +25152,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_dollar___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_dollar___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_dollar___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_dollar___closed__2() { @@ -25170,12 +25256,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_fcomp___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_fcomp___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_fcomp___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_fcomp___closed__2() { @@ -25273,12 +25360,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_prod___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_prod___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_prod___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_prod___closed__2() { @@ -25376,12 +25464,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_add___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_add___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_add___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_add___closed__2() { @@ -25479,12 +25568,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_sub___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_sub___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_sub___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_sub___closed__2() { @@ -25582,12 +25672,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_mul___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_mul___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_mul___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_mul___closed__2() { @@ -25685,12 +25776,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_div___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_div___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_div___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_div___closed__2() { @@ -25788,12 +25880,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_mod___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_mod___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_mod___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_mod___closed__2() { @@ -25891,12 +25984,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_modN___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_modN___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_modN___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_modN___closed__2() { @@ -25994,12 +26088,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_pow___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_pow___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_pow___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_pow___closed__2() { @@ -26106,12 +26201,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_le___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_le___elambda__1___closed__5; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_le___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_le___closed__2() { @@ -26218,12 +26314,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_ge___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_ge___elambda__1___closed__5; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_ge___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_ge___closed__2() { @@ -26321,12 +26418,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_lt___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_lt___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_lt___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_lt___closed__2() { @@ -26424,12 +26522,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_gt___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_gt___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_gt___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_gt___closed__2() { @@ -26527,12 +26626,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_eq___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_eq___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_eq___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_eq___closed__2() { @@ -26630,12 +26730,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_ne___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_ne___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_ne___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_ne___closed__2() { @@ -26733,12 +26834,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_beq___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_beq___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_beq___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_beq___closed__2() { @@ -26836,12 +26938,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_bne___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_bne___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_bne___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_bne___closed__2() { @@ -26948,12 +27051,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_heq___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_heq___elambda__1___closed__5; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_heq___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_heq___closed__2() { @@ -27051,12 +27155,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_equiv___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_equiv___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_equiv___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_equiv___closed__2() { @@ -27154,12 +27259,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_subst___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_subst___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_subst___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_subst___closed__2() { @@ -27266,12 +27372,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_and___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_and___elambda__1___closed__5; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_and___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_and___closed__2() { @@ -27378,12 +27485,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_or___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_or___elambda__1___closed__5; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_or___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_or___closed__2() { @@ -27490,12 +27598,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_iff___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_iff___elambda__1___closed__5; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_iff___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_iff___closed__2() { @@ -27593,12 +27702,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_band___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_band___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_band___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_band___closed__2() { @@ -27696,12 +27806,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_bor___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_bor___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_bor___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_bor___closed__2() { @@ -27799,12 +27910,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_append___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_append___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_append___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_append___closed__2() { @@ -27902,12 +28014,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_cons___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_cons___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_cons___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_cons___closed__2() { @@ -28005,12 +28118,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_orelse___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_orelse___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_orelse___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_orelse___closed__2() { @@ -28108,12 +28222,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_orM___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_orM___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_orM___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_orM___closed__2() { @@ -28211,12 +28326,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_andM___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_andM___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_andM___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_andM___closed__2() { @@ -28314,12 +28430,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_andthen___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_andthen___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_andthen___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_andthen___closed__2() { @@ -28417,12 +28534,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_bind___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_bind___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_bind___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_bind___closed__2() { @@ -28520,12 +28638,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_mapRev___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_mapRev___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_mapRev___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_mapRev___closed__2() { @@ -28623,12 +28742,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_seq___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_seq___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_seq___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_seq___closed__2() { @@ -28726,12 +28846,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_seqLeft___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_seqLeft___closed__2() { @@ -28829,12 +28950,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_seqRight___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_seqRight___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_seqRight___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_seqRight___closed__2() { @@ -28932,12 +29054,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_map___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_map___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_map___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_map___closed__2() { @@ -29035,12 +29158,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_mapConst___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_mapConst___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_mapConst___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_mapConst___closed__2() { @@ -29138,12 +29262,13 @@ return x_10; obj* _init_l_Lean_Parser_Term_mapConstRev___closed__1() { _start: { -obj* x_1; obj* x_2; obj* x_3; +obj* x_1; obj* x_2; obj* x_3; obj* x_4; x_1 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__4; x_2 = lean::cnstr_get(x_1, 0); lean::inc(x_2); -x_3 = l_Lean_Parser_nodeInfo(x_2); -return x_3; +x_3 = l_Lean_Parser_Term_mapConstRev___elambda__1___closed__2; +x_4 = l_Lean_Parser_nodeInfo(x_3, x_2); +return x_4; } } obj* _init_l_Lean_Parser_Term_mapConstRev___closed__2() { @@ -30075,6 +30200,8 @@ l_Lean_Parser_Term_typeSpec___closed__1 = _init_l_Lean_Parser_Term_typeSpec___cl lean::mark_persistent(l_Lean_Parser_Term_typeSpec___closed__1); l_Lean_Parser_Term_typeSpec___closed__2 = _init_l_Lean_Parser_Term_typeSpec___closed__2(); lean::mark_persistent(l_Lean_Parser_Term_typeSpec___closed__2); +l_Lean_Parser_Term_typeSpec___closed__3 = _init_l_Lean_Parser_Term_typeSpec___closed__3(); +lean::mark_persistent(l_Lean_Parser_Term_typeSpec___closed__3); l_Lean_Parser_Term_typeSpec = _init_l_Lean_Parser_Term_typeSpec(); lean::mark_persistent(l_Lean_Parser_Term_typeSpec); lean::register_constant(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "Term"), "typeSpec"), l_Lean_Parser_Term_typeSpec); @@ -30253,6 +30380,8 @@ l_Lean_Parser_Term_binderDefault___closed__1 = _init_l_Lean_Parser_Term_binderDe lean::mark_persistent(l_Lean_Parser_Term_binderDefault___closed__1); l_Lean_Parser_Term_binderDefault___closed__2 = _init_l_Lean_Parser_Term_binderDefault___closed__2(); lean::mark_persistent(l_Lean_Parser_Term_binderDefault___closed__2); +l_Lean_Parser_Term_binderDefault___closed__3 = _init_l_Lean_Parser_Term_binderDefault___closed__3(); +lean::mark_persistent(l_Lean_Parser_Term_binderDefault___closed__3); l_Lean_Parser_Term_binderDefault = _init_l_Lean_Parser_Term_binderDefault(); lean::mark_persistent(l_Lean_Parser_Term_binderDefault); lean::register_constant(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name(lean::mk_const_name("Lean"), "Parser"), "Term"), "binderDefault"), l_Lean_Parser_Term_binderDefault);