--- source: src/main.rs expression: parsed input_file: test-data/lua5.1-tests/files.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing i/o'", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 3, }, ], ], ), ], line: 3, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 3, }, ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 4, }, ], ], ), ], line: 4, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 4, }, ], ], ), ], line: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 7, }, ], ], ), ], line: 7, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 7, }, ], ], ), ], line: 7, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "8", ), ], ], ), ], line: 8, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 7, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 9, column: 5, }, ], ], line: 9, column: 6, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 10, }, ], [ Table { data: [], line: 10, column: 6, }, ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 11, }, ], ], ), ], line: 11, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 10, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'xuxu_nao_existe'", ), ], ], ), ], line: 13, }, ], ], line: 13, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 14, }, ], ], ), ], line: 14, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 14, }, ], ], ), ], line: 14, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 13, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 14, }, Ident { expr: [ Symbol( "b", ), ], line: 16, }, Ident { expr: [ Symbol( "c", ), ], line: 16, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Symbol( "'/a/b/c/d'", ), ], [ Symbol( "'w'", ), ], ], ), ], line: 16, }, ], ], line: 16, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 17, }, ], ], ), ], line: 17, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 17, }, ], ], ), ], line: 17, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 16, }, Variable { names: [ ( "file", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 19, }, ], ], line: 20, column: 0, }, Variable { names: [ ( "otherfile", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "tmpname", ), Call( [], ), ], line: 20, }, ], ], line: 20, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "'C'", ), ], [ Symbol( "'all'", ), ], ], ), ], line: 22, }, ], ], ), ], line: 20, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 24, }, ], ], ), ], line: 22, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 25, }, ], ], ), ], line: 24, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 27, }, ], ], ), ], line: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 28, }, ], ], ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 29, }, ], ], ), ], line: 29, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 28, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 30, }, ], ], ), ], line: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 31, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 31, }, ], ], ), ], line: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 33, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 34, }, ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 35, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 35, }, ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"cur\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo alo\"", ), ], ], ), ], line: 36, }, Operator( ( "-", true, ), ), Symbol( "3", ), ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"joao\"", ), ], ], ), ], line: 37, }, ], ], ), ], line: 36, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"end\"", ), ], ], ), ], line: 38, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"alo joao\"", ), ], ], ), ], line: 38, }, ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 38, }, 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: 42, }, ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'�fourth_line'", ), ], ], ), ], line: 43, }, ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 44, }, ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 46, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdin", ), ], line: 46, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "rawequal", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 46, }, ], [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 46, }, ], ], ), ], line: 46, }, ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 47, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "120", ), ], step: None, code: CodeBlock { start: 434, 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: 53, }, ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 54, }, ], [ Symbol( "'r'", ), ], ], ), ], line: 54, }, ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 55, }, ], ], ), ], line: 54, }, ], end: 31, }, line: 56, column: 1, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 56, }, ], end: 469, }, line: 58, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 60, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 60, }, ], ], ), ], line: 60, }, ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 61, }, ], [ Ident { expr: [ Symbol( "otherfile", ), ], line: 61, }, ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 63, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 63, }, ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"\\n\\n\\t\\t 3450\\n\"", ), ], ], ), ], line: 64, }, ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "rename", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 68, }, ], [ Ident { expr: [ Symbol( "file", ), ], line: 68, }, ], ], ), ], line: 68, }, ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 69, }, ], ], ), ], line: 68, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 70, }, ], ], ), ], line: 70, }, ], ], line: 71, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 71, }, ], body: CodeBlock { start: 552, code: [], end: 553, }, line: 71, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 72, }, ], ], ), ], line: 72, }, ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 73, }, ], ], ), ], line: 73, }, ], ], ), ], line: 72, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 75, }, ], ], ), ], line: 75, }, ], stop: None, initial: None, code: CodeBlock { start: 579, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 75, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 75, }, ], end: 588, }, line: 75, column: 19, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 75, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 78, }, ], ], ), ], line: 78, }, ], ], ), ], line: 78, }, ], ], line: 78, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 79, }, ], ], ), ], line: 79, }, Operator( ( "==", true, ), ), Symbol( "\"file\"", ), ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 80, }, ], ], ), ], line: 79, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), Symbol( ":", ), Symbol( "read", ), Call( [], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 80, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 82, }, ], stop: None, initial: None, code: CodeBlock { start: 645, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 82, }, ], [ Symbol( "\"\\n\"", ), ], ], ), ], line: 82, }, ], end: 654, }, line: 82, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 83, }, ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 83, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), ], line: 85, }, ], [ Ident { expr: [ Symbol( "f", ), ], line: 85, }, ], ], ), ], line: 85, }, ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 86, }, ], ], ), ], line: 86, }, Operator( ( "==", true, ), ), Symbol( "\"file (closed)\"", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 87, }, ], ], ), ], line: 87, }, Operator( ( "==", true, ), ), Symbol( "\"closed file\"", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 88, }, ], ], ), ], line: 87, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 88, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 89, }, ], ], ), Symbol( ":", ), Symbol( "lines", ), Call( [], ), ], line: 89, }, ], ], line: 90, column: 0, }, ForFuncLoop { iters: [ "l", ], expr: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "lines", ), Call( [], ), ], line: 90, }, ], stop: None, initial: None, code: CodeBlock { start: 727, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 90, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 90, }, ], ], ), ], line: 90, }, ], end: 736, }, line: 90, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 91, }, ], ], ), ], line: 91, }, ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 93, }, ], ], ), ], line: 91, }, DoBlock( CodeBlock { start: 752, 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: 95, }, ], ], line: 95, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 96, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 96, }, ], ], ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 96, }, ], ], ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "\"number\"", ), ], ], ), ], line: 95, }, ], end: 789, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 97, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "5", ), ], [ Symbol( "'*l'", ), ], ], ), ], line: 99, }, Operator( ( "==", true, ), ), Symbol( "'\"�lo\"'", ), ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 100, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 101, }, Operator( ( "==", true, ), ), Symbol( "\"second line\"", ), ], ], ), ], line: 100, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [], ), ], line: 102, }, ], ], line: 102, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 103, }, Operator( ( "==", true, ), ), Symbol( "\"third line \"", ), ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 104, }, ], ], ), ], line: 104, }, ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*l'", ), ], ], ), ], line: 105, }, Operator( ( "==", true, ), ), Symbol( "\"third line \"", ), ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 106, }, Operator( ( "==", true, ), ), Symbol( "\"�\"", ), ], ], ), ], line: 105, }, 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: 107, }, ], ], ), ], line: 107, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 106, }, 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: 108, }, ], ], ), ], line: 108, }, ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 109, }, Operator( ( "==", true, ), ), Symbol( "\"fourth_line\"", ), ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*n'", ), ], ], ), ], line: 111, }, Operator( ( "==", true, ), ), Symbol( "3450", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "'\\n'", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 113, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 114, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 115, }, ], ), ], line: 115, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 116, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 117, }, ], ), ], line: 117, column: 10, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*n'", ), ], ], ), ], line: 118, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 117, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*n'", ), ], ], ), ], line: 119, }, ], ), ], line: 119, column: 11, }, ], ), Ident { expr: [ Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 119, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 118, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 120, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 119, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 121, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 121, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 122, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 124, }, ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), ], line: 125, }, ], ], ), ], line: 125, }, ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 127, }, ], ], ), ], line: 127, }, ], ], ), ], line: 125, }, Variable { names: [ ( "t", false, ), ], values: [ [ Symbol( "'0123456789'", ), ], ], line: 130, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "12", ), ], step: None, code: CodeBlock { start: 1133, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 130, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), ], line: 130, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 130, }, ], ], line: 130, column: 6, }, ], end: 1140, }, line: 130, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 131, }, ], ], ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "12", ), ], ], ), ], line: 130, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 133, }, ], ], ), ], line: 131, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"alo\\n\"", ), ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), ], line: 136, }, ], ], ), ], line: 136, }, ], ], ), ], line: 135, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 137, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 137, }, ], ], line: 137, column: 11, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 138, }, ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 138, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "' '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 141, }, Operator( ( "..", true, ), ), Symbol( "' '", ), ], ], ), ], line: 141, }, ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "';'", ), ], [ Symbol( "'end of file\\n'", ), ], ], ), ], line: 142, }, ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "flush", ), Call( [], ), ], line: 142, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "flush", ), Call( [], ), ], line: 143, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 144, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 145, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 148, }, ], ], ), ], line: 146, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 149, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 148, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 150, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 149, }, 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: 151, }, ], ], ), ], line: 151, }, ], ], ), ], line: 151, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 151, }, ], ], ), ], line: 150, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 152, }, Operator( ( "==", true, ), ), Symbol( "' '", ), ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 153, }, ], ], ), ], line: 152, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 154, }, Operator( ( "==", true, ), ), Symbol( "';end of file\\n'", ), ], ], ), ], line: 153, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 155, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 154, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], 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, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 158, }, Variable { names: [ ( "x1", false, ), ], values: [ [ Symbol( "\"string\\n\\n\\\\com \\\"\\\"''coisas [[estranhas]] ]]'\"", ), ], ], line: 161, column: 4, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 162, }, ], ], ), ], line: 161, }, 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: 163, }, ], ], ), ], line: 163, }, ], ], ), ], line: 163, }, ], ], ), ], line: 162, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 163, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadfile", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 165, }, ], ], ), ], line: 165, }, ], ], ), Call( [], ), ], line: 164, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 166, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 166, }, ], ], ), ], line: 165, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 166, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 168, }, ], ], ), ], line: 168, }, ], ], ), ], line: 167, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 169, }, ], ], ), ], line: 169, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 168, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 170, }, ], ], ), ], line: 170, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 172, }, ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"qualquer coisa\\n\"", ), ], ], ), ], line: 173, }, ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 174, }, ], ], ), ], line: 173, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 174, }, 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: 176, }, ], [ Symbol( "'wb'", ), ], ], ), ], line: 176, }, ], ], ), ], line: 176, }, ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "\"outra coisa\\0\\1\\3\\0\\0\\0\\0\\255\\0\"", ), ], ], ), ], line: 177, }, ], ], ), ], line: 176, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 177, }, Variable { names: [ ( "filehandle", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 180, }, ], [ Symbol( "'r'", ), ], ], ), ], line: 180, }, ], ], ), ], line: 180, }, ], ], line: 181, 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: 181, }, ], [ Symbol( "'rb'", ), ], ], ), ], line: 181, }, ], ], ), ], line: 181, }, ], ], line: 181, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 182, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 182, }, ], ], ), ], line: 181, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 183, }, ], ], ), ], line: 183, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 182, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'*l'", ), ], ], ), ], line: 184, }, Operator( ( "==", true, ), ), Symbol( "\"qualquer coisa\"", ), ], ], ), ], line: 183, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 185, }, ], ], ), ], line: 184, }, 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: 186, }, ], ], ), ], line: 186, }, Operator( ( "==", true, ), ), Symbol( "\"outra coisa\"", ), ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "'*l'", ), ], ], ), ], line: 187, }, Operator( ( "==", true, ), ), Symbol( "\"mais qualquer coisa\"", ), ], ], ), ], line: 186, }, Ident { expr: [ Symbol( "filehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 187, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "filehandle", ), ], line: 189, }, ], ], ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "\"userdata\"", ), ], ], ), ], line: 188, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 190, }, ], ], ), ], line: 189, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "4", ), ], ], ), ], line: 191, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\1\\3\\0\"", ), ], ], ), ], line: 190, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 192, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 193, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 192, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 194, }, Operator( ( "==", true, ), ), Symbol( "\"\\255\"", ), ], ], ), ], line: 193, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 195, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\"", ), ], ], ), ], line: 194, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 196, }, ], ], ), ], line: 195, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "otherfilehandle", ), ], line: 197, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 197, }, ], ], ), ], line: 196, }, Ident { expr: [ Symbol( "otherfilehandle", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 197, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 199, }, ], ], ), ], line: 199, }, ], ], ), ], line: 198, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "otherfile", ), ], line: 200, }, ], ], ), ], line: 200, }, ], ], ), ], line: 199, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 200, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 203, }, ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "io", ), 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]]", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 210, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 212, }, ], ], ), ], line: 211, }, 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: 213, }, ], ], line: 213, column: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 214, }, ], ], ), ], line: 214, }, ], ], ), ], line: 213, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_", ), ], line: 215, }, Operator( ( "==", true, ), ), Symbol( "' '", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "__", ), ], line: 215, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 214, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 216, }, ], ], ), ], line: 216, }, Operator( ( "==", true, ), ), Symbol( "'number'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 216, }, Operator( ( "==", true, ), ), Symbol( "123.4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 216, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "56e-2", ), ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "'second line'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "'third line'", ), ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "h", ), ], line: 218, }, Operator( ( "==", true, ), ), MultilineString( "[[\n\nand the rest of the file\n]]", ), ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 222, }, ], ], ), ], line: 222, }, ], ], ), ], line: 221, }, Ident { expr: [ Symbol( "collectgarbage", ), Call( [], ), ], line: 222, }, DoBlock( CodeBlock { start: 1832, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 227, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 227, }, ], ], ), ], line: 227, }, ], ], line: 228, 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: 228, }, ], [ Symbol( "\"r\"", ), ], ], ), ], line: 228, }, ], ], ), ], line: 228, }, ], ], line: 228, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"full\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 229, }, ], ], ), ], line: 228, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 229, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 231, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 230, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 231, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 232, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 234, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 233, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 234, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 235, }, ], ], ), ], line: 235, }, ], [ Symbol( "\"w\"", ), ], ], ), ], line: 235, }, ], ], line: 235, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"no\"", ), ], ], ), ], line: 236, }, ], ], ), ], line: 235, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 239, }, Operator( ( "==", true, ), ), Symbol( "\"x\"", ), ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 239, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 240, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "open", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 241, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 241, }, ], ], ), ], line: 241, }, ], ], line: 241, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "setvbuf", ), Call( [ [ Symbol( "\"line\"", ), ], ], ), ], line: 242, }, ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 243, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 245, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 244, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "write", ), Call( [ [ Symbol( "\"a\\n\"", ), ], ], ), ], line: 245, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "\"set\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 246, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*all\"", ), ], ], ), ], line: 248, }, Operator( ( "==", true, ), ), Symbol( "\"xa\\n\"", ), ], ], ), ], line: 247, }, Ident { expr: [ Symbol( "f", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 248, }, Ident { expr: [ Symbol( "fr", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 249, }, ], end: 2044, }, ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 255, }, ], ], ), ], line: 251, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "5001", ), ], step: None, code: CodeBlock { start: 2057, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'0123456789123'", ), ], ], ), ], line: 256, }, ], end: 2064, }, line: 256, column: 14, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Symbol( "'\\n12346'", ), ], ], ), ], line: 256, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [], ), ], line: 257, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 259, }, ], ], ), ], line: 258, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "'*a'", ), ], ], ), ], line: 260, }, ], ], line: 260, column: 9, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 260, }, Variable { names: [ ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "30001", ), ], ], ), ], line: 262, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1005", ), ], ], ), ], line: 262, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 262, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 262, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [ [ Symbol( "100003", ), ], ], ), ], line: 262, }, ], ], line: 262, column: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 263, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 263, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 263, }, ], ], ), ], line: 263, }, Operator( ( "==", true, ), ), Symbol( "5001", ), Operator( ( "*", true, ), ), Symbol( "13", ), Operator( ( "+", true, ), ), Symbol( "6", ), ], ], ), ], line: 262, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), Symbol( ":", ), Symbol( "seek", ), Call( [ [ Symbol( "'set'", ), ], [ Symbol( "0", ), ], ], ), ], line: 263, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 264, }, ], values: [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 265, }, ], ], line: 265, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 266, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 266, }, Operator( ( "..", true, ), ), Symbol( "'\\n'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 266, }, ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "read", ), Call( [], ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 266, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "input", ), Call( [], ), ], line: 268, }, ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "file", ), ], line: 269, }, ], ], ), ], line: 269, }, ], ], ), ], line: 268, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 269, }, ], values: [ [ Symbol( "nil", ), ], ], line: 270, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 270, }, ], values: [ [ Symbol( "nil", ), ], ], line: 271, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 271, }, Ident { expr: [ Symbol( "y", ), ], line: 273, }, ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "popen", ), ], line: 273, }, ], [ Symbol( "\"ls\"", ), ], ], ), ], line: 273, }, ], ], line: 274, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "x", ), ], line: 274, }, ], body: CodeBlock { start: 2242, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "y", ), Symbol( ":", ), Symbol( "read", ), Call( [ [ Symbol( "\"*a\"", ), ], ], ), ], line: 275, }, ], ], ), ], line: 275, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "y", ), Symbol( ":", ), Symbol( "close", ), Call( [], ), ], line: 276, }, ], ], ), ], line: 275, }, ], end: 2260, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 2260, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 278, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 278, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\a\\n >>> popen not available<<<\\n\\a'", ), ], ], ), ], line: 278, }, ], end: 2269, }, next: None, line: 279, column: 1, }, ), line: 279, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 279, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 283, }, ], ], line: 283, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "T", ), ], line: 283, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 284, }, ], ], ), ], line: 284, }, ], ], line: 284, column: 10, }, Ident { expr: [ Symbol( "loadstring", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ MultilineString( "[[assert(T.year==%Y and T.month==%m and T.day==%d and\n T.hour==%H and T.min==%M and T.sec==%S and\n T.wday==%w+1 and T.yday==%j and type(T.isdst) == 'boolean')]]", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 287, }, ], ], ), ], line: 285, }, ], ], ), Call( [], ), ], line: 284, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "T", ), ], line: 289, }, ], ], ), ], line: 289, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 289, }, ], ], ), ], line: 287, }, Alter { names: [ Ident { expr: [ Symbol( "T", ), ], line: 289, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"!*t\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 291, }, ], ], ), ], line: 291, }, ], ], line: 291, column: 10, }, Ident { expr: [ Symbol( "loadstring", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ MultilineString( "[[!assert(T.year==%Y and T.month==%m and T.day==%d and\n T.hour==%H and T.min==%M and T.sec==%S and\n T.wday==%w+1 and T.yday==%j and type(T.isdst) == 'boolean')]]", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 294, }, ], ], ), ], line: 292, }, ], ], ), Call( [], ), ], line: 291, }, DoBlock( CodeBlock { start: 2337, code: [ Variable { names: [ ( "T", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 297, }, ], ], line: 298, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "T", ), ], line: 298, }, ], ], ), ], line: 298, }, ], ], line: 298, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 299, }, ], ], ), ], line: 299, }, Operator( ( "==", true, ), ), Symbol( "'boolean'", ), ], ], ), ], line: 298, }, Alter { names: [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "isdst", ), ], line: 299, }, ], values: [ [ Symbol( "nil", ), ], ], line: 301, column: 0, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "T", ), ], line: 301, }, ], ], ), ], line: 301, }, ], ], line: 301, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 302, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t1", ), ], line: 302, }, ], ], ), ], line: 301, }, ], end: 2387, }, ), Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 303, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "T", ), ], line: 305, }, ], ], ), ], line: 305, }, ], ], line: 305, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "year", ), ], line: 305, }, ], values: [ [ Ident { expr: [ Symbol( "T", ), Symbol( ".", ), Symbol( "year", ), ], line: 306, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], line: 306, column: 10, }, Variable { names: [ ( "t1", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "T", ), ], line: 307, }, ], ], ), ], line: 307, }, ], ], line: 307, 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: 309, }, ], [ Ident { expr: [ Symbol( "t1", ), ], line: 309, }, ], ], ), ], line: 309, }, Operator( ( "/", true, ), ), Expr( [ Symbol( "24", ), Operator( ( "*", true, ), ), Symbol( "3600", ), ], ), Ident { expr: [], line: 309, }, Operator( ( "-", true, ), ), Symbol( "365", ), ], ], ), ], line: 309, }, Operator( ( "<", true, ), ), Symbol( "2", ), ], ], ), ], line: 307, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 309, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [], ), ], line: 311, }, ], ], line: 311, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "t1", ), ], line: 311, }, ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "time", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "\"*t\"", ), ], ], ), ], line: 312, }, ], ], ), ], line: 312, }, ], ], line: 312, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 313, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 313, }, ], ], ), ], line: 313, }, Operator( ( "<=", true, ), ), Symbol( "2", ), ], ], ), ], line: 312, }, 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", ), ], ), ( Some( [ Symbol( "sec", ), ], ), [ Symbol( "17", ), ], ), ], line: 315, column: 31, }, ], ], ), ], line: 315, }, ], ], line: 316, 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: 316, column: 31, }, ], ], ), ], line: 316, }, ], ], line: 316, column: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "difftime", ), Call( [ [ Ident { expr: [ Symbol( "t1", ), ], line: 317, }, ], [ Ident { expr: [ Symbol( "t2", ), ], line: 317, }, ], ], ), ], line: 317, }, Operator( ( "==", true, ), ), Symbol( "60", ), Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 316, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "stdout", ), ], line: 319, }, ], ], ), ], line: 317, }, Variable { names: [ ( "d", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%d'", ), ], ], ), ], line: 320, }, ], ], line: 321, column: 0, }, Variable { names: [ ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%m'", ), ], ], ), ], line: 321, }, ], ], line: 322, column: 0, }, Variable { names: [ ( "a", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%Y'", ), ], ], ), ], line: 322, }, ], ], line: 323, column: 0, }, Variable { names: [ ( "ds", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%w'", ), ], ], ), ], line: 323, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 324, column: 0, }, Variable { names: [ ( "h", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%H'", ), ], ], ), ], line: 324, }, ], ], line: 325, column: 0, }, Variable { names: [ ( "min", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%M'", ), ], ], ), ], line: 325, }, ], ], line: 326, column: 0, }, Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "date", ), Call( [ [ Symbol( "'%S'", ), ], ], ), ], line: 326, }, ], ], line: 326, 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: 327, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 327, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 327, }, ], ], ), ], line: 327, }, ], ], ), ], line: 326, }, 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: 328, }, ], [ Ident { expr: [ Symbol( "min", ), ], line: 328, }, ], [ Ident { expr: [ Symbol( "s", ), ], line: 328, }, ], ], ), ], line: 328, }, ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%s\\n'", ), ], [ Ident { expr: [ Symbol( "_VERSION", ), ], line: 329, }, ], ], ), ], line: 329, }, ], ], ), ], line: 328, }, ]