--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/files.lua --- [ Variable { names: [ ( "debug", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"debug\"", ), ], ], ), ], line: 4, }, ], ], line: 6, column: 0, }, Variable { names: [ ( "maxint", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 6, }, ], ], line: 6, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "getenv", ), Call( [ [ Symbol( "\"PATH\"", ), ], ], ), ], line: 8, }, ], ], ), ], line: 8, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), ], ], ), ], line: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 10, }, ], ], ), ], line: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), ], line: 11, }, ], [ Symbol( "\"non-existent-file\"", ), ], ], ), ], line: 11, }, ], ], ), ], line: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 12, }, ], ], ), ], line: 12, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 12, }, ], ], ), ], line: 11, }, Function { local: true, name: [ Symbol( "testerr", ), ], args: [ "msg", "f", "...", ], body: CodeBlock { start: 75, code: [ Variable { names: [ ( "stat", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 16, }, ], [ Symbol( "...", ), ], ], ), ], line: 16, }, ], ], line: 17, column: 0, }, Return( Some( [ [ Expr( [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "stat", ), ], line: 17, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 17, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 17, }, ], [ Symbol( "1", ), ], [ Symbol( "true", ), ], ], ), ], line: 17, }, ], ), Ident { expr: [], line: 17, }, ], ], ), ), ], end: 105, }, line: 18, column: 1, }, Function { local: true, name: [ Symbol( "checkerr", ), ], args: [ "msg", "f", "...", ], body: CodeBlock { start: 115, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "testerr", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 22, }, ], [ Ident { expr: [ Symbol( "f", ), ], line: 22, }, ], [ Symbol( "...", ), ], ], ), ], line: 22, }, ], ], ), ], line: 22, }, ], end: 127, }, line: 23, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 27, }, ], ], ), ], line: 27, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 28, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 29, }, ], ], ), ], line: 23, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"got no value\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), Symbol( ".", ), Symbol( "close", ), ], line: 32, }, ], ], ), ], line: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 35, }, ], ], ), ], line: 35, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 35, }, ], ], ), ], line: 35, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 32, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 36, }, ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), ], line: 36, }, ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "8", ), ], ], ), ], line: 37, }, ], ], ), ], line: 36, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 38, column: 5, }, ], ], line: 38, column: 6, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 38, }, ], [ Table { data: [], line: 38, column: 12, }, ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 39, }, ], ], ), ], line: 39, }, ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "getmetatable", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 41, }, ], ], ), Symbol( ".", ), Symbol( "__name", ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "\"FILE*\"", ), ], ], ), ], line: 39, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'xuxu_nao_existe'", ), ], ], ), ], line: 43, }, ], ], line: 43, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 44, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 44, }, ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 44, }, ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 43, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 44, }, Ident { expr: [ Symbol( "b", ), ], line: 46, }, Ident { expr: [ Symbol( "c", ), ], line: 46, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'/a/b/c/d'", ), ], [ Symbol( "'w'", ), ], ], ), ], line: 46, }, ], ], line: 46, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 47, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 47, }, ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 47, }, ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 46, }, Variable { names: [ ( "file", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 49, }, ], ], line: 50, column: 0, }, Variable { names: [ ( "f", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 50, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 50, }, ], ], line: 51, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 51, }, ], body: CodeBlock { start: 353, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 52, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 52, }, ], ), Ident { expr: [ Call( [ [ Symbol( "\"'os.tmpname' file cannot be open; skipping file tests\"", ), ], ], ), ], line: 52, }, ], end: 362, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 362, code: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 55, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing i/o'", ), ], ], ), ], line: 55, }, Variable { names: [ ( "otherfile", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 59, }, ], ], line: 59, column: 8, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 61, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 61, }, ], [ Symbol( "\"rw\"", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 62, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 62, }, ], [ Symbol( "\"rb+\"", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 63, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 63, }, ], [ Symbol( "\"r+bk\"", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 64, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 64, }, ], [ Symbol( "\"\"", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 65, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 65, }, ], [ Symbol( "\"+\"", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 66, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 66, }, ], [ Symbol( "\"b\"", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 67, }, ], [ Symbol( "\"r+b\"", ), ], ], ), ], line: 67, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 68, }, ], [ Symbol( "\"r+\"", ), ], ], ), ], line: 68, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 69, }, ], [ Symbol( "\"rb\"", ), ], ], ), ], line: 69, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "'C'", ), ], [ Symbol( "'all'", ), ], ], ), ], line: 71, }, ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 73, }, ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 73, }, ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 75, }, ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 76, }, ], ], ), ], line: 76, }, ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"\"", ), ], [ Ident { expr: [ Symbol( "dofile", ), ], line: 77, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 77, }, ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 78, }, ], ], ), ], line: 78, }, ], ], ), ], line: 77, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 79, }, ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 80, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 80, }, ], ], ), ], line: 79, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 82, }, ], body: CodeBlock { start: 217, code: [ Variable { names: [ ( "status", false, ), ( "msg", false, ), ( "code", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1000", ), ], ], ), ], line: 83, }, ], ], line: 83, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "status", ), ], line: 84, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 84, }, ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "code", ), ], line: 84, }, ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 83, }, ], end: 254, }, next: None, line: 85, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 87, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 88, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 88, }, ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"cur\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 89, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 89, }, Operator( ( "-", true, ), ), Symbol( "3", ), ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"joao\"", ), ], ], ), ], line: 90, }, ], ], ), ], line: 89, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"end\"", ), ], ], ), ], line: 91, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo joao\"", ), ], ], ), ], line: 91, }, ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 93, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 91, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'\"álo\"'", ), ], [ Symbol( "\"{a}\\n\"", ), ], [ Symbol( "\"second line\\n\"", ), ], [ Symbol( "\"third line \\n\"", ), ], ], ), ], line: 95, }, ], ], ), ], line: 93, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'çfourth_line'", ), ], ], ), ], line: 96, }, ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 97, }, ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 97, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 99, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 99, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "rawequal", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 99, }, ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 99, }, ], ], ), ], line: 99, }, ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 100, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "120", ), ], step: None, code: CodeBlock { start: 431, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "5", ), ], step: None, code: CodeBlock { start: 7, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 106, }, ], ], ), ], line: 106, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 107, }, ], [ Symbol( "'r'", ), ], ], ), ], line: 107, }, ], ], ), ], line: 106, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 108, }, ], ], ), ], line: 107, }, ], end: 31, }, line: 109, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 109, }, ], end: 466, }, line: 111, column: 1, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 111, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 116, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 116, }, ], ], ), ], line: 116, }, ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 117, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 117, }, ], ], ), ], line: 117, }, ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 119, }, ], [ Symbol( "\"ab\"", ), ], ], ), ], line: 119, }, ], ], ), ], line: 117, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\n\\t\\t \"", ), ], [ Symbol( "3450", ), ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 120, }, ], ], ), ], line: 119, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 120, }, DoBlock( CodeBlock { start: 536, code: [ Variable { names: [ ( "F", false, ), ], values: [ [ Symbol( "nil", ), ], ], line: 127, column: 0, }, DoBlock( CodeBlock { start: 5, code: [ Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 128, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 128, }, ], ], ), ], line: 128, }, ], ], line: 128, column: 17, }, Alter { names: [ Ident { expr: [ Symbol( "F", ), ], line: 128, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), ], line: 129, }, ], ], line: 129, column: 3, }, ], end: 26, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "F", ), ], line: 131, }, ], ], ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "\"file (closed)\"", ), ], ], ), ], line: 130, }, ], end: 572, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 133, }, ], ], ), ], line: 133, }, ], ], ), ], line: 132, }, DoBlock( CodeBlock { start: 582, code: [ Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 138, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 138, }, ], ], ), ], line: 138, }, ], ], line: 138, column: 17, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 139, }, ], [ Symbol( "'\\n'", ), ], ], ), ], line: 138, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"0X%x\\n\"", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 140, }, ], ], ), ], line: 140, }, ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"0xABCp-3\"", ), ], [ Symbol( "'\\n'", ), ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "'\\n'", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 143, }, ], [ Symbol( "'\\n'", ), ], ], ), ], line: 142, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"0x%X\\n\"", ), ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 144, }, ], ], ), ], line: 144, }, ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"-0xABCp-3\"", ), ], [ Symbol( "'\\n'", ), ], ], ), ], line: 144, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 146, }, ], ], ), ], line: 145, }, Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 147, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 147, }, ], ], ), ], line: 147, }, ], ], line: 147, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 148, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 148, }, ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 149, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 149, }, ], ], ), ], line: 148, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 150, }, Operator( ( "==", true, ), ), Symbol( "343.5", ), ], ], ), ], line: 149, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 151, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 150, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*n\"", ), ], ], ), ], line: 152, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 152, }, ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 153, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 153, }, ], ], ), ], line: 152, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*n\"", ), ], ], ), ], line: 154, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "343.5", ), ], ], ), ], line: 153, }, ], end: 773, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 156, }, ], ], ), ], line: 156, }, ], ], ), ], line: 155, }, DoBlock( CodeBlock { start: 783, code: [ Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 161, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 161, }, ], ], ), ], line: 161, }, ], ], line: 161, column: 17, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\na line\nanother line\n1234\n3.45\none\ntwo\nthree\n]]", ), ], ], ), ], line: 161, }, Variable { names: [ ( "l1", false, ), ( "l2", false, ), ( "l3", false, ), ( "l4", false, ), ( "n1", false, ), ( "n2", false, ), ( "c", false, ), ( "dummy", false, ), ], values: [], line: 171, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 172, }, ], ], ), ], line: 171, }, Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 173, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 173, }, ], ], ), ], line: 173, }, ], ], line: 173, column: 17, }, Alter { names: [ Ident { expr: [ Symbol( "l1", ), ], line: 173, }, Ident { expr: [ Symbol( "l2", ), ], line: 174, }, Ident { expr: [ Symbol( "n1", ), ], line: 174, }, Ident { expr: [ Symbol( "n2", ), ], line: 174, }, Ident { expr: [ Symbol( "dummy", ), ], line: 174, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"l\"", ), ], [ Symbol( "\"L\"", ), ], [ Symbol( "\"n\"", ), ], [ Symbol( "\"n\"", ), ], ], ), ], line: 174, }, ], ], line: 174, column: 22, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l1", ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "\"a line\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "l2", ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "\"another line\\n\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n1", ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "1234", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n2", ), ], line: 176, }, Operator( ( "==", true, ), ), Symbol( "3.45", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "dummy", ), ], line: 176, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 177, }, ], ], ), ], line: 176, }, Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 178, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 178, }, ], ], ), ], line: 178, }, ], ], line: 178, column: 17, }, Alter { names: [ Ident { expr: [ Symbol( "l1", ), ], line: 178, }, Ident { expr: [ Symbol( "l2", ), ], line: 179, }, Ident { expr: [ Symbol( "n1", ), ], line: 179, }, Ident { expr: [ Symbol( "n2", ), ], line: 179, }, Ident { expr: [ Symbol( "c", ), ], line: 179, }, Ident { expr: [ Symbol( "l3", ), ], line: 179, }, Ident { expr: [ Symbol( "l4", ), ], line: 179, }, Ident { expr: [ Symbol( "dummy", ), ], line: 179, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "7", ), ], [ Symbol( "\"l\"", ), ], [ Symbol( "\"n\"", ), ], [ Symbol( "\"n\"", ), ], [ Symbol( "1", ), ], [ Symbol( "\"l\"", ), ], [ Symbol( "\"l\"", ), ], ], ), ], line: 179, }, ], ], line: 179, column: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l1", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "\"a line\\n\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "l2", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "\"another line\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "'\\n'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n1", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "1234", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "n2", ), ], line: 181, }, Operator( ( "==", true, ), ), Symbol( "3.45", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "l3", ), ], line: 181, }, Operator( ( "==", true, ), ), Symbol( "\"one\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "l4", ), ], line: 181, }, Operator( ( "==", true, ), ), Symbol( "\"two\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "dummy", ), ], line: 182, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 179, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 183, }, ], ], ), ], line: 182, }, Variable { names: [ ( "f", true, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 184, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 184, }, ], ], ), ], line: 184, }, ], ], line: 184, column: 17, }, Alter { names: [ Ident { expr: [ Symbol( "l1", ), ], line: 184, }, Ident { expr: [ Symbol( "n1", ), ], line: 186, }, Ident { expr: [ Symbol( "n2", ), ], line: 186, }, Ident { expr: [ Symbol( "dummy", ), ], line: 186, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"l\"", ), ], [ Symbol( "\"n\"", ), ], [ Symbol( "\"n\"", ), ], [ Symbol( "\"l\"", ), ], ], ), ], line: 186, }, ], ], line: 186, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l1", ), ], line: 187, }, Operator( ( "==", true, ), ), Symbol( "\"a line\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "n1", ), ], line: 187, }, ], ], ), ], line: 186, }, ], end: 1037, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 189, }, ], ], ), ], line: 189, }, ], ], ), ], line: 188, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 189, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 194, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 194, }, ], ], ), ], line: 194, }, ], ], line: 194, column: 13, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\nlocal x, z = coroutine.yield(10)\nlocal y = coroutine.yield(20)\nreturn x + y * z\n]]", ), ], ], ), ], line: 194, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 200, }, ], ], ), ], line: 199, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 200, }, ], values: [ [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "wrap", ), Call( [ [ Ident { expr: [ Symbol( "dofile", ), ], line: 201, }, ], ], ), ], line: 201, }, ], ], line: 201, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 202, }, ], ], ), ], line: 202, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "100", ), ], [ Symbol( "101", ), ], ], ), ], line: 203, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "200", ), ], ], ), ], line: 204, }, Operator( ( "==", true, ), ), Symbol( "100", ), Operator( ( "+", true, ), ), Symbol( "200", ), Operator( ( "*", true, ), ), Symbol( "101", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 205, }, ], ], ), ], line: 205, }, ], ], ), ], line: 204, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 205, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 208, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 208, }, ], ], ), ], line: 208, }, ], ], line: 208, column: 13, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\n-12.3-\t-0xffff+ .3|5.E-3X +234e+13E 0xDEADBEEFDEADBEEFx\n0x1.13Ap+3e\n]]", ), ], ], ), ], line: 208, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"1234\"", ), ], ], ), ], line: 213, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 1152, code: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"0\"", ), ], ], ), ], line: 215, }, ], end: 1159, }, line: 215, column: 21, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\"", ), ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\n.e+\t0.e;\t--; 0xX;\n]]", ), ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 220, }, ], ], ), ], line: 219, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 220, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 221, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 221, }, ], ], ), ], line: 221, }, ], ], line: 221, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "12.3", ), ], ], ), ], line: 221, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Symbol( "\"-\"", ), ], ], ), ], line: 222, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 223, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0xffff", ), ], ], ), ], line: 222, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 223, }, Operator( ( "==", true, ), ), Symbol( "\"+ \"", ), ], ], ), ], line: 223, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 224, }, Operator( ( "==", true, ), ), Symbol( "0.3", ), ], ], ), ], line: 223, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 224, }, Operator( ( "==", true, ), ), Symbol( "\"|\"", ), ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 225, }, Operator( ( "==", true, ), ), Symbol( "5e-3", ), ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 225, }, Operator( ( "==", true, ), ), Symbol( "\"X\"", ), ], ], ), ], line: 225, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "234e13", ), ], ], ), ], line: 225, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "\"E\"", ), ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "0Xdeadbeefdeadbeef", ), ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "\"x\\n\"", ), ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 228, }, Operator( ( "==", true, ), ), Symbol( "8.61328125", ), ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 228, }, Operator( ( "==", true, ), ), Symbol( "\"e\"", ), ], ], ), ], line: 228, }, DoBlock( CodeBlock { start: 1355, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 231, }, ], ], ), ], line: 231, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 232, }, ], ], line: 232, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 233, }, ], [ Symbol( "\"^00*\\n$\"", ), ], ], ), ], line: 233, }, ], ], ), ], line: 232, }, ], end: 1386, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 236, }, ], ], ), ], line: 234, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 236, }, Operator( ( "==", true, ), ), Symbol( "\"e+\"", ), ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 237, }, ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 237, }, Operator( ( "==", true, ), ), Symbol( "\";\"", ), ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 238, }, ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 238, }, Operator( ( "==", true, ), ), Symbol( "\"-;\"", ), ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 239, }, ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 239, }, Operator( ( "==", true, ), ), Symbol( "\"X\"", ), ], ], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 240, }, ], ], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 240, }, Operator( ( "==", true, ), ), Symbol( "\";\"", ), ], ], ), ], line: 240, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 241, }, ], ], ), ], line: 240, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 241, }, ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 242, }, ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 243, }, ], ], ), ], line: 243, }, ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), ], line: 247, }, ], [ Symbol( "\"non-existent-file\"", ), ], ], ), ], line: 247, }, ], ], ), ], line: 243, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 248, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 248, }, ], ], ), ], line: 248, }, ], ], ), ], line: 247, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 249, }, ], ], ), ], line: 248, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 251, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 251, }, ], ], ), ], line: 251, }, ], ], line: 252, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 252, }, ], body: CodeBlock { start: 1581, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 252, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 252, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 252, column: 5, }, ], end: 1587, }, line: 252, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 253, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 252, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"file is already closed\"", ), ], [ Ident { expr: [ Symbol( "f", ), ], line: 254, }, ], ], ), ], line: 253, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"file is already closed\"", ), ], [ Ident { expr: [ Symbol( "f", ), ], line: 255, }, ], ], ), ], line: 254, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 255, }, ], values: [ [ Symbol( "0", ), ], ], line: 258, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 258, }, ], ], ), ], line: 258, }, ], stop: None, initial: None, code: CodeBlock { start: 1619, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 258, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 258, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 258, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 258, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 258, column: 14, }, ], end: 1634, }, line: 258, column: 25, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 258, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 260, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 259, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 262, }, ], ], ), ], line: 262, }, ], ], ), ], line: 262, }, ], ], line: 262, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 263, }, ], ], ), ], line: 263, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 262, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 264, }, ], ], ), ], line: 263, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 265, }, ], ], ), ], line: 264, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 265, }, ], values: [ [ Symbol( "0", ), ], ], line: 267, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 267, }, ], stop: None, initial: None, code: CodeBlock { start: 1699, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 267, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 267, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 267, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 267, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 267, column: 14, }, ], end: 1714, }, line: 267, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 268, }, ], ], ), Symbol( ":", ), Symbol( "sub", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "5", ), ], ], ), ], line: 268, }, Operator( ( "==", true, ), ), Symbol( "\"file \"", ), ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 269, }, ], ], ), ], line: 268, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 269, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 270, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 269, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"closed file\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), ], line: 271, }, ], [ Ident { expr: [ Symbol( "f", ), ], line: 271, }, ], ], ), ], line: 270, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 272, }, ], ], ), ], line: 272, }, Operator( ( "==", true, ), ), Symbol( "\"file (closed)\"", ), ], ], ), ], line: 271, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 273, }, ], ], ), ], line: 273, }, Operator( ( "==", true, ), ), Symbol( "\"closed file\"", ), ], ], ), ], line: 272, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 274, }, ], ], ), ], line: 273, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 274, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 275, }, ], ], ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 275, }, ], ], line: 275, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 275, }, ], values: [ [ Symbol( "0", ), ], ], line: 277, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [], ), ], line: 277, }, ], stop: None, initial: None, code: CodeBlock { start: 1810, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 277, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 277, }, ], ], ), ], line: 277, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 277, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 277, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 277, column: 14, }, ], end: 1825, }, line: 277, column: 24, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 277, }, ], values: [ [ Symbol( "nil", ), ], ], line: 278, column: 4, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 278, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 279, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 278, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 280, }, ], ], ), ], line: 280, }, ], ], ), ], line: 279, }, DoBlock( CodeBlock { start: 1848, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 283, }, ], ], ), ], line: 283, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "300", ), ], ], ), ], line: 284, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 283, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 284, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 286, column: 5, }, ], ], line: 286, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "250", ), ], step: None, code: CodeBlock { start: 39, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 286, }, ], ), Symbol( "]", ), ], line: 286, }, ], values: [ [ Symbol( "1", ), ], ], line: 286, column: 6, }, ], end: 46, }, line: 286, column: 20, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 286, }, ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 287, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 287, }, ], ], ), ], line: 287, }, ], ], ), Call( [], ), ], line: 287, }, ], ), ], line: 287, column: 19, }, ], ], line: 287, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 289, }, Operator( ( "==", true, ), ), Symbol( "250", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 289, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 289, }, ], ), Symbol( "]", ), ], line: 289, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 287, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 290, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 289, }, ], values: [ [ Symbol( "1", ), ], ], line: 290, column: 9, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"too many arguments\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), ], line: 291, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 291, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 291, }, ], ], ), ], line: 291, }, ], ], ), ], line: 290, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 291, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 293, }, ], ], ), ], line: 293, }, ], ], ), ], line: 292, }, ], end: 1974, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 296, }, ], ], ), ], line: 294, }, DoBlock( CodeBlock { start: 1981, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"xuxu\"", ), ], ], ), ], line: 298, }, ], ], line: 298, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 299, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 299, }, ], ], ), ], line: 299, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 299, }, ], ], ), ], line: 299, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 298, }, ], end: 2018, }, ), Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid format\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), ], line: 301, }, ], [ Symbol( "\"x\"", ), ], ], ), ], line: 300, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 301, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "'l'", ), ], ], ), ], line: 303, }, Operator( ( "==", true, ), ), Symbol( "'\"álo\"'", ), ], ], ), ], line: 302, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 304, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 303, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 305, }, Operator( ( "==", true, ), ), Symbol( "\"second line\"", ), ], ], ), ], line: 304, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 306, }, ], ], line: 306, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 307, }, Operator( ( "==", true, ), ), Symbol( "\"third line \"", ), ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 308, }, ], ], ), ], line: 308, }, ], ], ), ], line: 307, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'L'", ), ], ], ), ], line: 309, }, Operator( ( "==", true, ), ), Symbol( "\"third line \\n\"", ), ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 310, }, Operator( ( "==", true, ), ), Symbol( "\"ç\"", ), ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"fourth_line\"", ), ], ], ), ], line: 311, }, ], ], ), ], line: 311, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 310, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"cur\"", ), ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"fourth_line\"", ), ], ], ), ], line: 312, }, ], ], ), ], line: 312, }, ], ], ), ], line: 311, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 313, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 312, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 314, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 313, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'n'", ), ], ], ), ], line: 315, }, Operator( ( "==", true, ), ), Symbol( "3450", ), ], ], ), ], line: 314, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 316, }, Operator( ( "==", true, ), ), Symbol( "'\\n'", ), ], ], ), ], line: 315, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 317, }, ], ], ), ], line: 316, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 318, }, ], ], ), ], line: 317, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30000", ), ], ], ), ], line: 319, }, ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 320, }, ], ), ], line: 320, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 320, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 320, }, ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 321, }, ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 322, }, ], ), ], line: 322, column: 10, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 322, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 322, }, ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'n'", ), ], ], ), ], line: 323, }, ], ], ), ], line: 322, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'n'", ), ], ], ), ], line: 324, }, ], ), ], line: 324, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 324, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 324, }, ], ], ), ], line: 323, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 325, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 326, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 326, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 329, }, ], ], ), ], line: 328, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\" input file is closed\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), ], line: 330, }, ], ], ), ], line: 329, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 332, }, ], ], ), ], line: 332, }, ], ], ), ], line: 330, }, Variable { names: [ ( "t", false, ), ], values: [ [ Symbol( "'0123456789'", ), ], ], line: 335, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 2376, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 335, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), ], line: 335, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 335, }, ], ], line: 335, column: 6, }, ], end: 2383, }, line: 335, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 336, }, ], ], ), ], line: 336, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "10", ), ], ], ), ], line: 335, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 338, }, ], ], ), ], line: 336, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\"", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\"", ), ], ], ), ], line: 338, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 339, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\" output file is closed\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), ], line: 341, }, ], ], ), ], line: 340, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 342, }, ], [ Symbol( "\"a+b\"", ), ], ], ), ], line: 342, }, ], ], line: 342, column: 11, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 343, }, ], ], ), ], line: 342, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 343, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "' '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 346, }, Operator( ( "..", true, ), ), Symbol( "' '", ), ], ], ), ], line: 346, }, ], ], ), ], line: 344, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "';'", ), ], [ Symbol( "'end of file\\n'", ), ], ], ), ], line: 347, }, ], ], ), ], line: 346, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "flush", ), Call( [], ), ], line: 347, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "flush", ), Call( [], ), ], line: 348, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 348, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 349, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 352, }, ], ], ), ], line: 350, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 353, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 352, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 354, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 353, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 355, }, ], ], ), ], line: 355, }, ], ], ), ], line: 355, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 355, }, ], ], ), ], line: 354, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 356, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 355, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 357, }, ], ], ), ], line: 356, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 358, }, Operator( ( "==", true, ), ), Symbol( "';end of file\\n'", ), ], ], ), ], line: 357, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 359, }, ], ], ), ], line: 358, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 360, }, ], ], ), ], line: 360, }, ], ], ), ], line: 359, }, DoBlock( CodeBlock { start: 2590, code: [ Function { local: true, name: [ Symbol( "ismsg", ), ], args: [ "m", ], body: CodeBlock { start: 6, code: [ Return( Some( [ [ Expr( [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 367, }, ], ], ), ], line: 367, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 367, }, ], ], ), ], line: 367, }, ], ), Ident { expr: [], line: 367, }, ], ], ), ), ], end: 22, }, line: 368, column: 1, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 371, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 371, }, ], ], line: 372, column: 0, }, Variable { names: [ ( "r", false, ), ( "m", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 372, }, ], ], line: 372, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 373, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 373, }, ], ], ), ], line: 373, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 373, }, ], ], ), ], line: 373, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 372, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 374, }, ], ], ), ], line: 373, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 374, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 376, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 376, }, ], ], line: 376, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 376, }, Ident { expr: [ Symbol( "m", ), ], line: 377, }, Ident { expr: [ Symbol( "c", ), ], line: 377, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"whatever\"", ), ], ], ), ], line: 377, }, ], ], line: 377, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 378, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 378, }, ], ], ), ], line: 378, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 378, }, ], ], ), ], line: 378, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 377, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 379, }, ], ], ), ], line: 378, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 379, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 381, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 381, }, ], ], line: 381, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 381, }, Ident { expr: [ Symbol( "m", ), ], line: 382, }, ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 382, }, ], ], ), ], line: 382, }, ], ], line: 382, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 383, }, Operator( ( "==", true, ), ), Symbol( "false", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 383, }, ], ], ), ], line: 383, }, ], ], ), ], line: 382, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 384, }, ], ], ), ], line: 383, }, ], end: 2749, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 387, }, ], ], ), ], line: 387, }, ], ], ), ], line: 385, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 390, }, ], ], ), ], line: 387, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 390, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 391, }, ], ], ), ], line: 390, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 392, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], ], ), ], line: 391, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 393, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], ], ), ], line: 392, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 394, }, Operator( ( "==", true, ), ), Symbol( "\"line\\n\"", ), ], ], ), ], line: 393, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 395, }, Operator( ( "==", true, ), ), Symbol( "\"other\"", ), ], ], ), ], line: 394, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 396, }, ], ], ), ], line: 395, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 396, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 399, }, ], ], ), ], line: 399, }, ], ], ), ], line: 399, }, ], ], line: 400, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "\"\"", ), ], ], line: 401, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 401, }, ], stop: None, initial: None, code: CodeBlock { start: 2858, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 401, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 401, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 401, }, ], ], line: 401, column: 5, }, ], end: 2864, }, line: 401, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 402, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 401, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 402, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 405, }, ], ], ), ], line: 403, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 405, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 407, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "\"L\"", ), ], ], ), ], line: 407, }, ], stop: None, initial: None, code: CodeBlock { start: 2896, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 407, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 407, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 407, }, ], ], line: 407, column: 5, }, ], end: 2902, }, line: 407, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 408, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 407, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 408, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 409, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 412, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 412, }, ], [ Symbol( "\"L\"", ), ], ], ), ], line: 412, }, ], stop: None, initial: None, code: CodeBlock { start: 2932, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 412, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 412, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 412, }, ], ], line: 412, column: 5, }, ], end: 2938, }, line: 412, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 413, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 412, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 413, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 416, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 416, }, ], [ Symbol( "\"l\"", ), ], ], ), ], line: 416, }, ], stop: None, initial: None, code: CodeBlock { start: 2959, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 416, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 416, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 416, }, ], ], line: 416, column: 5, }, ], end: 2965, }, line: 416, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 417, }, Operator( ( "==", true, ), ), Symbol( "\"lineother\"", ), ], ], ), ], line: 416, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 419, }, ], ], ), ], line: 417, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"a = 10 + 34\\na = 2*a\\na = -a\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 419, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 420, column: 5, }, ], ], line: 420, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 421, }, ], [ Symbol( "\"L\"", ), ], ], ), ], line: 421, }, ], [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 421, }, ], ], ), ], line: 421, }, ], ], ), Call( [], ), ], line: 420, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "a", ), ], line: 422, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Expr( [ Symbol( "10", ), Operator( ( "+", true, ), ), Symbol( "34", ), ], ), Ident { expr: [], line: 422, }, Operator( ( "*", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 422, }, ], ], ), ], line: 421, }, DoBlock( CodeBlock { start: 3031, code: [ Function { local: true, name: [ Symbol( "gettoclose", ), ], args: [ "lv", ], body: CodeBlock { start: 6, code: [ Alter { names: [ Ident { expr: [ Symbol( "lv", ), ], line: 429, }, ], values: [ [ Ident { expr: [ Symbol( "lv", ), ], line: 429, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 430, column: 0, }, Variable { names: [ ( "stvar", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 431, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 16, code: [ Variable { names: [ ( "n", false, ), ( "v", false, ), ], values: [ [ Ident { expr: [ Symbol( "debug", ), Symbol( ".", ), Symbol( "getlocal", ), Call( [ [ Ident { expr: [ Symbol( "lv", ), ], line: 432, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 432, }, ], ], ), ], line: 432, }, ], ], line: 433, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 433, }, Operator( ( "==", true, ), ), Symbol( "\"(for state)\"", ), ], body: CodeBlock { start: 18, code: [ Alter { names: [ Ident { expr: [ Symbol( "stvar", ), ], line: 434, }, ], values: [ [ Ident { expr: [ Symbol( "stvar", ), ], line: 434, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 435, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "stvar", ), ], line: 435, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "v", ), ], line: 435, }, ], ], ), ), ], end: 13, }, next: None, line: 435, column: 8, }, ], end: 32, }, next: None, line: 436, column: 1, }, ], end: 49, }, line: 437, column: 1, }, ], end: 56, }, line: 438, column: 1, }, Variable { names: [ ( "f", false, ), ], values: [], line: 440, column: 2, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 441, }, ], ], ), ], line: 441, }, ], stop: None, initial: None, code: CodeBlock { start: 68, code: [ Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 442, }, ], values: [ [ Ident { expr: [ Symbol( "gettoclose", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 442, }, ], ], line: 442, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 443, }, ], ], ), ], line: 443, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 442, }, Break, ], end: 87, }, line: 445, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 446, }, ], ], ), ], line: 446, }, Operator( ( "==", true, ), ), Symbol( "\"closed file\"", ), ], ], ), ], line: 445, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 446, }, ], values: [ [ Symbol( "nil", ), ], ], line: 449, column: 0, }, Function { local: true, name: [ Symbol( "foo", ), ], args: [ "name", ], body: CodeBlock { start: 107, code: [ ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "name", ), ], line: 450, }, ], ], ), ], line: 450, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 451, }, ], values: [ [ Ident { expr: [ Symbol( "gettoclose", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 451, }, ], ], line: 451, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 452, }, ], ], ), ], line: 452, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 451, }, Ident { expr: [ Symbol( "error", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 453, }, ], ], ), ], line: 452, }, ], end: 32, }, line: 454, column: 1, }, ], end: 140, }, line: 455, column: 1, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), ], line: 456, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 456, }, ], ], ), ], line: 456, }, ], ], line: 456, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "st", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "false", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 457, }, ], ], ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "\"closed file\"", ), ], ], ), ], line: 456, }, ], end: 3198, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 463, }, ], ], ), ], line: 459, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"0123456789\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 463, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 464, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 464, }, ], stop: None, initial: None, code: CodeBlock { start: 3229, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 465, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 465, }, ], ], ), ], line: 465, }, ], end: 11, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 11, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 466, }, ], ], ), ], line: 466, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 466, }, ], ], ), ], line: 466, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 466, }, ], end: 26, }, next: None, line: 467, column: 1, }, ), line: 467, column: 1, }, ], end: 3256, }, line: 468, column: 1, }, ForFuncLoop { iters: [ "a", "b", "c", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 470, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 470, }, ], stop: None, initial: None, code: CodeBlock { start: 3276, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 471, }, Operator( ( "==", true, ), ), Symbol( "\"0\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 471, }, Operator( ( "==", true, ), ), Symbol( "\"12\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 471, }, Operator( ( "==", true, ), ), Symbol( "\"3456789\\n\"", ), ], ], ), ], line: 471, }, ], end: 3291, }, line: 472, column: 1, }, ForFuncLoop { iters: [ "a", "b", "c", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 474, }, ], [ Symbol( "\"a\"", ), ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 474, }, ], stop: None, initial: None, code: CodeBlock { start: 3311, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 475, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], body: CodeBlock { start: 5, code: [ Break, ], end: 7, }, next: None, line: 475, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 476, }, Operator( ( "==", true, ), ), Symbol( "\"0123456789\\n\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 476, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "c", ), ], line: 476, }, ], ], ), ], line: 475, }, ], end: 3331, }, line: 477, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 477, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 480, }, ], ], ), ], line: 478, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"00\\n10\\n20\\n30\\n40\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 480, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 481, }, ], [ Symbol( "\"n\"", ), ], [ Symbol( "\"n\"", ), ], ], ), ], line: 481, }, ], stop: None, initial: None, code: CodeBlock { start: 3365, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 482, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 482, }, ], ], ), ], line: 482, }, ], end: 11, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 11, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 483, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 483, }, Operator( ( "-", true, ), ), Symbol( "10", ), ], ], ), ], line: 483, }, ], end: 20, }, next: None, line: 484, column: 1, }, ), line: 484, column: 1, }, ], end: 3386, }, line: 485, column: 1, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 489, }, ], ], ), ], line: 485, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "[[\nlocal y\n= X\nX =\nX *\n2 +\nX;\nX =\nX\n- y;\n]]", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 489, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 500, }, ], values: [ [ Symbol( "1", ), ], ], line: 501, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 502, }, ], ], ), ], line: 502, }, ], ), Ident { expr: [], line: 502, }, ], ], ), ], line: 502, }, ], ], ), ], line: 501, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 502, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 504, }, ], [ Symbol( "\"L\"", ), ], ], ), ], line: 504, }, ], ), Ident { expr: [], line: 504, }, ], ], ), Call( [], ), ], line: 503, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 505, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 504, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 506, }, ], [ Symbol( "1", ), ], ], ), ], line: 506, }, ], ), Ident { expr: [], line: 506, }, ], ], ), Call( [], ), ], line: 505, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 507, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 506, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 508, }, ], [ Symbol( "3", ), ], ], ), ], line: 508, }, ], ), Ident { expr: [], line: 508, }, ], ], ), Call( [], ), ], line: 507, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 509, }, Operator( ( "==", true, ), ), Symbol( "8", ), ], ], ), ], line: 508, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 509, }, Variable { names: [ ( "x1", false, ), ], values: [ [ Symbol( "\"string\\n\\n\\\\com \\\"\\\"''coisas [[estranhas]] ]]'\"", ), ], ], line: 513, column: 4, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 514, }, ], ], ), ], line: 513, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"x2 = %q\\n-- comment without ending EOS\"", ), ], [ Ident { expr: [ Symbol( "x1", ), ], line: 515, }, ], ], ), ], line: 515, }, ], ], ), ], line: 515, }, ], ], ), ], line: 514, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 515, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 517, }, ], ], ), ], line: 517, }, ], ], ), Call( [], ), ], line: 516, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 518, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 518, }, ], ], ), ], line: 517, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 518, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 520, }, ], ], ), ], line: 520, }, ], ], ), ], line: 519, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 521, }, ], ], ), ], line: 521, }, ], ], ), ], line: 520, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 522, }, ], ], ), ], line: 522, }, ], ], ), ], line: 521, }, Function { local: true, name: [ Symbol( "testloadfile", ), ], args: [ "s", "expres", ], body: CodeBlock { start: 3584, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 526, }, ], ], ), ], line: 526, }, IfStatement { condition: [ Ident { expr: [ Symbol( "s", ), ], line: 527, }, ], body: CodeBlock { start: 9, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 527, }, ], ], ), ], line: 527, }, ], end: 16, }, next: None, line: 527, column: 10, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 527, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 529, }, ], ], ), ], line: 529, }, ], ], ), Call( [], ), ], line: 529, }, ], ], line: 529, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 530, }, ], ], ), ], line: 530, }, ], ], ), ], line: 529, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "res", ), ], line: 531, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "expres", ), ], line: 531, }, ], ], ), ], line: 530, }, ], end: 3633, }, line: 532, column: 1, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], ], ), ], line: 532, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"# a non-ending comment\"", ), ], [ Symbol( "nil", ), ], ], ), ], line: 535, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBF# some comment\\nreturn 234\"", ), ], [ Symbol( "234", ), ], ], ), ], line: 538, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBFreturn 239\"", ), ], [ Symbol( "239", ), ], ], ), ], line: 542, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBF\"", ), ], [ Symbol( "nil", ), ], ], ), ], line: 543, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"# a comment\\nreturn require'debug'.getinfo(1).currentline\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 544, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 552, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 552, }, ], ], ), ], line: 548, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "dump", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 3695, code: [ Return( Some( [ [ Symbol( "10", ), ], [ Symbol( "'\\0alo\\255'", ), ], [ Symbol( "'hi'", ), ], ], ), ), ], end: 3702, }, line: 553, column: 20, }, ], ], ), ], line: 553, }, ], ], ), ], line: 553, }, ], ], ), ], line: 552, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 553, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 554, }, Ident { expr: [ Symbol( "b", ), ], line: 555, }, Ident { expr: [ Symbol( "c", ), ], line: 555, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 555, }, ], ], ), ], line: 555, }, ], ], ), Call( [], ), ], line: 555, }, ], ], line: 555, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 556, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 556, }, Operator( ( "==", true, ), ), Symbol( "\"\\0alo\\255\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 556, }, Operator( ( "==", true, ), ), Symbol( "\"hi\"", ), ], ], ), ], line: 555, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 557, }, ], ], ), ], line: 557, }, ], ], ), ], line: 556, }, DoBlock( CodeBlock { start: 3749, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 561, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 561, }, ], ], ), ], line: 561, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "dump", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 26, code: [ Return( Some( [ [ Symbol( "1", ), ], ], ), ), ], end: 29, }, line: 563, column: 16, }, ], ], ), ], line: 563, }, ], ], ), ], line: 563, }, ], ], ), ], line: 561, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 563, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 564, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 565, }, ], [ Symbol( "\"b\"", ), ], [ Table { data: [], line: 565, column: 12, }, ], ], ), ], line: 565, }, ], ], ), ], line: 565, }, ], ], line: 565, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 566, }, ], ], ), ], line: 566, }, Operator( ( "==", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 566, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 565, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 567, }, ], ], ), ], line: 567, }, ], ], ), ], line: 566, }, ], end: 3825, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 571, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 571, }, ], ], ), ], line: 568, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"#this is a comment for a binary file\\0\\n\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "dump", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 3853, code: [ Return( Some( [ [ Symbol( "20", ), ], [ Symbol( "'\\0\\0\\0'", ), ], ], ), ), ], end: 3858, }, line: 573, column: 12, }, ], ], ), ], line: 572, }, ], ], ), ], line: 572, }, ], ], ), ], line: 571, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 573, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 574, }, Ident { expr: [ Symbol( "b", ), ], line: 575, }, Ident { expr: [ Symbol( "c", ), ], line: 575, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 575, }, ], ], ), ], line: 575, }, ], ], ), Call( [], ), ], line: 575, }, ], ], line: 575, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 576, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 576, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 576, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 575, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 577, }, ], ], ), ], line: 577, }, ], ], ), ], line: 576, }, DoBlock( CodeBlock { start: 3905, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 582, }, ], [ Symbol( "'w'", ), ], ], ), ], line: 582, }, ], ], line: 582, column: 11, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\n if (...) then a = 15; return b, c, d\n else return _ENV\n end\n ]]", ), ], ], ), ], line: 582, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 587, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "b", ), ], ), [ Symbol( "12", ), ], ), ( Some( [ Symbol( "c", ), ], ), [ Symbol( "\"xuxu\"", ), ], ), ( Some( [ Symbol( "d", ), ], ), [ Ident { expr: [ Symbol( "print", ), ], line: 589, }, ], ), ], line: 589, column: 16, }, ], ], line: 590, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 590, }, ], [ Symbol( "'t'", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 590, }, ], ], ), ], line: 590, }, ], ], ), ], line: 590, }, ], ], line: 591, column: 0, }, Variable { names: [ ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 591, }, ], ], line: 591, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "a", ), ], line: 592, }, Operator( ( "==", true, ), ), Symbol( "15", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 592, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 592, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "c", ), ], line: 592, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 592, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 592, }, ], ], ), ], line: 591, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 593, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 593, }, ], ], ), ], line: 592, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 593, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 594, }, ], [ Symbol( "'t'", ), ], [ Symbol( "nil", ), ], ], ), ], line: 594, }, ], ], ), ], line: 594, }, ], ], line: 594, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 595, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 594, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 595, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 596, }, ], ], ), ], line: 596, }, ], ], ), ], line: 596, }, ], ], line: 596, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 597, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "_G", ), ], line: 597, }, ], ], ), ], line: 596, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 598, }, ], ], ), ], line: 598, }, ], ], ), ], line: 597, }, ], end: 4044, }, ), DoBlock( CodeBlock { start: 4045, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 604, }, ], [ Symbol( "'w'", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"return 10\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 604, }, Variable { names: [ ( "s", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 605, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 605, }, ], ], line: 605, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 606, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 606, }, ], [ Symbol( "\"a text chunk\"", ), ], ], ), ], line: 606, }, ], ], ), ], line: 605, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 607, }, ], [ Symbol( "'w'", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\27 return 10\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 606, }, Variable { names: [ ( "s", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 608, }, ], [ Symbol( "'t'", ), ], ], ), ], line: 608, }, ], ], line: 608, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 609, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 609, }, ], [ Symbol( "\"a binary chunk\"", ), ], ], ), ], line: 609, }, ], ], ), ], line: 608, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 610, }, ], ], ), ], line: 610, }, ], ], ), ], line: 609, }, ], end: 4139, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 614, }, ], ], ), ], line: 611, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"qualquer coisa\\n\"", ), ], ], ), ], line: 615, }, ], ], ), ], line: 614, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 616, }, ], ], ), ], line: 615, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 616, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 618, }, ], [ Symbol( "'wb'", ), ], ], ), ], line: 618, }, ], ], ), ], line: 618, }, ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"outra coisa\\0\\1\\3\\0\\0\\0\\0\\255\\0\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 618, }, ], ], ), ], line: 617, }, Variable { names: [ ( "filehandle", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 622, }, ], [ Symbol( "'r+'", ), ], ], ), ], line: 622, }, ], ], ), ], line: 622, }, ], ], line: 623, column: 0, }, Variable { names: [ ( "otherfilehandle", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 623, }, ], [ Symbol( "'rb'", ), ], ], ), ], line: 623, }, ], ], ), ], line: 623, }, ], ], line: 623, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 624, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 624, }, ], ], ), ], line: 623, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 625, }, ], ], ), ], line: 625, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 624, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'l'", ), ], ], ), ], line: 626, }, Operator( ( "==", true, ), ), Symbol( "\"qualquer coisa\"", ), ], ], ), ], line: 625, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 627, }, ], ], ), ], line: 626, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"outra coisa\"", ), ], ], ), ], line: 628, }, ], ], ), ], line: 628, }, Operator( ( "==", true, ), ), Symbol( "\"outra coisa\"", ), ], ], ), ], line: 627, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'l'", ), ], ], ), ], line: 629, }, Operator( ( "==", true, ), ), Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 628, }, Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 629, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 631, }, ], ], ), ], line: 631, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 630, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 632, }, ], ], ), ], line: 631, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "4", ), ], ], ), ], line: 633, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\1\\3\\0\"", ), ], ], ), ], line: 632, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 634, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 633, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 635, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 634, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 636, }, Operator( ( "==", true, ), ), Symbol( "\"\\255\"", ), ], ], ), ], line: 635, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 637, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\"", ), ], ], ), ], line: 636, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 638, }, ], ], ), ], line: 637, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 639, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 639, }, ], ], ), ], line: 638, }, Ident { expr: [ Symbol( "otherfilehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 639, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 641, }, ], ], ), ], line: 641, }, ], ], ), ], line: 640, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 642, }, ], ], ), ], line: 642, }, ], ], ), ], line: 641, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 642, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 645, }, ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\n 123.4\t-56e-2 not a number\nsecond line\nthird line\n\nand the rest of the file\n]]", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 643, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 654, }, ], ], ), ], line: 653, }, Variable { names: [ ( "_", false, ), ( "a", false, ), ( "b", false, ), ( "c", false, ), ( "d", false, ), ( "e", false, ), ( "h", false, ), ( "__", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "'n'", ), ], [ Symbol( "'n'", ), ], [ Symbol( "'l'", ), ], [ Symbol( "'l'", ), ], [ Symbol( "'l'", ), ], [ Symbol( "'a'", ), ], [ Symbol( "10", ), ], ], ), ], line: 655, }, ], ], line: 655, column: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 656, }, ], ], ), ], line: 656, }, ], ], ), ], line: 655, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_", ), ], line: 657, }, Operator( ( "==", true, ), ), Symbol( "' '", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "__", ), ], line: 657, }, ], ], ), ], line: 656, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 658, }, ], ], ), ], line: 658, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 658, }, Operator( ( "==", true, ), ), Symbol( "123.4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 658, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "56e-2", ), ], ], ), ], line: 657, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 659, }, Operator( ( "==", true, ), ), Symbol( "'second line'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 659, }, Operator( ( "==", true, ), ), Symbol( "'third line'", ), ], ], ), ], line: 658, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "h", ), ], line: 660, }, Operator( ( "==", true, ), ), MultilineString( "[[\n\nand the rest of the file\n]]", ), ], ], ), ], line: 659, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 664, }, ], ], ), ], line: 664, }, ], ], ), ], line: 663, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 664, }, DoBlock( CodeBlock { start: 4528, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 669, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 669, }, ], ], ), ], line: 669, }, ], ], line: 670, column: 0, }, Variable { names: [ ( "fr", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 670, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 670, }, ], ], ), ], line: 670, }, ], ], line: 670, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"full\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 671, }, ], ], ), ], line: 670, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 671, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 673, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 672, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 673, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 674, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 676, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 675, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 676, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 677, }, ], ], ), ], line: 677, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 677, }, ], ], line: 677, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"no\"", ), ], ], ), ], line: 678, }, ], ], ), ], line: 677, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 678, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 679, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 681, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 680, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 681, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 682, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 683, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 683, }, ], ], ), ], line: 683, }, ], ], line: 683, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"line\"", ), ], ], ), ], line: 684, }, ], ], ), ], line: 683, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 684, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 685, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 687, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 686, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"a\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 687, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 689, }, Operator( ( "==", true, ), ), Symbol( "\"xa\\n\"", ), ], ], ), ], line: 688, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 689, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 690, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 691, }, ], ], ), ], line: 691, }, ], ], ), ], line: 690, }, ], end: 4748, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_soft", ), ], line: 695, }, ], body: CodeBlock { start: 4752, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing large files (> BUFSIZ)\"", ), ], ], ), ], line: 696, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 697, }, ], ], ), ], line: 696, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "5001", ), ], step: None, code: CodeBlock { start: 17, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'0123456789123'", ), ], ], ), ], line: 698, }, ], end: 24, }, line: 698, column: 14, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'\\n12346'", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 698, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 700, }, ], ], ), ], line: 699, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 701, }, ], ], line: 701, column: 9, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 701, }, Variable { names: [ ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30001", ), ], ], ), ], line: 703, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1005", ), ], ], ), ], line: 703, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 703, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 703, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "100003", ), ], ], ), ], line: 704, }, ], ], line: 704, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 705, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 705, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 705, }, ], ], ), ], line: 705, }, Operator( ( "==", true, ), ), Symbol( "5001", ), Operator( ( "*", true, ), ), Symbol( "13", ), Operator( ( "+", true, ), ), Symbol( "6", ), ], ], ), ], line: 704, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 705, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 706, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 707, }, ], ], line: 707, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 708, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 708, }, Operator( ( "..", true, ), ), Symbol( "'\\n'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 708, }, ], ], ), ], line: 707, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 709, }, ], ], ), ], line: 708, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 710, }, ], ], ), ], line: 709, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 711, }, ], ], ), ], line: 711, }, ], ], ), ], line: 710, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 711, }, ], values: [ [ Symbol( "nil", ), ], ], line: 712, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 712, }, ], values: [ [ Symbol( "nil", ), ], ], line: 712, column: 7, }, ], end: 4938, }, next: None, line: 713, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 715, }, ], body: CodeBlock { start: 4942, code: [ Variable { names: [ ( "progname", false, ), ], values: [], line: 716, column: 2, }, DoBlock( CodeBlock { start: 3, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Ident { expr: [ Symbol( "arg", ), ], line: 718, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "ARG", ), ], line: 718, }, ], ], line: 719, column: 0, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 720, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 720, }, ], ), Symbol( "]", ), ], line: 720, }, ], body: CodeBlock { start: 16, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 720, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 720, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 720, column: 5, }, ], end: 22, }, line: 720, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "progname", ), ], line: 720, }, ], values: [ [ Symbol( "'\"'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 721, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 721, }, Operator( ( "..", true, ), ), Symbol( "'\"'", ), ], ], line: 721, column: 12, }, ], end: 38, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing popen/pclose and execute\"", ), ], ], ), ], line: 722, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), ], line: 725, }, ], [ Symbol( "\"cat\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 723, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), ], line: 726, }, ], [ Symbol( "\"cat\"", ), ], [ Symbol( "\"r+\"", ), ], ], ), ], line: 725, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), ], line: 727, }, ], [ Symbol( "\"cat\"", ), ], [ Symbol( "\"rw\"", ), ], ], ), ], line: 726, }, DoBlock( CodeBlock { start: 79, code: [ Variable { names: [ ( "file", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 729, }, ], ], line: 730, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), Call( [ [ Symbol( "\"cat - > \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "file", ), ], line: 730, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 730, }, ], ], ), ], line: 730, }, ], ], line: 730, column: 16, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"a line\"", ), ], ], ), ], line: 730, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 732, }, ], ], ), ], line: 731, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), Call( [ [ Symbol( "\"cat - < \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "file", ), ], line: 733, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 733, }, ], ], ), ], line: 733, }, ], ], line: 733, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"a\"", ), ], ], ), ], line: 734, }, Operator( ( "==", true, ), ), Symbol( "\"a line\"", ), ], ], ), ], line: 733, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 735, }, ], ], ), ], line: 734, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 736, }, ], ], ), ], line: 736, }, ], ], ), ], line: 735, }, ], end: 162, }, ), Variable { names: [ ( "tests", false, ), ], values: [ [ Table { data: [ ( None, [ Table { data: [ ( None, [ Symbol( "\"ls > /dev/null\"", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 741, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"not-to-be-found-command\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ], line: 742, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"exit 3\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "3", ), ], ), ], line: 743, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"exit 129\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "129", ), ], ), ], line: 744, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"kill -s HUP $$\"", ), ], ), ( None, [ Symbol( "\"signal\"", ), ], ), ( None, [ Symbol( "1", ), ], ), ], line: 745, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"kill -s KILL $$\"", ), ], ), ( None, [ Symbol( "\"signal\"", ), ], ), ( None, [ Symbol( "9", ), ], ), ], line: 746, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"sh -c 'kill -s HUP $$'\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ], line: 747, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "progname", ), ], line: 748, }, Operator( ( "..", true, ), ), Symbol( "' -e \" \"'", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 748, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "progname", ), ], line: 749, }, Operator( ( "..", true, ), ), Symbol( "' -e \"os.exit(0, true)\"'", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 749, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "progname", ), ], line: 750, }, Operator( ( "..", true, ), ), Symbol( "' -e \"os.exit(20, true)\"'", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "20", ), ], ), ], line: 750, column: 9, }, ], ), ], line: 751, column: 1, }, ], ], line: 751, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\n(some error messages are expected now)\"", ), ], ], ), ], line: 751, }, ForFuncLoop { iters: [ "_", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "tests", ), ], line: 753, }, ], ], ), ], line: 753, }, ], stop: None, initial: None, code: CodeBlock { start: 257, code: [ Variable { names: [ ( "x", false, ), ( "y", false, ), ( "z", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), Call( [ [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 754, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 754, }, ], ], line: 755, column: 0, }, Variable { names: [ ( "x1", false, ), ( "y1", false, ), ( "z1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "execute", ), Call( [ [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 755, }, ], ], ), ], line: 755, }, ], ], line: 755, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 756, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x1", ), ], line: 756, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 756, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y1", ), ], line: 756, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 756, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z1", ), ], line: 756, }, ], ], ), ], line: 755, }, IfStatement { condition: [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 757, }, Operator( ( "==", true, ), ), Symbol( "\"ok\"", ), ], body: CodeBlock { start: 58, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 758, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 758, }, Operator( ( "==", true, ), ), Symbol( "'exit'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 758, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 758, }, ], end: 71, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 71, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 760, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 760, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 760, }, ], ], ), ], line: 760, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 762, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 762, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 762, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 762, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 762, }, ], ], ), ], line: 760, }, ], end: 106, }, next: None, line: 763, column: 1, }, ), line: 763, column: 1, }, ], end: 364, }, line: 764, column: 1, }, ], end: 5307, }, next: None, line: 765, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 765, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "tmpfile", ), Call( [], ), ], line: 769, }, ], ], line: 769, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 770, }, ], ], ), ], line: 770, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 769, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\"", ), ], ], ), ], line: 770, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 771, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"a\"", ), ], ], ), ], line: 773, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 772, }, ], end: 5709, }, next: None, line: 775, column: 1, }, ), line: 775, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 775, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing date/time\"", ), ], ], ), ], line: 777, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 781, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 779, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!\"", ), ], ], ), ], line: 782, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 781, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 783, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 782, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!\\0\\0\"", ), ], ], ), ], line: 784, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 783, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "10000", ), ], ], ), ], line: 785, }, ], ], line: 785, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 786, }, ], ], ), ], line: 786, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 786, }, ], ], ), ], line: 785, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 787, }, ], ], line: 787, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 787, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 788, }, ], ], ), ], line: 788, }, ], ], line: 788, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Symbol( "1000", ), ], ], ), ], line: 789, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 789, }, ], ], ), ], line: 789, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 790, }, ], ], ), ], line: 790, }, ], [ Symbol( "1000", ), ], ], ), ], line: 789, }, ], ], ), ], line: 788, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "200", ), ], ], ), ], line: 791, }, ], ], ), ], line: 791, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "100", ), ], ], ), ], line: 791, }, ], ], ), ], line: 790, }, Function { local: true, name: [ Symbol( "checkDateTable", ), ], args: [ "t", ], body: CodeBlock { start: 5864, code: [ Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "D", ), ], line: 794, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 794, }, ], ], ), ], line: 794, }, ], ], line: 794, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 795, }, ], ], ), ], line: 795, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 795, }, ], ], ), ], line: 794, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ MultilineString( "[[assert(D.year==%Y and D.month==%m and D.day==%d and\n D.hour==%H and D.min==%M and D.sec==%S and\n D.wday==%w+1 and D.yday==%j)]]", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 798, }, ], ], ), ], line: 796, }, ], ], ), Call( [], ), ], line: 795, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "D", ), ], line: 798, }, ], values: [ [ Symbol( "nil", ), ], ], line: 799, column: 5, }, ], end: 5906, }, line: 800, column: 1, }, Ident { expr: [ Symbol( "checkDateTable", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 802, }, ], ], ), ], line: 800, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 803, }, ], body: CodeBlock { start: 5918, code: [ Ident { expr: [ Symbol( "checkDateTable", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 805, }, Ident { expr: [ Symbol( "checkDateTable", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 805, }, Ident { expr: [ Symbol( "checkDateTable", ), Call( [ [ Symbol( "1000", ), ], ], ), ], line: 806, }, Ident { expr: [ Symbol( "checkDateTable", ), Call( [ [ Symbol( "0x7fffffff", ), ], ], ), ], line: 807, }, Ident { expr: [ Symbol( "checkDateTable", ), Call( [ [ Symbol( "0x80000000", ), ], ], ), ], line: 808, }, ], end: 5939, }, next: None, line: 810, column: 1, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 812, }, ], [ Symbol( "\"%\"", ), ], ], ), ], line: 810, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 813, }, ], [ Symbol( "\"%9\"", ), ], ], ), ], line: 812, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 814, }, ], [ Symbol( "\"%\"", ), ], ], ), ], line: 813, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 815, }, ], [ Symbol( "\"%O\"", ), ], ], ), ], line: 814, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 816, }, ], [ Symbol( "\"%E\"", ), ], ], ), ], line: 815, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 817, }, ], [ Symbol( "\"%Ea\"", ), ], ], ), ], line: 816, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"not an integer\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 819, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "'x'", ), ], ), ], line: 819, column: 25, }, ], ], ), ], line: 817, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"not an integer\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 820, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "1.5", ), ], ), ], line: 820, column: 25, }, ], ], ), ], line: 819, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"missing\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 822, }, ], [ Table { data: [ ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "12", ), ], ), ], line: 822, column: 13, }, ], ], ), ], line: 820, }, IfStatement { condition: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "packsize", ), Call( [ [ Symbol( "\"i\"", ), ], ], ), ], line: 825, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], body: CodeBlock { start: 6075, code: [ Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"field 'year' is out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 826, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 827, }, Operator( ( "+", true, ), ), Symbol( "1899", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 827, column: 20, }, ], ], ), ], line: 826, }, ], end: 6105, }, next: None, line: 828, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 830, }, ], body: CodeBlock { start: 6109, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Ex\"", ), ], ], ), ], line: 832, }, ], ], ), ], line: 832, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 832, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Oy\"", ), ], ], ), ], line: 833, }, ], ], ), ], line: 833, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 832, }, Variable { names: [ ( "t0", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1970", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "0", ), ], ), ], line: 836, column: 19, }, ], ], ), ], line: 836, }, ], ], line: 837, column: 0, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1970", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 837, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), ], line: 837, column: 29, }, ], ], ), ], line: 837, }, ], ], line: 837, column: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 838, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "t0", ), ], line: 838, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 838, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 837, }, Alter { names: [ Ident { expr: [ Symbol( "t0", ), ], line: 838, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1970", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 839, column: 18, }, ], ], ), ], line: 839, }, ], ], line: 839, column: 18, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 839, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1970", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 840, }, ], ), ], line: 840, column: 27, }, ], ], ), ], line: 840, }, ], ], line: 840, column: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 841, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "t0", ), ], line: 841, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 841, }, ], ], ), ], line: 840, }, IfStatement { condition: [ Ident { expr: [ Symbol( "maxint", ), ], line: 844, }, Operator( ( ">=", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "62", ), ], body: CodeBlock { start: 155, code: [ Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 846, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 846, }, ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 846, column: 22, }, ], ], ), ], line: 846, }, IfStatement { condition: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "packsize", ), Call( [ [ Symbol( "\"i\"", ), ], ], ), ], line: 847, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], body: CodeBlock { start: 33, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "testerr", ), Call( [ [ Symbol( "\"out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 848, }, ], [ Symbol( "\"%Y\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), ], ], ), ], line: 848, }, ], body: CodeBlock { start: 16, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\" 4-byte time_t\"", ), ], ], ), ], line: 850, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"cannot be represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 851, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "4000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 851, column: 21, }, ], ], ), ], line: 850, }, ], end: 43, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 43, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\" 8-byte time_t\"", ), ], ], ), ], line: 854, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"cannot be represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 855, }, ], [ Symbol( "\"%Y\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "60", ), ], ], ), ], line: 854, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 859, }, Operator( ( "+", true, ), ), Symbol( "1899", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "12", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "31", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "23", ), ], ), ( Some( [ Symbol( "min", ), ], ), [ Symbol( "59", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Symbol( "59", ), ], ), ], line: 859, column: 31, }, ], ], ), ], line: 858, }, ], ], ), ], line: 858, }, ], ], ), ], line: 855, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 862, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 863, }, Operator( ( "+", true, ), ), Symbol( "1899", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "12", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "31", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "23", ), ], ), ( Some( [ Symbol( "min", ), ], ), [ Symbol( "59", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Symbol( "60", ), ], ), ], line: 863, column: 31, }, ], ], ), ], line: 859, }, ], end: 142, }, next: None, line: 864, column: 1, }, ), line: 864, column: 1, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"field 'day' is out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 867, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ), ], line: 868, column: 15, }, ], ], ), ], line: 864, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"field 'month' is out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 870, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Operator( ( "-", false, ), ), Expr( [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 871, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 871, }, ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 871, column: 22, }, ], ], ), ], line: 868, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"field 'year' is out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 873, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 874, }, Operator( ( "+", true, ), ), Symbol( "1900", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 874, column: 19, }, ], ], ), ], line: 871, }, ], end: 259, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 259, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\" 8-byte time_t\"", ), ], ], ), ], line: 878, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Y\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "60", ), ], ], ), ], line: 879, }, ], ], ), ], line: 879, }, ], ], ), ], line: 878, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"cannot be represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 882, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "60", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 882, column: 23, }, ], ], ), ], line: 879, }, ], end: 304, }, next: None, line: 883, column: 1, }, ), line: 883, column: 1, }, ], end: 460, }, next: None, line: 884, column: 1, }, ], end: 6570, }, next: None, line: 885, column: 1, }, DoBlock( CodeBlock { start: 6571, code: [ Variable { names: [ ( "D", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 888, }, ], ], line: 889, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 889, }, ], ], ), ], line: 889, }, ], ], line: 890, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 890, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], body: CodeBlock { start: 25, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"no daylight saving information\"", ), ], ], ), ], line: 891, }, ], end: 30, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 30, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 893, }, ], ], ), ], line: 893, }, Operator( ( "==", true, ), ), Symbol( "'boolean'", ), ], ], ), ], line: 893, }, ], end: 42, }, next: None, line: 894, column: 1, }, ), line: 894, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 894, }, ], values: [ [ Symbol( "nil", ), ], ], line: 896, column: 0, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 896, }, ], ], ), ], line: 896, }, ], ], line: 896, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 897, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t1", ), ], line: 897, }, ], ], ), ], line: 896, }, ], end: 6634, }, ), Variable { names: [ ( "D", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 900, }, ], ], line: 900, column: 9, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 900, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 901, }, ], ], ), ], line: 901, }, ], ], line: 901, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "year", ), ], line: 901, }, ], values: [ [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "year", ), ], line: 902, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 902, column: 10, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 903, }, ], ], ), ], line: 903, }, ], ], line: 903, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 905, }, ], [ Ident { expr: [ Symbol( "t1", ), ], line: 905, }, ], ], ), ], line: 905, }, Operator( ( "/", true, ), ), Expr( [ Symbol( "24", ), Operator( ( "*", true, ), ), Symbol( "3600", ), ], ), Ident { expr: [], line: 905, }, Operator( ( "-", true, ), ), Symbol( "365", ), ], ], ), ], line: 905, }, Operator( ( "<", true, ), ), Symbol( "2", ), ], ], ), ], line: 903, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 905, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 908, }, ], ], line: 908, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 908, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 909, }, ], ], ), ], line: 909, }, ], ], line: 910, column: 0, }, Variable { names: [ ( "diff", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 910, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 910, }, ], ], ), ], line: 910, }, ], ], line: 910, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 911, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 911, }, Operator( ( "<=", true, ), ), Symbol( "1", ), ], ], ), ], line: 910, }, Alter { names: [ Ident { expr: [ Symbol( "diff", ), ], line: 911, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 912, }, ], [ Ident { expr: [ Symbol( "t1", ), ], line: 912, }, ], ], ), ], line: 912, }, ], ], line: 912, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 913, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 913, }, Operator( ( "<=", true, ), ), Symbol( "0", ), ], ], ), ], line: 912, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "2000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "10", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "23", ), ], ), ( Some( [ Symbol( "min", ), ], ), [ Symbol( "12", ), ], ), ], line: 915, column: 27, }, ], ], ), ], line: 915, }, ], ], line: 916, column: 0, }, Variable { names: [ ( "t2", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "2000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "10", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "23", ), ], ), ( Some( [ Symbol( "min", ), ], ), [ Symbol( "10", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Symbol( "19", ), ], ), ], line: 916, column: 31, }, ], ], ), ], line: 916, }, ], ], line: 916, column: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 917, }, ], [ Ident { expr: [ Symbol( "t2", ), ], line: 917, }, ], ], ), ], line: 917, }, Operator( ( "==", true, ), ), Symbol( "60", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Symbol( "19", ), ], ], ), ], line: 916, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 917, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "2005", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "min", ), ], ), [ Symbol( "0", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Operator( ( "-", false, ), ), Symbol( "3602", ), ], ), ], line: 920, column: 28, }, ], ], line: 920, column: 28, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 921, }, ], ], ), ], line: 920, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "day", ), ], line: 922, }, Operator( ( "==", true, ), ), Symbol( "31", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "month", ), ], line: 922, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "year", ), ], line: 922, }, Operator( ( "==", true, ), ), Symbol( "2004", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "hour", ), ], line: 922, }, Operator( ( "==", true, ), ), Symbol( "23", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "min", ), ], line: 923, }, Operator( ( "==", true, ), ), Symbol( "59", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "sec", ), ], line: 923, }, Operator( ( "==", true, ), ), Symbol( "58", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "yday", ), ], line: 923, }, Operator( ( "==", true, ), ), Symbol( "366", ), ], ], ), ], line: 921, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 926, }, ], ], ), ], line: 924, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%d %m %Y %H %M %S'", ), ], ], ), ], line: 927, }, ], ], line: 928, column: 0, }, Variable { names: [ ( "d", false, ), ( "m", false, ), ( "a", false, ), ( "h", false, ), ( "min", false, ), ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 928, }, ], [ Symbol( "\"(%d+) (%d+) (%d+) (%d+) (%d+) (%d+)\"", ), ], ], ), ], line: 928, }, ], ], line: 929, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 929, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 930, }, ], ], ), ], line: 930, }, ], ], line: 930, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "m", ), ], line: 930, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 931, }, ], ], ), ], line: 931, }, ], ], line: 931, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 931, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 932, }, ], ], ), ], line: 932, }, ], ], line: 932, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "h", ), ], line: 932, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "h", ), ], line: 933, }, ], ], ), ], line: 933, }, ], ], line: 933, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "min", ), ], line: 933, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "min", ), ], line: 934, }, ], ], ), ], line: 934, }, ], ], line: 934, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 934, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 935, }, ], ], ), ], line: 935, }, ], ], line: 935, column: 6, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'test done on %2.2d/%2.2d/%d'", ), ], [ Ident { expr: [ Symbol( "d", ), ], line: 936, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 936, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 936, }, ], ], ), ], line: 936, }, ], ], ), ], line: 935, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "', at %2.2d:%2.2d:%2.2d\\n'", ), ], [ Ident { expr: [ Symbol( "h", ), ], line: 937, }, ], [ Ident { expr: [ Symbol( "min", ), ], line: 937, }, ], [ Ident { expr: [ Symbol( "s", ), ], line: 937, }, ], ], ), ], line: 937, }, ], ], ), ], line: 936, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%s\\n'", ), ], [ Ident { expr: [ Symbol( "_VERSION", ), ], line: 938, }, ], ], ), ], line: 938, }, ], ], ), ], line: 937, }, ]