--- source: src/main.rs expression: parsed input_file: test-data/lua5.1-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, }, IfStatement { condition: [ Ident { expr: [ Symbol( "T", ), ], line: 15, }, ], body: CodeBlock { start: 65, code: [ Variable { names: [ ( "l2", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 18, }, ], ], line: 19, column: 0, }, Function { local: true, name: [ Symbol( "log2", ), ], args: [ "x", ], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 19, }, ], ], ), ], line: 19, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "l2", ), ], line: 19, }, ], ], ), ), ], end: 25, }, line: 19, column: 16, }, Function { local: true, name: [ Symbol( "mp2", ), ], args: [ "n", ], body: CodeBlock { start: 31, 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: 22, }, ], ], ), ], line: 22, }, ], ], ), ], line: 22, }, ], ], line: 22, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 23, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "mp", ), ], line: 23, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 23, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 23, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "mp", ), ], line: 23, }, ], ), Ident { expr: [], line: 23, }, ], ], ), ], line: 22, }, Return( Some( [ [ Ident { expr: [ Symbol( "mp", ), ], line: 24, }, ], ], ), ), ], end: 66, }, line: 25, column: 1, }, Function { local: true, name: [ Symbol( "fb", ), ], args: [ "n", ], body: CodeBlock { start: 72, code: [ Variable { names: [ ( "r", false, ), ( "nn", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "int2fb", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 28, }, ], ], ), ], line: 28, }, ], ], line: 28, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 29, }, Operator( ( "<", true, ), ), Symbol( "256", ), ], ], ), ], line: 28, }, Return( Some( [ [ Ident { expr: [ Symbol( "nn", ), ], line: 30, }, ], ], ), ), ], end: 92, }, line: 31, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "1", ), ], ], line: 35, column: 0, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), ], ], line: 36, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 36, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 36, }, ], body: CodeBlock { start: 107, code: [ Variable { names: [ ( "n", false, ), ], values: [ [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 37, }, ], ], ), ], line: 37, }, ], ], line: 37, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 38, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 38, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 38, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 38, }, Operator( ( "*", true, ), ), Symbol( "1.125", ), ], ], ), ], line: 37, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 38, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 39, }, Operator( ( "*", true, ), ), Symbol( "1.3", ), ], ], ), ], line: 39, }, ], ], line: 39, column: 10, }, ], end: 137, }, line: 40, column: 1, }, Function { local: true, name: [ Symbol( "check", ), ], args: [ "t", "na", "nh", ], body: CodeBlock { start: 147, code: [ Variable { names: [ ( "a", false, ), ( "h", false, ), ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "querytab", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 44, }, ], ], ), ], line: 44, }, ], ], line: 45, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 45, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "na", ), ], line: 45, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "h", ), ], line: 45, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "nh", ), ], line: 45, }, ], body: CodeBlock { start: 20, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "na", ), ], line: 46, }, ], [ Ident { expr: [ Symbol( "nh", ), ], line: 46, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 46, }, ], [ Ident { expr: [ Symbol( "h", ), ], line: 46, }, ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 46, }, ], end: 35, }, next: None, line: 48, column: 1, }, ], end: 183, }, line: 49, column: 1, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "40", ), ], ], line: 53, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "'return {'", ), ], ], line: 54, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 54, }, ], step: None, code: CodeBlock { start: 198, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 55, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 55, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 55, }, Operator( ( "..", true, ), ), Symbol( "','", ), ], ], line: 56, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 56, }, ], ], line: 57, column: 0, }, ForLoop { iter: "k", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 57, }, ], step: None, code: CodeBlock { start: 18, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadstring", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 58, }, Operator( ( "..", true, ), ), Symbol( "'}'", ), ], ], ), Call( [], ), ], line: 58, }, ], ], line: 58, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 59, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 59, }, ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 60, }, ], [ Ident { expr: [ Symbol( "fb", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 60, }, ], ], ), ], line: 60, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 60, }, ], ], ), ], line: 60, }, ], ], ), ], line: 59, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 60, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%sa%d=%d,'", ), ], [ Ident { expr: [ Symbol( "s", ), ], line: 61, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 61, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 61, }, ], ], ), ], line: 61, }, ], ], line: 61, column: 14, }, ], end: 65, }, line: 62, column: 1, }, ], end: 264, }, line: 63, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 67, column: 5, }, ], ], line: 68, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 68, }, ], step: None, code: CodeBlock { start: 276, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 68, }, ], ), Symbol( "]", ), ], line: 68, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 68, }, ], ], line: 68, column: 6, }, ], end: 283, }, line: 68, column: 14, }, ForLoop { iter: "k", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 69, }, ], step: None, code: CodeBlock { start: 290, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 70, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 70, }, ], ], ), ], line: 70, }, ], ), ], line: 70, column: 13, }, ], ], line: 70, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 71, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 71, }, ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 72, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 72, }, ], [ Symbol( "0", ), ], ], ), ], line: 71, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 72, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 73, }, ], [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "k", ), ], line: 73, }, ], ], ), ], line: 73, }, ], ), ], line: 73, column: 18, }, ], ], line: 73, column: 18, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 74, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 74, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], [ Symbol( "0", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 75, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 75, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], ], ), ], line: 74, }, ], end: 356, }, line: 76, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 76, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Symbol( "130", ), ], ], line: 83, column: 0, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 83, column: 5, }, ], ], line: 83, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 83, }, ], values: [ [ Symbol( "1", ), ], ], line: 83, column: 13, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 83, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 83, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 83, }, ], values: [ [ Table { data: [], line: 84, column: 4, }, ], ], line: 84, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 84, }, ], values: [ [ Symbol( "1", ), ], ], line: 84, column: 12, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 84, }, ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 84, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 84, }, ], values: [ [ Symbol( "1", ), ], ], line: 84, column: 28, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 84, }, ], [ Symbol( "0", ), ], [ Symbol( "2", ), ], ], ), ], line: 84, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 84, }, ], values: [ [ Table { data: [], line: 85, column: 4, }, ], ], line: 85, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 85, }, ], values: [ [ Symbol( "1", ), ], ], line: 85, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 85, }, ], values: [ [ Symbol( "1", ), ], ], line: 85, column: 19, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 85, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 85, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 85, }, ], values: [ [ Table { data: [], line: 86, column: 4, }, ], ], line: 87, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 87, }, ], step: None, code: CodeBlock { start: 457, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 88, }, ], ), Symbol( "]", ), ], line: 88, }, ], values: [ [ Symbol( "1", ), ], ], line: 88, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 89, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 89, }, ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 90, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 90, }, ], ], ), ], line: 90, }, ], [ Symbol( "0", ), ], ], ), ], line: 89, }, ], end: 482, }, line: 91, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 91, }, ], values: [ [ Table { data: [], line: 93, column: 4, }, ], ], line: 94, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 94, }, ], step: None, code: CodeBlock { start: 493, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "'a'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 95, }, ], ), Symbol( "]", ), ], line: 95, }, ], values: [ [ Symbol( "1", ), ], ], line: 95, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 97, }, ], [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 97, }, ], ], ), ], line: 97, }, ], ], ), ], line: 96, }, ], end: 520, }, line: 98, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 98, }, ], values: [ [ Table { data: [], line: 100, column: 4, }, ], ], line: 101, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "16", ), ], step: None, code: CodeBlock { start: 531, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 101, }, ], ), Symbol( "]", ), ], line: 101, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 101, }, ], ], line: 101, column: 6, }, ], end: 538, }, line: 101, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 102, }, ], [ Symbol( "16", ), ], [ Symbol( "0", ), ], ], ), ], line: 101, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "11", ), ], step: None, code: CodeBlock { start: 553, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 103, }, ], ), Symbol( "]", ), ], line: 103, }, ], values: [ [ Symbol( "nil", ), ], ], line: 103, column: 6, }, ], end: 560, }, line: 103, column: 14, }, ForLoop { iter: "i", start: [ Symbol( "30", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 567, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 104, }, ], ), Symbol( "]", ), ], line: 104, }, ], values: [ [ Symbol( "nil", ), ], ], line: 104, column: 6, }, ], end: 574, }, line: 104, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 105, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 104, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10", ), ], ), Symbol( "]", ), ], line: 105, }, ], values: [ [ Symbol( "1", ), ], ], line: 107, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "30", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 595, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 107, }, ], ), Symbol( "]", ), ], line: 107, }, ], values: [ [ Symbol( "nil", ), ], ], line: 107, column: 6, }, ], end: 602, }, line: 107, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 108, }, ], [ Symbol( "0", ), ], [ Symbol( "8", ), ], ], ), ], line: 107, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "14", ), ], step: None, code: CodeBlock { start: 617, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 109, }, ], ), Symbol( "]", ), ], line: 109, }, ], values: [ [ Symbol( "nil", ), ], ], line: 109, column: 6, }, ], end: 624, }, line: 109, column: 14, }, ForLoop { iter: "i", start: [ Symbol( "30", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 631, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 110, }, ], ), Symbol( "]", ), ], line: 110, }, ], values: [ [ Symbol( "nil", ), ], ], line: 110, column: 6, }, ], end: 638, }, line: 110, column: 14, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 111, }, ], [ Symbol( "0", ), ], [ Symbol( "4", ), ], ], ), ], line: 110, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 114, }, ], step: None, code: CodeBlock { start: 653, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 115, column: 5, }, ], ], line: 116, column: 0, }, ForLoop { iter: "i", start: [ Ident { expr: [ Symbol( "i", ), ], line: 116, }, ], 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: 116, }, ], ), Symbol( "]", ), ], line: 116, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 116, }, ], ], line: 116, column: 6, }, ], end: 22, }, line: 116, column: 17, }, 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: 687, }, line: 118, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "lim", ), ], line: 118, }, ], values: [ [ Symbol( "35", ), ], ], line: 122, column: 0, }, Function { local: false, name: [ Symbol( "foo", ), ], args: [ "n", "...", ], body: CodeBlock { start: 697, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 123, column: 6, }, ], ], line: 123, column: 6, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 124, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 124, }, ], [ Symbol( "0", ), ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Symbol( "...", ), ], ], ), ], line: 125, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 125, }, ], ], ), ], line: 124, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 126, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 125, }, ], values: [ [ Symbol( "true", ), ], ], line: 126, column: 8, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 127, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 127, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 127, }, ], [ Symbol( "0", ), ], ], ), ], line: 126, }, Alter { names: [ Ident { expr: [ Symbol( "arg", ), Symbol( ".", ), Symbol( "x", ), ], line: 127, }, ], values: [ [ Symbol( "true", ), ], ], line: 128, column: 5, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Ident { expr: [ Symbol( "arg", ), ], line: 129, }, ], [ Ident { expr: [ Symbol( "mp2", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 129, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 129, }, ], [ Symbol( "1", ), ], ], ), ], line: 128, }, ], end: 762, }, line: 130, column: 1, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 131, column: 5, }, ], ], line: 132, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "lim", ), ], line: 132, }, ], step: None, code: CodeBlock { start: 774, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 132, }, ], ), Symbol( "]", ), ], line: 132, }, ], values: [ [ Symbol( "true", ), ], ], line: 132, column: 7, }, Ident { expr: [ Symbol( "foo", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 132, }, ], [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 132, }, ], ], ), ], line: 132, }, ], ], ), ], line: 132, }, ], end: 791, }, line: 132, column: 24, }, ], end: 857, }, next: None, line: 134, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [], line: 138, column: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ], line: 139, column: 6, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 138, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 140, column: 8, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 141, column: 10, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Table { data: [ ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 142, column: 12, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 142, }, Variable { names: [ ( "nofind", false, ), ], values: [ [ Table { data: [], line: 146, column: 5, }, ], ], line: 146, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 146, }, Ident { expr: [ Symbol( "b", ), ], line: 148, }, Ident { expr: [ Symbol( "c", ), ], line: 148, }, ], values: [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "3", ), ], ], line: 148, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 148, }, Ident { expr: [ Symbol( "b", ), ], line: 149, }, Ident { expr: [ Symbol( "c", ), ], line: 149, }, ], values: [ [ Symbol( "nil", ), ], ], line: 151, column: 0, }, Function { local: true, name: [ Symbol( "find", ), ], args: [ "name", ], body: CodeBlock { start: 944, code: [ Variable { names: [ ( "n", false, ), ( "v", false, ), ], values: [], line: 152, column: 4, }, WhileLoop { condition: [ Symbol( "1", ), ], body: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 154, }, Ident { expr: [ Symbol( "v", ), ], line: 154, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 154, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 154, }, ], ], ), ], line: 154, }, ], ], line: 155, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "n", ), ], line: 155, }, ], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 155, }, ], ], ), ), ], end: 17, }, next: None, line: 155, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 156, }, Operator( ( "~=", true, ), ), Symbol( "nil", ), ], ], ), ], line: 155, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 157, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 157, }, ], body: CodeBlock { start: 28, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 157, }, ], ], ), ), ], end: 31, }, next: None, line: 157, column: 8, }, ], end: 39, }, line: 158, column: 1, }, ], end: 984, }, line: 159, column: 1, }, Function { local: true, name: [ Symbol( "find1", ), ], args: [ "name", ], body: CodeBlock { start: 990, code: [ ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 162, }, ], ], ), ], line: 162, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 163, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "name", ), ], line: 163, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 163, }, ], ], ), ), ], end: 8, }, next: None, line: 163, column: 8, }, ], end: 19, }, line: 164, column: 1, }, Return( Some( [ [ Symbol( "nil", ), ], ], ), ), ], end: 1012, }, line: 166, column: 1, }, DoBlock( CodeBlock { start: 1013, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 7, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 169, }, ], ), Symbol( "]", ), ], line: 169, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 169, }, ], ], line: 169, column: 6, }, ], end: 14, }, line: 169, column: 14, }, ], end: 1028, }, ), Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 170, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "x", ), ], ), [ Symbol( "90", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "8", ), ], ), ( Some( [ Symbol( "z", ), ], ), [ Symbol( "23", ), ], ), ], line: 173, column: 15, }, ], ], line: 173, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreach", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 174, }, ], [ Lambda { args: [ "i", "v", ], body: CodeBlock { start: 1057, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 174, }, Operator( ( "==", true, ), ), Symbol( "'x'", ), ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 174, }, ], ], ), ), ], end: 8, }, next: None, line: 174, column: 8, }, ], end: 1066, }, line: 174, column: 23, }, ], ], ), ], line: 174, }, Operator( ( "==", true, ), ), Symbol( "90", ), ], ], ), ], line: 173, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreach", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 175, }, ], [ Lambda { args: [ "i", "v", ], body: CodeBlock { start: 1084, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 175, }, ], ], ), ), ], end: 8, }, next: None, line: 175, column: 8, }, ], end: 1093, }, line: 175, column: 23, }, ], ], ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreach", ), Call( [ [ Table { data: [], line: 176, column: 6, }, ], [ Ident { expr: [ Symbol( "error", ), ], line: 176, }, ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreachi", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "x", ), ], ), [ Symbol( "10", ), ], ), ( Some( [ Symbol( "y", ), ], ), [ Symbol( "20", ), ], ), ], line: 178, column: 13, }, ], [ Ident { expr: [ Symbol( "error", ), ], line: 178, }, ], ], ), ], line: 176, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "1", ), ], ), ], line: 179, column: 8, }, ], ], line: 179, column: 8, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreachi", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "3", ), ], ), ], line: 180, column: 9, }, ], [ Lambda { args: [ "i", "v", ], body: CodeBlock { start: 1146, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 181, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 181, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "v", ), ], line: 181, }, ], ], ), ], line: 181, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 181, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 182, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 182, column: 9, }, ], end: 1167, }, line: 183, column: 1, }, ], ], ), ], line: 179, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 183, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "50", ), ], ), ], line: 184, column: 13, }, ], ], line: 184, column: 13, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreachi", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 185, }, ], [ Lambda { args: [ "i", "v", ], body: CodeBlock { start: 1193, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 185, }, ], ), Symbol( "]", ), ], line: 185, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 185, }, ], ], ), ], line: 185, }, ], end: 1203, }, line: 185, column: 22, }, ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreachi", ), Call( [ [ Table { data: [ ( None, [ Symbol( "'a'", ), ], ), ( None, [ Symbol( "'b'", ), ], ), ( None, [ Symbol( "'c'", ), ], ), ], line: 186, column: 13, }, ], [ Lambda { args: [ "i", "v", ], body: CodeBlock { start: 1224, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 187, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 187, }, ], ], ), ), ], end: 8, }, next: None, line: 187, column: 8, }, ], end: 1233, }, line: 188, column: 1, }, ], ], ), ], line: 186, }, Operator( ( "==", true, ), ), Symbol( "'b'", ), ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 191, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 191, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 191, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 191, }, ], ], ), ], line: 188, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"print\"", ), ], ), Symbol( "]", ), ], line: 192, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"print\"", ), ], ], ), ], line: 192, }, ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), ], line: 193, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"assert\"", ), ], ], ), ], line: 193, }, ], ], ), ], line: 192, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 194, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 194, }, ], ], ), ], line: 193, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "find1", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 195, }, ], ], ), ], line: 194, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"ret\"", ), Operator( ( "..", true, ), ), Symbol( "\"urn\"", ), ], ), Symbol( "]", ), ], line: 195, }, ], values: [ [ Symbol( "nil", ), ], ], line: 196, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "nofind", ), ], line: 197, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"return\"", ), ], ], ), ], line: 197, }, ], ], ), ], line: 196, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Symbol( "\"xxx\"", ), ], ), Symbol( "]", ), ], line: 197, }, ], values: [ [ Symbol( "1", ), ], ], line: 198, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "xxx", ), ], line: 199, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "find", ), Call( [ [ Symbol( "\"xxx\"", ), ], ], ), ], line: 199, }, ], ], ), ], line: 198, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 199, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 200, }, ], values: [ [ Table { data: [], line: 202, column: 4, }, ], ], line: 203, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 1338, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mod", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 204, }, ], [ Symbol( "10", ), ], ], ), ], line: 204, }, 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: 205, }, ], ), Symbol( "]", ), ], line: 205, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 205, }, ], ], line: 205, column: 8, }, ], end: 21, }, next: None, line: 206, column: 1, }, ], end: 1360, }, line: 207, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 207, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 209, column: 7, }, ], ], line: 210, column: 0, }, ForFuncLoop { iters: [ "i", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 210, }, ], ], ), ], line: 210, }, ], stop: None, initial: None, code: CodeBlock { start: 1377, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 211, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 211, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 211, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 212, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 212, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 212, }, ], ), Symbol( "]", ), ], line: 212, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 212, }, ], ], ), ], line: 211, }, ], end: 1400, }, line: 213, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "n", ), ], line: 214, }, Operator( ( "==", true, ), ), Symbol( "9000", ), ], ], ), ], line: 213, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 214, }, ], values: [ [ Symbol( "nil", ), ], ], line: 218, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10000", ), ], step: None, code: CodeBlock { start: 1418, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 218, }, ], ), Symbol( "]", ), ], line: 218, }, ], values: [ [ Symbol( "nil", ), ], ], line: 218, column: 6, }, ], end: 1425, }, line: 218, column: 14, }, DoBlock( CodeBlock { start: 1426, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 221, column: 5, }, ], ], line: 222, column: 0, }, Variable { names: [ ( "preserve", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "io", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "string", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "debug", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "os", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "coroutine", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "table", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "math", ), ], ), [ Symbol( "1", ), ], ), ], line: 223, column: 12, }, ], ], line: 224, column: 0, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 224, }, ], ], ), ], line: 224, }, ], stop: None, initial: None, code: CodeBlock { start: 47, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 224, }, ], ), Symbol( "]", ), ], line: 224, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 224, }, ], ], line: 224, column: 6, }, ], end: 54, }, line: 224, column: 17, }, ForFuncLoop { iters: [ "n", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 225, }, ], ], ), ], line: 225, }, ], stop: None, initial: None, code: CodeBlock { start: 64, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "preserve", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 226, }, ], ), Symbol( "]", ), ], line: 226, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 226, }, ], ], ), ], line: 226, }, Operator( ( "~=", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 227, }, ], [ Symbol( "\"^[%u_]\"", ), ], ], ), ], line: 227, }, ], body: CodeBlock { start: 24, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 228, }, ], ), Symbol( "]", ), ], line: 228, }, ], values: [ [ Symbol( "nil", ), ], ], line: 228, column: 6, }, ], end: 31, }, next: None, line: 229, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 229, }, ], end: 99, }, line: 231, column: 1, }, ], end: 1526, }, ), Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 1531, code: [ Variable { names: [ ( "getfenv", false, ), ( "setfenv", false, ), ( "assert", false, ), ( "next", false, ), ], values: [ [ Ident { expr: [ Symbol( "getfenv", ), ], line: 235, }, ], [ Ident { expr: [ Symbol( "setfenv", ), ], line: 236, }, ], [ Ident { expr: [ Symbol( "assert", ), ], line: 236, }, ], [ Ident { expr: [ Symbol( "next", ), ], line: 236, }, ], ], line: 237, column: 0, }, Variable { names: [ ( "n", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "gl1", ), ], ), [ Symbol( "3", ), ], ), ], line: 237, column: 8, }, ], ], line: 237, column: 8, }, Ident { expr: [ Symbol( "setfenv", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 238, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 238, }, ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "getfenv", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 239, }, ], ], ), ], line: 239, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "getfenv", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 239, }, ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "getfenv", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 240, }, ], ], ), ], line: 240, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 240, }, ], ], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 241, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "gl1", ), ], line: 241, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 240, }, Alter { names: [ Ident { expr: [ Symbol( "gl1", ), ], line: 241, }, ], values: [ [ Symbol( "nil", ), ], ], line: 242, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "gl", ), ], line: 242, }, ], values: [ [ Symbol( "1", ), ], ], line: 243, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), Symbol( ".", ), Symbol( "gl", ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 244, }, ], [ Symbol( "'gl'", ), ], ], ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 243, }, ], end: 1616, }, line: 245, column: 1, }, Ident { expr: [ Symbol( "foo", ), Call( [], ), ], line: 245, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 246, }, Function { local: true, name: [ Symbol( "checknext", ), ], args: [ "a", ], body: CodeBlock { start: 1627, code: [ Variable { names: [ ( "b", false, ), ], values: [ [ Table { data: [], line: 251, column: 5, }, ], ], line: 251, column: 5, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "foreach", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 252, }, ], [ Lambda { args: [ "k", "v", ], body: CodeBlock { start: 17, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 252, }, ], ), Symbol( "]", ), ], line: 252, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 252, }, ], ], line: 252, column: 6, }, ], end: 24, }, line: 252, column: 19, }, ], ], ), ], line: 251, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 253, }, ], ], ), ], line: 253, }, ], stop: None, initial: None, code: CodeBlock { start: 35, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 253, }, ], ), Symbol( "]", ), ], line: 253, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 253, }, ], ], ), ], line: 253, }, ], end: 45, }, line: 253, column: 20, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 254, }, ], ], ), ], line: 254, }, ], stop: None, initial: None, code: CodeBlock { start: 55, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 254, }, ], ), Symbol( "]", ), ], line: 254, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 254, }, ], ], ), ], line: 254, }, ], end: 65, }, line: 254, column: 20, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 254, }, ], values: [ [ Table { data: [], line: 255, column: 4, }, ], ], line: 256, column: 0, }, DoBlock( CodeBlock { start: 70, code: [ Variable { names: [ ( "k", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 256, }, ], ], ), ], line: 256, }, ], ], line: 256, column: 10, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "k", ), ], line: 256, }, ], body: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 256, }, ], ), Symbol( "]", ), ], line: 256, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 256, }, ], ], line: 256, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "k", ), ], line: 256, }, Ident { expr: [ Symbol( "v", ), ], line: 256, }, ], values: [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 256, }, ], [ Ident { expr: [ Symbol( "k", ), ], line: 256, }, ], ], ), ], line: 256, }, ], ], line: 256, column: 17, }, ], end: 31, }, line: 256, column: 31, }, ], end: 102, }, ), ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 257, }, ], ], ), ], line: 257, }, ], stop: None, initial: None, code: CodeBlock { start: 112, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 257, }, ], ), Symbol( "]", ), ], line: 257, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 257, }, ], ], ), ], line: 257, }, ], end: 122, }, line: 257, column: 20, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 258, }, ], ], ), ], line: 258, }, ], stop: None, initial: None, code: CodeBlock { start: 132, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 258, }, ], ), Symbol( "]", ), ], line: 258, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 258, }, ], ], ), ], line: 258, }, ], end: 142, }, line: 258, column: 20, }, ], end: 1770, }, line: 259, 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: 261, column: 16, }, ], ], ), ], line: 259, }, 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: 262, column: 18, }, ], ], ), ], line: 261, }, 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: 263, column: 20, }, ], ], ), ], line: 262, }, 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: 264, column: 22, }, ], ], ), ], line: 263, }, 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: 265, column: 24, }, ], ], ), ], line: 264, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Table { data: [], line: 267, column: 7, }, ], ], ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), [ Symbol( "2", ), ], ), ], line: 268, column: 13, }, ], ], ), ], line: 268, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "nil", ), ], ), ( None, [ Symbol( "nil", ), ], ), ], line: 269, column: 16, }, ], ], ), ], line: 269, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 268, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 1922, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 271, column: 5, }, ], ], line: 272, column: 0, }, ForLoop { iter: "j", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "i", ), ], line: 272, }, ], step: None, code: CodeBlock { start: 12, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "j", ), ], line: 272, }, ], ), Symbol( "]", ), ], line: 272, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 272, }, ], ], line: 272, column: 6, }, ], end: 19, }, line: 272, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 273, }, ], ], ), ], line: 273, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 273, }, ], ], ), ], line: 272, }, ], end: 1953, }, line: 274, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [], line: 277, column: 7, }, ], ], ), ], line: 277, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 274, }, 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( "0", ), ], ], ), ], line: 277, }, 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: 279, column: 18, }, ], ], ), ], line: 279, }, Operator( ( "==", true, ), ), Symbol( "24.5", ), ], ], ), ], line: 278, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "maxn", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "1000", ), ], ), [ Symbol( "true", ), ], ), ], line: 280, column: 12, }, ], ], ), ], line: 280, }, Operator( ( "==", true, ), ), Symbol( "1000", ), ], ], ), ], line: 279, }, 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: 281, }, ], ), [ Ident { expr: [ Symbol( "print", ), ], line: 281, }, ], ), ], line: 281, column: 22, }, ], ], ), ], line: 281, }, Operator( ( "==", true, ), ), Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 281, }, ], ], ), ], line: 280, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 281, }, ], values: [ [ Table { data: [], line: 285, column: 4, }, ], ], line: 286, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 2054, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pow", ), Call( [ [ Symbol( "2", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 286, }, ], ], ), ], line: 286, }, ], ), Symbol( "]", ), ], line: 286, }, ], values: [ [ Symbol( "true", ), ], ], line: 286, column: 13, }, ], end: 2068, }, line: 286, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 287, }, ], ], ), ], line: 287, }, ], ), Symbol( "]", ), ], line: 287, }, ], ], ), ], line: 286, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"+\"", ), ], ], ), ], line: 287, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( Some( [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ], line: 293, column: 8, }, ], ), [ Symbol( "1", ), ], ), ( Some( [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ], line: 293, column: 16, }, ], ), [ Symbol( "2", ), ], ), ( Some( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"x \"", ), ], [ Symbol( "4", ), ], ], ), ], line: 293, }, ], ), [ Symbol( "3", ), ], ), ( Some( [ Symbol( "100.3", ), ], ), [ Symbol( "4", ), ], ), ( Some( [ Symbol( "4", ), ], ), [ Symbol( "5", ), ], ), ], line: 294, column: 12, }, ], ], line: 296, column: 0, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 297, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 297, }, ], ], ), ], line: 297, }, ], stop: None, initial: None, code: CodeBlock { start: 2143, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 298, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 298, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 298, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 299, }, ], ), Symbol( "]", ), ], line: 299, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 299, }, ], ], ), ], line: 298, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 300, }, ], ), Symbol( "]", ), ], line: 299, }, ], values: [ [ Symbol( "nil", ), ], ], line: 300, column: 6, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 300, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "k", ), ], line: 302, }, ], ), Symbol( "]", ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 301, }, ], end: 2176, }, line: 303, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 304, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 303, }, Function { local: true, name: [ Symbol( "test", ), ], args: [ "a", ], body: CodeBlock { start: 2188, code: [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 308, }, ], [ Symbol( "10", ), ], ], ), ], line: 308, }, 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, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 310, }, ], ], ), ], 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( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 312, }, ], [ Symbol( "1", ), ], ], ), ], line: 312, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 311, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 313, }, ], [ Symbol( "1", ), ], ], ), ], line: 313, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], 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, ), ), Symbol( "10", ), ], ], ), ], 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, ), ), Symbol( "20", ), ], ], ), ], 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( "40", ), ], ], ), ], 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( "50", ), ], ], ), ], 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( "nil", ), ], ], ), ], line: 317, }, ], end: 2351, }, line: 319, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 319, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 321, column: 14, }, ], ], line: 321, column: 14, }, Ident { expr: [ Symbol( "test", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 322, }, ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 323, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), Symbol( "]", ), ], line: 323, }, Operator( ( "==", true, ), ), Symbol( "\"ban\"", ), ], ], ), ], line: 322, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 323, }, ], values: [ [ Table { data: [ ( Some( [ Operator( ( "-", false, ), ), Symbol( "7", ), ], ), [ Symbol( "\"ban\"", ), ], ), ], line: 325, column: 10, }, ], ], line: 325, column: 11, }, 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( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 327, }, ], ], ), ], 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, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 330, }, ], [ Symbol( "1", ), ], [ Symbol( "10", ), ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 330, }, ], [ Symbol( "1", ), ], [ Symbol( "20", ), ], ], ), ], line: 330, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 330, }, ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 330, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 331, }, ], ], ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 330, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 332, }, ], ], ), ], line: 332, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 331, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 333, }, ], ], ), ], line: 333, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 332, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 333, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "'c'", ), ], ), ( None, [ Symbol( "'d'", ), ], ), ], line: 335, column: 7, }, ], ], line: 335, column: 7, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 336, }, ], [ Symbol( "3", ), ], [ Symbol( "'a'", ), ], ], ), ], line: 335, }, Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "insert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 337, }, ], [ Symbol( "'b'", ), ], ], ), ], 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, ), ), Symbol( "'c'", ), ], ], ), ], 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, ), ), Symbol( "'d'", ), ], ], ), ], 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( "'a'", ), ], ], ), ], 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( "'b'", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 342, }, ], ], ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "n", ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 341, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"+\"", ), ], ], ), ], line: 342, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 343, }, ], values: [ [ Table { data: [], line: 345, column: 4, }, ], ], line: 346, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 2601, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 347, }, ], ), Symbol( "]", ), ], line: 347, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 347, }, ], ], line: 347, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 347, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 347, }, ], values: [ [ Symbol( "nil", ), ], ], line: 347, column: 15, }, ], end: 2617, }, line: 348, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 349, }, ], [ Symbol( "nil", ), ], ], ), ], line: 349, }, Operator( ( "==", true, ), ), Symbol( "1000", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "next", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 349, }, ], [ Symbol( "1000", ), ], ], ), ], line: 349, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 348, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 351, column: 6, }, ], ], ), ], line: 351, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 349, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "next", ), Call( [ [ Table { data: [], line: 352, column: 6, }, ], [ Symbol( "nil", ), ], ], ), ], line: 352, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 351, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [], line: 354, column: 8, }, ], ], ), ], line: 354, }, ], stop: None, initial: None, code: CodeBlock { start: 2668, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "\"not here\"", ), ], ], ), ], line: 354, }, ], end: 2671, }, line: 354, column: 12, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0", ), ], step: None, code: CodeBlock { start: 2678, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 355, }, ], end: 2681, }, line: 355, column: 10, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2691, code: [ Ident { expr: [ Symbol( "error", ), Call( [ [ Symbol( "'not here'", ), ], ], ), ], line: 356, }, ], end: 2694, }, line: 356, column: 13, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 356, }, ], values: [ [ Symbol( "nil", ), ], ], line: 357, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: None, code: CodeBlock { start: 2705, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 357, }, ], ], ), ], line: 357, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 357, }, ], values: [ [ Symbol( "1", ), ], ], line: 357, column: 9, }, ], end: 2715, }, line: 357, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 357, }, ], ], ), ], line: 357, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 357, }, ], values: [ [ Symbol( "nil", ), ], ], line: 358, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2734, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 358, }, ], ], ), ], line: 358, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 358, }, ], values: [ [ Symbol( "1", ), ], ], line: 358, column: 9, }, ], end: 2744, }, line: 358, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 358, }, ], ], ), ], line: 358, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 358, }, ], values: [ [ Symbol( "0", ), ], ], line: 360, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "1", ), ], step: Some( [ Symbol( "0.1", ), ], ), code: CodeBlock { start: 2762, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 360, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 360, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 360, column: 5, }, ], end: 2768, }, line: 360, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 360, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 360, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 360, }, ], values: [ [ Symbol( "0", ), ], ], line: 363, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "0.999999999", ), ], step: Some( [ Symbol( "0.1", ), ], ), code: CodeBlock { start: 2788, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 363, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 363, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 363, column: 5, }, ], end: 2794, }, line: 363, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 363, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 363, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 363, }, ], values: [ [ Symbol( "0", ), ], ], line: 364, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 2814, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 364, column: 5, }, ], end: 2820, }, line: 364, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 364, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 364, }, ], values: [ [ Symbol( "0", ), ], ], line: 365, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1e10", ), ], end: [ Symbol( "1e10", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2841, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 365, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 365, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 365, column: 5, }, ], end: 2847, }, line: 365, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 365, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 365, }, ], values: [ [ Symbol( "0", ), ], ], line: 366, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Symbol( "1", ), ], ), code: CodeBlock { start: 2867, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 366, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 366, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 366, column: 5, }, ], end: 2873, }, line: 366, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 366, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 366, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 366, }, ], values: [ [ Symbol( "0", ), ], ], line: 367, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "99999", ), ], end: [ Symbol( "1e5", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2894, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 367, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 367, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 367, column: 5, }, ], end: 2900, }, line: 367, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 367, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 367, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 367, }, ], values: [ [ Symbol( "0", ), ], ], line: 368, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "0.99999", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2921, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 368, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 368, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 368, column: 5, }, ], end: 2927, }, line: 368, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 368, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 368, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 368, }, ], values: [ [ Symbol( "0", ), ], ], line: 371, column: 4, }, ForLoop { iter: "i", start: [ Symbol( "\"10\"", ), ], end: [ Symbol( "\"1\"", ), ], step: Some( [ Symbol( "\"-2\"", ), ], ), code: CodeBlock { start: 2947, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 371, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 371, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 371, column: 5, }, ], end: 2953, }, line: 371, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 371, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 371, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 371, }, Function { local: true, name: [ Symbol( "f", ), ], args: [ "n", "p", ], body: CodeBlock { start: 2971, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 380, column: 5, }, ], ], line: 380, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "p", ), ], line: 380, }, ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 380, }, ], ), Symbol( "]", ), ], line: 380, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 380, }, Operator( ( "*", true, ), ), Symbol( "10", ), ], ], line: 380, column: 8, }, ], end: 22, }, line: 380, column: 22, }, Return( Some( [ [ Lambda { args: [ "_", "n", ], body: CodeBlock { start: 29, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 382, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 383, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 383, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 384, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "n", ), ], line: 384, }, ], [ Ident { expr: [ Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 384, }, ], ], ), ], line: 384, }, ], ], ), ), ], end: 18, }, next: None, line: 385, column: 1, }, ], end: 48, }, line: 386, column: 1, }, ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "n", ), ], line: 386, }, ], ], ), ), ], end: 3024, }, line: 387, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 390, column: 0, }, ForFuncLoop { iters: [ "n", "a", "b", "c", "d", ], expr: [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "3", ), ], ], ), ], line: 390, }, ], stop: None, initial: None, code: CodeBlock { start: 3046, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 391, }, ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 391, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 391, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 392, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 392, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 392, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 392, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 391, }, ], end: 3070, }, line: 393, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 394, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 393, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"OK\"", ), ], ], ), ], line: 394, }, ]