--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/heavy.lua --- [ Function { local: true, name: [ Symbol( "teststring", ), ], args: [], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"creating a string too long\"", ), ], ], ), ], line: 5, }, DoBlock( CodeBlock { start: 5, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "\"x\"", ), ], ], line: 8, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 14, code: [ WhileLoop { condition: [ Symbol( "true", ), ], body: CodeBlock { start: 3, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 10, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 10, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 13, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 15, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 16, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 19, }, ], ], line: 19, column: 20, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"string with %d bytes\"", ), ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 20, }, ], ], ), ], line: 20, }, ], ], ), ], line: 19, }, ], end: 217, }, line: 21, column: 1, }, ], end: 232, }, line: 22, column: 1, }, ], ], ), ], line: 8, }, ], ], line: 22, column: 2, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 23, }, Operator( ( "and", true, ), ), Expr( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 24, }, ], [ Symbol( "\"string length overflow\"", ), ], ], ), ], line: 24, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 25, }, ], [ Symbol( "\"not enough memory\"", ), ], ], ), ], line: 24, }, ], ), Ident { expr: [], line: 25, }, ], ], ), ], line: 22, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"string length overflow with \"", ), Operator( ( "..", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 26, }, Operator( ( "*", true, ), ), Symbol( "100", ), ], ], ), ], line: 25, }, ], end: 273, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 27, }, ], end: 283, }, line: 29, column: 1, }, Function { local: true, name: [ Symbol( "loadrep", ), ], args: [ "x", "what", ], body: CodeBlock { start: 291, code: [ Variable { names: [ ( "p", false, ), ], values: [ [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "20", ), ], ], line: 33, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 33, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 33, }, ], ], ), ], line: 33, }, ], ], line: 34, column: 0, }, Variable { names: [ ( "count", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 35, column: 0, }, Function { local: true, name: [ Symbol( "f", ), ], args: [], body: CodeBlock { start: 26, code: [ Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 36, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 36, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 36, }, ], ], line: 37, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "count", ), ], line: 37, }, Operator( ( "%", true, ), ), Expr( [ Symbol( "0x80", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 37, }, ], ), Ident { expr: [], line: 37, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 16, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"(\"", ), ], [ Ident { expr: [ Symbol( "count", ), ], line: 38, }, Operator( ( "//", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "20", ), ], [ Symbol( "\" M)\"", ), ], ], ), ], line: 38, }, ], end: 33, }, next: None, line: 39, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "s", ), ], line: 40, }, ], ], ), ), ], end: 62, }, line: 41, column: 1, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 42, }, ], [ Symbol( "\"=big\"", ), ], ], ), ], line: 42, }, ], ], line: 42, column: 11, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\nmemory: \"", ), ], [ Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "'count'", ), ], ], ), ], line: 43, }, Operator( ( "*", true, ), ), Symbol( "1024", ), ], ], ), ], line: 42, }, Alter { names: [ Ident { expr: [ Symbol( "msg", ), ], line: 43, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 44, }, ], [ Symbol( "\"^[^\\n]+\"", ), ], ], ), ], line: 44, }, ], ], line: 44, column: 10, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"total: 0x%x %s ('%s')\"", ), ], [ Ident { expr: [ Symbol( "count", ), ], line: 45, }, ], [ Ident { expr: [ Symbol( "what", ), ], line: 45, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 45, }, ], ], ), ], line: 45, }, ], ], ), ], line: 44, }, Return( Some( [ [ Ident { expr: [ Symbol( "st", ), ], line: 46, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 46, }, ], ], ), ), ], end: 403, }, line: 47, column: 1, }, Function { local: false, name: [ Symbol( "controlstruct", ), ], args: [], body: CodeBlock { start: 407, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"control structure too long\"", ), ], ], ), ], line: 51, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Expr( [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "24", ), ], ), Ident { expr: [], line: 52, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 52, }, Operator( ( "//", true, ), ), Symbol( "3", ), ], ], line: 53, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a = a + 1\\n\"", ), ], [ Ident { expr: [ Symbol( "lim", ), ], line: 53, }, ], ], ), ], line: 53, }, ], ], line: 53, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 53, }, ], values: [ [ Symbol( "\"while true do \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "s", ), ], line: 54, }, Operator( ( "..", true, ), ), Symbol( "\"end\"", ), ], ], line: 54, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 55, }, ], ], ), ], line: 55, }, ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"ok with \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 56, }, Operator( ( "..", true, ), ), Symbol( "\" lines\"", ), ], ], ), ], line: 55, }, Alter { names: [ Ident { expr: [ Symbol( "lim", ), ], line: 56, }, ], values: [ [ Ident { expr: [ Symbol( "lim", ), ], line: 57, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], ], line: 57, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 57, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a = a + 1\\n\"", ), ], [ Ident { expr: [ Symbol( "lim", ), ], line: 58, }, ], ], ), ], line: 58, }, ], ], line: 58, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 58, }, ], values: [ [ Symbol( "\"while true do \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "s", ), ], line: 59, }, Operator( ( "..", true, ), ), Symbol( "\"end\"", ), ], ], line: 60, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 60, }, ], ], ), ], line: 60, }, ], ], line: 60, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 61, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 61, }, ], [ Symbol( "\"too long\"", ), ], ], ), ], line: 61, }, ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 62, }, ], ], ), ], line: 61, }, ], end: 508, }, line: 63, column: 1, }, Function { local: false, name: [ Symbol( "manylines", ), ], args: [], body: CodeBlock { start: 512, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"loading chunk with too many lines\"", ), ], ], ), ], line: 67, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadrep", ), Call( [ [ Symbol( "\"\\n\"", ), ], [ Symbol( "\"lines\"", ), ], ], ), ], line: 68, }, ], ], line: 68, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 69, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 69, }, ], [ Symbol( "\"too many lines\"", ), ], ], ), ], line: 69, }, ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 69, }, ], end: 546, }, line: 71, column: 1, }, Function { local: false, name: [ Symbol( "hugeid", ), ], args: [], body: CodeBlock { start: 550, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"loading chunk with huge identifier\"", ), ], ], ), ], line: 75, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadrep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"chars\"", ), ], ], ), ], line: 76, }, ], ], line: 76, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 77, }, Operator( ( "and", true, ), ), Expr( [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 78, }, ], [ Symbol( "\"lexical element too long\"", ), ], ], ), ], line: 78, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 79, }, ], [ Symbol( "\"not enough memory\"", ), ], ], ), ], line: 78, }, ], ), Ident { expr: [], line: 79, }, ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 79, }, ], end: 595, }, line: 81, column: 1, }, Function { local: false, name: [ Symbol( "toomanyinst", ), ], args: [], body: CodeBlock { start: 599, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"loading chunk with too many instructions\"", ), ], ], ), ], line: 84, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadrep", ), Call( [ [ Symbol( "\"a = 10; \"", ), ], [ Symbol( "\"instructions\"", ), ], ], ), ], line: 85, }, ], ], line: 85, column: 11, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 85, }, ], end: 619, }, line: 87, column: 1, }, Function { local: true, name: [ Symbol( "loadrepfunc", ), ], args: [ "prefix", "f", ], body: CodeBlock { start: 627, code: [ Variable { names: [ ( "count", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], line: 92, column: 0, }, Function { local: true, name: [ Symbol( "aux", ), ], args: [], body: CodeBlock { start: 10, code: [ Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 93, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 93, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 94, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "count", ), ], line: 94, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "prefix", ), ], line: 95, }, ], ], ), ), ], end: 13, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 13, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "count", ), ], line: 97, }, Operator( ( "%", true, ), ), Expr( [ Symbol( "0x100000", ), ], ), Ident { expr: [], line: 97, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 9, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"(\"", ), ], [ Ident { expr: [ Symbol( "count", ), ], line: 98, }, Operator( ( "//", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "20", ), ], [ Symbol( "\" M)\"", ), ], ], ), ], line: 98, }, ], end: 26, }, next: None, line: 99, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "count", ), ], line: 100, }, ], ], ), ], line: 100, }, ], ], ), ), ], end: 45, }, next: None, line: 101, column: 1, }, ), line: 101, column: 1, }, ], end: 56, }, line: 102, column: 1, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "aux", ), ], line: 103, }, ], [ Symbol( "\"k\"", ), ], ], ), ], line: 103, }, ], ], line: 103, column: 11, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\nmemory: \"", ), ], [ Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "'count'", ), ], ], ), ], line: 104, }, Operator( ( "*", true, ), ), Symbol( "1024", ), ], ], ), ], line: 103, }, Alter { names: [ Ident { expr: [ Symbol( "msg", ), ], line: 104, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 105, }, ], [ Symbol( "\"^[^\\n]+\"", ), ], ], ), ], line: 105, }, ], ], line: 105, column: 10, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"expected error: \"", ), ], [ Ident { expr: [ Symbol( "msg", ), ], line: 106, }, ], ], ), ], line: 105, }, ], end: 720, }, line: 107, column: 1, }, Function { local: false, name: [ Symbol( "toomanyconst", ), ], args: [], body: CodeBlock { start: 724, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"loading function with too many constants\"", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "loadrepfunc", ), Call( [ [ Symbol( "\"function foo () return {0,\"", ), ], [ Lambda { args: [ "n", ], body: CodeBlock { start: 12, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "34", ), ], [ Expr( [ Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 119, }, Operator( ( "//", true, ), ), Symbol( "128", ), Operator( ( "^", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 119, }, Operator( ( "&", true, ), ), Symbol( "127", ), ], ), Ident { expr: [], line: 119, }, Operator( ( "+", true, ), ), Symbol( "128", ), ], [ Expr( [ Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 120, }, Operator( ( "//", true, ), ), Symbol( "128", ), Operator( ( "^", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 120, }, Operator( ( "&", true, ), ), Symbol( "127", ), ], ), Ident { expr: [], line: 120, }, Operator( ( "+", true, ), ), Symbol( "128", ), ], [ Expr( [ Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 121, }, Operator( ( "//", true, ), ), Symbol( "128", ), Operator( ( "^", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 121, }, Operator( ( "&", true, ), ), Symbol( "127", ), ], ), Ident { expr: [], line: 121, }, Operator( ( "+", true, ), ), Symbol( "128", ), ], [ Expr( [ Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 122, }, Operator( ( "//", true, ), ), Symbol( "128", ), Operator( ( "^", true, ), ), Symbol( "3", ), ], ), Ident { expr: [], line: 122, }, Operator( ( "&", true, ), ), Symbol( "127", ), ], ), Ident { expr: [], line: 122, }, Operator( ( "+", true, ), ), Symbol( "128", ), ], [ Expr( [ Expr( [ Ident { expr: [ Symbol( "n", ), ], line: 123, }, Operator( ( "//", true, ), ), Symbol( "128", ), Operator( ( "^", true, ), ), Symbol( "4", ), ], ), Ident { expr: [], line: 123, }, Operator( ( "&", true, ), ), Symbol( "127", ), ], ), Ident { expr: [], line: 123, }, Operator( ( "+", true, ), ), Symbol( "128", ), ], [ Symbol( "34", ), ], [ Symbol( "44", ), ], ], ), ], line: 118, }, ], ], ), ), ], end: 94, }, line: 125, column: 1, }, ], ], ), ], line: 111, }, ], end: 820, }, line: 126, column: 1, }, Function { local: false, name: [ Symbol( "toomanystr", ), ], args: [], body: CodeBlock { start: 824, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 130, column: 5, }, ], ], line: 131, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 15, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 132, }, ], step: None, code: CodeBlock { start: 9, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 133, }, Operator( ( "%", true, ), ), Expr( [ Symbol( "0x100000", ), ], ), Ident { expr: [], line: 133, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 9, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"(\"", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 134, }, Operator( ( "//", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "20", ), ], [ Symbol( "\" M)\"", ), ], ], ), ], line: 134, }, ], end: 26, }, next: None, line: 135, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 136, }, ], ), Symbol( "]", ), ], line: 135, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "pack", ), Call( [ [ Symbol( "\"I\"", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 136, }, ], ], ), ], line: 136, }, ], ], line: 136, column: 13, }, ], end: 49, }, line: 137, column: 1, }, ], end: 65, }, line: 138, column: 1, }, ], ], ), ], line: 131, }, ], ], line: 139, column: 0, }, Variable { names: [ ( "size", false, ), ], values: [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 139, }, ], ], line: 139, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 139, }, ], values: [ [ Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "'count'", ), ], ], ), ], line: 140, }, ], ], line: 140, column: 4, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\nmemory:\"", ), ], [ Ident { expr: [ Symbol( "a", ), ], line: 141, }, Operator( ( "*", true, ), ), Symbol( "1024", ), ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"expected error:\"", ), ], [ Ident { expr: [ Symbol( "msg", ), ], line: 142, }, ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"size:\"", ), ], [ Ident { expr: [ Symbol( "size", ), ], line: 143, }, ], ], ), ], line: 142, }, ], end: 920, }, line: 144, column: 1, }, Function { local: false, name: [ Symbol( "toomanyidx", ), ], args: [], body: CodeBlock { start: 924, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 148, column: 5, }, ], ], line: 149, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 15, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 150, }, ], step: None, code: CodeBlock { start: 9, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 151, }, Operator( ( "%", true, ), ), Expr( [ Symbol( "0x100000", ), ], ), Ident { expr: [], line: 151, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 9, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"(\"", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 152, }, Operator( ( "//", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "20", ), ], [ Symbol( "\" M)\"", ), ], ], ), ], line: 152, }, ], end: 26, }, next: None, line: 153, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 154, }, ], ), Symbol( "]", ), ], line: 153, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 154, }, ], ], line: 154, column: 6, }, ], end: 42, }, line: 155, column: 1, }, ], end: 58, }, line: 156, column: 1, }, ], ], ), ], line: 149, }, ], ], line: 156, column: 2, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\nmemory: \"", ), ], [ Ident { expr: [ Symbol( "collectgarbage", ), Call( [ [ Symbol( "'count'", ), ], ], ), ], line: 157, }, Operator( ( "*", true, ), ), Symbol( "1024", ), ], ], ), ], line: 156, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"expected error: \"", ), ], [ Ident { expr: [ Symbol( "msg", ), ], line: 158, }, ], ], ), ], line: 157, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"size:\"", ), ], [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 159, }, ], ], ), ], line: 158, }, ], end: 1006, }, line: 160, column: 1, }, Ident { expr: [ Symbol( "toomanyidx", ), Call( [], ), ], line: 160, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"OK\"", ), ], ], ), ], line: 171, }, ]