--- source: src/main.rs expression: parsed input_file: test-data/lua5.3-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: [ [ Symbol( "nil", ), ], ], 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, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "T", ), ], line: 46, }, ], body: CodeBlock { start: 225, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 47, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 47, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> testC not active: skipping tests for table sizes <<<\\n'", ), ], ], ), ], line: 47, }, ], end: 234, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 234, code: [ Function { local: true, name: [ Symbol( "log2", ), ], args: [ "x", ], body: CodeBlock { start: 6, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 52, }, ], [ Symbol( "2", ), ], ], ), ], line: 52, }, ], ], ), ), ], end: 16, }, line: 52, column: 16, }, Function { local: true, name: [ Symbol( "mp2", ), ], args: [ "n", ], body: CodeBlock { start: 22, code: [ Variable { names: [ ( "mp", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "log2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 55, }, ], ], ), ], line: 55, }, ], ], ), ], line: 55, }, ], ], line: 55, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 56, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "mp", ), ], line: 56, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 56, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 56, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "mp", ), ], line: 56, }, ], ), Ident { expr: [], line: 56, }, ], ], ), ], line: 55, }, Return( Some( [ [ Ident { expr: [ Symbol( "mp", ), ], line: 57, }, ], ], ), ), ], end: 57, }, line: 58, column: 1, }, Function { local: true, name: [ Symbol( "fb", ), ], args: [ "n", ], body: CodeBlock { start: 63, code: [ Variable { names: [ ( "r", false, ), ( "nn", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "int2fb", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 61, }, ], ], ), ], line: 61, }, ], ], line: 61, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 62, }, Operator( ( "<", true, ), ), Symbol( "256", ), ], ], ), ], line: 61, }, Return( Some( [ [ Ident { expr: [ Symbol( "nn", ), ], line: 63, }, ], ], ), ), ], end: 83, }, line: 64, column: 1, }, ForLoop { iter: "a", start: [ Symbol( "1", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 90, code: [ Variable { names: [ ( "n", false, ), ], values: [ [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 68, }, ], ], ), ], line: 68, }, ], ], line: 68, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 69, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 69, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 69, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 69, }, Operator( ( "*", true, ), ), Symbol( "1.125", ), ], ], ), ], line: 68, }, ], end: 110, }, line: 70, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "1024", ), ], ], line: 72, column: 0, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), ], ], line: 73, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 73, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 73, }, ], body: CodeBlock { start: 125, code: [ Variable { names: [ ( "n", false, ), ], values: [ [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 74, }, ], ], ), ], line: 74, }, ], ], line: 74, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 75, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 75, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 75, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 75, }, Operator( ( "*", true, ), ), Symbol( "1.125", ), ], ], ), ], line: 74, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 75, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 76, }, Operator( ( "*", true, ), ), Symbol( "1.3", ), ], ], ), ], line: 76, }, ], ], line: 76, column: 10, }, ], end: 155, }, line: 77, column: 1, }, Function { local: true, name: [ Symbol( "check", ), ], args: [ "t", "na", "nh", ], body: CodeBlock { start: 165, code: [ Variable { names: [ ( "a", false, ), ( "h", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 81, }, ], ], ), ], line: 81, }, ], ], line: 82, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 82, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "na", ), ], line: 82, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "h", ), ], line: 82, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "nh", ), ], line: 82, }, ], body: CodeBlock { start: 20, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "na", ), ], line: 83, }, ], [ Ident { expr: [ Symbol( "nh", ), ], line: 83, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 83, }, ], [ Ident { expr: [ Symbol( "h", ), ], line: 83, }, ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 83, }, ], end: 35, }, next: None, line: 85, column: 1, }, ], end: 201, }, line: 86, column: 1, }, DoBlock( CodeBlock { start: 202, code: [ Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 92, column: 0, }, ForFuncLoop { iters: [ "_", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "math", ), ], line: 92, }, ], ], ), ], line: 92, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 92, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 92, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 92, column: 5, }, ], end: 18, }, line: 92, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "math", ), ], line: 93, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 93, }, ], ], ), ], line: 93, }, ], ], ), ], line: 92, }, ], end: 232, }, ), Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "40", ), ], ], line: 99, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "'return {'", ), ], ], line: 100, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 100, }, ], step: None, code: CodeBlock { start: 247, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 101, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 101, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 101, }, Operator( ( "..", true, ), ), Symbol( "','", ), ], ], line: 102, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 102, }, ], ], line: 103, column: 0, }, ForLoop { iter: "k", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 103, }, ], step: None, code: CodeBlock { start: 18, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 104, }, Operator( ( "..", true, ), ), Symbol( "'}'", ), ], [ Symbol( "''", ), ], ], ), Call( [], ), ], line: 104, }, ], ], line: 104, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 105, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 105, }, ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 106, }, ], [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 106, }, ], ], ), ], line: 106, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 106, }, ], ], ), ], line: 106, }, ], ], ), ], line: 105, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 106, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%sa%d=%d,'", ), ], [ Ident { expr: [ Symbol( "s", ), ], line: 107, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 107, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 107, }, ], ], ), ], line: 107, }, ], ], line: 107, column: 14, }, ], end: 67, }, line: 108, column: 1, }, ], end: 315, }, line: 109, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 113, column: 5, }, ], ], line: 114, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 114, }, ], step: None, code: CodeBlock { start: 327, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 114, }, ], ), Symbol( "]", ), ], line: 114, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 114, }, ], ], line: 114, column: 6, }, ], end: 334, }, line: 114, column: 14, }, ForLoop { iter: "k", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 115, }, ], step: None, code: CodeBlock { start: 341, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 116, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 116, }, ], ], ), ], line: 116, }, ], ), ], line: 116, column: 15, }, ], ], line: 116, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 117, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 117, }, ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 118, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 118, }, ], [ Symbol( "0", ), ], ], ), ], line: 117, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 118, }, ], 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: 119, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 119, }, ], ], ), ], line: 119, }, ], ), ], line: 119, column: 20, }, ], ], line: 119, column: 20, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 120, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 120, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], [ Symbol( "0", ), ], ], ), ], line: 119, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 121, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 121, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], ], ), ], line: 120, }, ], end: 411, }, line: 122, column: 1, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "130", ), ], ], line: 127, column: 0, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 127, column: 5, }, ], ], line: 127, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 127, }, ], values: [ [ Symbol( "1", ), ], ], line: 127, column: 13, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 127, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 127, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 127, }, ], values: [ [ Table { data: [], line: 128, column: 4, }, ], ], line: 128, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 128, }, ], values: [ [ Symbol( "1", ), ], ], line: 128, column: 12, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 128, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 128, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 128, }, ], values: [ [ Symbol( "1", ), ], ], line: 128, column: 28, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 128, }, ], [ Symbol( "0", ), ], [ Symbol( "2", ), ], ], ), ], line: 128, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 128, }, ], values: [ [ Table { data: [], line: 129, column: 4, }, ], ], line: 129, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 129, }, ], values: [ [ Symbol( "1", ), ], ], line: 129, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 129, }, ], values: [ [ Symbol( "1", ), ], ], line: 129, column: 19, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 129, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 129, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 129, }, ], values: [ [ Table { data: [], line: 130, column: 4, }, ], ], line: 131, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 131, }, ], step: None, code: CodeBlock { start: 510, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 132, }, ], ), Symbol( "]", ), ], line: 132, }, ], values: [ [ Symbol( "1", ), ], ], line: 132, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 133, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 133, }, ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 134, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 134, }, ], ], ), ], line: 134, }, ], [ Symbol( "0", ), ], ], ), ], line: 133, }, ], end: 535, }, line: 135, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 135, }, ], values: [ [ Table { data: [], line: 137, column: 4, }, ], ], line: 138, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 138, }, ], step: None, code: CodeBlock { start: 546, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "'a'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 139, }, ], ), Symbol( "]", ), ], line: 139, }, ], values: [ [ Symbol( "1", ), ], ], line: 139, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 140, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 141, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 141, }, ], ], ), ], line: 141, }, ], ], ), ], line: 140, }, ], end: 573, }, line: 142, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 142, }, ], values: [ [ Table { data: [], line: 144, column: 4, }, ], ], line: 145, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "16", ), ], step: None, code: CodeBlock { start: 584, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 145, }, ], ), Symbol( "]", ), ], line: 145, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 145, }, ], ], line: 145, column: 6, }, ], end: 591, }, line: 145, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 146, }, ], [ Symbol( "16", ), ], [ Symbol( "0", ), ], ], ), ], line: 145, }, DoBlock( CodeBlock { start: 600, 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: 148, }, ], ), Symbol( "]", ), ], line: 148, }, ], values: [ [ Symbol( "nil", ), ], ], line: 148, column: 6, }, ], end: 14, }, line: 148, 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: 149, }, ], ), Symbol( "]", ), ], line: 149, }, ], values: [ [ Symbol( "nil", ), ], ], line: 149, column: 6, }, ], end: 28, }, line: 149, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 150, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 149, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10", ), ], ), Symbol( "]", ), ], line: 150, }, ], values: [ [ Symbol( "1", ), ], ], line: 152, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "30", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 49, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 152, }, ], ), Symbol( "]", ), ], line: 152, }, ], values: [ [ Symbol( "nil", ), ], ], line: 152, column: 6, }, ], end: 56, }, line: 152, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 153, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 152, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "14", ), ], step: None, code: CodeBlock { start: 71, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 154, }, ], ), Symbol( "]", ), ], line: 154, }, ], values: [ [ Symbol( "nil", ), ], ], line: 154, column: 6, }, ], end: 78, }, line: 154, column: 14, }, ForLoop { iter: "i", start: [ Symbol( "18", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 85, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 155, }, ], ), Symbol( "]", ), ], line: 155, }, ], values: [ [ Symbol( "nil", ), ], ], line: 155, column: 6, }, ], end: 92, }, line: 155, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 156, }, ], [ Symbol( "0", ), ], [ Symbol( "4", ), ], ], ), ], line: 155, }, ], end: 701, }, ), ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 160, }, ], step: None, code: CodeBlock { start: 708, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 161, column: 5, }, ], ], line: 162, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "i", ), ], line: 162, }, ], 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: 162, }, ], ), Symbol( "]", ), ], line: 162, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 162, }, ], ], line: 162, column: 6, }, ], end: 22, }, line: 162, column: 17, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 163, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 163, }, ], ], ), ], line: 163, }, ], [ Symbol( "0", ), ], ], ), ], line: 162, }, ], end: 742, }, line: 164, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "lim", ), ], line: 164, }, ], values: [ [ Symbol( "35", ), ], ], line: 168, column: 0, }, Function { local: false, name: [ Symbol( "foo", ), ], args: [ "n", "...", ], body: CodeBlock { start: 752, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 169, column: 6, }, ], ], line: 169, column: 6, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 170, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 170, }, ], [ Symbol( "0", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Symbol( "...", ), ], ], ), ], line: 171, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 171, }, ], ], ), ], line: 170, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 172, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 171, }, ], values: [ [ Symbol( "true", ), ], ], line: 172, column: 8, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 173, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 173, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 173, }, ], [ Symbol( "0", ), ], ], ), ], line: 172, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( ".", ), Symbol( "x", ), ], line: 173, }, ], values: [ [ Symbol( "true", ), ], ], line: 174, column: 5, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 175, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 175, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 175, }, ], [ Symbol( "1", ), ], ], ), ], line: 174, }, ], end: 817, }, line: 176, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 177, column: 5, }, ], ], line: 178, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 178, }, ], step: None, code: CodeBlock { start: 829, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 178, }, ], ), Symbol( "]", ), ], line: 178, }, ], values: [ [ Symbol( "true", ), ], ], line: 178, column: 7, }, Ident { expr: [ Symbol( "foo", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 178, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 178, }, ], ], ), ], line: 178, }, ], ], ), ], line: 178, }, ], end: 848, }, line: 178, column: 26, }, ], end: 1083, }, next: None, line: 180, column: 1, }, ), line: 180, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 184, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 180, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ], line: 185, column: 6, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 186, column: 8, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 187, column: 10, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 186, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 188, column: 12, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 187, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 188, }, Variable { names: [ ( "nofind", false, ), ], values: [ [ Table { data: [], line: 192, column: 5, }, ], ], line: 192, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 192, }, Ident { expr: [ Symbol( "b", ), ], line: 194, }, Ident { expr: [ Symbol( "c", ), ], line: 194, }, ], values: [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "3", ), ], ], line: 194, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 194, }, Ident { expr: [ Symbol( "b", ), ], line: 195, }, Ident { expr: [ Symbol( "c", ), ], line: 195, }, ], values: [ [ Symbol( "nil", ), ], ], line: 195, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 199, column: 5, }, ], ], ), ], line: 199, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 199, column: 9, }, ], ], ), ], line: 199, }, ], ], ), ], line: 195, }, Function { local: true, name: [ Symbol( "find", ), ], args: [ "name", ], body: CodeBlock { start: 1180, code: [ Variable { names: [ ( "n", false, ), ( "v", false, ), ], values: [], line: 202, column: 4, }, WhileLoop { condition: [ Symbol( "1", ), ], body: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 204, }, Ident { expr: [ Symbol( "v", ), ], line: 204, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 204, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 204, }, ], ], ), ], line: 204, }, ], ], line: 205, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "n", ), ], line: 205, }, ], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 205, }, ], ], ), ), ], end: 17, }, next: None, line: 205, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 206, }, Operator( ( "~=", true, ), ), Symbol( "nil", ), ], ], ), ], line: 205, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 207, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 207, }, ], body: CodeBlock { start: 28, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 207, }, ], ], ), ), ], end: 31, }, next: None, line: 207, column: 8, }, ], end: 39, }, line: 208, column: 1, }, ], end: 1220, }, line: 209, column: 1, }, Function { local: true, name: [ Symbol( "find1", ), ], args: [ "name", ], body: CodeBlock { start: 1226, code: [ ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 212, }, ], ], ), ], line: 212, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 213, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 213, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 213, }, ], ], ), ), ], end: 8, }, next: None, line: 213, column: 8, }, ], end: 19, }, line: 214, column: 1, }, Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 1248, }, line: 216, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 219, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 219, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 219, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 219, }, ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"print\"", ), ], ), Symbol( "]", ), ], line: 220, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 220, }, ], ], ), ], line: 219, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), ], line: 221, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"assert\"", ), ], ], ), ], line: 221, }, ], ], ), ], line: 220, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 222, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 222, }, ], ], ), ], line: 221, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 223, }, ], ], ), ], line: 222, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"ret\"", ), Operator( ( "..", true, ), ), Symbol( "\"urn\"", ), ], ), Symbol( "]", ), ], line: 223, }, ], values: [ [ Symbol( "nil", ), ], ], line: 224, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 225, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 225, }, ], ], ), ], line: 224, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"xxx\"", ), ], ), Symbol( "]", ), ], line: 225, }, ], values: [ [ Symbol( "1", ), ], ], line: 226, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "xxx", ), ], line: 227, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"xxx\"", ), ], ], ), ], line: 227, }, ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid key\"", ), ], [ Ident { expr: [ Symbol( "next", ), ], line: 230, }, ], [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ], line: 230, column: 11, }, ], [ Symbol( "3", ), ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"bad argument\"", ), ], [ Ident { expr: [ Symbol( "pairs", ), ], line: 233, }, ], ], ), ], line: 230, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"bad argument\"", ), ], [ Ident { expr: [ Symbol( "ipairs", ), ], line: 234, }, ], ], ), ], line: 233, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 234, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 236, }, ], values: [ [ Table { data: [], line: 238, column: 4, }, ], ], line: 239, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 1375, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 240, }, ], [ Symbol( "10", ), ], ], ), ], line: 240, }, 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: 241, }, ], ), Symbol( "]", ), ], line: 241, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 241, }, ], ], line: 241, column: 8, }, ], end: 21, }, next: None, line: 242, column: 1, }, ], end: 1397, }, line: 243, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 243, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 245, column: 7, }, ], ], line: 246, column: 0, }, ForFuncLoop { iters: [ "i", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 246, }, ], ], ), ], line: 246, }, ], stop: None, initial: None, code: CodeBlock { start: 1414, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 247, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 247, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 247, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 248, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 248, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 248, }, ], ), Symbol( "]", ), ], line: 248, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 248, }, ], ], ), ], line: 247, }, ], end: 1437, }, line: 249, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 250, }, Operator( ( "==", true, ), ), Symbol( "9000", ), ], ], ), ], line: 249, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 250, }, ], values: [ [ Symbol( "nil", ), ], ], line: 253, column: 0, }, DoBlock( CodeBlock { start: 1449, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 254, column: 5, }, ], ], line: 255, column: 0, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 255, }, ], ], ), ], line: 255, }, ], stop: None, initial: None, code: CodeBlock { start: 15, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 255, }, ], ), Symbol( "]", ), ], line: 255, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 255, }, ], ], line: 255, column: 6, }, ], end: 22, }, line: 255, column: 17, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 256, }, ], ], ), ], line: 256, }, ], 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: 257, }, ], ), Symbol( "]", ), ], line: 257, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 257, }, ], ], ), ], line: 257, }, Operator( ( "~=", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 258, }, ], [ Symbol( "\"^[%u_]\"", ), ], ], ), ], line: 258, }, ], body: CodeBlock { start: 26, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 259, }, ], ), Symbol( "]", ), ], line: 259, }, ], values: [ [ Symbol( "nil", ), ], ], line: 259, column: 6, }, ], end: 33, }, next: None, line: 260, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 260, }, ], end: 69, }, line: 262, column: 1, }, ], end: 1519, }, ), Function { local: true, name: [ Symbol( "checknext", ), ], args: [ "a", ], body: CodeBlock { start: 1525, code: [ Variable { names: [ ( "b", false, ), ], values: [ [ Table { data: [], line: 269, column: 5, }, ], ], line: 270, column: 0, }, DoBlock( CodeBlock { start: 6, code: [ Variable { names: [ ( "k", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 270, }, ], ], ), ], line: 270, }, ], ], line: 270, column: 10, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "k", ), ], line: 270, }, ], body: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 270, }, ], ), Symbol( "]", ), ], line: 270, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 270, }, ], ], line: 270, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "k", ), ], line: 270, }, Ident { expr: [ Symbol( "v", ), ], line: 270, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 270, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 270, }, ], ], ), ], line: 270, }, ], ], line: 270, column: 17, }, ], end: 31, }, line: 270, column: 31, }, ], end: 38, }, ), ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 271, }, ], ], ), ], line: 271, }, ], 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: 271, }, ], ), Symbol( "]", ), ], line: 271, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 271, }, ], ], ), ], line: 271, }, ], end: 58, }, line: 271, column: 20, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 272, }, ], ], ), ], line: 272, }, ], 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: 272, }, ], ), Symbol( "]", ), ], line: 272, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 272, }, ], ], ), ], line: 272, }, ], end: 78, }, line: 272, column: 20, }, ], end: 1604, }, line: 273, 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: 275, column: 16, }, ], ], ), ], line: 273, }, 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: 276, column: 18, }, ], ], ), ], line: 275, }, 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: 277, column: 20, }, ], ], ), ], line: 276, }, 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: 278, column: 22, }, ], ], ), ], line: 277, }, 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: 279, column: 24, }, ], ], ), ], line: 278, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 281, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 279, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "2", ), ], ), ], line: 282, column: 11, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 281, }, 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: 283, column: 14, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 282, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 1750, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 285, column: 5, }, ], ], line: 286, column: 0, }, ForLoop { iter: "j", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "i", ), ], line: 286, }, ], step: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "j", ), ], line: 286, }, ], ), Symbol( "]", ), ], line: 286, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 286, }, ], ], line: 286, column: 6, }, ], end: 19, }, line: 286, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 287, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 287, }, ], ], ), ], line: 286, }, ], end: 1777, }, line: 288, column: 1, }, Function { local: false, name: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), ], args: [ "t", ], body: CodeBlock { start: 1784, code: [ Variable { names: [ ( "max", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 293, column: 0, }, ForFuncLoop { iters: [ "k", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 293, }, ], ], ), ], line: 293, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "max", ), ], line: 294, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 294, }, ], ], ), ], line: 294, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), ], ), Ident { expr: [], line: 294, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "max", ), ], line: 294, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 294, }, ], ], ), ], line: 294, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "max", ), ], line: 294, }, ], ], line: 294, column: 21, }, ], end: 34, }, line: 295, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "max", ), ], line: 296, }, ], ], ), ), ], end: 1821, }, line: 297, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [], line: 299, column: 7, }, ], ], ), ], line: 299, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "\"1000\"", ), ], ), [ Symbol( "true", ), ], ), ], line: 300, column: 12, }, ], ], ), ], line: 300, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 299, }, 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: 301, column: 18, }, ], ], ), ], line: 301, }, Operator( ( "==", true, ), ), Symbol( "24.5", ), ], ], ), ], line: 300, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "1000", ), ], ), [ Symbol( "true", ), ], ), ], line: 302, column: 12, }, ], ], ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "1000", ), ], ], ), ], line: 301, }, 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: 303, }, ], ), [ Ident { expr: [ Symbol( "print", ), ], line: 303, }, ], ), ], line: 303, column: 22, }, ], ], ), ], line: 303, }, Operator( ( "==", true, ), ), Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 303, }, ], ], ), ], line: 302, }, Alter { names: [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), ], line: 303, }, ], values: [ [ Symbol( "nil", ), ], ], line: 305, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 305, }, ], values: [ [ Table { data: [], line: 308, column: 4, }, ], ], line: 309, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 1927, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 309, }, ], ), Symbol( "]", ), ], line: 309, }, ], values: [ [ Symbol( "true", ), ], ], line: 309, column: 8, }, ], end: 1936, }, line: 309, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 310, }, ], ), Symbol( "]", ), ], line: 310, }, ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 310, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( Some( [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 316, column: 8, }, ], ), [ Symbol( "1", ), ], ), ( Some( [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ], line: 316, column: 16, }, ], ), [ Symbol( "2", ), ], ), ( Some( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"x \"", ), ], [ Symbol( "4", ), ], ], ), ], line: 316, }, ], ), [ Symbol( "3", ), ], ), ( Some( [ Symbol( "100.3", ), ], ), [ Symbol( "4", ), ], ), ( Some( [ Symbol( "4", ), ], ), [ Symbol( "5", ), ], ), ], line: 317, column: 12, }, ], ], line: 319, column: 0, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 320, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 320, }, ], ], ), ], line: 320, }, ], stop: None, initial: None, code: CodeBlock { start: 2007, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 321, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 321, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 321, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 322, }, ], ), Symbol( "]", ), ], line: 322, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 322, }, ], ], ), ], line: 321, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 323, }, ], ), Symbol( "]", ), ], line: 322, }, ], values: [ [ Symbol( "nil", ), ], ], line: 323, column: 6, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 323, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 325, }, ], ), Symbol( "]", ), ], line: 325, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 324, }, ], end: 2040, }, line: 326, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 327, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 326, }, Function { local: true, name: [ Symbol( "test", ), ], args: [ "a", ], body: CodeBlock { start: 2052, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 331, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 331, }, ], [ Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 331, }, ], ], ), ], line: 331, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 332, }, ], [ Symbol( "10", ), ], ], ), ], line: 331, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 332, }, ], [ Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 332, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 333, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 332, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 333, }, ], [ Symbol( "40", ), ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 334, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 334, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Symbol( "50", ), ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 335, }, ], [ Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 334, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 336, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 336, }, ], [ Symbol( "0", ), ], [ Symbol( "20", ), ], ], ), ], line: 336, }, ], ], ), ], line: 335, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 337, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 337, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 337, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 337, }, ], ], ), ], line: 336, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 338, }, ], [ Symbol( "1", ), ], ], ), ], line: 338, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 337, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 339, }, ], [ Symbol( "1", ), ], ], ), ], line: 339, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 338, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 340, }, ], [ Symbol( "1", ), ], ], ), ], line: 340, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 339, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 341, }, ], [ Symbol( "1", ), ], ], ), ], line: 341, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 342, }, ], [ Symbol( "1", ), ], ], ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 341, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 343, }, ], [ Symbol( "1", ), ], ], ), ], line: 343, }, Operator( ( "==", true, ), ), Symbol( "50", ), ], ], ), ], line: 342, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 344, }, ], [ Symbol( "1", ), ], ], ), ], line: 344, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 343, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 345, }, ], ], ), ], line: 345, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 344, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 346, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 346, }, ], ], ), ], line: 346, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 345, }, ], end: 2290, }, line: 347, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 347, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 349, column: 14, }, ], ], line: 349, column: 14, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 350, }, ], ], ), ], line: 349, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 351, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 351, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 350, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 351, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 353, column: 10, }, ], ], line: 353, column: 11, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 354, }, ], ], ), ], line: 353, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 354, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 355, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 357, column: 10, }, ], ], line: 357, column: 10, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 358, }, ], ], ), ], line: 357, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 359, }, ], ], ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 358, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 359, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "0", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 361, column: 9, }, ], ], line: 361, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 362, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 362, }, ], ], ), ], line: 362, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 362, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 361, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, ], [ Symbol( "1", ), ], [ Symbol( "10", ), ], ], ), ], line: 362, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, ], [ Symbol( "1", ), ], [ Symbol( "20", ), ], ], ), ], line: 364, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 364, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 365, }, ], ], ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 364, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 366, }, ], ], ), ], line: 366, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 365, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 367, }, ], ], ), ], line: 367, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 366, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 368, }, ], ], ), ], line: 368, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 367, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 368, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "'c'", ), ], ), ( None, [ Symbol( "'d'", ), ], ), ], line: 370, column: 7, }, ], ], line: 370, column: 7, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 371, }, ], [ Symbol( "3", ), ], [ Symbol( "'a'", ), ], ], ), ], line: 370, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 372, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 371, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 373, }, ], [ Symbol( "1", ), ], ], ), ], line: 373, }, Operator( ( "==", true, ), ), Symbol( "'c'", ), ], ], ), ], line: 372, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 374, }, ], [ Symbol( "1", ), ], ], ), ], line: 374, }, Operator( ( "==", true, ), ), Symbol( "'d'", ), ], ], ), ], line: 373, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 375, }, ], [ Symbol( "1", ), ], ], ), ], line: 375, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 374, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 376, }, ], [ Symbol( "1", ), ], ], ), ], line: 376, }, Operator( ( "==", true, ), ), Symbol( "'b'", ), ], ], ), ], line: 375, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 377, }, ], [ Symbol( "1", ), ], ], ), ], line: 377, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 376, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 378, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 378, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 377, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 378, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "40", ), ], ), ], line: 380, column: 11, }, ], ], line: 380, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 381, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 381, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 381, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 380, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 382, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 382, }, ], [ Symbol( "0", ), ], ], ), ], line: 382, }, ], ], ), ], line: 381, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 383, }, ], ), Symbol( "]", ), ], line: 383, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 382, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 384, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 384, }, ], ], ), ], line: 384, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 383, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 385, }, ], ), Symbol( "]", ), ], line: 385, }, Operator( ( "==", true, ), ), Symbol( "30", ), ], ], ), ], line: 384, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 386, }, ], [ Symbol( "2", ), ], ], ), ], line: 386, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 385, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 387, }, ], ), Symbol( "]", ), ], line: 387, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 387, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 386, }, DoBlock( CodeBlock { start: 2715, 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: 392, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 392, }, ], ], ), ], line: 392, }, ], end: 18, }, line: 393, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "proxy", ), ], line: 394, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 394, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 393, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 37, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 396, }, ], ), Symbol( "]", ), ], line: 396, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 396, }, ], ], ), ], line: 396, }, ], end: 49, }, line: 397, column: 1, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "sort", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 398, }, ], ], ), ], line: 397, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 62, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 400, }, ], ), Symbol( "]", ), ], line: 400, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 400, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "proxy", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 400, }, ], ), Symbol( "]", ), ], line: 400, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 400, }, ], ], ), ], line: 400, }, ], end: 79, }, line: 401, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 402, }, ], [ Symbol( "\",\"", ), ], ], ), ], line: 402, }, Operator( ( "==", true, ), ), Symbol( "\"1,2,3,4,5,6,7,8,9,10\"", ), ], ], ), ], line: 401, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "8", ), ], step: None, code: CodeBlock { start: 99, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 404, }, ], [ Symbol( "1", ), ], ], ), ], line: 404, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 404, }, ], ], ), ], line: 404, }, ], end: 113, }, line: 405, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "proxy", ), ], line: 406, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 406, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 405, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 407, }, ], ], ), ], line: 407, }, ], ], line: 407, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 408, }, Operator( ( "==", true, ), ), Symbol( "9", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 408, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 408, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 407, }, ], end: 161, }, line: 409, column: 1, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 412, column: 5, }, ], ], line: 413, column: 0, }, Variable { names: [ ( "proxy", false, ), ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 413, column: 7, }, ], [ Table { data: [ ( Some( [ Symbol( "__len", ), ], ), [ Lambda { args: [], body: CodeBlock { start: 180, code: [ Return( Some( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 414, }, ], ], ), ), ], end: 184, }, line: 414, column: 9, }, ], ), ( Some( [ Symbol( "__index", ), ], ), [ Ident { expr: [ Symbol( "t", ), ], line: 415, }, ], ), ( Some( [ Symbol( "__newindex", ), ], ), [ Ident { expr: [ Symbol( "t", ), ], line: 416, }, ], ), ], line: 417, column: 1, }, ], ], ), ], line: 413, }, ], ], line: 417, column: 2, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "proxy", ), ], line: 418, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 418, }, ], ], ), ], line: 417, }, Variable { names: [ ( "count", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 421, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 421, }, ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 422, column: 6, }, ], [ Table { data: [ ( Some( [ Symbol( "__newindex", ), ], ), [ Lambda { args: [ "t", "k", "v", ], body: CodeBlock { start: 223, code: [ Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 423, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 423, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 423, column: 6, }, Ident { expr: [ Symbol( "rawset", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 423, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 423, }, ], [ Ident { expr: [ Symbol( "v", ), ], line: 423, }, ], ], ), ], line: 423, }, ], end: 238, }, line: 423, column: 25, }, ], ), ], line: 423, column: 26, }, ], ], ), ], line: 422, }, ], ], line: 423, column: 27, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 424, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 424, }, ], ], ), ], line: 423, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "count", ), ], line: 425, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 424, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 425, }, ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 428, column: 6, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "_", "k", ], body: CodeBlock { start: 268, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "k", ), ], line: 429, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ), ], end: 273, }, line: 429, column: 13, }, ], ), ( Some( [ Symbol( "__len", ), ], ), [ Lambda { args: [ "_", ], body: CodeBlock { start: 280, code: [ Return( Some( [ [ Symbol( "5", ), ], ], ), ), ], end: 283, }, line: 430, column: 9, }, ], ), ], line: 430, column: 10, }, ], ], ), ], line: 428, }, ], ], line: 430, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 431, }, ], [ Symbol( "\";\"", ), ], ], ), ], line: 431, }, Operator( ( "==", true, ), ), Symbol( "\"2;3;4;5;6\"", ), ], ], ), ], line: 430, }, ], end: 3014, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "T", ), ], line: 436, }, ], body: CodeBlock { start: 3018, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 437, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 437, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> testC not active: skipping tests for table library on non-tables <<<\\n'", ), ], ], ), ], line: 437, }, ], end: 3027, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 3027, code: [ Variable { names: [ ( "debug", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "'debug'", ), ], ], ), ], line: 440, }, ], ], line: 441, column: 0, }, Variable { names: [ ( "tab", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ], line: 441, column: 10, }, ], ], line: 442, column: 0, }, Variable { names: [ ( "mt", false, ), ], values: [ [ Table { data: [], line: 442, column: 5, }, ], ], line: 443, column: 0, }, Variable { names: [ ( "u", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "newuserdata", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 443, }, ], ], line: 443, column: 9, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 444, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 444, }, ], [ Symbol( "40", ), ], ], ), ], line: 443, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 445, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 445, }, ], ], ), ], line: 444, }, Ident { expr: [ Symbol( "debug", ), Symbol( ".", ), Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 446, }, ], [ Ident { expr: [ Symbol( "mt", ), ], line: 446, }, ], ], ), ], line: 445, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 447, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 447, }, ], [ Symbol( "40", ), ], ], ), ], line: 446, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 448, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 448, }, ], ], ), ], line: 447, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__index", ), ], line: 448, }, ], values: [ [ Ident { expr: [ Symbol( "tab", ), ], line: 449, }, ], ], line: 449, column: 5, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 450, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 450, }, ], [ Symbol( "40", ), ], ], ), ], line: 449, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 451, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 451, }, ], ], ), ], line: 450, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__newindex", ), ], line: 451, }, ], values: [ [ Ident { expr: [ Symbol( "tab", ), ], line: 452, }, ], ], line: 452, column: 5, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 453, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 453, }, ], [ Symbol( "40", ), ], ], ), ], line: 452, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"table expected\"", ), ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 454, }, ], [ Ident { expr: [ Symbol( "u", ), ], line: 454, }, ], ], ), ], line: 453, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__len", ), ], line: 454, }, ], values: [ [ Lambda { args: [], body: CodeBlock { start: 142, code: [ Return( Some( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab", ), ], line: 455, }, ], ], ), ), ], end: 146, }, line: 455, column: 11, }, ], ], line: 455, column: 11, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 456, }, ], [ Symbol( "40", ), ], ], ), ], line: 455, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "u", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "u", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "40", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), 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( "u", ), ], line: 458, }, ], ], ), ], line: 458, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 457, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 459, }, ], [ Symbol( "1", ), ], [ Symbol( "50", ), ], ], ), ], line: 458, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "u", ), ], line: 460, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab", ), ], line: 460, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "u", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 460, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 460, }, Operator( ( "==", true, ), ), Symbol( "50", ), ], ], ), ], line: 459, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__newindex", ), ], line: 460, }, ], values: [ [ Symbol( "nil", ), ], ], line: 462, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "mt", ), Symbol( ".", ), Symbol( "__len", ), ], line: 462, }, ], values: [ [ Symbol( "nil", ), ], ], line: 464, column: 0, }, Variable { names: [ ( "tab2", false, ), ], values: [ [ Table { data: [], line: 464, column: 5, }, ], ], line: 465, column: 0, }, Variable { names: [ ( "u2", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "newuserdata", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 465, }, ], ], line: 465, column: 9, }, Ident { expr: [ Symbol( "debug", ), Symbol( ".", ), Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "u2", ), ], line: 466, }, ], [ 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: 466, }, ], ), Symbol( "]", ), ], line: 466, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 466, }, ], ], line: 466, column: 6, }, ], end: 275, }, line: 466, column: 24, }, ], ), ], line: 466, column: 25, }, ], ], ), ], line: 465, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "move", ), Call( [ [ Ident { expr: [ Symbol( "u", ), ], line: 467, }, ], [ Symbol( "1", ), ], [ Symbol( "4", ), ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "u2", ), ], line: 467, }, ], ], ), ], line: 466, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tab2", ), ], line: 468, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab2", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 468, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 468, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tab2", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 468, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tab", ), Symbol( "[", ), Expr( [ Symbol( "4", ), ], ), Symbol( "]", ), ], line: 468, }, ], ], ), ], line: 467, }, ], end: 3346, }, next: None, line: 470, column: 1, }, ), line: 470, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 470, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 472, }, ], values: [ [ Table { data: [], line: 474, column: 4, }, ], ], line: 475, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 3361, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 476, }, ], ), Symbol( "]", ), ], line: 476, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 476, }, ], ], line: 476, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 476, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 476, }, ], values: [ [ Symbol( "nil", ), ], ], line: 476, column: 15, }, ], end: 3377, }, line: 477, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 478, }, ], [ Symbol( "nil", ), ], ], ), ], line: 478, }, Operator( ( "==", true, ), ), Symbol( "1000", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 478, }, ], [ Symbol( "1000", ), ], ], ), ], line: 478, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 477, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 480, column: 6, }, ], ], ), ], line: 480, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 478, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 481, column: 6, }, ], [ Symbol( "nil", ), ], ], ), ], line: 481, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 480, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [], line: 483, column: 8, }, ], ], ), ], line: 483, }, ], stop: None, initial: None, code: CodeBlock { start: 3428, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "\"not here\"", ), ], ], ), ], line: 483, }, ], end: 3431, }, line: 483, column: 12, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0", ), ], step: None, code: CodeBlock { start: 3438, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 484, }, ], end: 3441, }, line: 484, column: 10, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 3451, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 485, }, ], end: 3454, }, line: 485, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 485, }, ], values: [ [ Symbol( "nil", ), ], ], line: 486, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: None, code: CodeBlock { start: 3465, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 486, }, ], ], ), ], line: 486, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 486, }, ], values: [ [ Symbol( "1", ), ], ], line: 486, column: 9, }, ], end: 3475, }, line: 486, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 486, }, ], ], ), ], line: 486, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 486, }, ], values: [ [ Symbol( "nil", ), ], ], line: 487, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 3494, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 487, }, ], ], ), ], line: 487, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 487, }, ], values: [ [ Symbol( "1", ), ], ], line: 487, column: 9, }, ], end: 3504, }, line: 487, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 487, }, ], ], ), ], line: 487, }, DoBlock( CodeBlock { start: 3510, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing floats in numeric for\"", ), ], ], ), ], line: 490, }, Variable { names: [ ( "a", false, ), ], values: [], line: 491, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 491, }, ], values: [ [ Symbol( "0", ), ], ], line: 493, 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: 493, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 493, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 493, column: 5, }, ], end: 25, }, line: 493, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 493, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 493, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 493, }, ], values: [ [ Symbol( "0", ), ], ], line: 494, 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: 494, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 494, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 494, column: 5, }, ], end: 52, }, line: 494, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 494, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 494, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 494, }, ], values: [ [ Symbol( "0", ), ], ], line: 495, 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: 495, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 495, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 495, column: 5, }, ], end: 78, }, line: 495, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 495, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 495, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 495, }, ], values: [ [ Symbol( "0", ), ], ], line: 496, 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: 496, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 496, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 496, column: 5, }, ], end: 105, }, line: 496, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 496, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 496, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 496, }, ], values: [ [ Symbol( "0", ), ], ], line: 497, 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: 497, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 497, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 497, column: 5, }, ], end: 132, }, line: 497, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 497, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 497, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 497, }, ], values: [ [ Symbol( "0", ), ], ], line: 500, 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: 500, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 500, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 500, column: 5, }, ], end: 158, }, line: 500, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 500, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 500, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 500, }, ], values: [ [ Symbol( "0", ), ], ], line: 501, 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: 501, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 501, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 501, column: 5, }, ], end: 184, }, line: 501, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 501, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 501, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 501, }, ], values: [ [ Symbol( "0", ), ], ], line: 502, 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: 502, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 502, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 502, column: 5, }, ], end: 212, }, line: 502, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 502, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 502, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 502, }, ], values: [ [ Symbol( "0", ), ], ], line: 503, 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: 503, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 503, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 503, column: 5, }, ], end: 239, }, line: 503, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 503, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 503, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 503, }, ], values: [ [ Symbol( "0", ), ], ], line: 504, 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: 504, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 504, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 504, column: 5, }, ], end: 265, }, line: 504, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 504, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 504, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 504, }, ], values: [ [ Symbol( "0", ), ], ], line: 505, 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: 505, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 505, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 505, column: 5, }, ], end: 292, }, line: 505, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 505, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 505, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 505, }, ], values: [ [ Symbol( "0", ), ], ], line: 506, 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: 506, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 506, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 506, column: 5, }, ], end: 319, }, line: 506, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 506, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 506, }, ], end: 3837, }, ), Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 507, }, ], values: [ [ Symbol( "0", ), ], ], line: 510, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "\"10\"", ), ], end: [ Symbol( "\"1\"", ), ], step: Some( [ Symbol( "\"-2\"", ), ], ), code: CodeBlock { start: 3850, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 510, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 510, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 510, column: 5, }, ], end: 3856, }, line: 510, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 510, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 510, }, DoBlock( CodeBlock { start: 3864, code: [ Variable { names: [ ( "c", false, ), ], values: [], line: 513, 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: 515, }, ], ], ), ], line: 515, }, Operator( ( "==", true, ), ), Symbol( "\"float\"", ), ], ], ), ], line: 515, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 515, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 516, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 516, column: 5, }, ], end: 25, }, line: 517, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 517, }, ], values: [ [ Symbol( "0", ), ], ], line: 519, 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: 519, }, ], ], ), ], line: 519, }, ], end: 41, }, line: 519, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 520, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 519, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 520, }, ], values: [ [ Symbol( "0", ), ], ], line: 522, 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: 522, }, ], ], ), ], line: 522, }, ], end: 68, }, line: 522, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 523, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 522, }, 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: 526, }, ], ], ), ], line: 526, }, Operator( ( "==", true, ), ), Symbol( "\"integer\"", ), ], ], ), ], line: 526, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 526, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 527, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 527, column: 5, }, ], end: 97, }, line: 528, column: 1, }, Variable { names: [ ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 530, }, ], ], line: 530, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 530, }, ], values: [ [ Symbol( "0", ), ], ], line: 531, column: 4, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "m", ), ], line: 531, }, ], end: [ Ident { expr: [ Symbol( "m", ), ], line: 531, }, 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: 531, }, ], ], ), ], line: 531, }, ], end: 124, }, line: 531, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 532, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 531, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 532, }, ], values: [ [ Symbol( "0", ), ], ], line: 534, 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: 534, }, ], ], ), ], line: 534, }, ], end: 146, }, line: 534, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 535, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 534, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 535, }, ], values: [ [ Symbol( "0", ), ], ], line: 537, 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: 537, }, ], ], ), ], line: 537, }, ], end: 171, }, line: 537, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 538, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 537, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 538, }, ], values: [ [ Symbol( "0", ), ], ], line: 540, 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: 540, }, ], ], ), ], line: 540, }, ], end: 193, }, line: 540, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 541, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 540, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 541, }, ], values: [ [ Symbol( "0", ), ], ], line: 543, 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: 543, }, ], ], ), ], line: 543, }, ], end: 218, }, line: 543, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 544, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 543, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 544, }, ], values: [ [ Symbol( "0", ), ], ], line: 546, 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: 546, }, ], ], ), ], line: 546, }, ], end: 243, }, line: 546, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 547, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 546, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 547, }, ], values: [ [ Symbol( "0", ), ], ], line: 549, 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: 549, }, ], ], ), ], line: 549, }, ], end: 268, }, line: 549, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 550, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 549, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 550, }, ], values: [ [ Symbol( "0", ), ], ], line: 552, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 552, }, ], step: None, code: CodeBlock { start: 287, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 552, }, Operator( ( ">", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 5, code: [ Break, ], end: 7, }, next: None, line: 552, column: 7, }, Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 552, }, ], ], ), ], line: 552, }, ], end: 300, }, line: 552, column: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 553, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 552, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 553, }, ], values: [ [ Symbol( "0", ), ], ], line: 555, column: 4, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "1", ), ], end: [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 555, }, ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 324, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 556, }, Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "10", ), ], body: CodeBlock { start: 6, code: [ Break, ], end: 8, }, next: None, line: 556, column: 8, }, Ident { expr: [ Symbol( "checkint", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 556, }, ], ], ), ], line: 556, }, ], end: 338, }, line: 557, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 558, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 557, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 561, }, ], end: [ Operator( ( "-", false, ), ), Symbol( "10e100", ), ], step: None, code: CodeBlock { start: 354, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 561, }, ], end: 359, }, line: 561, column: 15, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 562, }, ], end: [ Symbol( "10e100", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 371, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 562, }, ], end: 376, }, line: 562, column: 17, }, ], end: 4241, }, ), Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 564, }, Function { local: true, name: [ Symbol( "f", ), ], args: [ "n", "p", ], body: CodeBlock { start: 4252, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 572, column: 5, }, ], ], line: 572, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "p", ), ], line: 572, }, ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 572, }, ], ), Symbol( "]", ), ], line: 572, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 572, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], line: 572, column: 8, }, ], end: 22, }, line: 572, column: 22, }, Return( Some( [ [ Lambda { args: [ "_", "n", ], body: CodeBlock { start: 29, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 574, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 575, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 575, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 576, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "n", ), ], line: 576, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 576, }, ], ], ), ], line: 576, }, ], ], ), ), ], end: 20, }, next: None, line: 577, column: 1, }, ], end: 50, }, line: 578, column: 1, }, ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "n", ), ], line: 578, }, ], ], ), ), ], end: 4307, }, line: 579, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 582, column: 0, }, ForFuncLoop { iters: [ "n", "a", "b", "c", "d", ], expr: [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "3", ), ], ], ), ], line: 582, }, ], stop: None, initial: None, code: CodeBlock { start: 4329, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 583, }, ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 583, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 583, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 584, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 584, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 584, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 584, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 583, }, ], end: 4353, }, line: 585, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 586, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 585, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 586, }, ], values: [ [ Table { data: [], line: 591, column: 4, }, ], ], line: 592, column: 0, }, DoBlock( CodeBlock { start: 4364, code: [ Variable { names: [ ( "x", false, ), ( "y", false, ), ( "z", false, ), ], values: [ [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 593, }, ], ], ), ], line: 593, }, ], ], line: 593, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 594, }, ], ], ), ], line: 594, }, Operator( ( "==", true, ), ), Symbol( "'function'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 594, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 594, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 594, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 593, }, ], end: 4393, }, ), Function { local: true, name: [ Symbol( "foo", ), ], args: [ "e", "i", ], body: CodeBlock { start: 4401, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "e", ), ], line: 598, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 598, }, ], ], ), ], line: 598, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 599, }, Operator( ( "<=", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 11, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 599, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 599, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], ], ), ), ], end: 20, }, next: None, line: 599, column: 14, }, ], end: 4422, }, line: 600, column: 1, }, Function { local: true, name: [ Symbol( "foo1", ), ], args: [ "e", "i", ], body: CodeBlock { start: 4430, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 603, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 603, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 603, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "e", ), ], line: 604, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 604, }, ], ], ), ], line: 603, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 605, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "e", ), Symbol( ".", ), Symbol( "n", ), ], line: 605, }, ], body: CodeBlock { start: 18, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 605, }, ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 605, }, ], ), Symbol( "]", ), ], line: 605, }, ], ], ), ), ], end: 26, }, next: None, line: 605, column: 15, }, ], end: 4457, }, line: 606, column: 1, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 608, }, ], [ Table { data: [ ( Some( [ Symbol( "__pairs", ), ], ), [ Lambda { args: [ "x", ], body: CodeBlock { start: 4468, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 608, }, ], [ Ident { expr: [ Symbol( "x", ), ], line: 608, }, ], [ Symbol( "0", ), ], ], ), ), ], end: 4475, }, line: 608, column: 18, }, ], ), ], line: 608, column: 19, }, ], ], ), ], line: 606, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 611, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 611, }, ], ], ), ], line: 611, }, ], stop: None, initial: None, code: CodeBlock { start: 4491, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 612, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 612, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 612, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 613, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 613, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 613, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 613, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 612, }, ], end: 4509, }, line: 614, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 614, }, ], values: [ [ Symbol( "5", ), ], ], line: 616, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 616, }, ], values: [ [ Symbol( "30", ), ], ], line: 617, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 617, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "10", ), ], ), ], line: 620, column: 7, }, ], ], line: 620, column: 7, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 621, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "t", "k", ], body: CodeBlock { start: 4540, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "k", ), ], line: 622, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 622, }, ], body: CodeBlock { start: 7, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "k", ), ], line: 622, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], ), ), ], end: 12, }, next: None, line: 622, column: 12, }, ], end: 4553, }, line: 623, column: 1, }, ], ), ], line: 623, column: 2, }, ], ], ), ], line: 620, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 623, }, ], values: [ [ Symbol( "0", ), ], ], line: 625, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 625, }, ], ], ), ], line: 625, }, ], stop: None, initial: None, code: CodeBlock { start: 4568, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 626, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 626, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 626, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 627, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 627, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 627, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 627, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], ), ], line: 626, }, ], end: 4586, }, line: 628, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 629, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 629, }, ], ], ), ], line: 628, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"OK\"", ), ], ], ), ], line: 629, }, ]