--- source: src/main.rs expression: parsed input_file: test-data/lua5.3-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( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 32, }, ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 32, }, ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 33, }, ], ], ), ], line: 33, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), ], line: 33, }, ], ], ), ], line: 33, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 32, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "8", ), ], ], ), ], line: 34, }, ], ], ), ], line: 33, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 35, column: 5, }, ], ], line: 35, column: 6, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 35, }, ], [ Table { data: [], line: 35, column: 12, }, ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 36, }, ], ], ), ], line: 36, }, ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "getmetatable", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 38, }, ], ], ), Symbol( ".", ), Symbol( "__name", ), ], line: 38, }, Operator( ( "==", true, ), ), Symbol( "\"FILE*\"", ), ], ], ), ], line: 36, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'xuxu_nao_existe'", ), ], ], ), ], line: 40, }, ], ], line: 40, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 41, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 41, }, ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 41, }, ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 40, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 41, }, Ident { expr: [ Symbol( "b", ), ], line: 43, }, Ident { expr: [ Symbol( "c", ), ], line: 43, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'/a/b/c/d'", ), ], [ Symbol( "'w'", ), ], ], ), ], line: 43, }, ], ], line: 43, column: 14, }, 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, }, Variable { names: [ ( "file", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 46, }, ], ], line: 47, column: 0, }, Variable { names: [ ( "f", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 47, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 47, }, ], ], line: 48, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 48, }, ], body: CodeBlock { start: 343, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 49, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 49, }, ], ), Ident { expr: [ Call( [ [ Symbol( "\"'os.tmpname' file cannot be open; skipping file tests\"", ), ], ], ), ], line: 49, }, ], end: 352, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 352, code: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 52, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing i/o'", ), ], ], ), ], line: 52, }, Variable { names: [ ( "otherfile", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 56, }, ], ], line: 56, column: 8, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 58, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 58, }, ], [ Symbol( "\"rw\"", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 59, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 59, }, ], [ Symbol( "\"rb+\"", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 60, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 60, }, ], [ Symbol( "\"r+bk\"", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 61, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 61, }, ], [ Symbol( "\"\"", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid mode\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 62, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 62, }, ], [ Symbol( "\"+\"", ), ], ], ), ], 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( "\"b\"", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 64, }, ], [ Symbol( "\"r+b\"", ), ], ], ), ], line: 64, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 65, }, ], [ Symbol( "\"r+\"", ), ], ], ), ], line: 65, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 66, }, ], [ Symbol( "\"rb\"", ), ], ], ), ], line: 66, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "'C'", ), ], [ Symbol( "'all'", ), ], ], ), ], line: 68, }, ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 70, }, ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 70, }, ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 72, }, ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 73, }, ], ], ), ], line: 73, }, ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"\"", ), ], [ Ident { expr: [ Symbol( "dofile", ), ], line: 74, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 74, }, ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 75, }, ], ], ), ], line: 75, }, ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 76, }, ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 77, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 77, }, ], ], ), ], line: 76, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 79, }, ], 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: 80, }, ], ], line: 80, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "status", ), ], line: 81, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 81, }, ], ], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "code", ), ], line: 81, }, ], ], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 80, }, ], end: 254, }, next: None, line: 82, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 85, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 85, }, ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"cur\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 86, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 86, }, Operator( ( "-", true, ), ), Symbol( "3", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"joao\"", ), ], ], ), ], line: 87, }, ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"end\"", ), ], ], ), ], line: 88, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo joao\"", ), ], ], ), ], line: 88, }, ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 90, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 88, }, 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: 92, }, ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'çfourth_line'", ), ], ], ), ], line: 93, }, ], ], ), ], line: 92, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 94, }, ], ], ), ], line: 93, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 94, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 96, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 96, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "rawequal", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 96, }, ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 96, }, ], ], ), ], line: 96, }, ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 97, }, 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: 103, }, ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 104, }, ], [ Symbol( "'r'", ), ], ], ), ], line: 104, }, ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 105, }, ], ], ), ], line: 104, }, ], end: 31, }, line: 106, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 106, }, ], end: 466, }, line: 108, column: 1, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 108, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 113, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 113, }, ], ], ), ], line: 113, }, ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 114, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 114, }, ], ], ), ], line: 114, }, ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 116, }, ], [ Symbol( "\"ab\"", ), ], ], ), ], line: 116, }, ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\n\\t\\t \"", ), ], [ Symbol( "3450", ), ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 117, }, ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 117, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 118, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 121, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 121, }, ], ], ), ], line: 121, }, ], ], line: 121, column: 13, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 122, }, ], [ Symbol( "'\\n'", ), ], ], ), ], line: 121, }, 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: 123, }, ], ], ), ], line: 123, }, ], ], ), ], line: 122, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"0xABCp-3\"", ), ], [ Symbol( "'\\n'", ), ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "'\\n'", ), ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 126, }, ], [ Symbol( "'\\n'", ), ], ], ), ], line: 125, }, 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: 127, }, ], ], ), ], line: 127, }, ], ], ), ], line: 126, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"-0xABCp-3\"", ), ], [ Symbol( "'\\n'", ), ], ], ), ], line: 127, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 129, }, ], ], ), ], line: 128, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 129, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 130, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 130, }, ], ], ), ], line: 130, }, ], ], line: 130, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 131, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 131, }, ], ], ), ], line: 130, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 132, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 132, }, ], ], ), ], line: 131, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 133, }, Operator( ( "==", true, ), ), Symbol( "343.5", ), ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 134, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*n\"", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 135, }, ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 136, }, ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*n\"", ), ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "343.5", ), ], ], ), ], line: 136, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 138, }, ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 139, }, ], ], ), ], line: 139, }, ], ], ), ], line: 138, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 139, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 142, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 142, }, ], ], ), ], line: 142, }, ], ], line: 142, 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: 142, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 148, }, ], ], ), ], line: 147, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 148, }, ], values: [ [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "wrap", ), Call( [ [ Ident { expr: [ Symbol( "dofile", ), ], line: 149, }, ], ], ), ], line: 149, }, ], ], line: 149, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 150, }, ], ], ), ], line: 150, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 149, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "100", ), ], [ Symbol( "101", ), ], ], ), ], line: 151, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 150, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "200", ), ], ], ), ], line: 152, }, Operator( ( "==", true, ), ), Symbol( "100", ), Operator( ( "+", true, ), ), Symbol( "200", ), Operator( ( "*", true, ), ), Symbol( "101", ), ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 153, }, ], ], ), ], line: 153, }, ], ], ), ], line: 152, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 153, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 156, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 156, }, ], ], ), ], line: 156, }, ], ], line: 156, 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: 156, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"1234\"", ), ], ], ), ], line: 161, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "1000", ), ], step: None, code: CodeBlock { start: 840, code: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"0\"", ), ], ], ), ], line: 163, }, ], end: 847, }, line: 163, column: 21, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\"", ), ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "[[\n.e+\t0.e;\t--; 0xX;\n]]", ), ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 168, }, ], ], ), ], line: 167, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 168, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 169, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 169, }, ], ], ), ], line: 169, }, ], ], line: 169, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 170, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "12.3", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 170, }, Operator( ( "==", true, ), ), Symbol( "\"-\"", ), ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 171, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0xffff", ), ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 171, }, Operator( ( "==", true, ), ), Symbol( "\"+ \"", ), ], ], ), ], line: 171, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 172, }, Operator( ( "==", true, ), ), Symbol( "0.3", ), ], ], ), ], line: 171, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 172, }, Operator( ( "==", true, ), ), Symbol( "\"|\"", ), ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 173, }, Operator( ( "==", true, ), ), Symbol( "5e-3", ), ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 173, }, Operator( ( "==", true, ), ), Symbol( "\"X\"", ), ], ], ), ], line: 173, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 174, }, Operator( ( "==", true, ), ), Symbol( "234e13", ), ], ], ), ], line: 173, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 174, }, Operator( ( "==", true, ), ), Symbol( "\"E\"", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "0Xdeadbeefdeadbeef", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "\"x\\n\"", ), ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 176, }, Operator( ( "==", true, ), ), Symbol( "8.61328125", ), ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 176, }, Operator( ( "==", true, ), ), Symbol( "\"e\"", ), ], ], ), ], line: 176, }, DoBlock( CodeBlock { start: 1043, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 179, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 179, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 180, }, ], ], line: 180, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 181, }, ], [ Symbol( "\"^00*\\n$\"", ), ], ], ), ], line: 181, }, ], ], ), ], line: 180, }, ], end: 1075, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 184, }, ], ], ), ], line: 182, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 184, }, Operator( ( "==", true, ), ), Symbol( "\"e+\"", ), ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 185, }, ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 185, }, Operator( ( "==", true, ), ), Symbol( "\";\"", ), ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 186, }, ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 186, }, Operator( ( "==", true, ), ), Symbol( "\"-;\"", ), ], ], ), ], line: 186, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 187, }, ], ], ), ], line: 186, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 187, }, Operator( ( "==", true, ), ), Symbol( "\"X\"", ), ], ], ), ], line: 187, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 188, }, ], ], ), ], line: 187, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 188, }, Operator( ( "==", true, ), ), Symbol( "\";\"", ), ], ], ), ], line: 188, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"n\"", ), ], ], ), ], line: 189, }, ], ], ), ], line: 188, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 189, }, ], ], ), ], line: 189, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 190, }, ], ], ), ], line: 189, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 191, }, ], ], ), ], line: 191, }, ], ], ), ], line: 190, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), ], line: 195, }, ], [ Symbol( "\"non-existent-file\"", ), ], ], ), ], line: 195, }, ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 196, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 196, }, ], ], ), ], line: 196, }, ], ], ), ], line: 195, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 197, }, ], ], ), ], line: 196, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 199, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 199, }, ], ], ), ], line: 199, }, ], ], line: 200, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 200, }, ], body: CodeBlock { start: 1270, code: [ Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 200, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 200, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 200, column: 5, }, ], end: 1276, }, line: 200, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 201, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 200, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"file is already closed\"", ), ], [ Ident { expr: [ Symbol( "f", ), ], line: 202, }, ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"file is already closed\"", ), ], [ Ident { expr: [ Symbol( "f", ), ], line: 203, }, ], ], ), ], line: 202, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 203, }, ], values: [ [ Symbol( "0", ), ], ], line: 206, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 206, }, ], ], ), ], line: 206, }, ], stop: None, initial: None, code: CodeBlock { start: 1308, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 206, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 206, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 206, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 206, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 206, column: 14, }, ], end: 1323, }, line: 206, column: 25, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 208, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 207, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 210, }, ], ], ), ], line: 210, }, ], ], ), ], line: 210, }, ], ], line: 210, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 211, }, ], ], ), ], line: 211, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 210, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 212, }, ], ], ), ], line: 211, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 213, }, ], ], ), ], line: 212, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 213, }, ], values: [ [ Symbol( "0", ), ], ], line: 215, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 215, }, ], stop: None, initial: None, code: CodeBlock { start: 1388, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 215, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 215, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 215, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 215, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 215, column: 14, }, ], end: 1403, }, line: 215, column: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 216, }, ], ], ), Symbol( ":", ), Symbol( "sub", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "5", ), ], ], ), ], line: 216, }, Operator( ( "==", true, ), ), Symbol( "\"file \"", ), ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 217, }, ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"closed file\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), ], line: 219, }, ], [ Ident { expr: [ Symbol( "f", ), ], line: 219, }, ], ], ), ], line: 218, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 220, }, ], ], ), ], line: 220, }, Operator( ( "==", true, ), ), Symbol( "\"file (closed)\"", ), ], ], ), ], line: 219, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 221, }, ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Symbol( "\"closed file\"", ), ], ], ), ], line: 220, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 222, }, ], ], ), ], line: 221, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 222, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 223, }, ], ], ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 223, }, ], ], line: 223, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 223, }, ], values: [ [ Symbol( "0", ), ], ], line: 225, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [], ), ], line: 225, }, ], stop: None, initial: None, code: CodeBlock { start: 1499, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 225, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 225, }, ], ], ), ], line: 225, }, Alter { names: [ Ident { expr: [ Symbol( "n", ), ], line: 225, }, ], values: [ [ Ident { expr: [ Symbol( "n", ), ], line: 225, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 225, column: 14, }, ], end: 1514, }, line: 225, column: 24, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 225, }, ], values: [ [ Symbol( "nil", ), ], ], line: 226, column: 4, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 228, }, ], ], ), ], line: 228, }, ], ], ), ], line: 227, }, DoBlock( CodeBlock { start: 1537, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 231, }, ], ], ), ], line: 231, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "300", ), ], ], ), ], line: 232, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 231, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 232, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 234, column: 5, }, ], ], line: 234, 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: 234, }, ], ), Symbol( "]", ), ], line: 234, }, ], values: [ [ Symbol( "1", ), ], ], line: 234, column: 6, }, ], end: 46, }, line: 234, column: 20, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 234, }, ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 235, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 235, }, ], ], ), ], line: 235, }, ], ], ), Call( [], ), ], line: 235, }, ], ), ], line: 235, column: 19, }, ], ], line: 235, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 237, }, Operator( ( "==", true, ), ), Symbol( "250", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 237, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 237, }, ], ), Symbol( "]", ), ], line: 237, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 235, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 238, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 237, }, ], values: [ [ Symbol( "1", ), ], ], line: 238, column: 9, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"too many arguments\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), ], line: 239, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 239, }, ], [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 239, }, ], ], ), ], line: 239, }, ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 241, }, ], ], ), ], line: 241, }, ], ], ), ], line: 240, }, ], end: 1663, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 244, }, ], ], ), ], line: 242, }, DoBlock( CodeBlock { start: 1670, 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: 246, }, ], ], line: 246, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 247, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 247, }, ], ], ), ], line: 247, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 247, }, ], ], ), ], line: 247, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 246, }, ], end: 1707, }, ), Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid format\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), ], line: 249, }, ], [ Symbol( "\"x\"", ), ], ], ), ], line: 248, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 250, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 249, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "'l'", ), ], ], ), ], line: 251, }, Operator( ( "==", true, ), ), Symbol( "'\"álo\"'", ), ], ], ), ], line: 250, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 252, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 251, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 253, }, Operator( ( "==", true, ), ), Symbol( "\"second line\"", ), ], ], ), ], line: 252, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 254, }, ], ], line: 254, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 255, }, Operator( ( "==", true, ), ), Symbol( "\"third line \"", ), ], ], ), ], line: 254, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 256, }, ], ], ), ], line: 256, }, ], ], ), ], line: 255, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'L'", ), ], ], ), ], line: 257, }, Operator( ( "==", true, ), ), Symbol( "\"third line \\n\"", ), ], ], ), ], line: 256, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 258, }, Operator( ( "==", true, ), ), Symbol( "\"ç\"", ), ], ], ), ], line: 257, }, 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: 259, }, ], ], ), ], line: 259, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 258, }, 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: 260, }, ], ], ), ], line: 260, }, ], ], ), ], line: 259, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 261, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 260, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 262, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 261, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'n'", ), ], ], ), ], line: 263, }, Operator( ( "==", true, ), ), Symbol( "3450", ), ], ], ), ], line: 262, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 264, }, Operator( ( "==", true, ), ), Symbol( "'\\n'", ), ], ], ), ], line: 263, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 265, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 264, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 266, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30000", ), ], ], ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 266, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 268, }, ], ), ], line: 268, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 268, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 269, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 268, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 270, }, ], ), ], line: 270, column: 10, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 270, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 269, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'n'", ), ], ], ), ], line: 271, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 270, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'n'", ), ], ], ), ], line: 272, }, ], ), ], line: 272, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 272, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 271, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 273, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 272, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 274, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 273, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 274, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 275, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 277, }, ], ], ), ], line: 276, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\" input file is closed\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), ], line: 278, }, ], ], ), ], line: 277, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 280, }, ], ], ), ], line: 280, }, ], ], ), ], line: 278, }, Variable { names: [ ( "t", false, ), ], values: [ [ Symbol( "'0123456789'", ), ], ], line: 283, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 2070, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 283, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), ], line: 283, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 283, }, ], ], line: 283, column: 6, }, ], end: 2077, }, line: 283, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 284, }, ], ], ), ], line: 284, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "10", ), ], ], ), ], line: 283, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 286, }, ], ], ), ], line: 284, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\"", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\"", ), ], ], ), ], line: 286, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 287, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\" output file is closed\"", ), ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), ], line: 289, }, ], ], ), ], line: 288, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 290, }, ], [ Symbol( "\"a+b\"", ), ], ], ), ], line: 290, }, ], ], line: 290, column: 11, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 291, }, ], ], ), ], line: 290, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 291, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "' '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 294, }, Operator( ( "..", true, ), ), Symbol( "' '", ), ], ], ), ], line: 294, }, ], ], ), ], line: 292, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "';'", ), ], [ Symbol( "'end of file\\n'", ), ], ], ), ], line: 295, }, ], ], ), ], line: 294, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "flush", ), Call( [], ), ], line: 295, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "flush", ), Call( [], ), ], line: 296, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 296, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 300, }, ], ], ), ], line: 298, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 301, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 300, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 301, }, 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: 303, }, ], ], ), ], line: 303, }, ], ], ), ], line: 303, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 303, }, ], ], ), ], line: 302, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 304, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 303, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 305, }, ], ], ), ], line: 304, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 306, }, Operator( ( "==", true, ), ), Symbol( "';end of file\\n'", ), ], ], ), ], line: 305, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 307, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 308, }, ], ], ), ], line: 308, }, ], ], ), ], line: 307, }, DoBlock( CodeBlock { start: 2285, 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: 315, }, ], ], ), ], line: 315, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 315, }, ], ], ), ], line: 315, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ), Ident { expr: [], line: 315, }, ], ], ), ), ], end: 23, }, line: 316, column: 1, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 319, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 319, }, ], ], line: 320, column: 0, }, Variable { names: [ ( "r", false, ), ( "m", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 320, }, ], ], line: 320, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 321, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 321, }, ], ], ), ], line: 321, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 321, }, ], ], ), ], line: 321, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 322, }, ], ], ), ], line: 321, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 322, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 324, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 324, }, ], ], line: 324, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 324, }, Ident { expr: [ Symbol( "m", ), ], line: 325, }, Ident { expr: [ Symbol( "c", ), ], line: 325, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"whatever\"", ), ], ], ), ], line: 325, }, ], ], line: 325, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 326, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 326, }, ], ], ), ], line: 326, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 326, }, ], ], ), ], line: 326, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 327, }, ], ], ), ], line: 326, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 327, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 329, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 329, }, ], ], line: 329, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 329, }, Ident { expr: [ Symbol( "m", ), ], line: 330, }, ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 330, }, ], ], ), ], line: 330, }, ], ], line: 330, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "false", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 331, }, ], ], ), ], line: 331, }, ], ], ), ], line: 330, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 332, }, ], ], ), ], line: 331, }, ], end: 2445, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 335, }, ], ], ), ], line: 335, }, ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 338, }, ], ], ), ], line: 335, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 338, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 339, }, ], ], ), ], line: 338, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 340, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], ], ), ], line: 339, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 341, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "\"line\\n\"", ), ], ], ), ], line: 341, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 343, }, Operator( ( "==", true, ), ), Symbol( "\"other\"", ), ], ], ), ], line: 342, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 344, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 343, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 344, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 347, }, ], ], ), ], line: 347, }, ], ], ), ], line: 347, }, ], ], line: 348, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "\"\"", ), ], ], line: 349, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [ [ Symbol( "\"L\"", ), ], ], ), ], line: 349, }, ], stop: None, initial: None, code: CodeBlock { start: 2555, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 349, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 349, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 349, }, ], ], line: 349, column: 5, }, ], end: 2561, }, line: 349, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 350, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 349, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 350, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 353, }, ], ], ), ], line: 351, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 353, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 355, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "\"L\"", ), ], ], ), ], line: 355, }, ], stop: None, initial: None, code: CodeBlock { start: 2593, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 355, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 355, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 355, }, ], ], line: 355, column: 5, }, ], end: 2599, }, line: 355, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 356, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 355, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 356, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 357, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 360, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 360, }, ], [ Symbol( "\"L\"", ), ], ], ), ], line: 360, }, ], stop: None, initial: None, code: CodeBlock { start: 2629, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 360, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 360, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 360, }, ], ], line: 360, column: 5, }, ], end: 2635, }, line: 360, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 361, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 360, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 361, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 364, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 364, }, ], [ Symbol( "\"l\"", ), ], ], ), ], line: 364, }, ], stop: None, initial: None, code: CodeBlock { start: 2656, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 364, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 364, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 364, }, ], ], line: 364, column: 5, }, ], end: 2662, }, line: 364, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "\"lineother\"", ), ], ], ), ], line: 364, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 367, }, ], ], ), ], line: 365, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"a = 10 + 34\\na = 2*a\\na = -a\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 367, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 368, column: 5, }, ], ], line: 368, column: 5, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 369, }, ], [ Symbol( "\"L\"", ), ], ], ), ], line: 369, }, ], [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 369, }, ], ], ), Call( [], ), ], line: 368, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "a", ), ], line: 370, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Expr( [ Symbol( "10", ), Operator( ( "+", true, ), ), Symbol( "34", ), ], ), Ident { expr: [], line: 370, }, Operator( ( "*", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 370, }, ], ], ), ], line: 369, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 374, }, ], ], ), ], line: 370, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"0123456789\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 374, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 375, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 375, }, ], stop: None, initial: None, code: CodeBlock { start: 2755, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 376, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 376, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 376, }, ], end: 12, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 12, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 377, }, ], ], ), ], line: 377, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 377, }, ], ], ), ], line: 377, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 377, }, ], end: 27, }, next: None, line: 378, column: 1, }, ), line: 378, column: 1, }, ], end: 2783, }, line: 379, column: 1, }, ForFuncLoop { iters: [ "a", "b", "c", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 381, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 381, }, ], stop: None, initial: None, code: CodeBlock { start: 2803, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 382, }, Operator( ( "==", true, ), ), Symbol( "\"0\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 382, }, Operator( ( "==", true, ), ), Symbol( "\"12\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 382, }, Operator( ( "==", true, ), ), Symbol( "\"3456789\\n\"", ), ], ], ), ], line: 382, }, ], end: 2818, }, line: 383, column: 1, }, ForFuncLoop { iters: [ "a", "b", "c", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 385, }, ], [ Symbol( "\"a\"", ), ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 385, }, ], stop: None, initial: None, code: CodeBlock { start: 2838, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 386, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], body: CodeBlock { start: 5, code: [ Break, ], end: 7, }, next: None, line: 386, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 387, }, Operator( ( "==", true, ), ), Symbol( "\"0123456789\\n\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 387, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 387, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 386, }, ], end: 2860, }, line: 388, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 388, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 391, }, ], ], ), ], line: 389, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"00\\n10\\n20\\n30\\n40\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 391, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 392, }, ], [ Symbol( "\"n\"", ), ], [ Symbol( "\"n\"", ), ], ], ), ], line: 392, }, ], stop: None, initial: None, code: CodeBlock { start: 2894, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 393, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 393, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 393, }, ], end: 12, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 12, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 394, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 394, }, Operator( ( "-", true, ), ), Symbol( "10", ), ], ], ), ], line: 394, }, ], end: 21, }, next: None, line: 395, column: 1, }, ), line: 395, column: 1, }, ], end: 2916, }, line: 396, column: 1, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 400, }, ], ], ), ], line: 396, }, 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: 400, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 411, }, ], values: [ [ Symbol( "1", ), ], ], line: 412, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 413, }, ], ], ), ], line: 413, }, ], ], ), ], line: 413, }, ], ], ), ], line: 412, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 413, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 415, }, ], [ Symbol( "\"L\"", ), ], ], ), ], line: 415, }, ], ], ), Call( [], ), ], line: 414, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 416, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 415, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 417, }, ], [ Symbol( "1", ), ], ], ), ], line: 417, }, ], ], ), Call( [], ), ], line: 416, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 418, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 417, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 419, }, ], [ Symbol( "3", ), ], ], ), ], line: 419, }, ], ], ), Call( [], ), ], line: 418, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 420, }, Operator( ( "==", true, ), ), Symbol( "8", ), ], ], ), ], line: 419, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 420, }, Variable { names: [ ( "x1", false, ), ], values: [ [ Symbol( "\"string\\n\\n\\\\com \\\"\\\"''coisas [[estranhas]] ]]'\"", ), ], ], line: 424, column: 4, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 425, }, ], ], ), ], line: 424, }, 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: 426, }, ], ], ), ], line: 426, }, ], ], ), ], line: 426, }, ], ], ), ], line: 425, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 426, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 428, }, ], ], ), ], line: 428, }, ], ], ), Call( [], ), ], line: 427, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 429, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 429, }, ], ], ), ], line: 428, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 429, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 431, }, ], ], ), ], line: 431, }, ], ], ), ], line: 430, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 432, }, ], ], ), ], line: 432, }, ], ], ), ], line: 431, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 433, }, ], ], ), ], line: 433, }, ], ], ), ], line: 432, }, Function { local: true, name: [ Symbol( "testloadfile", ), ], args: [ "s", "expres", ], body: CodeBlock { start: 3106, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 437, }, ], ], ), ], line: 437, }, IfStatement { condition: [ Ident { expr: [ Symbol( "s", ), ], line: 438, }, ], body: CodeBlock { start: 9, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 438, }, ], ], ), ], line: 438, }, ], end: 16, }, next: None, line: 438, column: 10, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 438, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 440, }, ], ], ), ], line: 440, }, ], ], ), Call( [], ), ], line: 440, }, ], ], line: 440, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 441, }, ], ], ), ], line: 441, }, ], ], ), ], line: 440, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "res", ), ], line: 442, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "expres", ), ], line: 442, }, ], ], ), ], line: 441, }, ], end: 3155, }, line: 443, column: 1, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], ], ), ], line: 443, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"# a non-ending comment\"", ), ], [ Symbol( "nil", ), ], ], ), ], line: 446, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBF# some comment\\nreturn 234\"", ), ], [ Symbol( "234", ), ], ], ), ], line: 449, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBFreturn 239\"", ), ], [ Symbol( "239", ), ], ], ), ], line: 453, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBF\"", ), ], [ Symbol( "nil", ), ], ], ), ], line: 454, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"# a comment\\nreturn require'debug'.getinfo(1).currentline\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 455, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 463, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 463, }, ], ], ), ], line: 459, }, 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: 3217, code: [ Return( Some( [ [ Symbol( "10", ), ], [ Symbol( "'\\0alo\\255'", ), ], [ Symbol( "'hi'", ), ], ], ), ), ], end: 3224, }, line: 464, column: 20, }, ], ], ), ], line: 464, }, ], ], ), ], line: 464, }, ], ], ), ], line: 463, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 464, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 465, }, Ident { expr: [ Symbol( "b", ), ], line: 466, }, Ident { expr: [ Symbol( "c", ), ], line: 466, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 466, }, ], ], ), ], line: 466, }, ], ], ), Call( [], ), ], line: 466, }, ], ], line: 466, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 467, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 467, }, Operator( ( "==", true, ), ), Symbol( "\"\\0alo\\255\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 467, }, Operator( ( "==", true, ), ), Symbol( "\"hi\"", ), ], ], ), ], line: 466, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 468, }, ], ], ), ], line: 468, }, ], ], ), ], line: 467, }, DoBlock( CodeBlock { start: 3271, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 472, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 472, }, ], ], ), ], line: 472, }, 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: 474, column: 16, }, ], ], ), ], line: 474, }, ], ], ), ], line: 474, }, ], ], ), ], line: 472, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 474, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 475, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 476, }, ], [ Symbol( "\"b\"", ), ], [ Table { data: [], line: 476, column: 12, }, ], ], ), ], line: 476, }, ], ], ), ], line: 476, }, ], ], line: 476, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 477, }, ], ], ), ], line: 477, }, Operator( ( "==", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 477, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 476, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 478, }, ], ], ), ], line: 478, }, ], ], ), ], line: 477, }, ], end: 3347, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 482, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 482, }, ], ], ), ], line: 479, }, 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: 3375, code: [ Return( Some( [ [ Symbol( "20", ), ], [ Symbol( "'\\0\\0\\0'", ), ], ], ), ), ], end: 3380, }, line: 484, column: 12, }, ], ], ), ], line: 483, }, ], ], ), ], line: 483, }, ], ], ), ], line: 482, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 484, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 485, }, Ident { expr: [ Symbol( "b", ), ], line: 486, }, Ident { expr: [ Symbol( "c", ), ], line: 486, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 486, }, ], ], ), ], line: 486, }, ], ], ), Call( [], ), ], line: 486, }, ], ], line: 486, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 487, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 487, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 487, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 486, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 488, }, ], ], ), ], line: 488, }, ], ], ), ], line: 487, }, DoBlock( CodeBlock { start: 3427, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 493, }, ], [ Symbol( "'w'", ), ], ], ), ], line: 493, }, ], ], line: 493, 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: 493, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 498, }, 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: 500, }, ], ), ], line: 500, column: 16, }, ], ], line: 501, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 501, }, ], [ Symbol( "'t'", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 501, }, ], ], ), ], line: 501, }, ], ], ), ], line: 501, }, ], ], line: 502, column: 0, }, Variable { names: [ ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 502, }, ], ], line: 502, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "a", ), ], line: 503, }, Operator( ( "==", true, ), ), Symbol( "15", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 503, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 503, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "c", ), ], line: 503, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 503, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 503, }, ], ], ), ], line: 502, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 504, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 504, }, ], ], ), ], line: 503, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 504, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 505, }, ], [ Symbol( "'t'", ), ], [ Symbol( "nil", ), ], ], ), ], line: 505, }, ], ], ), ], line: 505, }, ], ], line: 505, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 506, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 505, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 506, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 507, }, ], ], ), ], line: 507, }, ], ], ), ], line: 507, }, ], ], line: 507, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 508, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "_G", ), ], line: 508, }, ], ], ), ], line: 507, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 509, }, ], ], ), ], line: 509, }, ], ], ), ], line: 508, }, ], end: 3566, }, ), DoBlock( CodeBlock { start: 3567, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 515, }, ], [ Symbol( "'w'", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"return 10\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 515, }, Variable { names: [ ( "s", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 516, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 516, }, ], ], line: 516, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 517, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 517, }, ], [ Symbol( "\"a text chunk\"", ), ], ], ), ], line: 517, }, ], ], ), ], line: 516, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 518, }, ], [ Symbol( "'w'", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\27 return 10\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 517, }, Variable { names: [ ( "s", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 519, }, ], [ Symbol( "'t'", ), ], ], ), ], line: 519, }, ], ], line: 519, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 520, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 520, }, ], [ Symbol( "\"a binary chunk\"", ), ], ], ), ], line: 520, }, ], ], ), ], line: 519, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 521, }, ], ], ), ], line: 521, }, ], ], ), ], line: 520, }, ], end: 3661, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 525, }, ], ], ), ], line: 522, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"qualquer coisa\\n\"", ), ], ], ), ], line: 526, }, ], ], ), ], line: 525, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 527, }, ], ], ), ], line: 526, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 527, }, 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: 529, }, ], [ Symbol( "'wb'", ), ], ], ), ], line: 529, }, ], ], ), ], line: 529, }, ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"outra coisa\\0\\1\\3\\0\\0\\0\\0\\255\\0\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 529, }, ], ], ), ], line: 528, }, Variable { names: [ ( "filehandle", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 533, }, ], [ Symbol( "'r+'", ), ], ], ), ], line: 533, }, ], ], ), ], line: 533, }, ], ], line: 534, 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: 534, }, ], [ Symbol( "'rb'", ), ], ], ), ], line: 534, }, ], ], ), ], line: 534, }, ], ], line: 534, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 535, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 535, }, ], ], ), ], line: 534, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 536, }, ], ], ), ], line: 536, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 535, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'l'", ), ], ], ), ], line: 537, }, Operator( ( "==", true, ), ), Symbol( "\"qualquer coisa\"", ), ], ], ), ], line: 536, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 538, }, ], ], ), ], line: 537, }, 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: 539, }, ], ], ), ], line: 539, }, Operator( ( "==", true, ), ), Symbol( "\"outra coisa\"", ), ], ], ), ], line: 538, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'l'", ), ], ], ), ], line: 540, }, Operator( ( "==", true, ), ), Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 539, }, Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 540, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 542, }, ], ], ), ], line: 542, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 541, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 543, }, ], ], ), ], line: 542, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "4", ), ], ], ), ], line: 544, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\1\\3\\0\"", ), ], ], ), ], line: 543, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 545, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 544, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 546, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 545, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 547, }, Operator( ( "==", true, ), ), Symbol( "\"\\255\"", ), ], ], ), ], line: 546, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 548, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\"", ), ], ], ), ], line: 547, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 549, }, ], ], ), ], line: 548, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 550, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 550, }, ], ], ), ], line: 549, }, Ident { expr: [ Symbol( "otherfilehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 550, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 552, }, ], ], ), ], line: 552, }, ], ], ), ], line: 551, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 553, }, ], ], ), ], line: 553, }, ], ], ), ], line: 552, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 553, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 556, }, ], ], ), 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: 554, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 565, }, ], ], ), ], line: 564, }, 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: 566, }, ], ], line: 566, column: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 567, }, ], ], ), ], line: 567, }, ], ], ), ], line: 566, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_", ), ], line: 568, }, Operator( ( "==", true, ), ), Symbol( "' '", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "__", ), ], line: 568, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 567, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 569, }, ], ], ), ], line: 569, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 569, }, Operator( ( "==", true, ), ), Symbol( "123.4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 569, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "56e-2", ), ], ], ), ], line: 568, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 570, }, Operator( ( "==", true, ), ), Symbol( "'second line'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 570, }, Operator( ( "==", true, ), ), Symbol( "'third line'", ), ], ], ), ], line: 569, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "h", ), ], line: 571, }, Operator( ( "==", true, ), ), MultilineString( "[[\n\nand the rest of the file\n]]", ), ], ], ), ], line: 570, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 575, }, ], ], ), ], line: 575, }, ], ], ), ], line: 574, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 575, }, DoBlock( CodeBlock { start: 4051, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 580, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 580, }, ], ], ), ], line: 580, }, ], ], line: 581, 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: 581, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 581, }, ], ], ), ], line: 581, }, ], ], line: 581, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"full\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 582, }, ], ], ), ], line: 581, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 582, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 584, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 583, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 584, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 585, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 587, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 586, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 587, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 588, }, ], ], ), ], line: 588, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 588, }, ], ], line: 588, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"no\"", ), ], ], ), ], line: 589, }, ], ], ), ], line: 588, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 589, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 590, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 592, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 591, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 592, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 593, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 594, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 594, }, ], ], ), ], line: 594, }, ], ], line: 594, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"line\"", ), ], ], ), ], line: 595, }, ], ], ), ], line: 594, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 595, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 596, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 598, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 597, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"a\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 598, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"all\"", ), ], ], ), ], line: 600, }, Operator( ( "==", true, ), ), Symbol( "\"xa\\n\"", ), ], ], ), ], line: 599, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 600, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 601, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 602, }, ], ], ), ], line: 602, }, ], ], ), ], line: 601, }, ], end: 4271, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_soft", ), ], line: 606, }, ], body: CodeBlock { start: 4275, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing large files (> BUFSIZ)\"", ), ], ], ), ], line: 607, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 608, }, ], ], ), ], line: 607, }, 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: 609, }, ], end: 24, }, line: 609, column: 14, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'\\n12346'", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 609, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 611, }, ], ], ), ], line: 610, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'a'", ), ], ], ), ], line: 612, }, ], ], line: 612, column: 9, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 612, }, Variable { names: [ ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30001", ), ], ], ), ], line: 614, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1005", ), ], ], ), ], line: 614, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 614, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 614, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "100003", ), ], ], ), ], line: 615, }, ], ], line: 615, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 616, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 616, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 616, }, ], ], ), ], line: 616, }, Operator( ( "==", true, ), ), Symbol( "5001", ), Operator( ( "*", true, ), ), Symbol( "13", ), Operator( ( "+", true, ), ), Symbol( "6", ), ], ], ), ], line: 615, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 616, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 617, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 618, }, ], ], line: 618, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 619, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 619, }, Operator( ( "..", true, ), ), Symbol( "'\\n'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 619, }, ], ], ), ], line: 618, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 620, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 619, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 621, }, ], ], ), ], line: 620, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 622, }, ], ], ), ], line: 622, }, ], ], ), ], line: 621, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 622, }, ], values: [ [ Symbol( "nil", ), ], ], line: 623, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 623, }, ], values: [ [ Symbol( "nil", ), ], ], line: 623, column: 7, }, ], end: 4462, }, next: None, line: 624, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 626, }, ], body: CodeBlock { start: 4466, code: [ Variable { names: [ ( "progname", false, ), ], values: [], line: 627, column: 2, }, DoBlock( CodeBlock { start: 3, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Ident { expr: [ Symbol( "arg", ), ], line: 629, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "_ARG", ), ], line: 629, }, ], ], line: 630, column: 0, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 631, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 631, }, ], ), Symbol( "]", ), ], line: 631, }, ], body: CodeBlock { start: 16, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 631, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 631, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 631, column: 5, }, ], end: 22, }, line: 631, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "progname", ), ], line: 631, }, ], values: [ [ Symbol( "'\"'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 632, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 632, }, Operator( ( "..", true, ), ), Symbol( "'\"'", ), ], ], line: 632, column: 12, }, ], end: 38, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing popen/pclose and execute\"", ), ], ], ), ], line: 633, }, Variable { names: [ ( "tests", false, ), ], values: [ [ Table { data: [ ( None, [ Table { data: [ ( None, [ Symbol( "\"ls > /dev/null\"", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 637, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"not-to-be-found-command\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ], line: 638, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"exit 3\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "3", ), ], ), ], line: 639, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"exit 129\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "129", ), ], ), ], line: 640, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"kill -s HUP $$\"", ), ], ), ( None, [ Symbol( "\"signal\"", ), ], ), ( None, [ Symbol( "1", ), ], ), ], line: 641, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"kill -s KILL $$\"", ), ], ), ( None, [ Symbol( "\"signal\"", ), ], ), ( None, [ Symbol( "9", ), ], ), ], line: 642, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"sh -c 'kill -s HUP $$'\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ], line: 643, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "progname", ), ], line: 644, }, Operator( ( "..", true, ), ), Symbol( "' -e \" \"'", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 644, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "progname", ), ], line: 645, }, Operator( ( "..", true, ), ), Symbol( "' -e \"os.exit(0, true)\"'", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 645, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "progname", ), ], line: 646, }, Operator( ( "..", true, ), ), Symbol( "' -e \"os.exit(20, true)\"'", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "20", ), ], ), ], line: 646, column: 9, }, ], ), ], line: 647, column: 1, }, ], ], line: 647, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\n(some error messages are expected now)\"", ), ], ], ), ], line: 647, }, ForFuncLoop { iters: [ "_", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "tests", ), ], line: 649, }, ], ], ), ], line: 649, }, ], stop: None, initial: None, code: CodeBlock { start: 137, 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: 650, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 650, }, ], ], line: 651, 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: 651, }, ], ], ), ], line: 651, }, ], ], line: 651, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 652, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x1", ), ], line: 652, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 652, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y1", ), ], line: 652, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 652, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z1", ), ], line: 652, }, ], ], ), ], line: 651, }, IfStatement { condition: [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 653, }, Operator( ( "==", true, ), ), Symbol( "\"ok\"", ), ], body: CodeBlock { start: 58, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 654, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 654, }, Operator( ( "==", true, ), ), Symbol( "'exit'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 654, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 654, }, ], end: 71, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 71, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 656, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 656, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 656, }, ], ], ), ], line: 656, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 658, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 658, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 658, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 658, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 658, }, ], ], ), ], line: 656, }, ], end: 106, }, next: None, line: 659, column: 1, }, ), line: 659, column: 1, }, ], end: 244, }, line: 660, column: 1, }, ], end: 4711, }, next: None, line: 661, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 661, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "tmpfile", ), Call( [], ), ], line: 665, }, ], ], line: 665, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 666, }, ], ], ), ], line: 666, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 665, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\"", ), ], ], ), ], line: 666, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 667, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"a\"", ), ], ], ), ], line: 669, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 668, }, ], end: 5103, }, next: None, line: 671, column: 1, }, ), line: 671, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 671, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing date/time\"", ), ], ], ), ], line: 673, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 677, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 675, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!\"", ), ], ], ), ], line: 678, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 677, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 679, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 678, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!\\0\\0\"", ), ], ], ), ], line: 680, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 679, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "10000", ), ], ], ), ], line: 681, }, ], ], line: 681, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 682, }, ], ], ), ], line: 682, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 682, }, ], ], ), ], line: 681, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 683, }, ], ], line: 683, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 683, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 684, }, ], ], ), ], line: 684, }, ], ], line: 684, 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: 685, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 685, }, ], ], ), ], line: 685, }, 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: 686, }, ], ], ), ], line: 686, }, ], [ Symbol( "1000", ), ], ], ), ], line: 685, }, ], ], ), ], line: 684, }, 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: 687, }, ], ], ), ], line: 687, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "100", ), ], ], ), ], line: 687, }, ], ], ), ], line: 686, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 689, }, ], ], line: 689, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 689, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 690, }, ], ], ), ], line: 690, }, ], ], line: 690, column: 10, }, 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 and type(D.isdst) == 'boolean')]]", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 693, }, ], ], ), ], line: 691, }, ], ], ), Call( [], ), ], line: 690, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 695, }, ], [ Symbol( "\"%\"", ), ], ], ), ], line: 693, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 696, }, ], [ Symbol( "\"%9\"", ), ], ], ), ], line: 695, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 697, }, ], [ Symbol( "\"%\"", ), ], ], ), ], line: 696, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 698, }, ], [ Symbol( "\"%O\"", ), ], ], ), ], line: 697, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 699, }, ], [ Symbol( "\"%E\"", ), ], ], ), ], line: 698, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"invalid conversion specifier\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 700, }, ], [ Symbol( "\"%Ea\"", ), ], ], ), ], line: 699, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"not an integer\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 702, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "'x'", ), ], ), ], line: 702, column: 25, }, ], ], ), ], line: 700, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"not an integer\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 703, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "1000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "1.5", ), ], ), ], line: 703, column: 25, }, ], ], ), ], line: 702, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"missing\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 705, }, ], [ Table { data: [ ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "12", ), ], ), ], line: 705, column: 13, }, ], ], ), ], line: 703, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 707, }, ], body: CodeBlock { start: 5413, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Ex\"", ), ], ], ), ], line: 709, }, ], ], ), ], line: 709, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 709, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Oy\"", ), ], ], ), ], line: 710, }, ], ], ), ], line: 710, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 709, }, IfStatement { condition: [ Ident { expr: [ Symbol( "maxint", ), ], line: 714, }, Operator( ( ">=", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "62", ), ], body: CodeBlock { start: 35, code: [ Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"out-of-bound\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 716, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 716, }, ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 716, column: 22, }, ], ], ), ], line: 716, }, IfStatement { condition: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "packsize", ), Call( [ [ Symbol( "\"i\"", ), ], ], ), ], line: 717, }, 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: 718, }, ], [ Symbol( "\"%Y\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), ], ], ), ], line: 718, }, ], body: CodeBlock { start: 16, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\" 4-byte time_t\"", ), ], ], ), ], line: 720, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"cannot be represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 721, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "4000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 721, column: 21, }, ], ], ), ], line: 720, }, ], end: 43, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 43, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\" 8-byte time_t\"", ), ], ], ), ], line: 724, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"cannot be represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 725, }, ], [ Symbol( "\"%Y\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "60", ), ], ], ), ], line: 724, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "4000", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 727, column: 20, }, ], ], ), ], line: 727, }, ], ], ), ], line: 727, }, ], ], ), ], line: 725, }, ], end: 84, }, next: None, line: 728, column: 1, }, ), line: 728, column: 1, }, ], end: 118, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 118, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\" 8-byte time_t\"", ), ], ], ), ], line: 731, }, 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: 732, }, ], ], ), ], line: 732, }, ], ], ), ], line: 731, }, Ident { expr: [ Symbol( "checkerr", ), Call( [ [ Symbol( "\"cannot be represented\"", ), ], [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 734, }, ], [ Table { data: [ ( Some( [ Symbol( "year", ), ], ), [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "60", ), ], ), ( Some( [ Symbol( "month", ), ], ), [ Symbol( "1", ), ], ), ( Some( [ Symbol( "day", ), ], ), [ Symbol( "1", ), ], ), ], line: 734, column: 23, }, ], ], ), ], line: 732, }, ], end: 163, }, next: None, line: 735, column: 1, }, ), line: 735, column: 1, }, ], end: 199, }, next: None, line: 736, column: 1, }, ], end: 5613, }, next: None, line: 737, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 737, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 740, }, ], ], ), ], line: 740, }, ], ], line: 740, column: 10, }, 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 and type(D.isdst) == 'boolean')]]", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 743, }, ], ], ), ], line: 741, }, ], ], ), Call( [], ), ], line: 740, }, DoBlock( CodeBlock { start: 5637, code: [ Variable { names: [ ( "D", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 746, }, ], ], line: 747, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 747, }, ], ], ), ], line: 747, }, ], ], line: 747, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 748, }, ], ], ), ], line: 748, }, Operator( ( "==", true, ), ), Symbol( "'boolean'", ), ], ], ), ], line: 747, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 748, }, ], values: [ [ Symbol( "nil", ), ], ], line: 750, column: 0, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 750, }, ], ], ), ], line: 750, }, ], ], line: 750, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 751, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t1", ), ], line: 751, }, ], ], ), ], line: 750, }, ], end: 5687, }, ), Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 752, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 754, }, ], ], ), ], line: 754, }, ], ], line: 754, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "year", ), ], line: 754, }, ], values: [ [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "year", ), ], line: 755, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 755, column: 10, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 756, }, ], ], ), ], line: 756, }, ], ], line: 756, 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: 758, }, ], [ Ident { expr: [ Symbol( "t1", ), ], line: 758, }, ], ], ), ], line: 758, }, Operator( ( "/", true, ), ), Expr( [ Symbol( "24", ), Operator( ( "*", true, ), ), Symbol( "3600", ), ], ), Ident { expr: [], line: 758, }, Operator( ( "-", true, ), ), Symbol( "365", ), ], ], ), ], line: 758, }, Operator( ( "<", true, ), ), Symbol( "2", ), ], ], ), ], line: 756, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 758, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 761, }, ], ], line: 761, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 761, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 762, }, ], ], ), ], line: 762, }, ], ], line: 763, column: 0, }, Variable { names: [ ( "diff", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 763, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 763, }, ], ], ), ], line: 763, }, ], ], line: 763, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 764, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 764, }, Operator( ( "<=", true, ), ), Symbol( "1", ), ], ], ), ], line: 763, }, Alter { names: [ Ident { expr: [ Symbol( "diff", ), ], line: 764, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 765, }, ], [ Ident { expr: [ Symbol( "t1", ), ], line: 765, }, ], ], ), ], line: 765, }, ], ], line: 765, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 766, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 766, }, Operator( ( "<=", true, ), ), Symbol( "0", ), ], ], ), ], line: 765, }, 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: 768, column: 27, }, ], ], ), ], line: 768, }, ], ], line: 769, 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: 769, column: 31, }, ], ], ), ], line: 769, }, ], ], line: 769, column: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 770, }, ], [ Ident { expr: [ Symbol( "t2", ), ], line: 770, }, ], ], ), ], line: 770, }, Operator( ( "==", true, ), ), Symbol( "60", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Symbol( "19", ), ], ], ), ], line: 769, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 770, }, ], 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: 773, column: 28, }, ], ], line: 773, column: 28, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 774, }, ], ], ), ], line: 773, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "day", ), ], line: 775, }, Operator( ( "==", true, ), ), Symbol( "31", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "month", ), ], line: 775, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "year", ), ], line: 775, }, Operator( ( "==", true, ), ), Symbol( "2004", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "hour", ), ], line: 775, }, Operator( ( "==", true, ), ), Symbol( "23", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "min", ), ], line: 776, }, Operator( ( "==", true, ), ), Symbol( "59", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "sec", ), ], line: 776, }, Operator( ( "==", true, ), ), Symbol( "58", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t1", ), Symbol( ".", ), Symbol( "yday", ), ], line: 776, }, Operator( ( "==", true, ), ), Symbol( "366", ), ], ], ), ], line: 774, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 779, }, ], ], ), ], line: 777, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%d %m %Y %H %M %S'", ), ], ], ), ], line: 780, }, ], ], line: 781, 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: 781, }, ], [ Symbol( "\"(%d+) (%d+) (%d+) (%d+) (%d+) (%d+)\"", ), ], ], ), ], line: 781, }, ], ], line: 782, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 782, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 783, }, ], ], ), ], line: 783, }, ], ], line: 783, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "m", ), ], line: 783, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 784, }, ], ], ), ], line: 784, }, ], ], line: 784, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 784, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 785, }, ], ], ), ], line: 785, }, ], ], line: 785, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "h", ), ], line: 785, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "h", ), ], line: 786, }, ], ], ), ], line: 786, }, ], ], line: 786, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "min", ), ], line: 786, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "min", ), ], line: 787, }, ], ], ), ], line: 787, }, ], ], line: 787, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 787, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 788, }, ], ], ), ], line: 788, }, ], ], line: 788, 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: 789, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 789, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 789, }, ], ], ), ], line: 789, }, ], ], ), ], line: 788, }, 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: 790, }, ], [ Ident { expr: [ Symbol( "min", ), ], line: 790, }, ], [ Ident { expr: [ Symbol( "s", ), ], line: 790, }, ], ], ), ], line: 790, }, ], ], ), ], line: 789, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%s\\n'", ), ], [ Ident { expr: [ Symbol( "_VERSION", ), ], line: 791, }, ], ], ), ], line: 791, }, ], ], ), ], line: 790, }, ]