--- source: src/main.rs expression: parsed input_file: test-data/lua5.3-tests/code.lua --- [ IfStatement { condition: [ Ident { expr: [ Symbol( "T", ), ], line: 4, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], body: CodeBlock { start: 5, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 5, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 5, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> testC not active: skipping opcode tests <<<\\n'", ), ], ], ), ], line: 5, }, Return( None, ), ], end: 15, }, next: None, line: 7, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing code generation and optimizations\"", ), ], ], ), ], line: 7, }, DoBlock( CodeBlock { start: 18, code: [ Function { local: true, name: [ Symbol( "f", ), ], args: [ "a", ], body: CodeBlock { start: 6, code: [ ForFuncLoop { iters: [ "k", "v", "w", ], expr: [ Ident { expr: [ Symbol( "a", ), ], line: 14, }, ], stop: None, initial: None, code: CodeBlock { start: 9, code: [], end: 10, }, line: 14, column: 10, }, ], end: 17, }, line: 15, column: 1, }, ], end: 36, }, ), Function { local: true, name: [ Symbol( "checkKlist", ), ], args: [ "func", "list", ], body: CodeBlock { start: 44, code: [ Variable { names: [ ( "k", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "listk", ), Call( [ [ Ident { expr: [ Symbol( "func", ), ], line: 21, }, ], ], ), ], line: 21, }, ], ], line: 21, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "k", ), ], line: 22, }, Operator( ( "==", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "list", ), ], line: 22, }, ], ], ), ], line: 21, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "k", ), ], line: 23, }, ], step: None, code: CodeBlock { start: 25, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 24, }, ], ), Symbol( "]", ), ], line: 24, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "list", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 24, }, ], ), Symbol( "]", ), ], line: 24, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 24, }, ], ), Symbol( "]", ), ], line: 24, }, ], ], ), ], line: 24, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "list", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 24, }, ], ), Symbol( "]", ), ], line: 24, }, ], ], ), ], line: 24, }, ], ], ), ], line: 24, }, ], end: 58, }, line: 25, column: 1, }, ], end: 103, }, line: 26, column: 1, }, Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 108, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 29, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 29, }, ], values: [ [ Symbol( "3", ), ], ], line: 30, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 30, }, ], values: [ [ Symbol( "0", ), ], ], line: 31, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 31, }, ], values: [ [ Symbol( "0.0", ), ], ], line: 31, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 31, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "7", ), Operator( ( "+", true, ), ), Symbol( "7", ), ], ], line: 31, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 31, }, ], values: [ [ Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ], line: 32, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 32, }, ], values: [ [ Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ], line: 32, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 32, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ], line: 33, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 33, }, ], values: [ [ Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ], line: 33, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 33, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ], line: 33, column: 19, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 33, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "3.79", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ], line: 34, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 34, }, ], values: [ [ Symbol( "0.0", ), ], ], line: 34, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 34, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "0", ), ], ], line: 34, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 34, }, ], values: [ [ Symbol( "3", ), ], ], line: 35, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 35, }, ], values: [ [ Symbol( "3.0", ), ], ], line: 35, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 35, }, ], values: [ [ Symbol( "3", ), ], ], line: 35, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 35, }, ], values: [ [ Symbol( "3.0", ), ], ], line: 35, column: 15, }, ], end: 190, }, line: 36, column: 1, }, Ident { expr: [ Symbol( "checkKlist", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 38, }, ], [ Table { data: [ ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0.0", ), ], ), ( None, [ Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "3.78", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "3.79", ), Operator( ( "/", true, ), ), Symbol( "4", ), ], ), ( None, [ Symbol( "3.0", ), ], ), ], line: 38, column: 27, }, ], ], ), ], line: 36, }, Function { local: false, name: [ Symbol( "check", ), ], args: [ "f", "...", ], body: CodeBlock { start: 225, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 44, column: 6, }, ], ], line: 45, column: 0, }, Variable { names: [ ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "listcode", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 45, }, ], ], ), ], line: 45, }, ], ], line: 46, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "arg", ), ], line: 46, }, ], step: None, code: CodeBlock { start: 23, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "c", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 48, }, ], ), Symbol( "]", ), ], line: 48, }, ], [ Symbol( "'- '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 48, }, ], ), Symbol( "]", ), ], line: 48, }, Operator( ( "..", true, ), ), Symbol( "' *%d'", ), ], ], ), ], line: 48, }, ], ], ), ], line: 48, }, ], end: 45, }, line: 49, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "arg", ), ], line: 50, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], ), Symbol( "]", ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 49, }, ], end: 283, }, line: 51, column: 1, }, Function { local: false, name: [ Symbol( "checkequal", ), ], args: [ "a", "b", ], body: CodeBlock { start: 290, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 54, }, ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "listcode", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 54, }, ], ], ), ], line: 54, }, ], ], line: 54, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 54, }, ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "listcode", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 55, }, ], ], ), ], line: 55, }, ], ], line: 56, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 56, }, ], step: None, code: CodeBlock { start: 24, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 57, }, ], ), Symbol( "]", ), ], line: 57, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 57, }, ], ), Symbol( "]", ), ], line: 57, }, ], [ Symbol( "'%b()'", ), ], [ Symbol( "''", ), ], ], ), ], line: 57, }, ], ], line: 57, column: 18, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 58, }, ], ), Symbol( "]", ), ], line: 57, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 58, }, ], ), Symbol( "]", ), ], line: 58, }, ], [ Symbol( "'%b()'", ), ], [ Symbol( "''", ), ], ], ), ], line: 58, }, ], ], line: 58, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 59, }, ], ), Symbol( "]", ), ], line: 59, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 59, }, ], ), Symbol( "]", ), ], line: 59, }, ], ], ), ], line: 58, }, ], end: 73, }, line: 60, column: 1, }, ], end: 364, }, line: 61, column: 1, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 369, code: [ Expr( [ Lambda { args: [], body: CodeBlock { start: 4, code: [], end: 5, }, line: 65, column: 5, }, ], ), Ident { expr: [ Call( [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 65, }, ], ), ], line: 65, column: 11, }, ], ], ), ], line: 65, }, ], end: 381, }, line: 66, column: 1, }, ], [ Symbol( "'CLOSURE'", ), ], [ Symbol( "'NEWTABLE'", ), ], [ Symbol( "'GETTABUP'", ), ], [ Symbol( "'CALL'", ), ], [ Symbol( "'SETLIST'", ), ], [ Symbol( "'CALL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 401, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [], line: 71, column: 6, }, Variable { names: [ ( "d", false, ), ], values: [], line: 72, column: 3, }, Variable { names: [ ( "e", false, ), ], values: [], line: 72, column: 6, }, Variable { names: [ ( "f", false, ), ( "g", false, ), ( "h", false, ), ], values: [], line: 73, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 73, }, ], values: [ [ Symbol( "nil", ), ], ], line: 74, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 74, }, ], values: [ [ Symbol( "nil", ), ], ], line: 74, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 74, }, ], values: [ [ Symbol( "nil", ), ], ], line: 74, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 74, }, ], values: [ [ Symbol( "nil", ), ], ], line: 74, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 74, }, ], values: [ [ Symbol( "nil", ), ], ], line: 74, column: 20, }, ], end: 441, }, line: 75, column: 1, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 451, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [ [ Symbol( "1", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], line: 78, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 78, }, ], values: [ [ Symbol( "nil", ), ], ], line: 79, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 79, }, ], values: [ [ Symbol( "nil", ), ], ], line: 79, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 79, }, ], values: [ [ Symbol( "nil", ), ], ], line: 79, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 79, }, ], values: [ [ Symbol( "nil", ), ], ], line: 79, column: 15, }, ], end: 483, }, line: 80, column: 1, }, ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 75, }, DoBlock( CodeBlock { start: 497, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [ [ Symbol( "1", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], line: 83, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 83, }, ], values: [ [ Symbol( "nil", ), ], ], line: 84, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 84, }, ], values: [ [ Symbol( "nil", ), ], ], line: 84, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 84, }, ], values: [ [ Symbol( "nil", ), ], ], line: 84, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 84, }, ], values: [ [ Symbol( "nil", ), ], ], line: 84, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 84, }, ], end: 547, }, ), Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [ "a", "b", "c", ], body: CodeBlock { start: 557, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 90, }, ], ], ), ), ], end: 560, }, line: 90, column: 13, }, ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 568, code: [ WhileLoop { condition: [ Symbol( "true", ), ], body: CodeBlock { start: 3, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], line: 94, column: 5, }, ], end: 9, }, line: 94, column: 9, }, ], end: 578, }, line: 94, column: 15, }, ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 590, code: [ WhileLoop { condition: [ Symbol( "1", ), ], body: CodeBlock { start: 3, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], line: 97, column: 5, }, ], end: 9, }, line: 97, column: 9, }, ], end: 600, }, line: 97, column: 15, }, ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 612, code: [ RepeatLoop { condition: [ Symbol( "true", ), ], body: CodeBlock { start: 1, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "1", ), ], ], line: 100, column: 4, }, ], end: 6, }, line: 100, column: 7, }, ], end: 620, }, line: 100, column: 13, }, ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [ "a", "b", "c", "d", ], body: CodeBlock { start: 637, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 105, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 105, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 105, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 105, }, ], ], ), ), ], end: 646, }, line: 105, column: 21, }, ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'CONCAT'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 664, code: [ Return( Some( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Symbol( "nil", ), ], ], ), ), ], end: 669, }, line: 109, column: 10, }, ], [ Symbol( "'LOADBOOL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 106, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 679, code: [ Return( Some( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Symbol( "false", ), ], ], ), ), ], end: 684, }, line: 110, column: 10, }, ], [ Symbol( "'LOADBOOL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 694, code: [ Return( Some( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Symbol( "true", ), ], ], ), ), ], end: 699, }, line: 111, column: 10, }, ], [ Symbol( "'LOADBOOL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 709, code: [ Return( Some( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Symbol( "1", ), ], ], ), ), ], end: 714, }, line: 112, column: 10, }, ], [ Symbol( "'LOADBOOL'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 724, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [], line: 116, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 116, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 117, }, Operator( ( "*", true, ), ), Symbol( "2", ), ], ], line: 117, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 117, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 118, }, ], ), Symbol( "]", ), ], line: 118, }, ], values: [ [ Operator( ( "-", false, ), ), Expr( [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 118, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 118, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 118, }, ], ), Symbol( "]", ), ], line: 118, }, ], ), Ident { expr: [], line: 118, }, Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 118, }, ], ), Ident { expr: [], line: 118, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 118, }, ], ], line: 118, column: 31, }, ], end: 769, }, line: 119, column: 1, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'MUL'", ), ], [ Symbol( "'DIV'", ), ], [ Symbol( "'ADD'", ), ], [ Symbol( "'GETTABLE'", ), ], [ Symbol( "'SUB'", ), ], [ Symbol( "'GETTABLE'", ), ], [ Symbol( "'POW'", ), ], [ Symbol( "'UNM'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 799, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [], line: 128, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 128, }, ], values: [ [ Symbol( "3.2", ), ], ], line: 129, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 129, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 130, }, ], ], line: 130, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 131, }, ], ), Symbol( "]", ), ], line: 130, }, ], values: [ [ Symbol( "'x'", ), ], ], line: 131, column: 6, }, ], end: 820, }, line: 132, column: 1, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 836, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [], line: 136, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 136, }, ], values: [ [ Symbol( "1", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 137, }, ], ], line: 137, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 137, }, ], values: [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 138, }, ], ], line: 138, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 138, }, ], values: [ [ Symbol( "5", ), Operator( ( "-", true, ), ), Symbol( "4", ), ], ], line: 139, column: 5, }, ], end: 856, }, line: 140, column: 1, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'SUB'", ), ], [ Symbol( "'DIV'", ), ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 872, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [], line: 144, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "true", ), ], ), Symbol( "]", ), ], line: 144, }, ], values: [ [ Symbol( "false", ), ], ], line: 145, column: 6, }, ], end: 883, }, line: 146, column: 1, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 141, }, Function { local: true, name: [ Symbol( "checkK", ), ], args: [ "func", "val", ], body: CodeBlock { start: 898, code: [ Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "func", ), ], line: 152, }, ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 152, }, Variable { names: [ ( "k", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "listk", ), Call( [ [ Ident { expr: [ Symbol( "func", ), ], line: 153, }, ], ], ), ], line: 153, }, ], ], line: 153, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "k", ), ], line: 154, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "k", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 154, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "val", ), ], line: 154, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 154, }, ], ], ), ], line: 154, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "val", ), ], line: 154, }, ], ], ), ], line: 154, }, ], ], ), ], line: 153, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "func", ), Call( [], ), ], line: 155, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "val", ), ], line: 155, }, ], ], ), ], line: 154, }, ], end: 955, }, line: 156, column: 1, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 960, code: [ Return( Some( [ [ Symbol( "0.0", ), ], ], ), ), ], end: 963, }, line: 157, column: 8, }, ], [ Symbol( "0.0", ), ], ], ), ], line: 156, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 971, code: [ Return( Some( [ [ Symbol( "0", ), ], ], ), ), ], end: 974, }, line: 158, column: 8, }, ], [ Symbol( "0", ), ], ], ), ], line: 157, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 982, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Symbol( "0", ), Operator( ( "//", true, ), ), Symbol( "1", ), ], ], ), ), ], end: 988, }, line: 159, column: 11, }, ], [ Symbol( "0", ), ], ], ), ], line: 158, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 996, code: [ Return( Some( [ [ Symbol( "3", ), Operator( ( "^", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ), ], end: 1002, }, line: 160, column: 11, }, ], [ Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "3", ), ], ], ), ], line: 159, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1012, code: [ Return( Some( [ [ Expr( [ Symbol( "1", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 161, }, Operator( ( "^", true, ), ), Expr( [ Symbol( "50", ), Operator( ( "+", true, ), ), Symbol( "50", ), ], ), Ident { expr: [], line: 161, }, ], ], ), ), ], end: 1025, }, line: 161, column: 18, }, ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "100", ), ], ], ), ], line: 160, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1035, code: [ Return( Some( [ [ Expr( [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 162, }, Operator( ( "^", true, ), ), Expr( [ Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 162, }, ], ], ), ), ], end: 1047, }, line: 162, column: 17, }, ], [ Operator( ( "-", false, ), ), Symbol( "0x20000000", ), Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 161, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1058, code: [ Return( Some( [ [ Expr( [ Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "^", true, ), ), Symbol( "0", ), Operator( ( "+", true, ), ), Symbol( "5", ), ], ), Ident { expr: [], line: 163, }, Operator( ( "//", true, ), ), Symbol( "3.0", ), ], ], ), ), ], end: 1070, }, line: 163, column: 17, }, ], [ Symbol( "1.0", ), ], ], ), ], line: 162, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1078, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "%", true, ), ), Symbol( "5", ), ], ], ), ), ], end: 1084, }, line: 164, column: 11, }, ], [ Symbol( "2", ), ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1092, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Expr( [ Expr( [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "8", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 165, }, ], ), Ident { expr: [], line: 165, }, Operator( ( "%", true, ), ), Symbol( "8", ), ], ), Ident { expr: [], line: 165, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "*", true, ), ), Symbol( "4", ), Operator( ( "-", true, ), ), Symbol( "3", ), ], ], ), ), ], end: 1116, }, line: 165, column: 29, }, ], [ Operator( ( "-", false, ), ), Symbol( "5.0", ), ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1125, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Expr( [ Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "8", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 166, }, ], ), Ident { expr: [], line: 166, }, Operator( ( "%", true, ), ), Symbol( "8", ), ], ), Ident { expr: [], line: 166, }, Operator( ( "//", true, ), ), Symbol( "2", ), Operator( ( "*", true, ), ), Symbol( "4", ), Operator( ( "-", true, ), ), Symbol( "3", ), ], ], ), ), ], end: 1149, }, line: 166, column: 29, }, ], [ Operator( ( "-", false, ), ), Symbol( "7.0", ), ], ], ), ], line: 165, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1158, code: [ Return( Some( [ [ Symbol( "240", ), Operator( ( "|", true, ), ), Symbol( "204", ), Operator( ( "~", true, ), ), Symbol( "0xAA", ), Operator( ( "&", true, ), ), Symbol( "0xFD", ), ], ], ), ), ], end: 1167, }, line: 167, column: 14, }, ], [ Symbol( "0xF4", ), ], ], ), ], line: 166, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1175, code: [ Return( Some( [ [ Operator( ( "~", false, ), ), Expr( [ Operator( ( "~", false, ), ), Symbol( "0xFF0", ), Operator( ( "|", true, ), ), Symbol( "0xFF0", ), ], ), Ident { expr: [], line: 168, }, ], ], ), ), ], end: 1184, }, line: 168, column: 14, }, ], [ Symbol( "0", ), ], ], ), ], line: 167, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1192, code: [ Return( Some( [ [ Operator( ( "~", false, ), ), Operator( ( "~", true, ), ), Operator( ( "-", false, ), ), Symbol( "100024.0", ), ], ], ), ), ], end: 1198, }, line: 169, column: 11, }, ], [ Operator( ( "-", false, ), ), Symbol( "100024", ), ], ], ), ], line: 168, }, Ident { expr: [ Symbol( "checkK", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1207, code: [ Return( Some( [ [ Expr( [ Expr( [ Symbol( "100", ), Operator( ( "<<", true, ), ), Symbol( "6", ), ], ), Ident { expr: [], line: 170, }, Operator( ( "<<", true, ), ), Operator( ( "-", false, ), ), Symbol( "4", ), ], ), Ident { expr: [], line: 170, }, Operator( ( ">>", true, ), ), Symbol( "2", ), ], ], ), ), ], end: 1221, }, line: 170, column: 19, }, ], [ Symbol( "100", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1229, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Symbol( "0.0", ), ], ], ), ), ], end: 1233, }, line: 174, column: 9, }, ], [ Symbol( "'LOADK'", ), ], [ Symbol( "'UNM'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1245, code: [ Return( Some( [ [ Symbol( "3", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ), ], end: 1250, }, line: 175, column: 10, }, ], [ Symbol( "'DIV'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1260, code: [ Return( Some( [ [ Symbol( "0", ), Operator( ( "%", true, ), ), Symbol( "0", ), ], ], ), ), ], end: 1265, }, line: 176, column: 10, }, ], [ Symbol( "'MOD'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1275, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "//", true, ), ), Symbol( "0", ), ], ], ), ), ], end: 1281, }, line: 177, column: 11, }, ], [ Symbol( "'IDIV'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 176, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1291, code: [ Return( Some( [ [ Operator( ( "-", false, ), ), Symbol( "nil", ), ], ], ), ), ], end: 1295, }, line: 180, column: 9, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'UNM'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 177, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1307, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [], line: 184, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "c", ), ], line: 185, }, ], ), Symbol( "]", ), ], line: 184, }, Ident { expr: [ Symbol( "a", ), ], line: 185, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 185, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 185, }, ], ], line: 185, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 186, }, ], ), Symbol( "]", ), ], line: 185, }, Ident { expr: [ Symbol( "a", ), ], line: 186, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 186, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 186, }, ], ], line: 186, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 186, }, Ident { expr: [ Symbol( "b", ), ], line: 187, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 187, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 187, }, ], ], line: 187, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 187, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 188, }, ], ], line: 188, column: 3, }, ], end: 1344, }, line: 189, column: 1, }, ], [ Symbol( "'LOADNIL'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'SETTABLE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'MOVE'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 180, }, Ident { expr: [ Symbol( "checkequal", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1374, code: [ IfStatement { condition: [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 200, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ), Ident { expr: [], line: 200, }, ], body: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 200, }, ], values: [ [ Symbol( "1", ), ], ], line: 200, column: 3, }, ], end: 11, }, next: None, line: 200, column: 11, }, IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 201, }, Operator( ( "~=", true, ), ), Symbol( "nil", ), ], body: CodeBlock { start: 17, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 201, }, ], values: [ [ Symbol( "1", ), ], ], line: 201, column: 3, }, ], end: 21, }, next: None, line: 201, column: 10, }, ], end: 1396, }, line: 202, column: 1, }, ], [ Lambda { args: [], body: CodeBlock { start: 1400, code: [ IfStatement { condition: [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 204, }, Operator( ( "==", true, ), ), Symbol( "9", ), ], ), Ident { expr: [], line: 204, }, ], body: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 204, }, ], values: [ [ Symbol( "1", ), ], ], line: 204, column: 3, }, ], end: 11, }, next: None, line: 204, column: 11, }, IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 205, }, Operator( ( "~=", true, ), ), Symbol( "9", ), ], body: CodeBlock { start: 17, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 205, }, ], values: [ [ Symbol( "1", ), ], ], line: 205, column: 3, }, ], end: 21, }, next: None, line: 205, column: 10, }, ], end: 1422, }, line: 206, column: 1, }, ], ], ), ], line: 195, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1428, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 208, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 208, }, ], values: [ [ Symbol( "'a'", ), ], ], line: 208, column: 3, }, ], end: 9, }, next: None, line: 208, column: 9, }, ], end: 1438, }, line: 208, column: 15, }, ], [ Symbol( "'GETTABUP'", ), ], [ Symbol( "'EQ'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'SETTABUP'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "checkequal", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1454, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 213, column: 3, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 213, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 213, }, ], ), Ident { expr: [], line: 213, }, ], body: CodeBlock { start: 11, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 213, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 213, }, ], ], line: 213, column: 3, }, ], end: 15, }, next: None, line: 213, column: 15, }, ], end: 1470, }, line: 214, column: 1, }, ], [ Lambda { args: [], body: CodeBlock { start: 1474, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 216, column: 3, }, IfStatement { condition: [ Expr( [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 216, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 216, }, ], ), Ident { expr: [], line: 216, }, ], body: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 216, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 216, }, ], ], line: 216, column: 3, }, ], end: 16, }, next: None, line: 216, column: 16, }, ], end: 1491, }, line: 217, column: 1, }, ], ], ), ], line: 209, }, Ident { expr: [ Symbol( "checkequal", ), Call( [ [ Lambda { args: [ "l", ], body: CodeBlock { start: 1498, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 220, column: 3, }, Return( Some( [ [ Symbol( "0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 220, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 220, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 220, }, ], ], ), ), ], end: 1510, }, line: 221, column: 1, }, ], [ Lambda { args: [ "l", ], body: CodeBlock { start: 1515, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 223, column: 3, }, Return( Some( [ [ Operator( ( "not", false, ), ), Expr( [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 223, }, Operator( ( ">=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 223, }, Operator( ( "or", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 223, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 223, }, ], ), Ident { expr: [], line: 223, }, ], ), Ident { expr: [], line: 223, }, ], ], ), ), ], end: 1536, }, line: 224, column: 1, }, ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Lambda { args: [ "a", "b", "c", "d", "e", ], body: CodeBlock { start: 1551, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 229, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 229, }, ], body: CodeBlock { start: 5, code: [], end: 6, }, next: Some( IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 230, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 230, }, ], body: CodeBlock { start: 10, code: [], end: 11, }, next: Some( IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 231, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 231, }, ], body: CodeBlock { start: 15, code: [], end: 16, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 16, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 233, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 233, }, ], body: CodeBlock { start: 5, code: [], end: 6, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 6, code: [], end: 7, }, next: None, line: 235, column: 1, }, ), line: 235, column: 1, }, ], end: 24, }, next: None, line: 236, column: 1, }, ), line: 236, column: 1, }, ), line: 236, column: 1, }, ), line: 236, column: 1, }, ], end: 1576, }, line: 237, column: 1, }, ], [ Symbol( "'EQ'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'EQ'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'EQ'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'EQ'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'JMP'", ), ], [ Symbol( "'RETURN'", ), ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "checkequal", ), Call( [ [ Lambda { args: [ "a", ], body: CodeBlock { start: 1603, code: [ WhileLoop { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 240, }, Operator( ( "<", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 240, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 240, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 240, column: 5, }, ], end: 11, }, line: 240, column: 11, }, ], end: 1615, }, line: 240, column: 16, }, ], [ Lambda { args: [ "a", ], body: CodeBlock { start: 1620, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 242, }, Operator( ( "<", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 242, }, ], body: CodeBlock { start: 8, code: [], end: 9, }, next: None, line: 242, column: 9, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 243, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 243, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 243, column: 7, }, ], end: 1637, }, line: 244, column: 1, }, ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "checkequal", ), Call( [ [ Lambda { args: [ "a", ], body: CodeBlock { start: 1644, code: [ WhileLoop { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 248, }, Operator( ( "<", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 248, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 248, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 248, column: 5, }, ], end: 11, }, line: 248, column: 11, }, ], end: 1656, }, line: 248, column: 16, }, ], [ Lambda { args: [ "a", ], body: CodeBlock { start: 1661, code: [ WhileLoop { condition: [ Symbol( "true", ), ], body: CodeBlock { start: 3, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 251, }, Operator( ( "<", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 251, }, ], body: CodeBlock { start: 8, code: [ Break, ], end: 10, }, next: None, line: 251, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 252, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 252, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 252, column: 7, }, ], end: 21, }, line: 253, column: 1, }, ], end: 1683, }, line: 254, column: 1, }, ], ], ), ], line: 245, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 255, }, ]