--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-tests/files.lua --- [ Alter { names: [ Ident { expr: [ Symbol( "debug", ), ], line: 1, }, ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"debug\"", ), ], ], ), ], line: 1, }, ], ], line: 1, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "getenv", ), Call( [ [ Symbol( "\"PATH\"", ), ], ], ), ], line: 3, }, ], ], ), ], line: 3, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 5, }, ], ], ), ], line: 5, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 5, }, ], ], ), ], line: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), ], line: 6, }, ], [ Symbol( "\"non-existent-file\"", ), ], ], ), ], line: 6, }, ], ], ), ], line: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 7, }, ], ], ), ], line: 7, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 7, }, ], ], ), ], line: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 11, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 12, }, ], ], ), ], line: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 15, }, ], ], ), ], line: 15, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 15, }, ], ], ), ], line: 15, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 16, }, ], ], ), ], line: 16, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stderr", ), ], line: 16, }, ], ], ), ], line: 16, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "8", ), ], ], ), ], line: 17, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 16, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 18, column: 5, }, ], ], line: 18, column: 6, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 18, }, ], [ Table { data: [], line: 18, column: 12, }, ], ], ), ], line: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 19, }, ], ], ), ], line: 19, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 18, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'xuxu_nao_existe'", ), ], ], ), ], line: 21, }, ], ], line: 21, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 22, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 22, }, ], ], ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 22, }, ], ], ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 21, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 22, }, Ident { expr: [ Symbol( "b", ), ], line: 24, }, Ident { expr: [ Symbol( "c", ), ], line: 24, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'/a/b/c/d'", ), ], [ Symbol( "'w'", ), ], ], ), ], line: 24, }, ], ], line: 24, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 25, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 25, }, ], ], ), ], line: 25, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 25, }, ], ], ), ], line: 25, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 24, }, Variable { names: [ ( "file", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 27, }, ], ], line: 28, column: 0, }, Variable { names: [ ( "f", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 28, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 28, }, ], ], line: 29, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 29, }, ], body: CodeBlock { start: 261, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 30, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 30, }, ], ), Ident { expr: [ Call( [ [ Symbol( "\"'os.tmpname' file cannot be open; skipping file tests\"", ), ], ], ), ], line: 30, }, ], end: 270, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 270, code: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 33, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing i/o'", ), ], ], ), ], line: 33, }, Variable { names: [ ( "otherfile", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 37, }, ], ], line: 37, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 39, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 39, }, ], [ Symbol( "\"rw\"", ), ], ], ), ], line: 39, }, ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 40, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 40, }, ], [ Symbol( "\"rb+\"", ), ], ], ), ], line: 40, }, ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 41, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 41, }, ], [ Symbol( "\"r+bk\"", ), ], ], ), ], line: 41, }, ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 42, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 42, }, ], [ Symbol( "\"\"", ), ], ], ), ], line: 42, }, ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 43, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 43, }, ], [ Symbol( "\"+\"", ), ], ], ), ], line: 43, }, ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), ], line: 44, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 44, }, ], [ Symbol( "\"b\"", ), ], ], ), ], line: 44, }, ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 45, }, ], [ Symbol( "\"r+b\"", ), ], ], ), ], line: 45, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 46, }, ], [ Symbol( "\"r+\"", ), ], ], ), ], line: 46, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 47, }, ], [ Symbol( "\"rb\"", ), ], ], ), ], line: 47, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "'C'", ), ], [ Symbol( "'all'", ), ], ], ), ], line: 49, }, ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 51, }, ], ], ), ], line: 49, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 51, }, ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 53, }, ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 54, }, ], ], ), ], line: 54, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 55, }, ], ], ), ], line: 55, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 56, }, ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 57, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 57, }, ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 59, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 57, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 60, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 60, }, ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"cur\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 61, }, Operator( ( "-", true, ), ), Symbol( "3", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"joao\"", ), ], ], ), ], line: 62, }, ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"end\"", ), ], ], ), ], line: 63, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo joao\"", ), ], ], ), ], line: 63, }, ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 63, }, 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: 67, }, ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'çfourth_line'", ), ], ], ), ], line: 68, }, ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 69, }, ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 71, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 71, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "rawequal", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 71, }, ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 71, }, ], ], ), ], line: 71, }, ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 72, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "120", ), ], step: None, code: CodeBlock { start: 396, 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: 78, }, ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 79, }, ], [ Symbol( "'r'", ), ], ], ), ], line: 79, }, ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 80, }, ], ], ), ], line: 79, }, ], end: 31, }, line: 81, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 81, }, ], end: 431, }, line: 83, column: 1, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 83, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 88, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 88, }, ], ], ), ], line: 88, }, ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 89, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 89, }, ], ], ), ], line: 89, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 91, }, ], [ Symbol( "\"ab\"", ), ], ], ), ], line: 91, }, ], ], ), ], line: 89, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\n\\t\\t 3450\\n\"", ), ], ], ), ], line: 92, }, ], ], ), ], line: 91, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 92, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), ], line: 96, }, ], [ Symbol( "\"non-existent-file\"", ), ], ], ), ], line: 96, }, ], ], ), ], line: 93, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 97, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 97, }, ], ], ), ], line: 97, }, ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 98, }, ], ], ), ], line: 97, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 99, }, ], ], ), ], line: 99, }, ], ], line: 100, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 100, }, ], body: CodeBlock { start: 540, code: [], end: 541, }, line: 100, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 101, }, ], ], ), ], line: 101, }, ], ], ), ], line: 100, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 102, }, ], ], ), ], line: 102, }, ], ], ), ], line: 101, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 104, }, ], ], ), ], line: 104, }, ], stop: None, initial: None, code: CodeBlock { start: 568, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 104, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 104, }, ], end: 577, }, line: 104, column: 19, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 104, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 107, }, ], ], ), ], line: 107, }, ], ], ), ], line: 107, }, ], ], line: 107, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 108, }, ], ], ), ], line: 108, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 109, }, ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 109, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 111, }, ], stop: None, initial: None, code: CodeBlock { start: 634, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 111, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 111, }, ], end: 643, }, line: 111, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 112, }, ], ], ), Symbol( ":", ), Symbol( "sub", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "5", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "\"file \"", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 113, }, ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), ], line: 114, }, ], [ Ident { expr: [ Symbol( "f", ), ], line: 114, }, ], ], ), ], line: 114, }, ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 115, }, ], ], ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "\"file (closed)\"", ), ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 116, }, ], ], ), ], line: 116, }, Operator( ( "==", true, ), ), Symbol( "\"closed file\"", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 117, }, ], ], ), ], line: 116, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 117, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 118, }, ], ], ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 118, }, ], ], line: 119, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [], ), ], line: 119, }, ], stop: None, initial: None, code: CodeBlock { start: 732, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 119, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 119, }, ], ], ), ], line: 119, }, ], end: 741, }, line: 119, column: 18, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 119, }, ], values: [ [ Symbol( "nil", ), ], ], line: 120, column: 4, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 121, }, ], ], ), ], line: 121, }, ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 123, }, ], ], ), ], line: 121, }, DoBlock( CodeBlock { start: 764, 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: 125, }, ], ], line: 125, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 126, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 126, }, ], ], ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 126, }, ], ], ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 125, }, ], end: 801, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 128, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 127, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "'*l'", ), ], ], ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'\"álo\"'", ), ], ], ), ], line: 128, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 130, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 129, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "\"second line\"", ), ], ], ), ], line: 130, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 132, }, ], ], line: 132, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 133, }, Operator( ( "==", true, ), ), Symbol( "\"third line \"", ), ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 134, }, ], ], ), ], line: 134, }, ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*L'", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "\"third line \\n\"", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "\"ç\"", ), ], ], ), ], line: 135, }, 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: 137, }, ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 136, }, 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: 138, }, ], ], ), ], line: 138, }, ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 139, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 138, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 140, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*n'", ), ], ], ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "3450", ), ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 142, }, Operator( ( "==", true, ), ), Symbol( "'\\n'", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 142, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 144, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30000", ), ], ], ), ], line: 145, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 144, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 146, }, ], ), ], line: 146, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 145, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 147, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 146, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 148, }, ], ), ], line: 148, column: 10, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 148, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*n'", ), ], ], ), ], line: 149, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 148, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*n'", ), ], ], ), ], line: 150, }, ], ), ], line: 150, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 150, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 149, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 151, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 150, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 152, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 152, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 153, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 155, }, ], ], ), ], line: 154, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), ], line: 156, }, ], ], ), ], line: 156, }, ], ], ), ], line: 155, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 158, }, ], ], ), ], line: 158, }, ], ], ), ], line: 156, }, Variable { names: [ ( "t", false, ), ], values: [ [ Symbol( "'0123456789'", ), ], ], line: 161, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "12", ), ], step: None, code: CodeBlock { start: 1156, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 161, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), ], line: 161, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 161, }, ], ], line: 161, column: 6, }, ], end: 1163, }, line: 161, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 162, }, ], ], ), ], line: 162, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "12", ), ], ], ), ], line: 161, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 164, }, ], ], ), ], line: 162, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\"", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\"", ), ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 165, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), ], line: 167, }, ], ], ), ], line: 167, }, ], ], ), ], line: 166, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 168, }, ], [ Symbol( "\"a+b\"", ), ], ], ), ], line: 168, }, ], ], line: 168, column: 11, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 169, }, ], ], ), ], line: 168, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "' '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 172, }, Operator( ( "..", true, ), ), Symbol( "' '", ), ], ], ), ], line: 172, }, ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "';'", ), ], [ Symbol( "'end of file\\n'", ), ], ], ), ], line: 173, }, ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "flush", ), Call( [], ), ], line: 173, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "flush", ), Call( [], ), ], line: 174, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 174, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 178, }, ], ], ), ], line: 176, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 179, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 178, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 179, }, 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: 181, }, ], ], ), ], line: 181, }, ], ], ), ], line: 181, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 181, }, ], ], ), ], line: 180, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 182, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 181, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 183, }, ], ], ), ], line: 182, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 184, }, Operator( ( "==", true, ), ), Symbol( "';end of file\\n'", ), ], ], ), ], line: 183, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 185, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 186, }, ], ], ), ], line: 186, }, ], ], ), ], line: 185, }, DoBlock( CodeBlock { start: 1373, 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: 193, }, ], ], ), ], line: 193, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 193, }, ], ], ), ], line: 193, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ), Ident { expr: [], line: 193, }, ], ], ), ), ], end: 23, }, line: 194, column: 1, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 197, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 197, }, ], ], line: 198, column: 0, }, Variable { names: [ ( "r", false, ), ( "m", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 198, }, ], ], line: 198, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 199, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 199, }, ], ], ), ], line: 199, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 199, }, ], ], ), ], line: 199, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 198, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 200, }, ], ], ), ], line: 199, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 200, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 202, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 202, }, ], ], line: 202, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 202, }, Ident { expr: [ Symbol( "m", ), ], line: 203, }, Ident { expr: [ Symbol( "c", ), ], line: 203, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"whatever\"", ), ], ], ), ], line: 203, }, ], ], line: 203, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 204, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 204, }, ], ], ), ], line: 204, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 204, }, ], ], ), ], line: 204, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 205, }, ], ], ), ], line: 204, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 205, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 207, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 207, }, ], ], line: 207, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 207, }, Ident { expr: [ Symbol( "m", ), ], line: 208, }, ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 208, }, ], ], ), ], line: 208, }, ], ], line: 208, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 209, }, Operator( ( "==", true, ), ), Symbol( "false", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ismsg", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 209, }, ], ], ), ], line: 209, }, ], ], ), ], line: 208, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 210, }, ], ], ), ], line: 209, }, ], end: 1535, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 213, }, ], ], ), ], line: 213, }, ], ], ), ], line: 211, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 216, }, ], ], ), ], line: 213, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 216, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 217, }, ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"*L\"", ), ], ], ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"*L\"", ), ], ], ), ], line: 219, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], ], ), ], line: 218, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"*L\"", ), ], ], ), ], line: 220, }, Operator( ( "==", true, ), ), Symbol( "\"line\\n\"", ), ], ], ), ], line: 219, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"*L\"", ), ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Symbol( "\"other\"", ), ], ], ), ], line: 220, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "\"*L\"", ), ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 221, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 222, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 225, }, ], ], ), ], line: 225, }, ], ], ), ], line: 225, }, ], ], line: 226, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "\"\"", ), ], ], line: 227, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [ [ Symbol( "\"*L\"", ), ], ], ), ], line: 227, }, ], stop: None, initial: None, code: CodeBlock { start: 1645, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 227, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 227, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 227, }, ], ], line: 227, column: 5, }, ], end: 1651, }, line: 227, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 228, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 228, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 231, }, ], ], ), ], line: 229, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 231, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 233, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "\"*L\"", ), ], ], ), ], line: 233, }, ], stop: None, initial: None, code: CodeBlock { start: 1683, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 233, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 233, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 233, }, ], ], line: 233, column: 5, }, ], end: 1689, }, line: 233, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 234, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 233, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 234, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 235, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 238, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 238, }, ], [ Symbol( "\"*L\"", ), ], ], ), ], line: 238, }, ], stop: None, initial: None, code: CodeBlock { start: 1719, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 238, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 238, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 238, }, ], ], line: 238, column: 5, }, ], end: 1725, }, line: 238, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 239, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\\nline\\nother\"", ), ], ], ), ], line: 238, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 239, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 242, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 242, }, ], [ Symbol( "\"*l\"", ), ], ], ), ], line: 242, }, ], stop: None, initial: None, code: CodeBlock { start: 1746, code: [ Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 242, }, ], values: [ [ Ident { expr: [ Symbol( "s", ), ], line: 242, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 242, }, ], ], line: 242, column: 5, }, ], end: 1752, }, line: 242, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 243, }, Operator( ( "==", true, ), ), Symbol( "\"lineother\"", ), ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 245, }, ], ], ), ], line: 243, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"a = 10 + 34\\na = 2*a\\na = -a\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 245, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 246, column: 5, }, ], ], line: 246, column: 5, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 247, }, ], [ Symbol( "\"*L\"", ), ], ], ), ], line: 247, }, ], [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 247, }, ], ], ), Call( [], ), ], line: 246, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "a", ), ], line: 248, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Expr( [ Symbol( "10", ), Operator( ( "+", true, ), ), Symbol( "34", ), ], ), Ident { expr: [], line: 248, }, Operator( ( "*", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 248, }, ], ], ), ], line: 247, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 252, }, ], ], ), ], line: 248, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"0123456789\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 252, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 253, }, ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 253, }, ], stop: None, initial: None, code: CodeBlock { start: 1845, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 254, }, Operator( ( "==", true, ), ), Symbol( "\"\\n\"", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 254, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 254, }, ], 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: 255, }, ], ], ), ], line: 255, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 255, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 255, }, ], end: 24, }, next: None, line: 256, column: 1, }, ), line: 256, column: 1, }, ], end: 1870, }, line: 257, column: 1, }, ForFuncLoop { iters: [ "a", "b", "c", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 259, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "\"*a\"", ), ], ], ), ], line: 259, }, ], stop: None, initial: None, code: CodeBlock { start: 1890, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 260, }, Operator( ( "==", true, ), ), Symbol( "\"0\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 260, }, Operator( ( "==", true, ), ), Symbol( "\"12\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 260, }, Operator( ( "==", true, ), ), Symbol( "\"3456789\\n\"", ), ], ], ), ], line: 260, }, ], end: 1905, }, line: 261, column: 1, }, ForFuncLoop { iters: [ "a", "b", "c", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 263, }, ], [ Symbol( "\"*a\"", ), ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], ], ), ], line: 263, }, ], stop: None, initial: None, code: CodeBlock { start: 1925, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 264, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], body: CodeBlock { start: 5, code: [ Break, ], end: 7, }, next: None, line: 264, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 265, }, Operator( ( "==", true, ), ), Symbol( "\"0123456789\\n\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 265, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 265, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 264, }, ], end: 1947, }, line: 266, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 266, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 269, }, ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"00\\n10\\n20\\n30\\n40\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 269, }, ForFuncLoop { iters: [ "a", "b", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 270, }, ], [ Symbol( "\"*n\"", ), ], [ Symbol( "\"*n\"", ), ], ], ), ], line: 270, }, ], stop: None, initial: None, code: CodeBlock { start: 1981, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "a", ), ], line: 271, }, Operator( ( "==", true, ), ), Symbol( "40", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 271, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 271, }, ], end: 12, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 12, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 272, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 272, }, Operator( ( "-", true, ), ), Symbol( "10", ), ], ], ), ], line: 272, }, ], end: 21, }, next: None, line: 273, column: 1, }, ), line: 273, column: 1, }, ], end: 2003, }, line: 274, column: 1, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 278, }, ], ], ), ], line: 274, }, 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: 278, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 289, }, ], values: [ [ Symbol( "1", ), ], ], line: 290, 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: 291, }, ], ], ), ], line: 291, }, ], ], ), ], line: 291, }, ], ], ), ], line: 290, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 291, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 293, }, ], [ Symbol( "\"*L\"", ), ], ], ), ], line: 293, }, ], ], ), Call( [], ), ], line: 292, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 294, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 293, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 295, }, ], [ Symbol( "1", ), ], ], ), ], line: 295, }, ], ], ), Call( [], ), ], line: 294, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 296, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 295, }, Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 297, }, ], [ Symbol( "3", ), ], ], ), ], line: 297, }, ], ], ), Call( [], ), ], line: 296, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "X", ), ], line: 298, }, Operator( ( "==", true, ), ), Symbol( "8", ), ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 298, }, Variable { names: [ ( "x1", false, ), ], values: [ [ Symbol( "\"string\\n\\n\\\\com \\\"\\\"''coisas [[estranhas]] ]]'\"", ), ], ], line: 302, column: 4, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 303, }, ], ], ), ], line: 302, }, 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: 304, }, ], ], ), ], line: 304, }, ], ], ), ], line: 304, }, ], ], ), ], line: 303, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 304, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 306, }, ], ], ), ], line: 306, }, ], ], ), Call( [], ), ], line: 305, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 307, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 307, }, ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 307, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 309, }, ], ], ), ], line: 309, }, ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 310, }, ], ], ), ], line: 310, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 311, }, ], ], ), ], line: 311, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 310, }, Function { local: true, name: [ Symbol( "testloadfile", ), ], args: [ "s", "expres", ], body: CodeBlock { start: 2195, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 315, }, ], ], ), ], line: 315, }, IfStatement { condition: [ Ident { expr: [ Symbol( "s", ), ], line: 316, }, ], body: CodeBlock { start: 9, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 316, }, ], ], ), ], line: 316, }, ], end: 16, }, next: None, line: 316, column: 10, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 316, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 318, }, ], ], ), ], line: 318, }, ], ], ), Call( [], ), ], line: 318, }, ], ], line: 318, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 319, }, ], ], ), ], line: 319, }, ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "res", ), ], line: 320, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "expres", ), ], line: 320, }, ], ], ), ], line: 319, }, ], end: 2244, }, line: 321, column: 1, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "nil", ), ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"# a non-ending comment\"", ), ], [ Symbol( "nil", ), ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBF# some comment\\nreturn 234\"", ), ], [ Symbol( "234", ), ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBFreturn 239\"", ), ], [ Symbol( "239", ), ], ], ), ], line: 331, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"\\xEF\\xBB\\xBF\"", ), ], [ Symbol( "nil", ), ], ], ), ], line: 332, }, Ident { expr: [ Symbol( "testloadfile", ), Call( [ [ Symbol( "\"# a comment\\nreturn debug.getinfo(1).currentline\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 341, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 341, }, ], ], ), ], line: 337, }, 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: 2306, code: [ Return( Some( [ [ Symbol( "10", ), ], [ Symbol( "'\\0alo\\255'", ), ], [ Symbol( "'hi'", ), ], ], ), ), ], end: 2313, }, line: 342, column: 20, }, ], ], ), ], line: 342, }, ], ], ), ], line: 342, }, ], ], ), ], line: 341, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 342, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 343, }, Ident { expr: [ Symbol( "b", ), ], line: 344, }, Ident { expr: [ Symbol( "c", ), ], line: 344, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 344, }, ], ], ), ], line: 344, }, ], ], ), Call( [], ), ], line: 344, }, ], ], line: 344, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 345, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 345, }, Operator( ( "==", true, ), ), Symbol( "\"\\0alo\\255\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 345, }, Operator( ( "==", true, ), ), Symbol( "\"hi\"", ), ], ], ), ], line: 344, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 346, }, ], ], ), ], line: 346, }, ], ], ), ], line: 345, }, DoBlock( CodeBlock { start: 2360, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 350, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 350, }, ], ], ), ], line: 350, }, 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: 352, column: 16, }, ], ], ), ], line: 352, }, ], ], ), ], line: 352, }, ], ], ), ], line: 350, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 352, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 353, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 354, }, ], [ Symbol( "\"b\"", ), ], [ Table { data: [], line: 354, column: 12, }, ], ], ), ], line: 354, }, ], ], ), ], line: 354, }, ], ], line: 354, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 355, }, ], ], ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "\"function\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 354, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 356, }, ], ], ), ], line: 356, }, ], ], ), ], line: 355, }, ], end: 2436, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 360, }, ], [ Symbol( "\"wb\"", ), ], ], ), ], line: 360, }, ], ], ), ], line: 357, }, 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: 2464, code: [ Return( Some( [ [ Symbol( "20", ), ], [ Symbol( "'\\0\\0\\0'", ), ], ], ), ), ], end: 2469, }, line: 362, column: 12, }, ], ], ), ], line: 361, }, ], ], ), ], line: 361, }, ], ], ), ], line: 360, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 362, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 363, }, Ident { expr: [ Symbol( "b", ), ], line: 364, }, Ident { expr: [ Symbol( "c", ), ], line: 364, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 364, }, ], ], ), ], line: 364, }, ], ], ), Call( [], ), ], line: 364, }, ], ], line: 364, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 364, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 366, }, ], ], ), ], line: 366, }, ], ], ), ], line: 365, }, DoBlock( CodeBlock { start: 2516, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 371, }, ], [ Symbol( "'w'", ), ], ], ), ], line: 371, }, ], ], line: 371, 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: 371, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 376, }, 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: 378, }, ], ), ], line: 378, column: 16, }, ], ], line: 379, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 379, }, ], [ Symbol( "'t'", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 379, }, ], ], ), ], line: 379, }, ], ], ), ], line: 379, }, ], ], line: 380, column: 0, }, Variable { names: [ ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 380, }, ], ], line: 380, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "a", ), ], line: 381, }, Operator( ( "==", true, ), ), Symbol( "15", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 381, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 381, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "c", ), ], line: 381, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 381, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 381, }, ], ], ), ], line: 380, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 382, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 382, }, ], ], ), ], line: 381, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 382, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 383, }, ], [ Symbol( "'t'", ), ], [ Symbol( "nil", ), ], ], ), ], line: 383, }, ], ], ), ], line: 383, }, ], ], line: 383, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 384, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 383, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 384, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 385, }, ], ], ), ], line: 385, }, ], ], ), ], line: 385, }, ], ], line: 385, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 386, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "_G", ), ], line: 386, }, ], ], ), ], line: 385, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 387, }, ], ], ), ], line: 387, }, ], ], ), ], line: 386, }, ], end: 2655, }, ), DoBlock( CodeBlock { start: 2656, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 393, }, ], [ Symbol( "'w'", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"return 10\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 393, }, Variable { names: [ ( "s", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 394, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 394, }, ], ], line: 394, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 395, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 395, }, ], [ Symbol( "\"a text chunk\"", ), ], ], ), ], line: 395, }, ], ], ), ], line: 394, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 396, }, ], [ Symbol( "'w'", ), ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\27 return 10\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 395, }, Variable { names: [ ( "s", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 397, }, ], [ Symbol( "'t'", ), ], ], ), ], line: 397, }, ], ], line: 397, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 398, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 398, }, ], [ Symbol( "\"a binary chunk\"", ), ], ], ), ], line: 398, }, ], ], ), ], line: 397, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 399, }, ], ], ), ], line: 399, }, ], ], ), ], line: 398, }, ], end: 2750, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 403, }, ], ], ), ], line: 400, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"qualquer coisa\\n\"", ), ], ], ), ], line: 404, }, ], ], ), ], line: 403, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 405, }, ], ], ), ], line: 404, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 405, }, 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: 407, }, ], [ Symbol( "'wb'", ), ], ], ), ], line: 407, }, ], ], ), ], line: 407, }, ], ], ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"outra coisa\\0\\1\\3\\0\\0\\0\\0\\255\\0\"", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 407, }, ], ], ), ], line: 406, }, Variable { names: [ ( "filehandle", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 411, }, ], [ Symbol( "'r+'", ), ], ], ), ], line: 411, }, ], ], ), ], line: 411, }, ], ], line: 412, 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: 412, }, ], [ Symbol( "'rb'", ), ], ], ), ], line: 412, }, ], ], ), ], line: 412, }, ], ], line: 412, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 413, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 413, }, ], ], ), ], line: 412, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 414, }, ], ], ), ], line: 414, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 413, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'*l'", ), ], ], ), ], line: 415, }, Operator( ( "==", true, ), ), Symbol( "\"qualquer coisa\"", ), ], ], ), ], line: 414, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 416, }, ], ], ), ], line: 415, }, 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: 417, }, ], ], ), ], line: 417, }, Operator( ( "==", true, ), ), Symbol( "\"outra coisa\"", ), ], ], ), ], line: 416, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'*l'", ), ], ], ), ], line: 418, }, Operator( ( "==", true, ), ), Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 417, }, Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 418, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 420, }, ], ], ), ], line: 420, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 419, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 421, }, ], ], ), ], line: 420, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "4", ), ], ], ), ], line: 422, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\1\\3\\0\"", ), ], ], ), ], line: 421, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 423, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 422, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 424, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 423, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 425, }, Operator( ( "==", true, ), ), Symbol( "\"\\255\"", ), ], ], ), ], line: 424, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 426, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\"", ), ], ], ), ], line: 425, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 427, }, ], ], ), ], line: 426, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 428, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 428, }, ], ], ), ], line: 427, }, Ident { expr: [ Symbol( "otherfilehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 428, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 430, }, ], ], ), ], line: 430, }, ], ], ), ], line: 429, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 431, }, ], ], ), ], line: 431, }, ], ], ), ], line: 430, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 431, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 434, }, ], ], ), 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: 432, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 443, }, ], ], ), ], line: 442, }, 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: 444, }, ], ], line: 444, column: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 445, }, ], ], ), ], line: 445, }, ], ], ), ], line: 444, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_", ), ], line: 446, }, Operator( ( "==", true, ), ), Symbol( "' '", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "__", ), ], line: 446, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 445, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 447, }, ], ], ), ], line: 447, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 447, }, Operator( ( "==", true, ), ), Symbol( "123.4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 447, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "56e-2", ), ], ], ), ], line: 446, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 448, }, Operator( ( "==", true, ), ), Symbol( "'second line'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 448, }, Operator( ( "==", true, ), ), Symbol( "'third line'", ), ], ], ), ], line: 447, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "h", ), ], line: 449, }, Operator( ( "==", true, ), ), MultilineString( "[[\n\nand the rest of the file\n]]", ), ], ], ), ], line: 448, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 453, }, ], ], ), ], line: 453, }, ], ], ), ], line: 452, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 453, }, DoBlock( CodeBlock { start: 3140, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 458, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 458, }, ], ], ), ], line: 458, }, ], ], line: 459, 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: 459, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 459, }, ], ], ), ], line: 459, }, ], ], line: 459, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"full\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 460, }, ], ], ), ], line: 459, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 460, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 462, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 461, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 462, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 463, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 465, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 464, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 465, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 466, }, ], ], ), ], line: 466, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 466, }, ], ], line: 466, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"no\"", ), ], ], ), ], line: 467, }, ], ], ), ], line: 466, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 467, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 468, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 470, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 469, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 470, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 471, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 472, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 472, }, ], ], ), ], line: 472, }, ], ], line: 472, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"line\"", ), ], ], ), ], line: 473, }, ], ], ), ], line: 472, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 473, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 474, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 476, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 475, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"a\\n\"", ), ], ], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 476, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 478, }, Operator( ( "==", true, ), ), Symbol( "\"xa\\n\"", ), ], ], ), ], line: 477, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 478, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 479, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 480, }, ], ], ), ], line: 480, }, ], ], ), ], line: 479, }, ], end: 3360, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_soft", ), ], line: 484, }, ], body: CodeBlock { start: 3364, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing large files (> BUFSIZ)\"", ), ], ], ), ], line: 485, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 486, }, ], ], ), ], line: 485, }, 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: 487, }, ], end: 24, }, line: 487, column: 14, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'\\n12346'", ), ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 487, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 489, }, ], ], ), ], line: 488, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 490, }, ], ], line: 490, column: 9, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 490, }, Variable { names: [ ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30001", ), ], ], ), ], line: 492, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1005", ), ], ], ), ], line: 492, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 492, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 492, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "100003", ), ], ], ), ], line: 493, }, ], ], line: 493, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 494, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 494, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 494, }, ], ], ), ], line: 494, }, Operator( ( "==", true, ), ), Symbol( "5001", ), Operator( ( "*", true, ), ), Symbol( "13", ), Operator( ( "+", true, ), ), Symbol( "6", ), ], ], ), ], line: 493, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 494, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 495, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 496, }, ], ], line: 496, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 497, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 497, }, Operator( ( "..", true, ), ), Symbol( "'\\n'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 497, }, ], ], ), ], line: 496, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 498, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 497, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 499, }, ], ], ), ], line: 498, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 500, }, ], ], ), ], line: 500, }, ], ], ), ], line: 499, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 500, }, ], values: [ [ Symbol( "nil", ), ], ], line: 501, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 501, }, ], values: [ [ Symbol( "nil", ), ], ], line: 501, column: 7, }, ], end: 3551, }, next: None, line: 502, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_noposix", ), ], line: 504, }, ], body: CodeBlock { start: 3555, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing popen/pclose and execute\"", ), ], ], ), ], line: 505, }, Variable { names: [ ( "tests", false, ), ], values: [ [ Table { data: [ ( None, [ Table { data: [ ( None, [ Symbol( "\"ls > /dev/null\"", ), ], ), ( None, [ Symbol( "\"ok\"", ), ], ), ], line: 508, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"not-to-be-found-command\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ], line: 509, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"exit 3\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "3", ), ], ), ], line: 510, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"exit 129\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "129", ), ], ), ], line: 511, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"kill -s HUP $$\"", ), ], ), ( None, [ Symbol( "\"signal\"", ), ], ), ( None, [ Symbol( "1", ), ], ), ], line: 512, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"kill -s KILL $$\"", ), ], ), ( None, [ Symbol( "\"signal\"", ), ], ), ( None, [ Symbol( "9", ), ], ), ], line: 513, column: 7, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "\"sh -c 'kill -s HUP $$'\"", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ], line: 514, column: 5, }, ], ), ( None, [ Table { data: [ ( None, [ Symbol( "'lua -e \"os.exit(20, true)\"'", ), ], ), ( None, [ Symbol( "\"exit\"", ), ], ), ( None, [ Symbol( "20", ), ], ), ], line: 515, column: 7, }, ], ), ], line: 516, column: 1, }, ], ], line: 516, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"\\n(some error messages are expected now)\"", ), ], ], ), ], line: 516, }, ForFuncLoop { iters: [ "_", "v", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "tests", ), ], line: 518, }, ], ], ), ], line: 518, }, ], stop: None, initial: None, code: CodeBlock { start: 81, 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: 519, }, ], ], ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 519, }, ], ], line: 520, 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: 520, }, ], ], ), ], line: 520, }, ], ], line: 520, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 521, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x1", ), ], line: 521, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 521, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y1", ), ], line: 521, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 521, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z1", ), ], line: 521, }, ], ], ), ], line: 520, }, IfStatement { condition: [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 522, }, Operator( ( "==", true, ), ), Symbol( "\"ok\"", ), ], body: CodeBlock { start: 58, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 523, }, Operator( ( "==", true, ), ), Symbol( "true", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 523, }, Operator( ( "==", true, ), ), Symbol( "'exit'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 523, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 523, }, ], end: 73, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 73, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 525, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 525, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 525, }, ], ], ), ], line: 525, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 527, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 527, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 527, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "v", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 527, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 527, }, ], ], ), ], line: 525, }, ], end: 109, }, next: None, line: 528, column: 1, }, ), line: 528, column: 1, }, ], end: 191, }, line: 529, column: 1, }, ], end: 3747, }, next: None, line: 530, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 530, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "tmpfile", ), Call( [], ), ], line: 534, }, ], ], line: 534, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 535, }, ], ], ), ], line: 535, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 534, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\"", ), ], ], ), ], line: 535, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 536, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*a\"", ), ], ], ), ], line: 538, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 537, }, ], end: 4057, }, next: None, line: 540, column: 1, }, ), line: 540, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 540, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 545, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 542, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!\"", ), ], ], ), ], line: 546, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 545, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "10000", ), ], ], ), ], line: 547, }, ], ], line: 547, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 548, }, ], ], ), ], line: 548, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 548, }, ], ], ), ], line: 547, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 549, }, ], ], line: 549, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 549, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 550, }, ], ], ), ], line: 550, }, ], ], line: 550, 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: 551, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 551, }, ], ], ), ], line: 551, }, 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: 552, }, ], ], ), ], line: 552, }, ], [ Symbol( "1000", ), ], ], ), ], line: 551, }, ], ], ), ], line: 550, }, 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: 553, }, ], ], ), ], line: 553, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "100", ), ], ], ), ], line: 553, }, ], ], ), ], line: 552, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 555, }, ], ], line: 555, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 555, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 556, }, ], ], ), ], line: 556, }, ], ], line: 556, 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: 559, }, ], ], ), ], line: 557, }, ], ], ), Call( [], ), ], line: 556, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 561, }, ], [ Symbol( "\"%9\"", ), ], ], ), ], line: 561, }, ], ], ), ], line: 559, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 562, }, ], [ Symbol( "\"%\"", ), ], ], ), ], line: 562, }, ], ], ), ], line: 561, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 563, }, ], [ Symbol( "\"%O\"", ), ], ], ), ], line: 563, }, ], ], ), ], line: 562, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 564, }, ], [ Symbol( "\"%E\"", ), ], ], ), ], line: 564, }, ], ], ), ], line: 563, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), ], line: 565, }, ], [ Symbol( "\"%Ea\"", ), ], ], ), ], line: 565, }, ], ], ), ], line: 564, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_noposix", ), ], line: 567, }, ], body: CodeBlock { start: 4275, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Ex\"", ), ], ], ), ], line: 568, }, ], ], ), ], line: 568, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 568, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"%Oy\"", ), ], ], ), ], line: 569, }, ], ], ), ], line: 569, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 568, }, ], end: 4304, }, next: None, line: 570, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 572, }, ], ], ), ], line: 572, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 572, }, ], ], ), ], line: 570, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), ], line: 573, }, ], [ Table { data: [ ( Some( [ Symbol( "hour", ), ], ), [ Symbol( "12", ), ], ), ], line: 573, column: 14, }, ], ], ), ], line: 573, }, ], ], ), ], line: 572, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), ], line: 573, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 575, }, ], ], ), ], line: 575, }, ], ], line: 575, 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: 578, }, ], ], ), ], line: 576, }, ], ], ), Call( [], ), ], line: 575, }, DoBlock( CodeBlock { start: 4355, code: [ Variable { names: [ ( "D", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 581, }, ], ], line: 582, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 582, }, ], ], ), ], line: 582, }, ], ], line: 582, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 583, }, ], ], ), ], line: 583, }, Operator( ( "==", true, ), ), Symbol( "'boolean'", ), ], ], ), ], line: 582, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 583, }, ], values: [ [ Symbol( "nil", ), ], ], line: 585, column: 0, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 585, }, ], ], ), ], line: 585, }, ], ], line: 585, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 586, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t1", ), ], line: 586, }, ], ], ), ], line: 585, }, ], end: 4405, }, ), Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 587, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 589, }, ], ], ), ], line: 589, }, ], ], line: 589, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "year", ), ], line: 589, }, ], values: [ [ Ident { expr: [ Symbol( "D", ), Symbol( ".", ), Symbol( "year", ), ], line: 590, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 590, column: 10, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "D", ), ], line: 591, }, ], ], ), ], line: 591, }, ], ], line: 591, 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: 593, }, ], [ Ident { expr: [ Symbol( "t1", ), ], line: 593, }, ], ], ), ], line: 593, }, Operator( ( "/", true, ), ), Expr( [ Symbol( "24", ), Operator( ( "*", true, ), ), Symbol( "3600", ), ], ), Ident { expr: [], line: 593, }, Operator( ( "-", true, ), ), Symbol( "365", ), ], ], ), ], line: 593, }, Operator( ( "<", true, ), ), Symbol( "2", ), ], ], ), ], line: 591, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 593, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 595, }, ], ], line: 595, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 595, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 596, }, ], ], ), ], line: 596, }, ], ], line: 596, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 597, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 597, }, ], ], ), ], line: 597, }, Operator( ( "<=", true, ), ), Symbol( "2", ), ], ], ), ], line: 596, }, 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: 599, column: 27, }, ], ], ), ], line: 599, }, ], ], line: 600, 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: 600, column: 31, }, ], ], ), ], line: 600, }, ], ], line: 600, column: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 601, }, ], [ Ident { expr: [ Symbol( "t2", ), ], line: 601, }, ], ], ), ], line: 601, }, Operator( ( "==", true, ), ), Symbol( "60", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Symbol( "19", ), ], ], ), ], line: 600, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 603, }, ], ], ), ], line: 601, }, Variable { names: [ ( "d", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%d'", ), ], ], ), ], line: 604, }, ], ], line: 605, column: 0, }, Variable { names: [ ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%m'", ), ], ], ), ], line: 605, }, ], ], line: 606, column: 0, }, Variable { names: [ ( "a", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%Y'", ), ], ], ), ], line: 606, }, ], ], line: 607, column: 0, }, Variable { names: [ ( "ds", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%w'", ), ], ], ), ], line: 607, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 608, column: 0, }, Variable { names: [ ( "h", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%H'", ), ], ], ), ], line: 608, }, ], ], line: 609, column: 0, }, Variable { names: [ ( "min", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%M'", ), ], ], ), ], line: 609, }, ], ], line: 610, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%S'", ), ], ], ), ], line: 610, }, ], ], line: 610, column: 9, }, 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: 611, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 611, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 611, }, ], ], ), ], line: 611, }, ], ], ), ], line: 610, }, 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: 612, }, ], [ Ident { expr: [ Symbol( "min", ), ], line: 612, }, ], [ Ident { expr: [ Symbol( "s", ), ], line: 612, }, ], ], ), ], line: 612, }, ], ], ), ], line: 611, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%s\\n'", ), ], [ Ident { expr: [ Symbol( "_VERSION", ), ], line: 613, }, ], ], ), ], line: 613, }, ], ], ), ], line: 612, }, ]