--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-tests/nextvar.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing tables, next, and for'", ), ], ], ), ], line: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 3, column: 5, }, ], ], line: 6, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "100", ), ], step: None, code: CodeBlock { start: 16, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 6, }, Operator( ( "..", true, ), ), Symbol( "\"+\"", ), ], ), Symbol( "]", ), ], line: 6, }, ], values: [ [ Symbol( "true", ), ], ], line: 6, column: 8, }, ], end: 25, }, line: 6, column: 16, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "100", ), ], step: None, code: CodeBlock { start: 32, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 7, }, Operator( ( "..", true, ), ), Symbol( "\"+\"", ), ], ), Symbol( "]", ), ], line: 7, }, ], values: [ [ Symbol( "nil", ), ], ], line: 7, column: 8, }, ], end: 41, }, line: 7, column: 16, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "100", ), ], step: None, code: CodeBlock { start: 48, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 10, }, ], ), Symbol( "]", ), ], line: 10, }, ], values: [ [ Symbol( "true", ), ], ], line: 10, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 11, }, ], ], ), ], line: 10, }, ], end: 62, }, line: 12, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 16, 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: 16, column: 17, }, ], ], ), ], line: 16, }, ], stop: None, initial: None, code: CodeBlock { start: 84, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 17, }, ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 17, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 17, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 18, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 18, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 18, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 18, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], ), ], line: 17, }, ], end: 102, }, line: 19, column: 1, }, ForFuncLoop { iters: [ "_", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "x", ), ], ), [ Symbol( "12", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "24", ), ], ), ], line: 21, column: 13, }, ], ], ), ], line: 21, }, ], stop: None, initial: None, code: CodeBlock { start: 116, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 21, }, ], end: 121, }, line: 21, column: 19, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 21, }, ], values: [ [ Symbol( "false", ), ], ], line: 25, column: 0, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 26, 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: 26, column: 15, }, ], ], ), ], line: 26, }, ], stop: None, initial: None, code: CodeBlock { start: 144, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 27, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 27, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 27, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 27, }, ], values: [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 28, }, ], ], line: 28, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 29, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 29, }, ], ], ), ], line: 28, }, ], end: 160, }, line: 30, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 31, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 34, column: 7, }, ], ], ), ], line: 34, }, ], ], ), ], line: 34, }, Operator( ( "==", true, ), ), Symbol( "'function'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 34, column: 14, }, ], ], ), ], line: 34, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Table { data: [], line: 34, column: 18, }, ], ], ), ], line: 34, }, ], ], ), ], line: 31, }, IfStatement { condition: [ Ident { expr: [ Symbol( "T", ), ], line: 36, }, ], body: CodeBlock { start: 188, 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: 39, }, ], [ Symbol( "2", ), ], ], ), ], line: 39, }, ], ], ), ), ], end: 16, }, line: 39, 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: 42, }, ], ], ), ], line: 42, }, ], ], ), ], line: 42, }, ], ], line: 42, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "mp", ), ], line: 43, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 43, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 43, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "mp", ), ], line: 43, }, ], ), Ident { expr: [], line: 43, }, ], ], ), ], line: 42, }, Return( Some( [ [ Ident { expr: [ Symbol( "mp", ), ], line: 44, }, ], ], ), ), ], end: 57, }, line: 45, 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: 48, }, ], ], ), ], line: 48, }, ], ], line: 48, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 49, }, Operator( ( "<", true, ), ), Symbol( "256", ), ], ], ), ], line: 48, }, Return( Some( [ [ Ident { expr: [ Symbol( "nn", ), ], line: 50, }, ], ], ), ), ], end: 83, }, line: 51, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "1", ), ], ], line: 55, column: 0, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), ], ], line: 56, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 56, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 56, }, ], body: CodeBlock { start: 98, code: [ Variable { names: [ ( "n", false, ), ], values: [ [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 57, }, ], ], ), ], line: 57, }, ], ], line: 57, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 58, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 58, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 58, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 58, }, Operator( ( "*", true, ), ), Symbol( "1.125", ), ], ], ), ], line: 57, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 58, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 59, }, Operator( ( "*", true, ), ), Symbol( "1.3", ), ], ], ), ], line: 59, }, ], ], line: 59, column: 10, }, ], end: 128, }, line: 60, column: 1, }, Function { local: true, name: [ Symbol( "check", ), ], args: [ "t", "na", "nh", ], body: CodeBlock { start: 138, code: [ Variable { names: [ ( "a", false, ), ( "h", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 64, }, ], ], ), ], line: 64, }, ], ], line: 65, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 65, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "na", ), ], line: 65, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "h", ), ], line: 65, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "nh", ), ], line: 65, }, ], body: CodeBlock { start: 20, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "na", ), ], line: 66, }, ], [ Ident { expr: [ Symbol( "nh", ), ], line: 66, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 66, }, ], [ Ident { expr: [ Symbol( "h", ), ], line: 66, }, ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 66, }, ], end: 35, }, next: None, line: 68, column: 1, }, ], end: 174, }, line: 69, column: 1, }, DoBlock( CodeBlock { start: 175, code: [ Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 75, column: 0, }, ForFuncLoop { iters: [ "_", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "math", ), ], line: 75, }, ], ], ), ], line: 75, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 75, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 75, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 75, column: 5, }, ], end: 18, }, line: 75, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "math", ), ], line: 76, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 76, }, ], ], ), ], line: 76, }, ], ], ), ], line: 75, }, ], end: 205, }, ), Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "40", ), ], ], line: 82, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "'return {'", ), ], ], line: 83, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 83, }, ], step: None, code: CodeBlock { start: 220, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 84, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 84, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 84, }, Operator( ( "..", true, ), ), Symbol( "','", ), ], ], line: 85, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 85, }, ], ], line: 86, column: 0, }, ForLoop { iter: "k", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 86, }, ], step: None, code: CodeBlock { start: 18, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 87, }, Operator( ( "..", true, ), ), Symbol( "'}'", ), ], ], ), Call( [], ), ], line: 87, }, ], ], line: 87, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 88, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 88, }, ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 89, }, ], [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 89, }, ], ], ), ], line: 89, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 89, }, ], ], ), ], line: 89, }, ], ], ), ], line: 88, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 89, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%sa%d=%d,'", ), ], [ Ident { expr: [ Symbol( "s", ), ], line: 90, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 90, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 90, }, ], ], ), ], line: 90, }, ], ], line: 90, column: 14, }, ], end: 65, }, line: 91, column: 1, }, ], end: 286, }, line: 92, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 96, column: 5, }, ], ], line: 97, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 97, }, ], step: None, code: CodeBlock { start: 298, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 97, }, ], ), Symbol( "]", ), ], line: 97, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 97, }, ], ], line: 97, column: 6, }, ], end: 305, }, line: 97, column: 14, }, ForLoop { iter: "k", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 98, }, ], step: None, code: CodeBlock { start: 312, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 99, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 99, }, ], ], ), ], line: 99, }, ], ), ], line: 99, column: 15, }, ], ], line: 99, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 100, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 100, }, ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 101, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 101, }, ], [ Symbol( "0", ), ], ], ), ], line: 100, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 101, }, ], 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: 102, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 102, }, ], ], ), ], line: 102, }, ], ), ], line: 102, column: 20, }, ], ], line: 102, column: 20, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 103, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 103, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], [ Symbol( "0", ), ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 104, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 104, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], ], ), ], line: 103, }, ], end: 382, }, line: 105, column: 1, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "130", ), ], ], line: 110, column: 0, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 110, column: 5, }, ], ], line: 110, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 110, }, ], values: [ [ Symbol( "1", ), ], ], line: 110, column: 13, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 110, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 110, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 110, }, ], values: [ [ Table { data: [], line: 111, column: 4, }, ], ], line: 111, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 111, }, ], values: [ [ Symbol( "1", ), ], ], line: 111, column: 12, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 111, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 111, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 111, }, ], values: [ [ Symbol( "1", ), ], ], line: 111, column: 28, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 111, }, ], [ Symbol( "0", ), ], [ Symbol( "2", ), ], ], ), ], line: 111, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 111, }, ], values: [ [ Table { data: [], line: 112, column: 4, }, ], ], line: 112, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 112, }, ], values: [ [ Symbol( "1", ), ], ], line: 112, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 112, }, ], values: [ [ Symbol( "1", ), ], ], line: 112, column: 19, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 112, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 112, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 112, }, ], values: [ [ Table { data: [], line: 113, column: 4, }, ], ], line: 114, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 114, }, ], step: None, code: CodeBlock { start: 481, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 115, }, ], ), Symbol( "]", ), ], line: 115, }, ], values: [ [ Symbol( "1", ), ], ], line: 115, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 116, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 116, }, ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 117, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 117, }, ], ], ), ], line: 117, }, ], [ Symbol( "0", ), ], ], ), ], line: 116, }, ], end: 506, }, line: 118, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 118, }, ], values: [ [ Table { data: [], line: 120, column: 4, }, ], ], line: 121, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 121, }, ], step: None, code: CodeBlock { start: 517, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "'a'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 122, }, ], ), Symbol( "]", ), ], line: 122, }, ], values: [ [ Symbol( "1", ), ], ], line: 122, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 123, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 122, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 124, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 124, }, ], ], ), ], line: 124, }, ], ], ), ], line: 123, }, ], end: 544, }, line: 125, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 125, }, ], values: [ [ Table { data: [], line: 127, column: 4, }, ], ], line: 128, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "16", ), ], step: None, code: CodeBlock { start: 555, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 128, }, ], ), Symbol( "]", ), ], line: 128, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 128, }, ], ], line: 128, column: 6, }, ], end: 562, }, line: 128, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 129, }, ], [ Symbol( "16", ), ], [ Symbol( "0", ), ], ], ), ], line: 128, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 130, }, ], body: CodeBlock { start: 574, 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: 131, }, ], ), Symbol( "]", ), ], line: 131, }, ], values: [ [ Symbol( "nil", ), ], ], line: 131, column: 6, }, ], end: 14, }, line: 131, 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: 132, }, ], ), Symbol( "]", ), ], line: 132, }, ], values: [ [ Symbol( "nil", ), ], ], line: 132, column: 6, }, ], end: 28, }, line: 132, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 133, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 132, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10", ), ], ), Symbol( "]", ), ], line: 133, }, ], values: [ [ Symbol( "1", ), ], ], line: 135, 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: 135, }, ], ), Symbol( "]", ), ], line: 135, }, ], values: [ [ Symbol( "nil", ), ], ], line: 135, column: 6, }, ], end: 56, }, line: 135, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 136, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 135, }, 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: 137, }, ], ), Symbol( "]", ), ], line: 137, }, ], values: [ [ Symbol( "nil", ), ], ], line: 137, column: 6, }, ], end: 78, }, line: 137, 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: 138, }, ], ), Symbol( "]", ), ], line: 138, }, ], values: [ [ Symbol( "nil", ), ], ], line: 138, column: 6, }, ], end: 92, }, line: 138, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 139, }, ], [ Symbol( "0", ), ], [ Symbol( "4", ), ], ], ), ], line: 138, }, ], end: 675, }, next: None, line: 140, column: 1, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 143, }, ], step: None, code: CodeBlock { start: 682, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 144, column: 5, }, ], ], line: 145, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "i", ), ], line: 145, }, ], 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: 145, }, ], ), Symbol( "]", ), ], line: 145, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 145, }, ], ], line: 145, column: 6, }, ], end: 22, }, line: 145, column: 17, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 146, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 146, }, ], ], ), ], line: 146, }, ], [ Symbol( "0", ), ], ], ), ], line: 145, }, ], end: 716, }, line: 147, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "lim", ), ], line: 147, }, ], values: [ [ Symbol( "35", ), ], ], line: 151, column: 0, }, Function { local: false, name: [ Symbol( "foo", ), ], args: [ "n", "...", ], body: CodeBlock { start: 726, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 152, column: 6, }, ], ], line: 152, column: 6, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 153, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 153, }, ], [ Symbol( "0", ), ], ], ), ], line: 152, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Symbol( "...", ), ], ], ), ], line: 154, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 154, }, ], ], ), ], line: 153, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 155, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 154, }, ], values: [ [ Symbol( "true", ), ], ], line: 155, column: 8, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 156, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 156, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 156, }, ], [ Symbol( "0", ), ], ], ), ], line: 155, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( ".", ), Symbol( "x", ), ], line: 156, }, ], values: [ [ Symbol( "true", ), ], ], line: 157, column: 5, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 158, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 158, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 158, }, ], [ Symbol( "1", ), ], ], ), ], line: 157, }, ], end: 791, }, line: 159, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 160, column: 5, }, ], ], line: 161, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 161, }, ], step: None, code: CodeBlock { start: 803, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 161, }, ], ), Symbol( "]", ), ], line: 161, }, ], values: [ [ Symbol( "true", ), ], ], line: 161, column: 7, }, Ident { expr: [ Symbol( "foo", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 161, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 161, }, ], ], ), ], line: 161, }, ], ], ), ], line: 161, }, ], end: 822, }, line: 161, column: 26, }, ], end: 1011, }, next: None, line: 163, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 167, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ], line: 168, column: 6, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 167, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 169, column: 8, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 168, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 170, column: 10, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 171, column: 12, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 171, }, Variable { names: [ ( "nofind", false, ), ], values: [ [ Table { data: [], line: 175, column: 5, }, ], ], line: 175, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 175, }, Ident { expr: [ Symbol( "b", ), ], line: 177, }, Ident { expr: [ Symbol( "c", ), ], line: 177, }, ], values: [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "3", ), ], ], line: 177, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 177, }, Ident { expr: [ Symbol( "b", ), ], line: 178, }, Ident { expr: [ Symbol( "c", ), ], line: 178, }, ], values: [ [ Symbol( "nil", ), ], ], line: 178, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 182, column: 5, }, ], ], ), ], line: 182, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 182, column: 9, }, ], ], ), ], line: 182, }, ], ], ), ], line: 178, }, Function { local: true, name: [ Symbol( "find", ), ], args: [ "name", ], body: CodeBlock { start: 1108, code: [ Variable { names: [ ( "n", false, ), ( "v", false, ), ], values: [], line: 185, column: 4, }, WhileLoop { condition: [ Symbol( "1", ), ], body: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 187, }, Ident { expr: [ Symbol( "v", ), ], line: 187, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 187, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 187, }, ], ], ), ], line: 187, }, ], ], line: 188, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "n", ), ], line: 188, }, ], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 188, }, ], ], ), ), ], end: 17, }, next: None, line: 188, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 189, }, Operator( ( "~=", true, ), ), Symbol( "nil", ), ], ], ), ], line: 188, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 190, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 190, }, ], body: CodeBlock { start: 28, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 190, }, ], ], ), ), ], end: 31, }, next: None, line: 190, column: 8, }, ], end: 39, }, line: 191, column: 1, }, ], end: 1148, }, line: 192, column: 1, }, Function { local: true, name: [ Symbol( "find1", ), ], args: [ "name", ], body: CodeBlock { start: 1154, code: [ ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 195, }, ], ], ), ], line: 195, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 196, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 196, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 196, }, ], ], ), ), ], end: 8, }, next: None, line: 196, column: 8, }, ], end: 19, }, line: 197, column: 1, }, Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 1176, }, line: 199, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 202, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 202, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 202, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 202, }, ], ], ), ], line: 199, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"print\"", ), ], ), Symbol( "]", ), ], line: 203, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 203, }, ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), ], line: 204, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"assert\"", ), ], ], ), ], line: 204, }, ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 205, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 205, }, ], ], ), ], line: 204, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 206, }, ], ], ), ], line: 205, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"ret\"", ), Operator( ( "..", true, ), ), Symbol( "\"urn\"", ), ], ), Symbol( "]", ), ], line: 206, }, ], values: [ [ Symbol( "nil", ), ], ], line: 207, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 208, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 208, }, ], ], ), ], line: 207, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"xxx\"", ), ], ), Symbol( "]", ), ], line: 208, }, ], values: [ [ Symbol( "1", ), ], ], line: 209, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "xxx", ), ], line: 210, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"xxx\"", ), ], ], ), ], line: 210, }, ], ], ), ], line: 209, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 210, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 212, }, ], values: [ [ Table { data: [], line: 214, column: 4, }, ], ], line: 215, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 1277, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 216, }, ], [ Symbol( "10", ), ], ], ), ], line: 216, }, 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: 217, }, ], ), Symbol( "]", ), ], line: 217, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 217, }, ], ], line: 217, column: 8, }, ], end: 21, }, next: None, line: 218, column: 1, }, ], end: 1299, }, line: 219, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 219, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 221, column: 7, }, ], ], line: 222, column: 0, }, ForFuncLoop { iters: [ "i", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 222, }, ], ], ), ], line: 222, }, ], stop: None, initial: None, code: CodeBlock { start: 1316, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 223, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 223, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 223, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 224, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 224, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 224, }, ], ), Symbol( "]", ), ], line: 224, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 224, }, ], ], ), ], line: 223, }, ], end: 1339, }, line: 225, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "9000", ), ], ], ), ], line: 225, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 226, }, ], values: [ [ Symbol( "nil", ), ], ], line: 229, column: 0, }, DoBlock( CodeBlock { start: 1351, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 230, column: 5, }, ], ], line: 231, column: 0, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 231, }, ], ], ), ], line: 231, }, ], stop: None, initial: None, code: CodeBlock { start: 15, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 231, }, ], ), Symbol( "]", ), ], line: 231, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 231, }, ], ], line: 231, column: 6, }, ], end: 22, }, line: 231, column: 17, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 232, }, ], ], ), ], line: 232, }, ], 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: 233, }, ], ), Symbol( "]", ), ], line: 233, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 233, }, ], ], ), ], line: 233, }, Operator( ( "~=", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 234, }, ], [ Symbol( "\"^[%u_]\"", ), ], ], ), ], line: 234, }, ], body: CodeBlock { start: 26, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 235, }, ], ), Symbol( "]", ), ], line: 235, }, ], values: [ [ Symbol( "nil", ), ], ], line: 235, column: 6, }, ], end: 33, }, next: None, line: 236, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 236, }, ], end: 69, }, line: 238, column: 1, }, ], end: 1421, }, ), Function { local: true, name: [ Symbol( "checknext", ), ], args: [ "a", ], body: CodeBlock { start: 1427, code: [ Variable { names: [ ( "b", false, ), ], values: [ [ Table { data: [], line: 245, column: 5, }, ], ], line: 246, column: 0, }, DoBlock( CodeBlock { start: 6, code: [ Variable { names: [ ( "k", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 246, }, ], ], ), ], line: 246, }, ], ], line: 246, column: 10, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "k", ), ], line: 246, }, ], body: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 246, }, ], ), Symbol( "]", ), ], line: 246, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 246, }, ], ], line: 246, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "k", ), ], line: 246, }, Ident { expr: [ Symbol( "v", ), ], line: 246, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 246, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 246, }, ], ], ), ], line: 246, }, ], ], line: 246, column: 17, }, ], end: 31, }, line: 246, column: 31, }, ], end: 38, }, ), ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 247, }, ], ], ), ], line: 247, }, ], 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: 247, }, ], ), Symbol( "]", ), ], line: 247, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 247, }, ], ], ), ], line: 247, }, ], end: 58, }, line: 247, column: 20, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 248, }, ], ], ), ], line: 248, }, ], 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: 248, }, ], ), Symbol( "]", ), ], line: 248, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 248, }, ], ], ), ], line: 248, }, ], end: 78, }, line: 248, column: 20, }, ], end: 1506, }, line: 249, 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: 251, column: 16, }, ], ], ), ], line: 249, }, 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: 252, column: 18, }, ], ], ), ], line: 251, }, 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: 253, column: 20, }, ], ], ), ], line: 252, }, 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: 254, column: 22, }, ], ], ), ], line: 253, }, 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: 255, column: 24, }, ], ], ), ], line: 254, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 257, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 255, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "2", ), ], ), ], line: 258, column: 11, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 257, }, 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: 259, column: 14, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 258, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 1652, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 261, column: 5, }, ], ], line: 262, column: 0, }, ForLoop { iter: "j", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "i", ), ], line: 262, }, ], step: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "j", ), ], line: 262, }, ], ), Symbol( "]", ), ], line: 262, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 262, }, ], ], line: 262, column: 6, }, ], end: 19, }, line: 262, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 263, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 263, }, ], ], ), ], line: 262, }, ], end: 1679, }, line: 264, column: 1, }, Function { local: false, name: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), ], args: [ "t", ], body: CodeBlock { start: 1686, code: [ Variable { names: [ ( "max", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 269, column: 0, }, ForFuncLoop { iters: [ "k", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 269, }, ], ], ), ], line: 269, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "max", ), ], line: 270, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 270, }, ], ], ), ], line: 270, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), ], ), Ident { expr: [], line: 270, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "max", ), ], line: 270, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 270, }, ], ], ), ], line: 270, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "max", ), ], line: 270, }, ], ], line: 270, column: 21, }, ], end: 34, }, line: 271, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "max", ), ], line: 272, }, ], ], ), ), ], end: 1723, }, line: 273, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [], line: 275, column: 7, }, ], ], ), ], line: 275, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 273, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "\"1000\"", ), ], ), [ Symbol( "true", ), ], ), ], line: 276, column: 12, }, ], ], ), ], line: 276, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 275, }, 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: 277, column: 18, }, ], ], ), ], line: 277, }, Operator( ( "==", true, ), ), Symbol( "24.5", ), ], ], ), ], line: 276, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "1000", ), ], ), [ Symbol( "true", ), ], ), ], line: 278, column: 12, }, ], ], ), ], line: 278, }, Operator( ( "==", true, ), ), Symbol( "1000", ), ], ], ), ], line: 277, }, 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: 279, }, ], ), [ Ident { expr: [ Symbol( "print", ), ], line: 279, }, ], ), ], line: 279, column: 22, }, ], ], ), ], line: 279, }, Operator( ( "==", true, ), ), Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 279, }, ], ], ), ], line: 278, }, Alter { names: [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), ], line: 279, }, ], values: [ [ Symbol( "nil", ), ], ], line: 281, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 281, }, ], values: [ [ Table { data: [], line: 284, column: 4, }, ], ], line: 285, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 1829, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pow", ), Call( [ [ Symbol( "2", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 285, }, ], ], ), ], line: 285, }, ], ), Symbol( "]", ), ], line: 285, }, ], values: [ [ Symbol( "true", ), ], ], line: 285, column: 13, }, ], end: 1843, }, line: 285, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 286, }, ], ), Symbol( "]", ), ], line: 286, }, ], ], ), ], line: 285, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 286, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( Some( [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 292, column: 8, }, ], ), [ Symbol( "1", ), ], ), ( Some( [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ], line: 292, column: 16, }, ], ), [ Symbol( "2", ), ], ), ( Some( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"x \"", ), ], [ Symbol( "4", ), ], ], ), ], line: 292, }, ], ), [ Symbol( "3", ), ], ), ( Some( [ Symbol( "100.3", ), ], ), [ Symbol( "4", ), ], ), ( Some( [ Symbol( "4", ), ], ), [ Symbol( "5", ), ], ), ], line: 293, column: 12, }, ], ], line: 295, column: 0, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 296, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 296, }, ], ], ), ], line: 296, }, ], stop: None, initial: None, code: CodeBlock { start: 1914, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 297, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 297, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 297, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 298, }, ], ), Symbol( "]", ), ], line: 298, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 298, }, ], ], ), ], line: 297, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 299, }, ], ), Symbol( "]", ), ], line: 298, }, ], values: [ [ Symbol( "nil", ), ], ], line: 299, column: 6, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 299, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 301, }, ], ), Symbol( "]", ), ], line: 301, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 300, }, ], end: 1947, }, line: 302, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 303, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 302, }, Function { local: true, name: [ Symbol( "test", ), ], args: [ "a", ], body: CodeBlock { start: 1959, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 307, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 307, }, ], [ Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 307, }, ], ], ), ], line: 307, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 308, }, ], [ Symbol( "10", ), ], ], ), ], line: 307, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 308, }, ], [ Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 309, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 309, }, ], [ Symbol( "40", ), ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 310, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 310, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Symbol( "50", ), ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 311, }, ], [ Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 310, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 312, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 312, }, ], [ Symbol( "0", ), ], [ Symbol( "20", ), ], ], ), ], line: 312, }, ], ], ), ], line: 311, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), ], line: 313, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 313, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 313, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], [ Symbol( "20", ), ], ], ), ], line: 313, }, ], ], ), ], line: 312, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 314, }, ], [ Symbol( "1", ), ], ], ), ], line: 314, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 313, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 315, }, ], [ Symbol( "1", ), ], ], ), ], line: 315, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 314, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 316, }, ], [ Symbol( "1", ), ], ], ), ], line: 316, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 315, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 317, }, ], [ Symbol( "1", ), ], ], ), ], line: 317, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 316, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 318, }, ], [ Symbol( "1", ), ], ], ), ], line: 318, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 317, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 319, }, ], [ Symbol( "1", ), ], ], ), ], line: 319, }, Operator( ( "==", true, ), ), Symbol( "50", ), ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 320, }, ], [ Symbol( "1", ), ], ], ), ], line: 320, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 321, }, ], ], ), ], line: 321, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 322, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 322, }, ], ], ), ], line: 322, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 321, }, ], end: 2197, }, line: 323, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 323, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 325, column: 14, }, ], ], line: 325, column: 14, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 326, }, ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 327, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 327, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 326, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 327, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 329, column: 10, }, ], ], line: 329, column: 11, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 330, }, ], ], ), ], line: 329, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 330, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 331, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 333, column: 10, }, ], ], line: 333, column: 10, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 334, }, ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 335, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 335, }, ], ], ), ], line: 335, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 335, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 334, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 335, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "0", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 337, column: 9, }, ], ], line: 337, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 338, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 338, }, ], ], ), ], line: 338, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 338, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 337, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 340, }, ], [ Symbol( "1", ), ], [ Symbol( "10", ), ], ], ), ], line: 338, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 340, }, ], [ Symbol( "1", ), ], [ Symbol( "20", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 340, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 341, }, ], ], ), ], line: 341, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 342, }, ], ], ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 341, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 343, }, ], ], ), ], line: 343, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 342, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 344, }, ], ], ), ], line: 344, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 343, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 344, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "'c'", ), ], ), ( None, [ Symbol( "'d'", ), ], ), ], line: 346, column: 7, }, ], ], line: 346, column: 7, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 347, }, ], [ Symbol( "3", ), ], [ Symbol( "'a'", ), ], ], ), ], line: 346, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 348, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 347, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 349, }, ], [ Symbol( "1", ), ], ], ), ], line: 349, }, Operator( ( "==", true, ), ), Symbol( "'c'", ), ], ], ), ], line: 348, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 350, }, ], [ Symbol( "1", ), ], ], ), ], line: 350, }, Operator( ( "==", true, ), ), Symbol( "'d'", ), ], ], ), ], line: 349, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 351, }, ], [ Symbol( "1", ), ], ], ), ], line: 351, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 350, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 352, }, ], [ Symbol( "1", ), ], ], ), ], line: 352, }, Operator( ( "==", true, ), ), Symbol( "'b'", ), ], ], ), ], line: 351, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 353, }, ], [ Symbol( "1", ), ], ], ), ], line: 353, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 352, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 354, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 354, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 353, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 354, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "40", ), ], ), ], line: 356, column: 11, }, ], ], line: 356, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 357, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 357, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 357, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 356, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), ], line: 358, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 358, }, ], [ Symbol( "0", ), ], ], ), ], line: 358, }, ], ], ), ], line: 357, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 359, }, ], ), Symbol( "]", ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 358, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 360, }, ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 360, }, ], ], ), ], line: 360, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], ], ), ], line: 359, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 361, }, ], ), Symbol( "]", ), ], line: 361, }, Operator( ( "==", true, ), ), Symbol( "30", ), ], ], ), ], line: 360, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 362, }, ], [ Symbol( "2", ), ], ], ), ], line: 362, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 361, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 363, }, ], ), Symbol( "]", ), ], line: 363, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 363, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 362, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 363, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, ], values: [ [ Table { data: [], line: 366, column: 4, }, ], ], line: 367, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 2636, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 368, }, ], ), Symbol( "]", ), ], line: 368, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 368, }, ], ], line: 368, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 368, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 368, }, ], values: [ [ Symbol( "nil", ), ], ], line: 368, column: 15, }, ], end: 2652, }, line: 369, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 370, }, ], [ Symbol( "nil", ), ], ], ), ], line: 370, }, Operator( ( "==", true, ), ), Symbol( "1000", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 370, }, ], [ Symbol( "1000", ), ], ], ), ], line: 370, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 369, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 372, column: 6, }, ], ], ), ], line: 372, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 370, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 373, column: 6, }, ], [ Symbol( "nil", ), ], ], ), ], line: 373, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 372, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [], line: 375, column: 8, }, ], ], ), ], line: 375, }, ], stop: None, initial: None, code: CodeBlock { start: 2703, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "\"not here\"", ), ], ], ), ], line: 375, }, ], end: 2706, }, line: 375, column: 12, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0", ), ], step: None, code: CodeBlock { start: 2713, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 376, }, ], end: 2716, }, line: 376, column: 10, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2726, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 377, }, ], end: 2729, }, line: 377, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 377, }, ], values: [ [ Symbol( "nil", ), ], ], line: 378, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: None, code: CodeBlock { start: 2740, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 378, }, ], ], ), ], line: 378, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 378, }, ], values: [ [ Symbol( "1", ), ], ], line: 378, column: 9, }, ], end: 2750, }, line: 378, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 378, }, ], ], ), ], line: 378, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 378, }, ], values: [ [ Symbol( "nil", ), ], ], line: 379, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2769, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 379, }, ], ], ), ], line: 379, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 379, }, ], values: [ [ Symbol( "1", ), ], ], line: 379, column: 9, }, ], end: 2779, }, line: 379, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 379, }, ], ], ), ], line: 379, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 381, }, ], body: CodeBlock { start: 2788, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing precision in numeric for\"", ), ], ], ), ], line: 382, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 383, column: 5, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Symbol( "0.1", ), ], ), code: CodeBlock { start: 18, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 383, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 383, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 383, column: 5, }, ], end: 24, }, line: 383, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 383, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 383, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 383, }, ], values: [ [ Symbol( "0", ), ], ], line: 384, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "0.999999999", ), ], step: Some( [ Symbol( "0.1", ), ], ), code: CodeBlock { start: 44, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 384, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 384, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 384, column: 5, }, ], end: 50, }, line: 384, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 384, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 384, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 384, }, ], values: [ [ Symbol( "0", ), ], ], line: 385, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 70, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 385, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 385, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 385, column: 5, }, ], end: 76, }, line: 385, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 385, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 385, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 385, }, ], values: [ [ Symbol( "0", ), ], ], line: 386, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1e10", ), ], end: [ Symbol( "1e10", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 97, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 386, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 386, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 386, column: 5, }, ], end: 103, }, line: 386, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 386, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 386, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 386, }, ], values: [ [ Symbol( "0", ), ], ], line: 387, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 123, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 387, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 387, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 387, column: 5, }, ], end: 129, }, line: 387, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 387, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 387, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 387, }, ], values: [ [ Symbol( "0", ), ], ], line: 388, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "99999", ), ], end: [ Symbol( "1e5", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 150, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 388, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 388, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 388, column: 5, }, ], end: 156, }, line: 388, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 388, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 388, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 388, }, ], values: [ [ Symbol( "0", ), ], ], line: 389, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 177, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 389, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 389, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 389, column: 5, }, ], end: 183, }, line: 389, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 389, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 389, }, ], end: 2979, }, next: None, line: 390, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 390, }, ], values: [ [ Symbol( "0", ), ], ], line: 393, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "\"10\"", ), ], end: [ Symbol( "\"1\"", ), ], step: Some( [ Symbol( "\"-2\"", ), ], ), code: CodeBlock { start: 2992, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 393, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 393, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 393, column: 5, }, ], end: 2998, }, line: 393, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 393, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 393, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 393, }, Function { local: true, name: [ Symbol( "f", ), ], args: [ "n", "p", ], body: CodeBlock { start: 3016, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 402, column: 5, }, ], ], line: 402, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "p", ), ], line: 402, }, ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 402, }, ], ), Symbol( "]", ), ], line: 402, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 402, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], line: 402, column: 8, }, ], end: 22, }, line: 402, column: 22, }, Return( Some( [ [ Lambda { args: [ "_", "n", ], body: CodeBlock { start: 29, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 404, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 405, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 405, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 406, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "n", ), ], line: 406, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 406, }, ], ], ), ], line: 406, }, ], ], ), ), ], end: 20, }, next: None, line: 407, column: 1, }, ], end: 50, }, line: 408, column: 1, }, ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "n", ), ], line: 408, }, ], ], ), ), ], end: 3071, }, line: 409, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 412, column: 0, }, ForFuncLoop { iters: [ "n", "a", "b", "c", "d", ], expr: [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "3", ), ], ], ), ], line: 412, }, ], stop: None, initial: None, code: CodeBlock { start: 3093, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 413, }, ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 413, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 413, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 414, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 414, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 414, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 414, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 413, }, ], end: 3117, }, line: 415, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 416, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 415, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 416, }, ], values: [ [ Table { data: [], line: 421, column: 4, }, ], ], line: 422, column: 0, }, DoBlock( CodeBlock { start: 3128, code: [ Variable { names: [ ( "x", false, ), ( "y", false, ), ( "z", false, ), ], values: [ [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 423, }, ], ], ), ], line: 423, }, ], ], line: 423, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 424, }, ], ], ), ], line: 424, }, Operator( ( "==", true, ), ), Symbol( "'function'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 424, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 424, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 424, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 423, }, ], end: 3157, }, ), Function { local: true, name: [ Symbol( "foo", ), ], args: [ "e", "i", ], body: CodeBlock { start: 3165, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "e", ), ], line: 428, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 428, }, ], ], ), ], line: 428, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 429, }, Operator( ( "<=", true, ), ), Symbol( "10", ), ], body: CodeBlock { start: 11, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 429, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 429, }, Operator( ( "+", true, ), ), Symbol( "2", ), ], ], ), ), ], end: 20, }, next: None, line: 429, column: 14, }, ], end: 3186, }, line: 430, column: 1, }, Function { local: true, name: [ Symbol( "foo1", ), ], args: [ "e", "i", ], body: CodeBlock { start: 3194, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 433, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 433, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 433, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "e", ), ], line: 434, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 434, }, ], ], ), ], line: 433, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 435, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "e", ), Symbol( ".", ), Symbol( "n", ), ], line: 435, }, ], body: CodeBlock { start: 18, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 435, }, ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 435, }, ], ), Symbol( "]", ), ], line: 435, }, ], ], ), ), ], end: 26, }, next: None, line: 435, column: 15, }, ], end: 3221, }, line: 436, column: 1, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 438, }, ], [ Table { data: [ ( Some( [ Symbol( "__pairs", ), ], ), [ Lambda { args: [ "x", ], body: CodeBlock { start: 3232, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 438, }, ], [ Ident { expr: [ Symbol( "x", ), ], line: 438, }, ], [ Symbol( "0", ), ], ], ), ), ], end: 3239, }, line: 438, column: 18, }, ], ), ], line: 438, column: 19, }, ], ], ), ], line: 436, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 441, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 441, }, ], ], ), ], line: 441, }, ], stop: None, initial: None, code: CodeBlock { start: 3255, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 442, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 442, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 442, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 443, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 443, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 443, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 443, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 442, }, ], end: 3273, }, line: 444, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 444, }, ], values: [ [ Symbol( "5", ), ], ], line: 446, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 446, }, ], values: [ [ Symbol( "30", ), ], ], line: 447, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 447, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "10", ), ], ), ], line: 449, column: 7, }, ], ], line: 449, column: 7, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 450, }, ], [ Table { data: [ ( Some( [ Symbol( "__len", ), ], ), [ Lambda { args: [ "x", ], body: CodeBlock { start: 3302, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "x", ), Symbol( ".", ), Symbol( "n", ), ], line: 450, }, ], ], ), ), ], end: 3307, }, line: 450, column: 16, }, ], ), ( Some( [ Symbol( "__ipairs", ), ], ), [ Lambda { args: [ "x", ], body: CodeBlock { start: 3314, code: [ Return( Some( [ [ Lambda { args: [ "e", "i", ], body: CodeBlock { start: 7, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 452, }, Operator( ( "<", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "e", ), ], line: 452, }, ], body: CodeBlock { start: 6, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 452, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ), ], end: 11, }, next: None, line: 452, column: 11, }, ], end: 19, }, line: 453, column: 1, }, ], [ Ident { expr: [ Symbol( "x", ), ], line: 453, }, ], [ Symbol( "0", ), ], ], ), ), ], end: 3338, }, line: 453, column: 6, }, ], ), ], line: 453, column: 7, }, ], ], ), ], line: 449, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 453, }, ], values: [ [ Symbol( "0", ), ], ], line: 455, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 455, }, ], ], ), ], line: 455, }, ], stop: None, initial: None, code: CodeBlock { start: 3353, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 456, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 456, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 456, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 457, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 457, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 456, }, ], end: 3369, }, line: 458, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 459, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 459, }, ], ], ), ], line: 458, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"OK\"", ), ], ], ), ], line: 459, }, ]