--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/nextvar.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing tables, next, and for'", ), ], ], ), ], line: 4, }, Function { local: true, name: [ Symbol( "checkerror", ), ], args: [ "msg", "f", "...", ], body: CodeBlock { start: 14, code: [ Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 7, }, ], [ Symbol( "...", ), ], ], ), ], line: 7, }, ], ], line: 7, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 8, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 8, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 8, }, ], ], ), ], line: 8, }, ], ], ), ], line: 7, }, ], end: 40, }, line: 9, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 12, column: 5, }, ], ], line: 15, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "100", ), ], step: None, code: CodeBlock { start: 52, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 15, }, Operator( ( "..", true, ), ), Symbol( "\"+\"", ), ], ), Symbol( "]", ), ], line: 15, }, ], values: [ [ Symbol( "true", ), ], ], line: 15, column: 8, }, ], end: 61, }, line: 15, column: 16, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "100", ), ], step: None, code: CodeBlock { start: 68, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 16, }, Operator( ( "..", true, ), ), Symbol( "\"+\"", ), ], ), Symbol( "]", ), ], line: 16, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 16, }, ], ], line: 16, column: 8, }, ], end: 77, }, line: 16, column: 16, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "100", ), ], step: None, code: CodeBlock { start: 84, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 19, }, ], ), Symbol( "]", ), ], line: 19, }, ], values: [ [ Symbol( "true", ), ], ], line: 19, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 20, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 20, }, ], ], ), ], line: 19, }, ], end: 98, }, line: 21, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 25, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( Some( [ Symbol( "x", ), ], ), [ Symbol( "12", ), ], ), ], line: 25, column: 17, }, ], ], ), ], line: 25, }, ], stop: None, initial: None, code: CodeBlock { start: 120, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 26, }, ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 26, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 26, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 27, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 27, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 27, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 27, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], ), ], line: 26, }, ], end: 138, }, line: 28, column: 1, }, ForFuncLoop { iters: [ "_", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "x", ), ], ), [ Symbol( "12", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "24", ), ], ), ], line: 30, column: 13, }, ], ], ), ], line: 30, }, ], stop: None, initial: None, code: CodeBlock { start: 152, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 30, }, ], end: 157, }, line: 30, column: 19, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 30, }, ], values: [ [ Symbol( "false", ), ], ], line: 34, column: 0, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 35, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [ ( None, [ Symbol( "true", ), ], ), ( None, [ Symbol( "false", ), ], ), ( None, [ Symbol( "true", ), ], ), ( None, [ Symbol( "false", ), ], ), ], line: 35, column: 15, }, ], ], ), ], line: 35, }, ], stop: None, initial: None, code: CodeBlock { start: 180, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 36, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 36, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 36, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 36, }, ], values: [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 37, }, ], ], line: 37, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 38, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 38, }, ], ], ), ], line: 37, }, ], end: 196, }, line: 39, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 43, column: 7, }, ], ], ), ], line: 43, }, ], ], ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "'function'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 43, column: 14, }, ], ], ), ], line: 43, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 43, column: 18, }, ], ], ), ], line: 43, }, ], ], ), ], line: 40, }, DoBlock( CodeBlock { start: 222, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 47, column: 6, }, ], ], ), ], line: 47, }, ], ], line: 48, column: 0, }, Variable { names: [ ( "k", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Table { data: [ ( Some( [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 48, }, ], ), [ Symbol( "10", ), ], ), ], line: 48, column: 16, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 48, }, ], ], ), ], line: 48, }, ], ], line: 48, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 49, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 49, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 48, }, Alter { names: [ Ident { expr: [ Symbol( "k", ), ], line: 49, }, Ident { expr: [ Symbol( "v", ), ], line: 50, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Table { data: [ ( Some( [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 50, }, ], ), [ Symbol( "10", ), ], ), ], line: 50, column: 15, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 50, }, ], ], ), ], line: 50, }, ], ], line: 50, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 51, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 50, }, ], end: 286, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "T", ), ], line: 54, }, ], body: CodeBlock { start: 290, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 55, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 55, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> testC not active: skipping tests for table sizes <<<\\n'", ), ], ], ), ], line: 55, }, ], end: 299, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 299, code: [ Function { local: true, name: [ Symbol( "mp2", ), ], args: [ "n", ], body: CodeBlock { start: 6, code: [ Variable { names: [ ( "mp", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 62, }, ], [ Symbol( "2", ), ], ], ), ], line: 62, }, ], ], ), ], line: 62, }, ], ], line: 62, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 63, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "mp", ), ], line: 63, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 63, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 63, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "mp", ), ], line: 63, }, ], ), Ident { expr: [], line: 63, }, ], ], ), ], line: 62, }, Return( Some( [ [ Ident { expr: [ Symbol( "mp", ), ], line: 64, }, ], ], ), ), ], end: 45, }, line: 65, column: 1, }, Function { local: true, name: [ Symbol( "check", ), ], args: [ "t", "na", "nh", ], body: CodeBlock { start: 55, code: [ Variable { names: [ ( "a", false, ), ( "h", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 69, }, ], ], ), ], line: 69, }, ], ], line: 70, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 70, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "na", ), ], line: 70, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "h", ), ], line: 70, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "nh", ), ], line: 70, }, ], body: CodeBlock { start: 20, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "na", ), ], line: 71, }, ], [ Ident { expr: [ Symbol( "nh", ), ], line: 71, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 71, }, ], [ Ident { expr: [ Symbol( "h", ), ], line: 71, }, ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 71, }, ], end: 35, }, next: None, line: 73, column: 1, }, ], end: 91, }, line: 74, column: 1, }, DoBlock( CodeBlock { start: 92, code: [ Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 80, column: 0, }, ForFuncLoop { iters: [ "_", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "math", ), ], line: 80, }, ], ], ), ], line: 80, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 80, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 80, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 80, column: 5, }, ], end: 18, }, line: 80, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "math", ), ], line: 81, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 81, }, ], ], ), ], line: 81, }, ], ], ), ], line: 80, }, ], end: 122, }, ), Variable { names: [ ( "sizes", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "7", ), ], ), ( None, [ Symbol( "8", ), ], ), ( None, [ Symbol( "9", ), ], ), ( None, [ Symbol( "15", ), ], ), ( None, [ Symbol( "16", ), ], ), ( None, [ Symbol( "17", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "31", ), ], ), ( None, [ Symbol( "32", ), ], ), ( None, [ Symbol( "33", ), ], ), ( None, [ Symbol( "34", ), ], ), ( None, [ Symbol( "254", ), ], ), ( None, [ Symbol( "255", ), ], ), ( None, [ Symbol( "256", ), ], ), ( None, [ Symbol( "500", ), ], ), ( None, [ Symbol( "1000", ), ], ), ], line: 87, column: 20, }, ], ], line: 89, column: 0, }, ForFuncLoop { iters: [ "_", "sa", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "sizes", ), ], line: 89, }, ], ], ), ], line: 89, }, ], stop: None, initial: None, code: CodeBlock { start: 180, code: [ Variable { names: [ ( "arr", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"return {\"", ), ], ), ], line: 90, column: 6, }, ], ], line: 91, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "sa", ), ], line: 91, }, ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "arr", ), Symbol( "[", ), Expr( [ Symbol( "1", ), Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 91, }, ], ), Symbol( "]", ), ], line: 91, }, ], values: [ [ Symbol( "\"1,\"", ), ], ], line: 91, column: 8, }, ], end: 22, }, line: 91, column: 16, }, ForFuncLoop { iters: [ "_", "sh", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "sizes", ), ], line: 92, }, ], ], ), ], line: 92, }, ], stop: None, initial: None, code: CodeBlock { start: 32, code: [ ForLoop { iter: "j", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "sh", ), ], line: 93, }, ], step: None, code: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "arr", ), Symbol( "[", ), Expr( [ Symbol( "1", ), Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "sa", ), ], line: 94, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 94, }, ], ), Symbol( "]", ), ], line: 94, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'k%x=%d,'", ), ], [ Ident { expr: [ Symbol( "j", ), ], line: 94, }, ], [ Ident { expr: [ Symbol( "j", ), ], line: 94, }, ], ], ), ], line: 94, }, ], ], line: 94, column: 19, }, ], end: 27, }, line: 95, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "arr", ), Symbol( "[", ), Expr( [ Symbol( "1", ), Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "sa", ), ], line: 96, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "sh", ), ], line: 96, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 95, }, ], values: [ [ Symbol( "\"}\"", ), ], ], line: 97, column: 0, }, Variable { names: [ ( "prog", false, ), ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "arr", ), ], line: 97, }, ], ], ), ], line: 97, }, ], ], line: 98, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "prog", ), ], line: 98, }, ], ], ), ], line: 98, }, ], ], ), ], line: 98, }, ], ], line: 98, column: 10, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "\"stop\"", ), ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 99, }, IfStatement { condition: [ Ident { expr: [ Symbol( "sa", ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "sh", ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 74, code: [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "alloccount", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 103, }, ], end: 82, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 82, code: [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "alloccount", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 105, }, ], end: 90, }, next: None, line: 106, column: 1, }, ), line: 106, column: 1, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 107, }, ], ], line: 107, column: 6, }, Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "alloccount", ), Call( [], ), ], line: 107, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "\"restart\"", ), ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 110, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "sa", ), ], line: 110, }, ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 111, }, ], [ Ident { expr: [ Symbol( "sa", ), ], line: 111, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "sh", ), ], line: 111, }, ], ], ), ], line: 111, }, ], ], ), ], line: 110, }, ], end: 157, }, line: 112, column: 1, }, ], end: 338, }, line: 113, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 117, column: 5, }, ], ], line: 118, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "sizes", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "sizes", ), ], line: 118, }, ], ), Symbol( "]", ), ], line: 118, }, ], step: None, code: CodeBlock { start: 354, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 118, }, ], ), Symbol( "]", ), ], line: 118, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 118, }, ], ], line: 118, column: 6, }, ], end: 361, }, line: 118, column: 18, }, ForFuncLoop { iters: [ "k", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "sizes", ), ], line: 119, }, ], ], ), ], line: 119, }, ], stop: None, initial: None, code: CodeBlock { start: 369, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 120, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 120, }, ], ], ), ], line: 120, }, ], ), ], line: 120, column: 15, }, ], ], line: 120, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 121, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 121, }, ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 122, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 122, }, ], [ Symbol( "0", ), ], ], ), ], line: 121, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 122, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 123, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 123, }, ], ], ), ], line: 123, }, ], ), ], line: 123, column: 20, }, ], ], line: 123, column: 20, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 124, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 124, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], [ Symbol( "0", ), ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 125, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 125, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], ], ), ], line: 124, }, ], end: 439, }, line: 126, column: 1, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "130", ), ], ], line: 131, column: 0, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 131, column: 5, }, ], ], line: 131, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 131, }, ], values: [ [ Symbol( "1", ), ], ], line: 131, column: 13, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 131, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 131, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 131, }, ], values: [ [ Table { data: [], line: 132, column: 4, }, ], ], line: 132, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 132, }, ], values: [ [ Symbol( "1", ), ], ], line: 132, column: 12, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 132, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 132, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 132, }, ], values: [ [ Symbol( "1", ), ], ], line: 132, column: 28, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 132, }, ], [ Symbol( "0", ), ], [ Symbol( "2", ), ], ], ), ], line: 132, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 132, }, ], values: [ [ Table { data: [], line: 133, column: 4, }, ], ], line: 133, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 133, }, ], values: [ [ Symbol( "1", ), ], ], line: 133, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 133, }, ], values: [ [ Symbol( "1", ), ], ], line: 133, column: 19, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 133, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 133, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 133, }, ], values: [ [ Table { data: [], line: 134, column: 4, }, ], ], line: 135, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 135, }, ], step: None, code: CodeBlock { start: 538, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 136, }, ], ), Symbol( "]", ), ], line: 136, }, ], values: [ [ Symbol( "1", ), ], ], line: 136, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 137, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 137, }, ], ], ), ], line: 136, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 138, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 138, }, ], ], ), ], line: 138, }, ], [ Symbol( "0", ), ], ], ), ], line: 137, }, ], end: 563, }, line: 139, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 139, }, ], values: [ [ Table { data: [], line: 141, column: 4, }, ], ], line: 142, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 142, }, ], step: None, code: CodeBlock { start: 574, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "'a'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 143, }, ], ), Symbol( "]", ), ], line: 143, }, ], values: [ [ Symbol( "1", ), ], ], line: 143, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 144, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 145, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 145, }, ], ], ), ], line: 145, }, ], ], ), ], line: 144, }, ], end: 601, }, line: 146, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 146, }, ], values: [ [ Table { data: [], line: 148, column: 4, }, ], ], line: 149, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "16", ), ], step: None, code: CodeBlock { start: 612, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 149, }, ], ), Symbol( "]", ), ], line: 149, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 149, }, ], ], line: 149, column: 6, }, ], end: 619, }, line: 149, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 150, }, ], [ Symbol( "16", ), ], [ Symbol( "0", ), ], ], ), ], line: 149, }, DoBlock( CodeBlock { start: 628, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "11", ), ], step: None, code: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 152, }, ], ), Symbol( "]", ), ], line: 152, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 152, }, ], ], line: 152, column: 6, }, ], end: 14, }, line: 152, column: 14, }, ForLoop { iter: "i", start: [ Symbol( "30", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 21, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 153, }, ], ), Symbol( "]", ), ], line: 153, }, ], values: [ [ Symbol( "true", ), ], ], line: 153, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 153, }, ], ), Symbol( "]", ), ], line: 153, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 153, }, ], ], line: 153, column: 13, }, ], end: 35, }, line: 153, column: 21, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 154, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 153, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10", ), ], ), Symbol( "]", ), ], line: 154, }, ], values: [ [ Symbol( "1", ), ], ], line: 156, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "30", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 56, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 156, }, ], ), Symbol( "]", ), ], line: 156, }, ], values: [ [ Symbol( "true", ), ], ], line: 156, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 156, }, ], ), Symbol( "]", ), ], line: 156, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 156, }, ], ], line: 156, column: 13, }, ], end: 70, }, line: 156, column: 21, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 157, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 156, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "14", ), ], step: None, code: CodeBlock { start: 85, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 158, }, ], ), Symbol( "]", ), ], line: 158, }, ], values: [ [ Symbol( "true", ), ], ], line: 158, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 158, }, ], ), Symbol( "]", ), ], line: 158, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 158, }, ], ], line: 158, column: 13, }, ], end: 99, }, line: 158, column: 21, }, ForLoop { iter: "i", start: [ Symbol( "18", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 106, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 159, }, ], ), Symbol( "]", ), ], line: 159, }, ], values: [ [ Symbol( "true", ), ], ], line: 159, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 159, }, ], ), Symbol( "]", ), ], line: 159, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 159, }, ], ], line: 159, column: 13, }, ], end: 120, }, line: 159, column: 21, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 160, }, ], [ Symbol( "0", ), ], [ Symbol( "4", ), ], ], ), ], line: 159, }, ], end: 757, }, ), ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 164, }, ], step: None, code: CodeBlock { start: 764, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 165, column: 5, }, ], ], line: 166, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "i", ), ], line: 166, }, ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 15, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 166, }, ], ), Symbol( "]", ), ], line: 166, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 166, }, ], ], line: 166, column: 6, }, ], end: 22, }, line: 166, column: 17, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 167, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 167, }, ], ], ), ], line: 167, }, ], [ Symbol( "0", ), ], ], ), ], line: 166, }, ], end: 798, }, line: 168, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "lim", ), ], line: 168, }, ], values: [ [ Symbol( "35", ), ], ], line: 172, column: 0, }, Function { local: false, name: [ Symbol( "foo", ), ], args: [ "n", "...", ], body: CodeBlock { start: 808, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 173, column: 6, }, ], ], line: 173, column: 6, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 174, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 174, }, ], [ Symbol( "0", ), ], ], ), ], line: 173, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Symbol( "...", ), ], ], ), ], line: 175, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 175, }, ], ], ), ], line: 174, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 176, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 175, }, ], values: [ [ Symbol( "true", ), ], ], line: 176, column: 8, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 177, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 177, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 177, }, ], [ Symbol( "0", ), ], ], ), ], line: 176, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( ".", ), Symbol( "x", ), ], line: 177, }, ], values: [ [ Symbol( "true", ), ], ], line: 178, column: 5, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 179, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 179, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 179, }, ], [ Symbol( "1", ), ], ], ), ], line: 178, }, ], end: 873, }, line: 180, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 181, column: 5, }, ], ], line: 182, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 182, }, ], step: None, code: CodeBlock { start: 885, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 182, }, ], ), Symbol( "]", ), ], line: 182, }, ], values: [ [ Symbol( "true", ), ], ], line: 182, column: 7, }, Ident { expr: [ Symbol( "foo", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 182, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 182, }, ], ], ), ], line: 182, }, ], ], ), ], line: 182, }, ], end: 904, }, line: 182, column: 26, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 186, column: 5, }, ], ], line: 187, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "64", ), ], step: None, code: CodeBlock { start: 916, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 187, }, ], ), Symbol( "]", ), ], line: 187, }, ], values: [ [ Symbol( "true", ), ], ], line: 187, column: 6, }, ], end: 923, }, line: 187, column: 14, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "64", ), ], step: None, code: CodeBlock { start: 930, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 188, }, ], ), Symbol( "]", ), ], line: 188, }, ], values: [ [ Symbol( "nil", ), ], ], line: 188, column: 6, }, ], end: 937, }, line: 188, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 189, }, ], ], ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "64", ), ], ], ), ], line: 188, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "32", ), ], ), Symbol( "]", ), ], line: 189, }, ], values: [ [ Symbol( "true", ), ], ], line: 190, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "48", ), ], ), Symbol( "]", ), ], line: 190, }, ], values: [ [ Symbol( "true", ), ], ], line: 190, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "51", ), ], ), Symbol( "]", ), ], line: 190, }, ], values: [ [ Symbol( "true", ), ], ], line: 191, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 192, }, Operator( ( "==", true, ), ), Symbol( "48", ), ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "4", ), ], [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 193, }, ], ], ), ], line: 193, }, ], ], ), ], line: 193, }, Operator( ( "==", true, ), ), Symbol( "48", ), ], ], ), ], line: 192, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "50", ), ], ), Symbol( "]", ), ], line: 193, }, ], values: [ [ Symbol( "true", ), ], ], line: 194, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "4", ), ], [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 195, }, ], ], ), ], line: 195, }, ], ], ), ], line: 195, }, Operator( ( "==", true, ), ), Symbol( "50", ), ], ], ), ], line: 194, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 197, }, Operator( ( "==", true, ), ), Symbol( "51", ), ], ], ), ], line: 195, }, ], end: 1320, }, next: None, line: 199, column: 1, }, ), line: 199, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 203, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 199, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ], line: 204, column: 6, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 205, column: 8, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 204, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 206, column: 10, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 207, column: 12, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 208, column: 14, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 207, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 208, }, Variable { names: [ ( "nofind", false, ), ], values: [ [ Table { data: [], line: 212, column: 5, }, ], ], line: 212, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 212, }, Ident { expr: [ Symbol( "b", ), ], line: 214, }, Ident { expr: [ Symbol( "c", ), ], line: 214, }, ], values: [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "3", ), ], ], line: 214, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 214, }, Ident { expr: [ Symbol( "b", ), ], line: 215, }, Ident { expr: [ Symbol( "c", ), ], line: 215, }, ], values: [ [ Symbol( "nil", ), ], ], line: 215, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 219, column: 5, }, ], ], ), ], line: 219, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 219, column: 9, }, ], ], ), ], line: 219, }, ], ], ), ], line: 215, }, Function { local: true, name: [ Symbol( "find", ), ], args: [ "name", ], body: CodeBlock { start: 1434, code: [ Variable { names: [ ( "n", false, ), ( "v", false, ), ], values: [], line: 222, column: 4, }, WhileLoop { condition: [ Symbol( "1", ), ], body: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 224, }, Ident { expr: [ Symbol( "v", ), ], line: 224, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 224, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 224, }, ], ], ), ], line: 224, }, ], ], line: 225, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "n", ), ], line: 225, }, ], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 225, }, ], ], ), ), ], end: 17, }, next: None, line: 225, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 226, }, ], ), Symbol( "]", ), ], line: 226, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 226, }, ], ], ), ], line: 225, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 227, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 227, }, ], body: CodeBlock { start: 31, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 227, }, ], ], ), ), ], end: 34, }, next: None, line: 227, column: 8, }, ], end: 42, }, line: 228, column: 1, }, ], end: 1477, }, line: 229, column: 1, }, Function { local: true, name: [ Symbol( "find1", ), ], args: [ "name", ], body: CodeBlock { start: 1483, code: [ ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 232, }, ], ], ), ], line: 232, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 233, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 233, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 233, }, ], ], ), ), ], end: 8, }, next: None, line: 233, column: 8, }, ], end: 19, }, line: 234, column: 1, }, Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 1505, }, line: 236, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 239, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 239, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 239, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 239, }, ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"print\"", ), ], ), Symbol( "]", ), ], line: 240, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 240, }, ], ], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), ], line: 241, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"assert\"", ), ], ], ), ], line: 241, }, ], ], ), ], line: 240, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 242, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 242, }, ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 243, }, ], ], ), ], line: 242, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"ret\"", ), Operator( ( "..", true, ), ), Symbol( "\"urn\"", ), ], ), Symbol( "]", ), ], line: 243, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 244, }, ], ], line: 244, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 245, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 245, }, ], ], ), ], line: 244, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"xxx\"", ), ], ), Symbol( "]", ), ], line: 245, }, ], values: [ [ Symbol( "1", ), ], ], line: 246, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "xxx", ), ], line: 247, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"xxx\"", ), ], ], ), ], line: 247, }, ], ], ), ], line: 246, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid key\"", ), ], [ Ident { expr: [ Symbol( "next", ), ], line: 250, }, ], [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ], line: 250, column: 11, }, ], [ Symbol( "3", ), ], ], ), ], line: 247, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"bad argument\"", ), ], [ Ident { expr: [ Symbol( "pairs", ), ], line: 253, }, ], ], ), ], line: 250, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"bad argument\"", ), ], [ Ident { expr: [ Symbol( "ipairs", ), ], line: 254, }, ], ], ), ], line: 253, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 254, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 256, }, ], values: [ [ Table { data: [], line: 258, column: 4, }, ], ], line: 259, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 1632, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 260, }, ], [ Symbol( "10", ), ], ], ), ], line: 260, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "'x'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 261, }, ], ), Symbol( "]", ), ], line: 261, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 261, }, ], ], line: 261, column: 8, }, ], end: 21, }, next: None, line: 262, column: 1, }, ], end: 1654, }, line: 263, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 263, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 265, column: 7, }, ], ], line: 266, column: 0, }, ForFuncLoop { iters: [ "i", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 266, }, ], ], ), ], line: 266, }, ], stop: None, initial: None, code: CodeBlock { start: 1671, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 267, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 267, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 267, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 268, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 268, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 268, }, ], ), Symbol( "]", ), ], line: 268, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 268, }, ], ], ), ], line: 267, }, ], end: 1694, }, line: 269, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 270, }, Operator( ( "==", true, ), ), Symbol( "9000", ), ], ], ), ], line: 269, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 270, }, ], values: [ [ Symbol( "nil", ), ], ], line: 273, column: 0, }, DoBlock( CodeBlock { start: 1706, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 274, column: 5, }, ], ], line: 275, column: 0, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 275, }, ], ], ), ], line: 275, }, ], stop: None, initial: None, code: CodeBlock { start: 15, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 275, }, ], ), Symbol( "]", ), ], line: 275, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 275, }, ], ], line: 275, column: 6, }, ], end: 22, }, line: 275, column: 17, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 276, }, ], ], ), ], line: 276, }, ], stop: None, initial: None, code: CodeBlock { start: 32, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loaded", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 277, }, ], ), Symbol( "]", ), ], line: 277, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 277, }, ], ], ), ], line: 277, }, Operator( ( "~=", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 278, }, ], [ Symbol( "\"^[%u_]\"", ), ], ], ), ], line: 278, }, ], body: CodeBlock { start: 26, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 279, }, ], ), Symbol( "]", ), ], line: 279, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 279, }, ], ], line: 279, column: 6, }, ], end: 33, }, next: None, line: 280, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 280, }, ], end: 69, }, line: 282, column: 1, }, ], end: 1776, }, ), Function { local: true, name: [ Symbol( "checknext", ), ], args: [ "a", ], body: CodeBlock { start: 1782, code: [ Variable { names: [ ( "b", false, ), ], values: [ [ Table { data: [], line: 289, column: 5, }, ], ], line: 290, column: 0, }, DoBlock( CodeBlock { start: 6, code: [ Variable { names: [ ( "k", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 290, }, ], ], ), ], line: 290, }, ], ], line: 290, column: 10, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "k", ), ], line: 290, }, ], body: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 290, }, ], ), Symbol( "]", ), ], line: 290, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 290, }, ], ], line: 290, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "k", ), ], line: 290, }, Ident { expr: [ Symbol( "v", ), ], line: 290, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 290, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 290, }, ], ], ), ], line: 290, }, ], ], line: 290, column: 17, }, ], end: 31, }, line: 290, column: 31, }, ], end: 38, }, ), ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 291, }, ], ], ), ], line: 291, }, ], stop: None, initial: None, code: CodeBlock { start: 48, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 291, }, ], ), Symbol( "]", ), ], line: 291, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 291, }, ], ], ), ], line: 291, }, ], end: 58, }, line: 291, column: 20, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 292, }, ], ], ), ], line: 292, }, ], stop: None, initial: None, code: CodeBlock { start: 68, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 292, }, ], ), Symbol( "]", ), ], line: 292, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 292, }, ], ], ), ], line: 292, }, ], end: 78, }, line: 292, column: 20, }, ], end: 1861, }, line: 293, column: 1, }, Ident { expr: [ Symbol( "checknext", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( Some( [ Symbol( "x", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "2", ), ], ), ( Some( [ Symbol( "z", ), ], ), [ Symbol( "3", ), ], ), ], line: 295, column: 16, }, ], ], ), ], line: 293, }, Ident { expr: [ Symbol( "checknext", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( Some( [ Symbol( "x", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "2", ), ], ), ( Some( [ Symbol( "z", ), ], ), [ Symbol( "3", ), ], ), ], line: 296, column: 18, }, ], ], ), ], line: 295, }, Ident { expr: [ Symbol( "checknext", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( Some( [ Symbol( "x", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "2", ), ], ), ( Some( [ Symbol( "z", ), ], ), [ Symbol( "3", ), ], ), ], line: 297, column: 20, }, ], ], ), ], line: 296, }, Ident { expr: [ Symbol( "checknext", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( Some( [ Symbol( "x", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "2", ), ], ), ( Some( [ Symbol( "z", ), ], ), [ Symbol( "3", ), ], ), ], line: 298, column: 22, }, ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "checknext", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "5", ), ], ), ( Some( [ Symbol( "x", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "2", ), ], ), ( Some( [ Symbol( "z", ), ], ), [ Symbol( "3", ), ], ), ], line: 299, column: 24, }, ], ], ), ], line: 298, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 301, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 299, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "2", ), ], ), ], line: 302, column: 11, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 301, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 1990, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 304, column: 5, }, ], ], line: 305, column: 0, }, ForLoop { iter: "j", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "i", ), ], line: 305, }, ], step: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "j", ), ], line: 305, }, ], ), Symbol( "]", ), ], line: 305, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 305, }, ], ], line: 305, column: 6, }, ], end: 19, }, line: 305, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 306, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 306, }, ], ], ), ], line: 305, }, ], end: 2017, }, line: 307, column: 1, }, Function { local: false, name: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), ], args: [ "t", ], body: CodeBlock { start: 2024, code: [ Variable { names: [ ( "max", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 312, column: 0, }, ForFuncLoop { iters: [ "k", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 312, }, ], ], ), ], line: 312, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "max", ), ], line: 313, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 313, }, ], ], ), ], line: 313, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), ], ), Ident { expr: [], line: 313, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "max", ), ], line: 313, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 313, }, ], ], ), ], line: 313, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "max", ), ], line: 313, }, ], ], line: 313, column: 21, }, ], end: 34, }, line: 314, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "max", ), ], line: 315, }, ], ], ), ), ], end: 2061, }, line: 316, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [], line: 318, column: 7, }, ], ], ), ], line: 318, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 316, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "\"1000\"", ), ], ), [ Symbol( "true", ), ], ), ], line: 319, column: 12, }, ], ], ), ], line: 319, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "\"1000\"", ), ], ), [ Symbol( "true", ), ], ), ( Some( [ Symbol( "24.5", ), ], ), [ Symbol( "3", ), ], ), ], line: 320, column: 18, }, ], ], ), ], line: 320, }, Operator( ( "==", true, ), ), Symbol( "24.5", ), ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "1000", ), ], ), [ Symbol( "true", ), ], ), ], line: 321, column: 12, }, ], ], ), ], line: 321, }, Operator( ( "==", true, ), ), Symbol( "1000", ), ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "10", ), ], ), [ Symbol( "true", ), ], ), ( Some( [ Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 322, }, ], ), [ Ident { expr: [ Symbol( "print", ), ], line: 322, }, ], ), ], line: 322, column: 22, }, ], ], ), ], line: 322, }, Operator( ( "==", true, ), ), Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 322, }, ], ], ), ], line: 321, }, Alter { names: [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), ], line: 322, }, ], values: [ [ Symbol( "nil", ), ], ], line: 324, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 324, }, ], values: [ [ Table { data: [], line: 327, column: 4, }, ], ], line: 328, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 2167, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 328, }, ], ), Symbol( "]", ), ], line: 328, }, ], values: [ [ Symbol( "true", ), ], ], line: 328, column: 8, }, ], end: 2176, }, line: 328, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 329, }, ], ), Symbol( "]", ), ], line: 329, }, ], ], ), ], line: 328, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 329, }, DoBlock( CodeBlock { start: 2189, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "1", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "1.1", ), ], ), [ Symbol( "2", ), ], ), ( Some( [ Symbol( "'x'", ), ], ), [ Symbol( "3", ), ], ), ( Some( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'x'", ), ], [ Symbol( "1000", ), ], ], ), ], line: 339, }, ], ), [ Symbol( "4", ), ], ), ( Some( [ Ident { expr: [ Symbol( "print", ), ], line: 340, }, ], ), [ Symbol( "5", ), ], ), ( Some( [ Ident { expr: [ Symbol( "checkerror", ), ], line: 341, }, ], ), [ Symbol( "6", ), ], ), ( Some( [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "running", ), Call( [], ), ], line: 342, }, ], ), [ Symbol( "7", ), ], ), ( Some( [ Symbol( "true", ), ], ), [ Symbol( "8", ), ], ), ( Some( [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 344, }, ], ), [ Symbol( "9", ), ], ), ( Some( [ Table { data: [], line: 345, column: 3, }, ], ), [ Symbol( "10", ), ], ), ], line: 346, column: 1, }, ], ], line: 347, column: 0, }, Variable { names: [ ( "b", false, ), ], values: [ [ Table { data: [], line: 347, column: 5, }, ], ], line: 347, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 92, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 347, }, ], ), Symbol( "]", ), ], line: 347, }, ], values: [ [ Symbol( "true", ), ], ], line: 347, column: 6, }, ], end: 99, }, line: 347, column: 20, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 348, }, ], ], ), ], line: 348, }, ], stop: None, initial: None, code: CodeBlock { start: 109, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "v", ), ], line: 349, }, ], ), Symbol( "]", ), ], line: 349, }, ], ], ), ], line: 349, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "v", ), ], line: 349, }, ], ), Symbol( "]", ), ], line: 349, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 349, }, ], ], line: 349, column: 14, }, ], end: 124, }, line: 350, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 351, }, ], ], ), ], line: 351, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 350, }, ], end: 2323, }, ), Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( Some( [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 356, column: 8, }, ], ), [ Symbol( "1", ), ], ), ( Some( [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ], line: 356, column: 16, }, ], ), [ Symbol( "2", ), ], ), ( Some( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"x \"", ), ], [ Symbol( "4", ), ], ], ), ], line: 356, }, ], ), [ Symbol( "3", ), ], ), ( Some( [ Symbol( "100.3", ), ], ), [ Symbol( "4", ), ], ), ( Some( [ Symbol( "4", ), ], ), [ Symbol( "5", ), ], ), ], line: 357, column: 12, }, ], ], line: 359, column: 0, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 360, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 360, }, ], ], ), ], line: 360, }, ], stop: None, initial: None, code: CodeBlock { start: 2382, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 361, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 361, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 361, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 362, }, ], ), Symbol( "]", ), ], line: 362, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 362, }, ], ], ), ], line: 361, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 363, }, ], ), Symbol( "]", ), ], line: 362, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 363, }, ], ], line: 363, column: 6, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 363, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 365, }, ], ), Symbol( "]", ), ], line: 365, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 365, }, ], ], ), ], line: 364, }, ], end: 2415, }, line: 366, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 367, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 366, }, DoBlock( CodeBlock { start: 2422, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing next x GC of deleted keys\"", ), ], ], ), ], line: 371, }, Variable { names: [ ( "co", false, ), ], values: [ [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "wrap", ), Call( [ [ Lambda { args: [ "t", ], body: CodeBlock { start: 15, code: [ ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 374, }, ], ], ), ], line: 374, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ Variable { names: [ ( "k1", false, ), ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 375, }, ], ], ), ], line: 375, }, ], ], line: 375, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 376, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k1", ), ], line: 376, }, ], ], ), ], line: 375, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 377, }, ], ), Symbol( "]", ), ], line: 376, }, ], values: [ [ Symbol( "nil", ), ], ], line: 378, column: 0, }, Variable { names: [ ( "expected", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 378, }, ], ], ), ], line: 378, }, Operator( ( "==", true, ), ), Symbol( "\"table\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "k", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 378, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 379, }, ], ], ), ], line: 378, }, Operator( ( "==", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "k", ), Call( [], ), ], line: 379, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 380, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 379, }, ], ), ], ], line: 380, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "expected", ), ], line: 381, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 381, }, ], ], ), ], line: 380, }, Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "yield", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 382, }, ], ], ), ], line: 381, }, ], end: 80, }, line: 383, column: 1, }, ], end: 96, }, line: 384, column: 1, }, ], ], ), ], line: 373, }, ], ], line: 385, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 385, column: 5, }, ], ], line: 385, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 386, column: 5, }, ], ), Symbol( "]", ), ], line: 385, }, ], values: [ [ Symbol( "1", ), ], ], line: 386, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ], line: 387, column: 5, }, ], ), Symbol( "]", ), ], line: 386, }, ], values: [ [ Symbol( "2", ), ], ], line: 387, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "50", ), ], ], ), ], line: 388, }, ], ), Symbol( "]", ), ], line: 387, }, ], values: [ [ Symbol( "\"a\"", ), ], ], line: 388, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "50", ), ], ], ), ], line: 389, }, ], ), Symbol( "]", ), ], line: 388, }, ], values: [ [ Symbol( "\"b\"", ), ], ], line: 389, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Table { data: [ ( None, [ Symbol( "3", ), ], ), ], line: 390, column: 5, }, ], ), Symbol( "]", ), ], line: 389, }, ], values: [ [ Symbol( "3", ), ], ], line: 390, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"c\"", ), ], [ Symbol( "10", ), ], ], ), ], line: 391, }, ], ), Symbol( "]", ), ], line: 390, }, ], values: [ [ Symbol( "\"c\"", ), ], ], line: 391, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Lambda { args: [], body: CodeBlock { start: 170, code: [ Return( Some( [ [ Symbol( "10", ), ], ], ), ), ], end: 173, }, line: 392, column: 8, }, ], ), Symbol( "]", ), ], line: 391, }, ], values: [ [ Symbol( "10", ), ], ], line: 393, column: 0, }, Variable { names: [ ( "count", false, ), ], values: [ [ Symbol( "7", ), ], ], line: 394, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "co", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 394, }, ], ], ), ], line: 394, }, ], body: CodeBlock { start: 186, code: [ Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "\"collect\"", ), ], ], ), ], line: 395, }, Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 395, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 396, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 396, column: 5, }, ], end: 196, }, line: 397, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "count", ), ], line: 398, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 398, }, ], ], ), ], line: 398, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 397, }, ], end: 2632, }, ), Function { local: true, name: [ Symbol( "test", ), ], args: [ "a", ], body: CodeBlock { start: 2638, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 403, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 403, }, ], [ Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 403, }, ], ], ), ], line: 403, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 404, }, ], [ Symbol( "10", ), ], ], ), ], line: 403, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 404, }, ], [ Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 404, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 405, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 404, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 405, }, ], [ Symbol( "40", ), ], ], ), ], line: 405, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 406, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 406, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Symbol( "50", ), ], ], ), ], line: 405, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 407, }, ], [ Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 406, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 408, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 408, }, ], ], ), ], line: 407, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "\"2\"", ), ], ), Symbol( "]", ), ], line: 409, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 409, }, ], ], ), ], line: 408, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 410, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 410, }, ], [ Symbol( "0", ), ], [ Symbol( "20", ), ], ], ), ], line: 410, }, ], ], ), ], line: 409, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 411, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 411, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 411, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 411, }, ], ], ), ], line: 410, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 412, }, ], [ Symbol( "1", ), ], ], ), ], line: 412, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 411, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 413, }, ], [ Symbol( "1", ), ], ], ), ], line: 413, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 412, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 414, }, ], [ Symbol( "1", ), ], ], ), ], line: 414, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 413, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 415, }, ], [ Symbol( "1", ), ], ], ), ], line: 415, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 414, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 416, }, ], [ Symbol( "1", ), ], ], ), ], line: 416, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 415, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 417, }, ], [ Symbol( "1", ), ], ], ), ], line: 417, }, Operator( ( "==", true, ), ), Symbol( "50", ), ], ], ), ], line: 416, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 418, }, ], [ Symbol( "1", ), ], ], ), ], line: 418, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 417, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 419, }, ], ], ), ], line: 419, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 418, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 420, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 420, }, ], ], ), ], line: 420, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 419, }, ], end: 2894, }, line: 421, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 421, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 423, column: 14, }, ], ], line: 423, column: 14, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 424, }, ], ], ), ], line: 423, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 425, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 425, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 424, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 425, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 427, column: 10, }, ], ], line: 427, column: 11, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 428, }, ], ], ), ], line: 427, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 429, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 429, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 429, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 428, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 429, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 431, column: 10, }, ], ], line: 431, column: 10, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 432, }, ], ], ), ], line: 431, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 433, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 433, }, ], ], ), ], line: 433, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 433, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 432, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 433, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "0", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 435, column: 9, }, ], ], line: 435, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 436, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 436, }, ], ], ), ], line: 436, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 436, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 436, }, ], ], ), ], line: 435, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 438, }, ], [ Symbol( "1", ), ], [ Symbol( "10", ), ], ], ), ], line: 436, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 438, }, ], [ Symbol( "1", ), ], [ Symbol( "20", ), ], ], ), ], line: 438, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 438, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 438, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 439, }, ], ], ), ], line: 439, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 438, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 440, }, ], ], ), ], line: 440, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 439, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 441, }, ], ], ), ], line: 441, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 440, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 442, }, ], ], ), ], line: 442, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 441, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 442, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "'c'", ), ], ), ( None, [ Symbol( "'d'", ), ], ), ], line: 444, column: 7, }, ], ], line: 444, column: 7, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 445, }, ], [ Symbol( "3", ), ], [ Symbol( "'a'", ), ], ], ), ], line: 444, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 446, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 445, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 447, }, ], [ Symbol( "1", ), ], ], ), ], line: 447, }, Operator( ( "==", true, ), ), Symbol( "'c'", ), ], ], ), ], line: 446, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 448, }, ], [ Symbol( "1", ), ], ], ), ], line: 448, }, Operator( ( "==", true, ), ), Symbol( "'d'", ), ], ], ), ], line: 447, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 449, }, ], [ Symbol( "1", ), ], ], ), ], line: 449, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 448, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 450, }, ], [ Symbol( "1", ), ], ], ), ], line: 450, }, Operator( ( "==", true, ), ), Symbol( "'b'", ), ], ], ), ], line: 449, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 451, }, ], [ Symbol( "1", ), ], ], ), ], line: 451, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 450, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 452, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 452, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 451, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 452, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "40", ), ], ), ], line: 454, column: 11, }, ], ], line: 454, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 455, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 455, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 455, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 454, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 456, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 456, }, ], [ Symbol( "0", ), ], ], ), ], line: 456, }, ], ], ), ], line: 455, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 457, }, ], ), Symbol( "]", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 456, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 458, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 458, }, ], ], ), ], line: 458, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 457, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 459, }, ], ), Symbol( "]", ), ], line: 459, }, Operator( ( "==", true, ), ), Symbol( "30", ), ], ], ), ], line: 458, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 460, }, ], [ Symbol( "2", ), ], ], ), ], line: 460, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 459, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 461, }, ], ), Symbol( "]", ), ], line: 461, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 461, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 460, }, DoBlock( CodeBlock { start: 3319, code: [ Function { local: true, name: [ Symbol( "test", ), ], args: [ "proxy", "t", ], body: CodeBlock { start: 8, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 7, code: [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 466, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 466, }, ], ], ), ], line: 466, }, ], end: 18, }, line: 467, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "proxy", ), ], line: 468, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 468, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "proxy", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 468, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 468, }, ], ], ), ], line: 467, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 44, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 470, }, ], ), Symbol( "]", ), ], line: 470, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 470, }, ], ], ), ], line: 470, }, ], end: 56, }, line: 471, column: 1, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 472, }, ], ], ), ], line: 471, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 69, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 474, }, ], ), Symbol( "]", ), ], line: 474, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 474, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "proxy", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 474, }, ], ), Symbol( "]", ), ], line: 474, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 474, }, ], ], ), ], line: 474, }, ], end: 86, }, line: 475, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 476, }, ], [ Symbol( "\",\"", ), ], ], ), ], line: 476, }, Operator( ( "==", true, ), ), Symbol( "\"1,2,3,4,5,6,7,8,9,10\"", ), ], ], ), ], line: 475, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "8", ), ], step: None, code: CodeBlock { start: 106, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 478, }, ], [ Symbol( "1", ), ], ], ), ], line: 478, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 478, }, ], ], ), ], line: 478, }, ], end: 120, }, line: 479, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "proxy", ), ], line: 480, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 480, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 479, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 481, }, ], ], ), ], line: 481, }, ], ], line: 481, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 482, }, Operator( ( "==", true, ), ), Symbol( "9", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 482, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 482, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 481, }, ], end: 168, }, line: 483, column: 1, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 486, column: 5, }, ], ], line: 487, column: 0, }, Variable { names: [ ( "proxy", false, ), ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 487, column: 7, }, ], [ Table { data: [ ( Some( [ Symbol( "__len", ), ], ), [ Lambda { args: [], body: CodeBlock { start: 187, code: [ Return( Some( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 488, }, ], ], ), ), ], end: 191, }, line: 488, column: 9, }, ], ), ( Some( [ Symbol( "__index", ), ], ), [ Ident { expr: [ Symbol( "t", ), ], line: 489, }, ], ), ( Some( [ Symbol( "__newindex", ), ], ), [ Ident { expr: [ Symbol( "t", ), ], line: 490, }, ], ), ], line: 491, column: 1, }, ], ], ), ], line: 487, }, ], ], line: 491, column: 2, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 492, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 492, }, ], ], ), ], line: 491, }, Variable { names: [ ( "count", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 495, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 495, }, ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 496, column: 6, }, ], [ Table { data: [ ( Some( [ Symbol( "__newindex", ), ], ), [ Lambda { args: [ "t", "k", "v", ], body: CodeBlock { start: 230, code: [ Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 497, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 497, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 497, column: 6, }, Ident { expr: [ Symbol( "rawset", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 497, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 497, }, ], [ Ident { expr: [ Symbol( "v", ), ], line: 497, }, ], ], ), ], line: 497, }, ], end: 245, }, line: 497, column: 25, }, ], ), ], line: 497, column: 26, }, ], ], ), ], line: 496, }, ], ], line: 497, column: 27, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 498, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 498, }, ], ], ), ], line: 497, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "count", ), ], line: 499, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 498, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 499, }, ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 502, column: 6, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "_", "k", ], body: CodeBlock { start: 275, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "k", ), ], line: 503, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ), ], end: 280, }, line: 503, column: 13, }, ], ), ( Some( [ Symbol( "__len", ), ], ), [ Lambda { args: [ "_", ], body: CodeBlock { start: 287, code: [ Return( Some( [ [ Symbol( "5", ), ], ], ), ), ], end: 290, }, line: 504, column: 9, }, ], ), ], line: 504, column: 10, }, ], ], ), ], line: 502, }, ], ], line: 504, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 505, }, ], [ Symbol( "\";\"", ), ], ], ), ], line: 505, }, Operator( ( "==", true, ), ), Symbol( "\"2;3;4;5;6\"", ), ], ], ), ], line: 504, }, ], end: 3625, }, ), DoBlock( CodeBlock { start: 3626, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 512, column: 7, }, ], [ Table { data: [ ( Some( [ Symbol( "__len", ), ], ), [ Lambda { args: [], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 513, }, ], ], ), ), ], end: 19, }, line: 513, column: 11, }, ], ), ], line: 513, column: 12, }, ], ], ), ], line: 512, }, ], ], line: 513, column: 13, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 514, }, ], [ Symbol( "20", ), ], ], ), ], line: 513, }, Variable { names: [ ( "k", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 515, }, ], ], ), ], line: 515, }, ], ], line: 515, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 516, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 516, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 516, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 515, }, ], end: 3677, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "T", ), ], line: 519, }, ], body: CodeBlock { start: 3681, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 520, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 520, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> testC not active: skipping tests for table library on non-tables <<<\\n'", ), ], ], ), ], line: 520, }, ], end: 3690, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 3690, code: [ Variable { names: [ ( "debug", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "'debug'", ), ], ], ), ], line: 523, }, ], ], line: 524, column: 0, }, Variable { names: [ ( "tab", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ], line: 524, column: 10, }, ], ], line: 525, column: 0, }, Variable { names: [ ( "mt", false, ), ], values: [ [ Table { data: [], line: 525, column: 5, }, ], ], line: 526, column: 0, }, Variable { names: [ ( "u", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "newuserdata", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 526, }, ], ], line: 526, column: 9, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 527, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 527, }, ], [ Symbol( "40", ), ], ], ), ], line: 526, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 528, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 528, }, ], ], ), ], line: 527, }, Ident { expr: [ Symbol( "debug", ), Symbol( ".", ), Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 529, }, ], [ Ident { expr: [ Symbol( "mt", ), ], line: 529, }, ], ], ), ], line: 528, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 530, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 530, }, ], [ Symbol( "40", ), ], ], ), ], line: 529, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 531, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 531, }, ], ], ), ], line: 530, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__index", ), ], line: 531, }, ], values: [ [ Ident { expr: [ Symbol( "tab", ), ], line: 532, }, ], ], line: 532, column: 5, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 533, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 533, }, ], [ Symbol( "40", ), ], ], ), ], line: 532, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 534, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 534, }, ], ], ), ], line: 533, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__newindex", ), ], line: 534, }, ], values: [ [ Ident { expr: [ Symbol( "tab", ), ], line: 535, }, ], ], line: 535, column: 5, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 536, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 536, }, ], [ Symbol( "40", ), ], ], ), ], line: 535, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 537, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 537, }, ], ], ), ], line: 536, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__len", ), ], line: 537, }, ], values: [ [ Lambda { args: [], body: CodeBlock { start: 142, code: [ Return( Some( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab", ), ], line: 538, }, ], ], ), ), ], end: 146, }, line: 538, column: 11, }, ], ], line: 538, column: 11, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 539, }, ], [ Symbol( "40", ), ], ], ), ], line: 538, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "u", ), ], line: 540, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab", ), ], line: 540, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "u", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 540, }, Operator( ( "==", true, ), ), Symbol( "40", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 540, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 539, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 541, }, ], ], ), ], line: 541, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 540, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 542, }, ], [ Symbol( "1", ), ], [ Symbol( "50", ), ], ], ), ], line: 541, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "u", ), ], line: 543, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab", ), ], line: 543, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "u", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 543, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 543, }, Operator( ( "==", true, ), ), Symbol( "50", ), ], ], ), ], line: 542, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__newindex", ), ], line: 543, }, ], values: [ [ Symbol( "nil", ), ], ], line: 545, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__len", ), ], line: 545, }, ], values: [ [ Symbol( "nil", ), ], ], line: 547, column: 0, }, Variable { names: [ ( "tab2", false, ), ], values: [ [ Table { data: [], line: 547, column: 5, }, ], ], line: 548, column: 0, }, Variable { names: [ ( "u2", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "newuserdata", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 548, }, ], ], line: 548, column: 9, }, Ident { expr: [ Symbol( "debug", ), Symbol( ".", ), Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "u2", ), ], line: 549, }, ], [ Table { data: [ ( Some( [ Symbol( "__newindex", ), ], ), [ Lambda { args: [ "_", "k", "v", ], body: CodeBlock { start: 268, code: [ Alter { names: [ Ident { expr: [ Symbol( "tab2", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 549, }, ], ), Symbol( "]", ), ], line: 549, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 549, }, ], ], line: 549, column: 6, }, ], end: 275, }, line: 549, column: 24, }, ], ), ], line: 549, column: 25, }, ], ], ), ], line: 548, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "move", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 550, }, ], [ Symbol( "1", ), ], [ Symbol( "4", ), ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "u2", ), ], line: 550, }, ], ], ), ], line: 549, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab2", ), ], line: 551, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab2", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 551, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 551, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab2", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 551, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 551, }, ], ], ), ], line: 550, }, ], end: 4009, }, next: None, line: 553, column: 1, }, ), line: 553, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 553, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 555, }, ], values: [ [ Table { data: [], line: 557, column: 4, }, ], ], line: 558, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 4024, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 559, }, ], ), Symbol( "]", ), ], line: 559, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 559, }, ], ], line: 559, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 559, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 559, }, ], values: [ [ Ident { expr: [ Symbol( "undef", ), ], line: 559, }, ], ], line: 559, column: 15, }, ], end: 4040, }, line: 560, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 561, }, ], [ Symbol( "nil", ), ], ], ), ], line: 561, }, Operator( ( "==", true, ), ), Symbol( "1000", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 561, }, ], [ Symbol( "1000", ), ], ], ), ], line: 561, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 560, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 563, column: 6, }, ], ], ), ], line: 563, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 561, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 564, column: 6, }, ], [ Symbol( "nil", ), ], ], ), ], line: 564, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 563, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [], line: 566, column: 8, }, ], ], ), ], line: 566, }, ], stop: None, initial: None, code: CodeBlock { start: 4091, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "\"not here\"", ), ], ], ), ], line: 566, }, ], end: 4094, }, line: 566, column: 12, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0", ), ], step: None, code: CodeBlock { start: 4101, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 567, }, ], end: 4104, }, line: 567, column: 10, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 4114, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 568, }, ], end: 4117, }, line: 568, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 568, }, ], values: [ [ Symbol( "nil", ), ], ], line: 569, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: None, code: CodeBlock { start: 4128, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 569, }, ], ], ), ], line: 569, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 569, }, ], values: [ [ Symbol( "1", ), ], ], line: 569, column: 9, }, ], end: 4138, }, line: 569, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 569, }, ], ], ), ], line: 569, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 569, }, ], values: [ [ Symbol( "nil", ), ], ], line: 570, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 4157, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 570, }, ], ], ), ], line: 570, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 570, }, ], values: [ [ Symbol( "1", ), ], ], line: 570, column: 9, }, ], end: 4167, }, line: 570, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 570, }, ], ], ), ], line: 570, }, DoBlock( CodeBlock { start: 4173, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing floats in numeric for\"", ), ], ], ), ], line: 573, }, Variable { names: [ ( "a", false, ), ], values: [], line: 574, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 574, }, ], values: [ [ Symbol( "0", ), ], ], line: 576, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 19, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 576, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 576, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 576, column: 5, }, ], end: 25, }, line: 576, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 576, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 576, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 576, }, ], values: [ [ Symbol( "0", ), ], ], line: 577, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "10000", ), ], end: [ Symbol( "1e4", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 46, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 577, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 577, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 577, column: 5, }, ], end: 52, }, line: 577, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 577, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 577, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 577, }, ], values: [ [ Symbol( "0", ), ], ], line: 578, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 72, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 578, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 578, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 578, column: 5, }, ], end: 78, }, line: 578, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 578, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 578, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 578, }, ], values: [ [ Symbol( "0", ), ], ], line: 579, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "9999", ), ], end: [ Symbol( "1e4", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 99, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 579, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 579, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 579, column: 5, }, ], end: 105, }, line: 579, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 579, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 579, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 579, }, ], values: [ [ Symbol( "0", ), ], ], line: 580, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 126, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 580, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 580, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 580, column: 5, }, ], end: 132, }, line: 580, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 580, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 580, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 580, }, ], values: [ [ Symbol( "0", ), ], ], line: 583, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "0.999999999", ), ], step: Some( [ Symbol( "0.1", ), ], ), code: CodeBlock { start: 152, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 583, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 583, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 583, column: 5, }, ], end: 158, }, line: 583, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 583, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 583, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 583, }, ], values: [ [ Symbol( "0", ), ], ], line: 584, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1.0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 178, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 584, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 584, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 584, column: 5, }, ], end: 184, }, line: 584, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 584, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 584, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 584, }, ], values: [ [ Symbol( "0", ), ], ], line: 585, column: 4, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "1.5", ), ], end: [ Operator( ( "-", false, ), ), Symbol( "1.5", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 206, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 585, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 585, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 585, column: 5, }, ], end: 212, }, line: 585, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 585, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 585, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 585, }, ], values: [ [ Symbol( "0", ), ], ], line: 586, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1e6", ), ], end: [ Symbol( "1e6", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 233, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 586, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 586, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 586, column: 5, }, ], end: 239, }, line: 586, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 586, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 586, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 586, }, ], values: [ [ Symbol( "0", ), ], ], line: 587, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1.0", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 259, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 587, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 587, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 587, column: 5, }, ], end: 265, }, line: 587, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 587, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 587, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 587, }, ], values: [ [ Symbol( "0", ), ], ], line: 588, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "99999", ), ], end: [ Symbol( "1e5", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1.0", ), ], ), code: CodeBlock { start: 286, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 588, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 588, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 588, column: 5, }, ], end: 292, }, line: 588, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 588, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 588, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 588, }, ], values: [ [ Symbol( "0", ), ], ], line: 589, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1.0", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 313, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 589, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 589, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 589, column: 5, }, ], end: 319, }, line: 589, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 589, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 589, }, ], end: 4500, }, ), DoBlock( CodeBlock { start: 4501, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 593, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 593, }, ], values: [ [ Symbol( "0", ), ], ], line: 594, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 594, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 594, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 594, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 594, }, ], values: [ [ Symbol( "\"x\"", ), ], ], line: 594, column: 9, }, ], end: 23, }, line: 594, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 594, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 594, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 594, }, ], values: [ [ Symbol( "0", ), ], ], line: 595, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "10.0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 44, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 595, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 595, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 595, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 595, }, ], values: [ [ Symbol( "\"x\"", ), ], ], line: 595, column: 9, }, ], end: 54, }, line: 595, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 595, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 595, }, ], end: 4563, }, ), Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 596, }, ], values: [ [ Symbol( "0", ), ], ], line: 599, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "\"10\"", ), ], end: [ Symbol( "\"1\"", ), ], step: Some( [ Symbol( "\"-2\"", ), ], ), code: CodeBlock { start: 4576, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 599, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 599, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 599, column: 5, }, ], end: 4582, }, line: 599, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 599, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 599, }, DoBlock( CodeBlock { start: 4590, code: [ Variable { names: [ ( "c", false, ), ], values: [], line: 602, column: 2, }, Function { local: true, name: [ Symbol( "checkfloat", ), ], args: [ "i", ], body: CodeBlock { start: 8, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 604, }, ], ], ), ], line: 604, }, Operator( ( "==", true, ), ), Symbol( "\"float\"", ), ], ], ), ], line: 604, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 604, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 605, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 605, column: 5, }, ], end: 25, }, line: 606, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 606, }, ], values: [ [ Symbol( "0", ), ], ], line: 608, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1.0", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 36, code: [ Ident { expr: [ Symbol( "checkfloat", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 608, }, ], ], ), ], line: 608, }, ], end: 41, }, line: 608, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 609, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 608, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 609, }, ], values: [ [ Symbol( "0", ), ], ], line: 611, column: 4, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "1", ), ], end: [ Operator( ( "-", false, ), ), Symbol( "10", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1.0", ), ], ), code: CodeBlock { start: 63, code: [ Ident { expr: [ Symbol( "checkfloat", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 611, }, ], ], ), ], line: 611, }, ], end: 68, }, line: 611, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 612, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 611, }, Function { local: true, name: [ Symbol( "checkint", ), ], args: [ "i", ], body: CodeBlock { start: 80, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 615, }, ], ], ), ], line: 615, }, Operator( ( "==", true, ), ), Symbol( "\"integer\"", ), ], ], ), ], line: 615, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 615, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 616, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 616, column: 5, }, ], end: 97, }, line: 617, column: 1, }, Variable { names: [ ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 619, }, ], ], line: 619, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 619, }, ], values: [ [ Symbol( "0", ), ], ], line: 620, column: 4, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "m", ), ], line: 620, }, ], end: [ Ident { expr: [ Symbol( "m", ), ], line: 620, }, Operator( ( "-", true, ), ), Symbol( "10", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 119, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 620, }, ], ], ), ], line: 620, }, ], end: 124, }, line: 620, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 621, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 620, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 621, }, ], values: [ [ Symbol( "0", ), ], ], line: 623, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10.9", ), ], step: None, code: CodeBlock { start: 141, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 623, }, ], ], ), ], line: 623, }, ], end: 146, }, line: 623, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 624, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 623, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 624, }, ], values: [ [ Symbol( "0", ), ], ], line: 626, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "10", ), ], end: [ Symbol( "0.001", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 166, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 626, }, ], ], ), ], line: 626, }, ], end: 171, }, line: 626, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 627, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 626, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 627, }, ], values: [ [ Symbol( "0", ), ], ], line: 629, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "\"10.8\"", ), ], step: None, code: CodeBlock { start: 188, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 629, }, ], ], ), ], line: 629, }, ], end: 193, }, line: 629, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 630, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 629, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 630, }, ], values: [ [ Symbol( "0", ), ], ], line: 632, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "9", ), ], end: [ Symbol( "\"3.4\"", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 213, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 632, }, ], ], ), ], line: 632, }, ], end: 218, }, line: 632, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 633, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 632, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 633, }, ], values: [ [ Symbol( "0", ), ], ], line: 635, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "\" -3.4 \"", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 238, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 635, }, ], ], ), ], line: 635, }, ], end: 243, }, line: 635, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 636, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 635, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 636, }, ], values: [ [ Symbol( "0", ), ], ], line: 638, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "100", ), ], end: [ Symbol( "\"96.3\"", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ), code: CodeBlock { start: 263, code: [ Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 638, }, ], ], ), ], line: 638, }, ], end: 268, }, line: 638, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 639, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 638, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 639, }, ], values: [ [ Symbol( "0", ), ], ], line: 641, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 641, }, ], step: None, code: CodeBlock { start: 287, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 641, }, Operator( ( ">", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 5, code: [ Break, ], end: 7, }, next: None, line: 641, column: 7, }, Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 641, }, ], ], ), ], line: 641, }, ], end: 300, }, line: 641, column: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 642, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 641, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 642, }, ], values: [ [ Symbol( "0", ), ], ], line: 644, column: 4, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "1", ), ], end: [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 644, }, ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 324, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 645, }, Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "10", ), ], body: CodeBlock { start: 6, code: [ Break, ], end: 8, }, next: None, line: 645, column: 8, }, Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 645, }, ], ], ), ], line: 645, }, ], end: 338, }, line: 646, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 647, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 646, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 650, }, ], end: [ Operator( ( "-", false, ), ), Symbol( "10e100", ), ], step: None, code: CodeBlock { start: 354, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 650, }, ], end: 359, }, line: 650, column: 15, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 651, }, ], end: [ Symbol( "10e100", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 371, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 651, }, ], end: 376, }, line: 651, column: 17, }, ], end: 4967, }, ), DoBlock( CodeBlock { start: 4968, code: [ Function { local: true, name: [ Symbol( "checkfor", ), ], args: [ "from", "to", "step", "t", ], body: CodeBlock { start: 12, code: [ Variable { names: [ ( "c", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 660, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "from", ), ], line: 660, }, ], end: [ Ident { expr: [ Symbol( "to", ), ], line: 660, }, ], step: Some( [ Ident { expr: [ Symbol( "step", ), ], line: 660, }, ], ), code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 661, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 661, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 661, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 662, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "c", ), ], line: 662, }, ], ), Symbol( "]", ), ], line: 662, }, ], ], ), ], line: 661, }, ], end: 28, }, line: 663, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 664, }, Operator( ( "==", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 664, }, ], ], ), ], line: 663, }, ], end: 48, }, line: 665, column: 1, }, Variable { names: [ ( "maxi", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 667, }, ], ], line: 668, column: 0, }, Variable { names: [ ( "mini", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 668, }, ], ], line: 668, column: 6, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "mini", ), ], line: 670, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 670, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 670, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 670, }, ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 670, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), ], line: 670, column: 18, }, ], ], ), ], line: 668, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "mini", ), ], line: 672, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 672, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 672, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 672, }, ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 672, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), ], line: 672, column: 20, }, ], ], ), ], line: 670, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 674, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 674, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 674, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 674, }, ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), ], line: 674, column: 14, }, ], ], ), ], line: 672, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 676, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 676, }, ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxi", ), ], line: 676, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 676, }, ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxi", ), ], line: 676, }, ], ), ], line: 676, column: 17, }, ], ], ), ], line: 674, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 678, }, ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 678, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 678, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 678, }, ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), ], line: 678, column: 17, }, ], ], ), ], line: 676, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 680, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 680, }, ], [ Symbol( "1", ), ], [ Table { data: [], line: 680, column: 10, }, ], ], ), ], line: 678, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "mini", ), ], line: 681, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 681, }, ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Table { data: [], line: 681, column: 11, }, ], ], ), ], line: 680, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 683, }, Operator( ( "-", true, ), ), Symbol( "6", ), ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 683, }, ], [ Symbol( "3", ), ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 683, }, Operator( ( "-", true, ), ), Symbol( "6", ), ], ), ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 683, }, Operator( ( "-", true, ), ), Symbol( "3", ), ], ), ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 683, }, ], ), ], line: 683, column: 21, }, ], ], ), ], line: 681, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "mini", ), ], line: 684, }, Operator( ( "+", true, ), ), Symbol( "4", ), ], [ Ident { expr: [ Symbol( "mini", ), ], line: 684, }, ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 684, }, Operator( ( "+", true, ), ), Symbol( "4", ), ], ), ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 684, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], ), ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 684, }, ], ), ], line: 684, column: 22, }, ], ], ), ], line: 683, }, Variable { names: [ ( "step", false, ), ], values: [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 686, }, Operator( ( "//", true, ), ), Symbol( "10", ), ], ], line: 687, column: 0, }, Variable { names: [ ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "mini", ), ], line: 687, }, ], ], line: 688, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "mini", ), ], line: 688, }, ], end: [ Ident { expr: [ Symbol( "maxi", ), ], line: 688, }, ], step: Some( [ Ident { expr: [ Symbol( "step", ), ], line: 688, }, ], ), code: CodeBlock { start: 238, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 689, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 689, }, ], ], ), ], line: 689, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 689, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 690, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "step", ), ], line: 690, }, ], ], line: 690, column: 5, }, ], end: 250, }, line: 691, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 691, }, ], values: [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 693, }, ], ], line: 694, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "maxi", ), ], line: 694, }, ], end: [ Ident { expr: [ Symbol( "mini", ), ], line: 694, }, ], step: Some( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "step", ), ], line: 694, }, ], ), code: CodeBlock { start: 263, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 695, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 695, }, ], ], ), ], line: 695, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 695, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 696, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "step", ), ], line: 696, }, ], ], line: 696, column: 5, }, ], end: 275, }, line: 697, column: 1, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 699, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 699, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 699, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 699, }, ], ), ], line: 699, column: 11, }, ], ], ), ], line: 697, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "maxi", ), ], line: 700, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 700, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 700, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "maxi", ), ], line: 700, }, ], ), ], line: 700, column: 11, }, ], ], ), ], line: 699, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "mini", ), ], line: 701, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 701, }, ], [ Ident { expr: [ Symbol( "maxi", ), ], line: 701, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 701, }, ], ), ], line: 701, column: 11, }, ], ], ), ], line: 700, }, Ident { expr: [ Symbol( "checkfor", ), Call( [ [ Ident { expr: [ Symbol( "mini", ), ], line: 702, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 702, }, ], [ Ident { expr: [ Symbol( "mini", ), ], line: 702, }, ], [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "mini", ), ], line: 702, }, ], ), ], line: 702, column: 11, }, ], ], ), ], line: 701, }, ], end: 5292, }, ), Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"'for' step is zero\"", ), ], [ Lambda { args: [], body: CodeBlock { start: 5299, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: Some( [ Symbol( "0", ), ], ), code: CodeBlock { start: 9, code: [], end: 10, }, line: 707, column: 10, }, ], end: 5310, }, line: 708, column: 1, }, ], ], ), ], line: 703, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"'for' step is zero\"", ), ], [ Lambda { args: [], body: CodeBlock { start: 5318, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "-", false, ), ), Symbol( "10", ), ], step: Some( [ Symbol( "0", ), ], ), code: CodeBlock { start: 10, code: [], end: 11, }, line: 711, column: 11, }, ], end: 5330, }, line: 712, column: 1, }, ], ], ), ], line: 708, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"'for' step is zero\"", ), ], [ Lambda { args: [], body: CodeBlock { start: 5338, code: [ ForLoop { iter: "i", start: [ Symbol( "1.0", ), ], end: [ Operator( ( "-", false, ), ), Symbol( "10", ), ], step: Some( [ Symbol( "0.0", ), ], ), code: CodeBlock { start: 10, code: [], end: 11, }, line: 715, column: 11, }, ], end: 5350, }, line: 716, column: 1, }, ], ], ), ], line: 712, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 716, }, Function { local: true, name: [ Symbol( "f", ), ], args: [ "n", "p", ], body: CodeBlock { start: 5362, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 724, column: 5, }, ], ], line: 724, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "p", ), ], line: 724, }, ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 724, }, ], ), Symbol( "]", ), ], line: 724, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 724, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], line: 724, column: 8, }, ], end: 22, }, line: 724, column: 22, }, Return( Some( [ [ Lambda { args: [ "_", "n", "...", ], body: CodeBlock { start: 31, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "\"#\"", ), ], [ Symbol( "...", ), ], ], ), ], line: 726, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 726, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 727, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 16, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 728, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 728, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 729, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "n", ), ], line: 729, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 729, }, ], ], ), ], line: 729, }, ], ], ), ), ], end: 31, }, next: None, line: 730, column: 1, }, ], end: 63, }, line: 731, column: 1, }, ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "n", ), ], line: 731, }, ], ], ), ), ], end: 5430, }, line: 732, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 735, column: 0, }, ForFuncLoop { iters: [ "n", "a", "b", "c", "d", ], expr: [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "3", ), ], ], ), ], line: 735, }, ], stop: None, initial: None, code: CodeBlock { start: 5452, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 736, }, ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 736, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 736, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 737, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 737, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 737, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 737, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 736, }, ], end: 5476, }, line: 738, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 739, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 738, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 739, }, ], values: [ [ Table { data: [], line: 744, column: 4, }, ], ], line: 745, column: 0, }, DoBlock( CodeBlock { start: 5487, code: [ Variable { names: [ ( "x", false, ), ( "y", false, ), ( "z", false, ), ], values: [ [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 746, }, ], ], ), ], line: 746, }, ], ], line: 746, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 747, }, ], ], ), ], line: 747, }, Operator( ( "==", true, ), ), Symbol( "'function'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 747, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 747, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 747, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 746, }, ], end: 5516, }, ), Function { local: true, name: [ Symbol( "foo", ), ], args: [ "e", "i", ], body: CodeBlock { start: 5524, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "e", ), ], line: 751, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 751, }, ], ], ), ], line: 751, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 752, }, Operator( ( "<=", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 11, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 752, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 752, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], ], ), ), ], end: 20, }, next: None, line: 752, column: 14, }, ], end: 5545, }, line: 753, column: 1, }, Function { local: true, name: [ Symbol( "foo1", ), ], args: [ "e", "i", ], body: CodeBlock { start: 5553, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 756, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 756, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 756, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "e", ), ], line: 757, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 757, }, ], ], ), ], line: 756, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 758, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "e", ), Symbol( ".", ), Symbol( "n", ), ], line: 758, }, ], body: CodeBlock { start: 18, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 758, }, ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 758, }, ], ), Symbol( "]", ), ], line: 758, }, ], ], ), ), ], end: 26, }, next: None, line: 758, column: 15, }, ], end: 5580, }, line: 759, column: 1, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 761, }, ], [ Table { data: [ ( Some( [ Symbol( "__pairs", ), ], ), [ Lambda { args: [ "x", ], body: CodeBlock { start: 5591, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 761, }, ], [ Ident { expr: [ Symbol( "x", ), ], line: 761, }, ], [ Symbol( "0", ), ], ], ), ), ], end: 5598, }, line: 761, column: 18, }, ], ), ], line: 761, column: 19, }, ], ], ), ], line: 759, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 764, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 764, }, ], ], ), ], line: 764, }, ], stop: None, initial: None, code: CodeBlock { start: 5614, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 765, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 765, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 765, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 766, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 766, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 766, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 766, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 765, }, ], end: 5632, }, line: 767, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 767, }, ], values: [ [ Symbol( "5", ), ], ], line: 769, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 769, }, ], values: [ [ Symbol( "30", ), ], ], line: 770, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 770, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "10", ), ], ), ], line: 773, column: 7, }, ], ], line: 773, column: 7, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 774, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "t", "k", ], body: CodeBlock { start: 5663, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "k", ), ], line: 775, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 775, }, ], body: CodeBlock { start: 7, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "k", ), ], line: 775, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], ), ), ], end: 12, }, next: None, line: 775, column: 12, }, ], end: 5676, }, line: 776, column: 1, }, ], ), ], line: 776, column: 2, }, ], ], ), ], line: 773, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 776, }, ], values: [ [ Symbol( "0", ), ], ], line: 778, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 778, }, ], ], ), ], line: 778, }, ], stop: None, initial: None, code: CodeBlock { start: 5691, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 779, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 779, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 779, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 780, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 780, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 780, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 780, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], ), ], line: 779, }, ], end: 5709, }, line: 781, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 782, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 782, }, ], ], ), ], line: 781, }, DoBlock( CodeBlock { start: 5718, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ], line: 787, column: 12, }, ], [ Table { data: [ ( Some( [ Symbol( "__pairs", ), ], ), [ Lambda { args: [ "t", ], body: CodeBlock { start: 20, code: [ Variable { names: [ ( "inc", false, ), ], values: [ [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "yield", ), Call( [], ), ], line: 788, }, ], ], line: 789, column: 0, }, Return( Some( [ [ Lambda { args: [ "t", "i", ], body: CodeBlock { start: 15, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 790, }, Operator( ( ">", true, ), ), Symbol( "1", ), ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 790, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "inc", ), ], line: 790, }, ], [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 790, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "inc", ), ], line: 790, }, ], ), Symbol( "]", ), ], line: 790, }, ], ], ), ), ], end: 17, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 17, code: [ Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 20, }, next: None, line: 790, column: 20, }, ), line: 790, column: 20, }, ], end: 36, }, line: 791, column: 1, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 791, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 791, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ), ], end: 64, }, line: 792, column: 1, }, ], ), ], line: 792, column: 2, }, ], ], ), ], line: 787, }, ], ], line: 794, column: 0, }, Variable { names: [ ( "res", false, ), ], values: [ [ Table { data: [], line: 794, column: 5, }, ], ], line: 795, column: 0, }, Variable { names: [ ( "co", false, ), ], values: [ [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "wrap", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 81, code: [ ForFuncLoop { iters: [ "i", "p", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 796, }, ], ], ), ], line: 796, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "res", ), ], line: 796, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 796, }, ], values: [ [ Ident { expr: [ Symbol( "p", ), ], line: 796, }, ], ], line: 796, column: 9, }, ], end: 20, }, line: 796, column: 20, }, ], end: 102, }, line: 797, column: 1, }, ], ], ), ], line: 795, }, ], ], line: 797, column: 2, }, Ident { expr: [ Symbol( "co", ), Call( [], ), ], line: 797, }, Ident { expr: [ Symbol( "co", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 799, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "res", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 801, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "res", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 801, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "res", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 801, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "res", ), ], line: 801, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 800, }, ], end: 5857, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"OK\"", ), ], ], ), ], line: 803, }, ]