--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/attrib.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing require\"", ), ], ], ), ], line: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"string\"", ), ], ], ), ], line: 6, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), ], line: 6, }, ], ], ), ], line: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"math\"", ), ], ], ), ], line: 7, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), ], line: 7, }, ], ], ), ], line: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"table\"", ), ], ], ), ], line: 8, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "table", ), ], line: 8, }, ], ], ), ], line: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"io\"", ), ], ], ), ], line: 9, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "io", ), ], line: 9, }, ], ], ), ], line: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"os\"", ), ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "os", ), ], line: 10, }, ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"coroutine\"", ), ], ], ), ], line: 11, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "coroutine", ), ], line: 11, }, ], ], ), ], line: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 13, }, ], ], ), ], line: 13, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), ], ], ), ], line: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "cpath", ), ], line: 14, }, ], ], ), ], line: 14, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), ], ], ), ], line: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loaded", ), ], line: 15, }, ], ], ), ], line: 15, }, Operator( ( "==", true, ), ), Symbol( "\"table\"", ), ], ], ), ], line: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "preload", ), ], line: 16, }, ], ], ), ], line: 16, }, Operator( ( "==", true, ), ), Symbol( "\"table\"", ), ], ], ), ], line: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "config", ), ], line: 18, }, ], ], ), ], line: 18, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), ], ], ), ], line: 16, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"package config: \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "config", ), ], line: 19, }, ], [ Symbol( "\"\\n\"", ), ], [ Symbol( "\"|\"", ), ], ], ), ], line: 19, }, ], ], ), ], line: 18, }, DoBlock( CodeBlock { start: 117, code: [ Variable { names: [ ( "max", false, ), ], values: [ [ Ident { expr: [ Symbol( "_soft", ), ], line: 24, }, Operator( ( "and", true, ), ), Symbol( "100", ), Operator( ( "or", true, ), ), Symbol( "2000", ), ], ], line: 25, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 25, column: 5, }, ], ], line: 26, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "max", ), ], line: 26, }, ], step: None, code: CodeBlock { start: 20, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 26, }, ], ), Symbol( "]", ), ], line: 26, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"?\"", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 26, }, Operator( ( "%", true, ), ), Symbol( "10", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 26, }, ], ], line: 26, column: 17, }, ], end: 38, }, line: 26, column: 25, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 27, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 26, }, ], values: [ [ Symbol( "\";\"", ), ], ], line: 28, column: 0, }, Variable { names: [ ( "path", false, ), ], values: [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 28, }, ], [ Symbol( "\";\"", ), ], ], ), ], line: 28, }, ], ], line: 30, column: 0, }, Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"xuxu\"", ), ], [ Ident { expr: [ Symbol( "path", ), ], line: 30, }, ], ], ), ], line: 30, }, ], ], line: 30, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 33, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 34, }, ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"xuxu\"", ), ], [ Symbol( "10", ), ], ], ), ], line: 34, }, ], ], ), ], line: 33, }, Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 35, }, ], [ Symbol( "\"[^\\n]\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 35, }, Operator( ( ">=", true, ), ), Ident { expr: [ Symbol( "max", ), ], line: 35, }, ], ], ), ], line: 30, }, Variable { names: [ ( "path", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"?\"", ), ], [ Ident { expr: [ Symbol( "max", ), ], line: 37, }, ], ], ), ], line: 37, }, ], ], line: 38, column: 0, }, Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"xuxu\"", ), ], [ Ident { expr: [ Symbol( "path", ), ], line: 38, }, ], ], ), ], line: 38, }, ], ], line: 38, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 39, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 39, }, ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'xuxu'", ), ], [ Ident { expr: [ Symbol( "max", ), ], line: 39, }, ], ], ), ], line: 39, }, ], ], ), ], line: 39, }, ], ], ), ], line: 38, }, ], end: 269, }, ), DoBlock( CodeBlock { start: 270, code: [ Variable { names: [ ( "oldpath", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 43, }, ], ], line: 43, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 43, }, ], values: [ [ Table { data: [], line: 44, column: 6, }, ], ], line: 45, column: 0, }, Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 45, }, ], [ Symbol( "\"no-such-file\"", ), ], ], ), ], line: 45, }, ], ], line: 45, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 46, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 46, }, ], [ Symbol( "\"package.path\"", ), ], ], ), ], line: 46, }, ], ], ), ], line: 45, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 46, }, ], values: [ [ Ident { expr: [ Symbol( "oldpath", ), ], line: 47, }, ], ], line: 47, column: 5, }, ], end: 313, }, ), DoBlock( CodeBlock { start: 314, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing 'require' message\"", ), ], ], ), ], line: 51, }, Variable { names: [ ( "oldpath", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 52, }, ], ], line: 53, column: 0, }, Variable { names: [ ( "oldcpath", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "cpath", ), ], line: 53, }, ], ], line: 53, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 53, }, ], values: [ [ Symbol( "\"?.lua;?/?\"", ), ], ], line: 55, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "cpath", ), ], line: 55, }, ], values: [ [ Symbol( "\"?.so;?/init\"", ), ], ], line: 58, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 58, }, ], [ Symbol( "'XXX'", ), ], ], ), ], line: 58, }, ], ], line: 60, column: 0, }, Variable { names: [ ( "expected", false, ), ], values: [ [ MultilineString( "[[module 'XXX' not found:\n\tno field package.preload['XXX']\n\tno file 'XXX.lua'\n\tno file 'XXX/XXX'\n\tno file 'XXX.so'\n\tno file 'XXX/init']]", ), ], ], line: 65, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 67, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "expected", ), ], line: 67, }, ], ], ), ], line: 65, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 67, }, ], values: [ [ Ident { expr: [ Symbol( "oldpath", ), ], line: 69, }, ], ], line: 69, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "cpath", ), ], line: 69, }, ], values: [ [ Ident { expr: [ Symbol( "oldcpath", ), ], line: 70, }, ], ], line: 70, column: 5, }, ], end: 370, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 71, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 79, }, ], body: CodeBlock { start: 378, code: [ Variable { names: [ ( "dirsep", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "config", ), ], line: 81, }, ], [ Symbol( "\"^([^\\n]+)\\n\"", ), ], ], ), ], line: 81, }, ], ], line: 84, column: 0, }, Variable { names: [ ( "DIR", false, ), ], values: [ [ Symbol( "\"libs\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "dirsep", ), ], line: 84, }, ], ], line: 87, column: 0, }, Function { local: true, name: [ Symbol( "D", ), ], args: [ "x", ], body: CodeBlock { start: 25, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 88, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 88, }, ], [ Symbol( "\"/\"", ), ], [ Ident { expr: [ Symbol( "dirsep", ), ], line: 88, }, ], ], ), ], line: 88, }, ], ], line: 89, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "DIR", ), ], line: 89, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 89, }, ], ], ), ), ], end: 42, }, line: 90, column: 1, }, Function { local: true, name: [ Symbol( "DC", ), ], args: [ "x", ], body: CodeBlock { start: 48, code: [ Variable { names: [ ( "ext", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "dirsep", ), ], line: 94, }, Operator( ( "==", true, ), ), Symbol( "'\\\\'", ), ], ), Ident { expr: [], line: 94, }, Operator( ( "and", true, ), ), Symbol( "\".dll\"", ), Operator( ( "or", true, ), ), Symbol( "\".so\"", ), ], ], line: 95, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "D", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 95, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "ext", ), ], line: 95, }, ], ], ), ], line: 95, }, ], ], ), ), ], end: 68, }, line: 96, column: 1, }, Function { local: true, name: [ Symbol( "createfiles", ), ], args: [ "files", "preextras", "posextras", ], body: CodeBlock { start: 78, code: [ ForFuncLoop { iters: [ "n", "c", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "files", ), ], line: 100, }, ], ], ), ], line: 100, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 101, }, ], ], ), ], line: 101, }, ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Ident { expr: [ Symbol( "preextras", ), ], line: 102, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 102, }, ], ], ), ], line: 102, }, ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 103, }, ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "write", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Ident { expr: [ Symbol( "posextras", ), ], line: 104, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 104, }, ], ], ), ], line: 104, }, ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "close", ), Call( [ [ Ident { expr: [ Symbol( "io", ), Symbol( ".", ), Symbol( "output", ), Call( [], ), ], line: 105, }, ], ], ), ], line: 104, }, ], end: 62, }, line: 106, column: 1, }, ], end: 141, }, line: 107, column: 1, }, Function { local: false, name: [ Symbol( "removefiles", ), ], args: [ "files", ], body: CodeBlock { start: 146, code: [ ForFuncLoop { iters: [ "n", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "files", ), ], line: 110, }, ], ], ), ], line: 110, }, ], stop: None, initial: None, code: CodeBlock { start: 8, code: [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Call( [ [ Ident { expr: [ Symbol( "n", ), ], line: 111, }, ], ], ), ], line: 111, }, ], ], ), ], line: 111, }, ], end: 18, }, line: 112, column: 1, }, ], end: 165, }, line: 113, column: 1, }, Variable { names: [ ( "files", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "\"names.lua\"", ), ], ), [ Symbol( "\"do return {...} end\\n\"", ), ], ), ( Some( [ Symbol( "\"err.lua\"", ), ], ), [ Symbol( "\"B = 15; a = a + 1;\"", ), ], ), ( Some( [ Symbol( "\"synerr.lua\"", ), ], ), [ Symbol( "\"B =\"", ), ], ), ( Some( [ Symbol( "\"A.lua\"", ), ], ), [ Symbol( "\"\"", ), ], ), ( Some( [ Symbol( "\"B.lua\"", ), ], ), [ Symbol( "\"assert(...=='B');require 'A'\"", ), ], ), ( Some( [ Symbol( "\"A.lc\"", ), ], ), [ Symbol( "\"\"", ), ], ), ( Some( [ Symbol( "\"A\"", ), ], ), [ Symbol( "\"\"", ), ], ), ( Some( [ Symbol( "\"L\"", ), ], ), [ Symbol( "\"\"", ), ], ), ( Some( [ Symbol( "\"XXxX\"", ), ], ), [ Symbol( "\"\"", ), ], ), ( Some( [ Symbol( "\"C.lua\"", ), ], ), [ Symbol( "\"package.loaded[...] = 25; require'C'\"", ), ], ), ], line: 126, column: 1, }, ], ], line: 126, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "AA", ), ], line: 126, }, ], values: [ [ Symbol( "nil", ), ], ], line: 129, column: 0, }, Variable { names: [ ( "extras", false, ), ], values: [ [ MultilineString( "[[\nNAME = '%s'\nREQUIRED = ...\nreturn AA]]", ), ], ], line: 132, column: 1, }, Ident { expr: [ Symbol( "createfiles", ), Call( [ [ Ident { expr: [ Symbol( "files", ), ], line: 134, }, ], [ Symbol( "\"\"", ), ], [ Ident { expr: [ Symbol( "extras", ), ], line: 134, }, ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"C.lua\"", ), ], [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"?\"", ), ], ], ), ], line: 137, }, ], [ Symbol( "\"\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"C.lua\"", ), ], ], ), ], line: 137, }, ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"C.lua\"", ), ], [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"?\"", ), ], ], ), ], line: 138, }, ], [ Symbol( "\".\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 138, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"C.lua\"", ), ], ], ), ], line: 138, }, ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"--x-\"", ), ], [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"?\"", ), ], ], ), ], line: 139, }, ], [ Symbol( "\"-\"", ), ], [ Symbol( "\"X\"", ), ], ], ), ], line: 139, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"XXxX\"", ), ], ], ), ], line: 139, }, ], ], ), ], line: 138, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"---xX\"", ), ], [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"?\"", ), ], ], ), ], line: 140, }, ], [ Symbol( "\"---\"", ), ], [ Symbol( "\"XX\"", ), ], ], ), ], line: 140, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"XXxX\"", ), ], ], ), ], line: 140, }, ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"C.lua\"", ), ], ], ), ], line: 141, }, ], [ Symbol( "\"?\"", ), ], [ Ident { expr: [ Symbol( "dirsep", ), ], line: 141, }, ], ], ), ], line: 141, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"C.lua\"", ), ], ], ), ], line: 141, }, ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\".\\\\C.lua\"", ), ], [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"?\"", ), ], ], ), ], line: 142, }, ], [ Symbol( "\"\\\\\"", ), ], ], ), ], line: 142, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"./C.lua\"", ), ], ], ), ], line: 142, }, ], ], ), ], line: 141, }, Variable { names: [ ( "oldpath", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 144, }, ], ], line: 144, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 144, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"D/?.lua;D/?.lc;D/?;D/??x?;D/L\"", ), ], [ Symbol( "\"D/\"", ), ], [ Ident { expr: [ Symbol( "DIR", ), ], line: 146, }, ], ], ), ], line: 146, }, ], ], line: 148, column: 0, }, Variable { names: [ ( "try", false, ), ], values: [ [ Lambda { args: [ "p", "n", "r", "ext", ], body: CodeBlock { start: 388, code: [ Alter { names: [ Ident { expr: [ Symbol( "NAME", ), ], line: 149, }, ], values: [ [ Symbol( "nil", ), ], ], line: 150, column: 0, }, Variable { names: [ ( "rr", false, ), ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 150, }, ], ], ), ], line: 150, }, ], ], line: 150, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "NAME", ), ], line: 151, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 151, }, ], ], ), ], line: 150, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "REQUIRED", ), ], line: 152, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 152, }, ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "rr", ), ], line: 153, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "r", ), ], line: 153, }, ], ], ), ], line: 152, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "ext", ), ], line: 154, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 154, }, ], ], ), ], line: 153, }, ], end: 425, }, line: 155, column: 1, }, ], ], line: 155, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 155, }, ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"names\"", ), ], ], ), ], line: 157, }, ], ], line: 157, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 158, }, Operator( ( "==", true, ), ), Symbol( "\"names\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 158, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"names.lua\"", ), ], ], ), ], line: 158, }, ], ], ), ], line: 157, }, Alter { names: [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "a", ), ], line: 158, }, ], values: [ [ Symbol( "nil", ), ], ], line: 161, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 161, }, ], [ Symbol( "\"err\"", ), ], ], ), ], line: 161, }, ], ], line: 161, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 162, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 162, }, ], [ Symbol( "\"arithmetic\"", ), ], ], ), ], line: 162, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "B", ), ], line: 162, }, Operator( ( "==", true, ), ), Symbol( "15", ), ], ], ), ], line: 161, }, Alter { names: [ Ident { expr: [ Symbol( "st", ), ], line: 162, }, Ident { expr: [ Symbol( "msg", ), ], line: 163, }, ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 163, }, ], [ Symbol( "\"synerr\"", ), ], ], ), ], line: 163, }, ], ], line: 163, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 164, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 164, }, ], [ Symbol( "\"error loading module\"", ), ], ], ), ], line: 164, }, ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"C\"", ), ], [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 166, }, ], ], ), ], line: 166, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"C.lua\"", ), ], ], ), ], line: 166, }, ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"C\"", ), ], ], ), ], line: 167, }, Operator( ( "==", true, ), ), Symbol( "25", ), ], ], ), ], line: 166, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"C\"", ), ], ], ), ], line: 168, }, Operator( ( "==", true, ), ), Symbol( "25", ), ], ], ), ], line: 167, }, Alter { names: [ Ident { expr: [ Symbol( "AA", ), ], line: 168, }, ], values: [ [ Symbol( "nil", ), ], ], line: 169, column: 3, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "'B'", ), ], [ Symbol( "'B.lua'", ), ], [ Symbol( "true", ), ], [ Symbol( "\"libs/B.lua\"", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loaded", ), Symbol( ".", ), Symbol( "B", ), ], line: 171, }, ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"B\"", ), ], ], ), ], line: 172, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 171, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loaded", ), Symbol( ".", ), Symbol( "A", ), ], line: 173, }, ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"C\"", ), ], ], ), ], line: 174, }, Operator( ( "==", true, ), ), Symbol( "25", ), ], ], ), ], line: 173, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loaded", ), Symbol( ".", ), Symbol( "A", ), ], line: 174, }, ], values: [ [ Symbol( "nil", ), ], ], line: 175, column: 7, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "'B'", ), ], [ Symbol( "nil", ), ], [ Symbol( "true", ), ], [ Symbol( "nil", ), ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "'A'", ), ], [ Symbol( "'A.lua'", ), ], [ Symbol( "true", ), ], [ Symbol( "\"libs/A.lua\"", ), ], ], ), ], line: 176, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loaded", ), Symbol( ".", ), Symbol( "A", ), ], line: 177, }, ], values: [ [ Symbol( "nil", ), ], ], line: 178, column: 7, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "'A.lua'", ), ], ], ), ], line: 179, }, ], ], ), ], line: 178, }, Alter { names: [ Ident { expr: [ Symbol( "AA", ), ], line: 179, }, ], values: [ [ Table { data: [], line: 180, column: 4, }, ], ], line: 180, column: 4, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "'A'", ), ], [ Symbol( "'A.lc'", ), ], [ Ident { expr: [ Symbol( "AA", ), ], line: 181, }, ], [ Symbol( "\"libs/A.lc\"", ), ], ], ), ], line: 180, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"A\"", ), ], [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 182, }, ], ], ), ], line: 182, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"A.lc\"", ), ], ], ), ], line: 182, }, ], ], ), ], line: 181, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"A\"", ), ], ], ), ], line: 183, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "AA", ), ], line: 183, }, ], ], ), ], line: 182, }, Alter { names: [ Ident { expr: [ Symbol( "AA", ), ], line: 183, }, ], values: [ [ Symbol( "false", ), ], ], line: 184, column: 3, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "'K'", ), ], [ Symbol( "'L'", ), ], [ Symbol( "false", ), ], [ Symbol( "\"libs/L\"", ), ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "'K'", ), ], [ Symbol( "'L'", ), ], [ Symbol( "false", ), ], [ Symbol( "\"libs/L\"", ), ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "rawget", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 187, }, ], [ Symbol( "\"_REQUIREDNAME\"", ), ], ], ), ], line: 187, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 186, }, Alter { names: [ Ident { expr: [ Symbol( "AA", ), ], line: 187, }, ], values: [ [ Symbol( "\"x\"", ), ], ], line: 189, column: 3, }, Ident { expr: [ Symbol( "try", ), Call( [ [ Symbol( "\"X\"", ), ], [ Symbol( "\"XXxX\"", ), ], [ Ident { expr: [ Symbol( "AA", ), ], line: 190, }, ], [ Symbol( "\"libs/XXxX\"", ), ], ], ), ], line: 189, }, Ident { expr: [ Symbol( "removefiles", ), Call( [ [ Ident { expr: [ Symbol( "files", ), ], line: 193, }, ], ], ), ], line: 190, }, Variable { names: [ ( "_G", false, ), ], values: [ [ Ident { expr: [ Symbol( "_G", ), ], line: 198, }, ], ], line: 198, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 198, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"D/?.lua;D/?/init.lua\"", ), ], [ Symbol( "\"D/\"", ), ], [ Ident { expr: [ Symbol( "DIR", ), ], line: 200, }, ], ], ), ], line: 200, }, ], ], line: 200, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "files", ), ], line: 200, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "\"P1/init.lua\"", ), ], ), [ Symbol( "\"AA = 10\"", ), ], ), ( Some( [ Symbol( "\"P1/xuxu.lua\"", ), ], ), [ Symbol( "\"AA = 20\"", ), ], ), ], line: 205, column: 1, }, ], ], line: 205, column: 1, }, Ident { expr: [ Symbol( "createfiles", ), Call( [ [ Ident { expr: [ Symbol( "files", ), ], line: 207, }, ], [ Symbol( "\"_ENV = {}\\n\"", ), ], [ Symbol( "\"\\nreturn _ENV\\n\"", ), ], ], ), ], line: 205, }, Alter { names: [ Ident { expr: [ Symbol( "AA", ), ], line: 207, }, ], values: [ [ Symbol( "0", ), ], ], line: 210, column: 0, }, Variable { names: [ ( "m", false, ), ( "ext", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1\"", ), ], ], ), ], line: 210, }, ], ], ), ], line: 210, }, ], ], line: 210, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "ext", ), ], line: 211, }, Operator( ( "==", true, ), ), Symbol( "\"libs/P1/init.lua\"", ), ], ], ), ], line: 210, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "AA", ), ], line: 212, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "m", ), Symbol( ".", ), Symbol( "AA", ), ], line: 212, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 211, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1\"", ), ], ], ), ], line: 213, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "m", ), ], line: 213, }, ], ], ), ], line: 212, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1\"", ), ], ], ), ], line: 214, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "m", ), ], line: 214, }, ], ], ), ], line: 213, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchpath", ), Call( [ [ Symbol( "\"P1.xuxu\"", ), ], [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 216, }, ], ], ), ], line: 216, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "D", ), Call( [ [ Symbol( "\"P1/xuxu.lua\"", ), ], ], ), ], line: 216, }, ], ], ), ], line: 214, }, Alter { names: [ Ident { expr: [ Symbol( "m", ), Symbol( ".", ), Symbol( "xuxu", ), ], line: 216, }, Ident { expr: [ Symbol( "ext", ), ], line: 217, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1.xuxu\"", ), ], ], ), ], line: 217, }, ], ], ), ], line: 217, }, ], ], line: 217, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "AA", ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "m", ), Symbol( ".", ), Symbol( "xuxu", ), Symbol( ".", ), Symbol( "AA", ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "20", ), ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "ext", ), ], line: 219, }, Operator( ( "==", true, ), ), Symbol( "\"libs/P1/xuxu.lua\"", ), ], ], ), ], line: 218, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1.xuxu\"", ), ], ], ), ], line: 220, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "m", ), Symbol( ".", ), Symbol( "xuxu", ), ], line: 220, }, ], ], ), ], line: 219, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1.xuxu\"", ), ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "m", ), Symbol( ".", ), Symbol( "xuxu", ), ], line: 221, }, ], ], ), ], line: 220, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"P1\"", ), ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "m", ), ], line: 222, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "m", ), Symbol( ".", ), Symbol( "AA", ), ], line: 222, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 221, }, Ident { expr: [ Symbol( "removefiles", ), Call( [ [ Ident { expr: [ Symbol( "files", ), ], line: 225, }, ], ], ), ], line: 222, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 225, }, ], values: [ [ Symbol( "\"\"", ), ], ], line: 228, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 229, }, ], [ Symbol( "\"file_does_not_exist\"", ), ], ], ), ], line: 229, }, ], ], ), ], line: 228, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 229, }, ], values: [ [ Symbol( "\"??\\0?\"", ), ], ], line: 230, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 231, }, ], [ Symbol( "\"file_does_not_exist1\"", ), ], ], ), ], line: 231, }, ], ], ), ], line: 230, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 231, }, ], values: [ [ Ident { expr: [ Symbol( "oldpath", ), ], line: 233, }, ], ], line: 236, column: 0, }, Variable { names: [ ( "fname", false, ), ], values: [ [ Symbol( "\"file_does_not_exist2\"", ), ], ], line: 237, column: 0, }, Variable { names: [ ( "m", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 237, }, ], [ Ident { expr: [ Symbol( "fname", ), ], line: 237, }, ], ], ), ], line: 237, }, ], ], line: 238, column: 0, }, ForFuncLoop { iters: [ "t", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 238, }, Operator( ( "..", true, ), ), Symbol( "\";\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "cpath", ), ], line: 238, }, ], [ Symbol( "\"[^;]+\"", ), ], ], ), ], line: 238, }, ], stop: None, initial: None, code: CodeBlock { start: 947, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 239, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 239, }, ], [ Symbol( "\"?\"", ), ], [ Ident { expr: [ Symbol( "fname", ), ], line: 239, }, ], ], ), ], line: 239, }, ], ], line: 239, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 240, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 240, }, ], [ Symbol( "1", ), ], [ Symbol( "true", ), ], ], ), ], line: 240, }, ], ], ), ], line: 239, }, ], end: 975, }, line: 241, column: 1, }, DoBlock( CodeBlock { start: 976, code: [ Variable { names: [ ( "searchers", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchers", ), ], line: 244, }, ], ], line: 244, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchers", ), ], line: 244, }, ], values: [ [ Symbol( "3", ), ], ], line: 246, column: 0, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "require", ), ], line: 246, }, ], [ Symbol( "'a'", ), ], ], ), ], line: 246, }, ], ], line: 246, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 247, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 247, }, ], [ Symbol( "\"must be a table\"", ), ], ], ), ], line: 247, }, ], ], ), ], line: 246, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "searchers", ), ], line: 247, }, ], values: [ [ Ident { expr: [ Symbol( "searchers", ), ], line: 248, }, ], ], line: 248, column: 5, }, ], end: 1018, }, ), Function { local: true, name: [ Symbol( "import", ), ], args: [ "...", ], body: CodeBlock { start: 1024, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 252, column: 6, }, ], ], line: 253, column: 0, }, Return( Some( [ [ Lambda { args: [ "m", ], body: CodeBlock { start: 11, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 254, }, ], step: None, code: CodeBlock { start: 8, code: [ Alter { names: [ Ident { expr: [ Symbol( "m", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 254, }, ], ), Symbol( "]", ), ], line: 254, }, ], ), Symbol( "]", ), ], line: 254, }, ], values: [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 254, }, ], ), Symbol( "]", ), ], line: 254, }, ], ), Symbol( "]", ), ], line: 254, }, ], ], line: 254, column: 15, }, ], end: 24, }, line: 254, column: 24, }, ], end: 36, }, line: 255, column: 1, }, ], ], ), ), ], end: 1061, }, line: 256, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "module", ), ], line: 259, }, ], [ Symbol( "'XUXU'", ), ], ], ), ], line: 259, }, ], ], ), ], line: 256, }, Variable { names: [ ( "p", false, ), ], values: [ [ Symbol( "\"\"", ), ], ], line: 269, column: 0, }, Variable { names: [ ( "st", false, ), ( "err", false, ), ( "when", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib1\"", ), ], ], ), ], line: 269, }, ], [ Symbol( "\"*\"", ), ], ], ), ], line: 269, }, ], ], line: 270, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 270, }, ], body: CodeBlock { start: 1095, code: [ Variable { names: [ ( "f", false, ), ( "err", false, ), ( "when", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Symbol( "\"donotexist\"", ), ], [ Ident { expr: [ Symbol( "p", ), ], line: 271, }, Operator( ( "..", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 271, }, ], ], line: 271, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 272, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 272, }, ], ], ), ], line: 272, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "when", ), ], line: 272, }, Operator( ( "==", true, ), ), Symbol( "\"absent\"", ), ], ], ), ], line: 271, }, Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 273, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 273, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> cannot load dynamic library <<<\\n'", ), ], ], ), ], line: 273, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 274, }, ], [ Ident { expr: [ Symbol( "when", ), ], line: 274, }, ], ], ), ], line: 273, }, ], end: 1144, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 1144, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib1\"", ), ], ], ), ], line: 277, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 277, }, Operator( ( "..", true, ), ), Symbol( "\"onefunction\"", ), ], ], ), ], line: 277, }, ], ], ), ], line: 277, }, ], ], line: 278, column: 0, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "15", ), ], [ Symbol( "25", ), ], ], ), ], line: 278, }, ], ], line: 278, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 279, }, Operator( ( "==", true, ), ), Symbol( "25", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 279, }, Operator( ( "==", true, ), ), Symbol( "15", ), ], ], ), ], line: 278, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 279, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib1\"", ), ], ], ), ], line: 281, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 281, }, Operator( ( "..", true, ), ), Symbol( "\"anotherfunc\"", ), ], ], ), ], line: 281, }, ], ], ), ], line: 281, }, ], ], line: 281, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "10", ), ], [ Symbol( "20", ), ], ], ), ], line: 282, }, Operator( ( "==", true, ), ), Symbol( "\"10%20\\n\"", ), ], ], ), ], line: 281, }, Variable { names: [ ( "f", false, ), ( "err", false, ), ( "when", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib1\"", ), ], ], ), ], line: 285, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 285, }, Operator( ( "..", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 285, }, ], ], line: 285, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 286, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 286, }, ], ], ), ], line: 286, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "when", ), ], line: 286, }, Operator( ( "==", true, ), ), Symbol( "\"init\"", ), ], ], ), ], line: 285, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 286, }, Ident { expr: [ Symbol( "err", ), ], line: 287, }, Ident { expr: [ Symbol( "when", ), ], line: 287, }, ], values: [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Symbol( "\"donotexist\"", ), ], [ Ident { expr: [ Symbol( "p", ), ], line: 287, }, Operator( ( "..", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 287, }, ], ], line: 287, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), ], line: 288, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 288, }, ], ], ), ], line: 288, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "when", ), ], line: 288, }, Operator( ( "==", true, ), ), Symbol( "\"open\"", ), ], ], ), ], line: 287, }, Alter { names: [ Ident { expr: [ Symbol( "f", ), ], line: 288, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "loadlib", ), Call( [ [ Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib11\"", ), ], ], ), ], line: 291, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 291, }, Operator( ( "..", true, ), ), Symbol( "\"luaopen_lib11\"", ), ], ], ), ], line: 291, }, ], ], ), ], line: 291, }, ], ], line: 291, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 292, }, Operator( ( "==", true, ), ), Symbol( "\"exported\"", ), ], ], ), ], line: 291, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "cpath", ), ], line: 292, }, ], values: [ [ Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"?\"", ), ], ], ), ], line: 295, }, ], ], line: 296, column: 0, }, Variable { names: [ ( "lib2", false, ), ( "ext", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"lib2-v2\"", ), ], ], ), ], line: 296, }, ], ], line: 296, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "ext", ), ], line: 297, }, ], [ Symbol( "\"libs/lib2-v2\"", ), ], [ Symbol( "1", ), ], [ Symbol( "true", ), ], ], ), ], line: 297, }, ], ], ), ], line: 296, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_ENV", ), Symbol( ".", ), Symbol( "x", ), ], line: 300, }, Operator( ( "==", true, ), ), Symbol( "\"lib2-v2\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_ENV", ), Symbol( ".", ), Symbol( "y", ), ], line: 300, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib2-v2\"", ), ], ], ), ], line: 300, }, ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "lib2", ), Symbol( ".", ), Symbol( "id", ), Call( [ [ Symbol( "\"x\"", ), ], ], ), ], line: 301, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 300, }, Variable { names: [ ( "fs", false, ), ( "ext", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"lib1.sub\"", ), ], ], ), ], line: 304, }, ], ], line: 304, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_ENV", ), Symbol( ".", ), Symbol( "x", ), ], line: 305, }, Operator( ( "==", true, ), ), Symbol( "\"lib1.sub\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_ENV", ), Symbol( ".", ), Symbol( "y", ), ], line: 305, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "DC", ), Call( [ [ Symbol( "\"lib1\"", ), ], ], ), ], line: 305, }, ], ], ), ], line: 304, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "ext", ), ], line: 306, }, ], [ Symbol( "\"libs/lib1\"", ), ], [ Symbol( "1", ), ], [ Symbol( "true", ), ], ], ), ], line: 306, }, ], ], ), ], line: 305, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fs", ), Symbol( ".", ), Symbol( "id", ), Call( [ [ Symbol( "45", ), ], ], ), ], line: 307, }, Operator( ( "==", true, ), ), Symbol( "45", ), ], ], ), ], line: 306, }, ], end: 1402, }, next: None, line: 308, column: 1, }, ), line: 308, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "_ENV", ), ], line: 308, }, ], values: [ [ Ident { expr: [ Symbol( "_G", ), ], line: 310, }, ], ], line: 315, column: 0, }, DoBlock( CodeBlock { start: 1406, code: [ Variable { names: [ ( "p", false, ), ], values: [ [ Ident { expr: [ Symbol( "package", ), ], line: 316, }, ], ], line: 316, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), ], line: 316, }, ], values: [ [ Table { data: [], line: 317, column: 4, }, ], ], line: 317, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "p", ), Symbol( ".", ), Symbol( "preload", ), Symbol( ".", ), Symbol( "pl", ), ], line: 317, }, ], values: [ [ Lambda { args: [ "...", ], body: CodeBlock { start: 18, code: [ Variable { names: [ ( "_ENV", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 319, column: 6, }, ], ], line: 320, column: 0, }, Function { local: false, name: [ Symbol( "xuxu", ), ], args: [ "x", ], body: CodeBlock { start: 11, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "x", ), ], line: 320, }, Operator( ( "+", true, ), ), Symbol( "20", ), ], ], ), ), ], end: 16, }, line: 320, column: 10, }, Return( Some( [ [ Ident { expr: [ Symbol( "_ENV", ), ], line: 321, }, ], ], ), ), ], end: 37, }, line: 322, column: 1, }, ], ], line: 324, column: 0, }, Variable { names: [ ( "pl", false, ), ( "ext", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"pl\"", ), ], ], ), ], line: 324, }, ], ], line: 324, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"pl\"", ), ], ], ), ], line: 325, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "pl", ), ], line: 325, }, ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "pl", ), Symbol( ".", ), Symbol( "xuxu", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 326, }, Operator( ( "==", true, ), ), Symbol( "30", ), ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "pl", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 327, }, Operator( ( "==", true, ), ), Symbol( "\"pl\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "pl", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 327, }, Operator( ( "==", true, ), ), Symbol( "\":preload:\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "ext", ), ], line: 327, }, Operator( ( "==", true, ), ), Symbol( "\":preload:\"", ), ], ], ), ], line: 326, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), ], line: 327, }, ], values: [ [ Ident { expr: [ Symbol( "p", ), ], line: 329, }, ], ], line: 329, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "path", ), ], line: 330, }, ], ], ), ], line: 330, }, Operator( ( "==", true, ), ), Symbol( "\"string\"", ), ], ], ), ], line: 329, }, ], end: 1503, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 331, }, ], end: 1886, }, next: None, line: 335, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing assignments, logical operators, and constructors\"", ), ], ], ), ], line: 335, }, Variable { names: [ ( "res", false, ), ( "res2", false, ), ], values: [ [ Symbol( "27", ), ], ], line: 339, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 339, }, Ident { expr: [ Symbol( "b", ), ], line: 341, }, ], values: [ [ Symbol( "1", ), ], [ Symbol( "2", ), Operator( ( "+", true, ), ), Symbol( "3", ), ], ], line: 341, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 342, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 341, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 342, }, ], values: [ [ Table { data: [], line: 343, column: 4, }, ], ], line: 344, column: 0, }, Function { local: false, name: [ Symbol( "f", ), ], args: [], body: CodeBlock { start: 1923, code: [ Return( Some( [ [ Symbol( "10", ), ], [ Symbol( "11", ), ], [ Symbol( "12", ), ], ], ), ), ], end: 1930, }, line: 344, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 344, }, Ident { expr: [ Symbol( "b", ), ], line: 345, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 345, }, ], values: [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 345, }, ], ], line: 345, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 346, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 346, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 346, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 345, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 347, }, ], ), Symbol( "]", ), ], line: 346, }, Ident { expr: [ Symbol( "b", ), ], line: 347, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 347, }, Operator( ( "+", true, ), ), Symbol( "3", ), ], ), Symbol( "]", ), ], line: 347, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 347, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 347, }, ], [ Symbol( "'x'", ), ], ], line: 347, column: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10", ), ], ), Symbol( "]", ), ], line: 348, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 348, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 348, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "13", ), ], ), Symbol( "]", ), ], line: 348, }, Operator( ( "==", true, ), ), Symbol( "'x'", ), ], ], ), ], line: 347, }, DoBlock( CodeBlock { start: 2013, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Lambda { args: [ "n", ], body: CodeBlock { start: 7, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Table { data: [], line: 351, column: 5, }, ], ], line: 351, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "n", ), ], line: 351, }, ], step: None, code: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "x", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 351, }, ], ), Symbol( "]", ), ], line: 351, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 351, }, ], ], line: 351, column: 6, }, ], end: 20, }, line: 351, column: 20, }, Return( Some( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 352, }, ], ], ), ], line: 352, }, ], ], ), ), ], end: 36, }, line: 352, column: 8, }, ], ], line: 352, column: 9, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [], line: 353, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 353, }, Ident { expr: [ Symbol( "b", ), ], line: 354, }, ], values: [ [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 354, }, ], ], line: 354, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 355, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 354, }, Alter { names: [ Ident { expr: [ Symbol( "A", ), ], line: 355, }, Ident { expr: [ Symbol( "b", ), ], line: 356, }, ], values: [ [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 356, }, ], ], line: 356, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "A", ), ], line: 357, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 357, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 356, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 357, }, Ident { expr: [ Symbol( "b", ), ], line: 358, }, Ident { expr: [ Symbol( "c", ), ], line: 358, }, ], values: [ [ Symbol( "0", ), ], [ Symbol( "5", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "4", ), ], ], ), ], line: 358, }, ], ], line: 358, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 359, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 358, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 359, }, Ident { expr: [ Symbol( "b", ), ], line: 360, }, Ident { expr: [ Symbol( "c", ), ], line: 360, }, ], values: [ [ Symbol( "0", ), ], [ Symbol( "5", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 360, }, ], ], line: 360, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 361, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 361, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 361, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 360, }, ], end: 2153, }, ), Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 362, }, Ident { expr: [ Symbol( "b", ), ], line: 364, }, Ident { expr: [ Symbol( "c", ), ], line: 364, }, Ident { expr: [ Symbol( "d", ), ], line: 364, }, ], values: [ [ Symbol( "1", ), Operator( ( "and", true, ), ), Symbol( "nil", ), ], [ Symbol( "1", ), Operator( ( "or", true, ), ), Symbol( "nil", ), ], [ Expr( [ Symbol( "1", ), Operator( ( "and", true, ), ), Expr( [ Symbol( "nil", ), Operator( ( "or", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 364, }, ], ), Ident { expr: [], line: 364, }, ], [ Symbol( "6", ), ], ], line: 364, column: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 365, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 365, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 365, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 364, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 365, }, ], values: [ [ Symbol( "20", ), ], ], line: 367, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 367, }, Ident { expr: [ Symbol( "b", ), ], line: 368, }, Ident { expr: [ Symbol( "c", ), ], line: 368, }, Ident { expr: [ Symbol( "d", ), ], line: 368, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 368, }, ], ], line: 368, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 369, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 369, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 369, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 369, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 368, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 369, }, Ident { expr: [ Symbol( "b", ), ], line: 370, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 370, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "3", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 370, }, ], ], line: 370, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 371, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 371, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 370, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 373, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 373, }, Operator( ( "==", true, ), ), Symbol( "false", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 373, }, Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 373, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 371, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "10", ), Operator( ( "and", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 374, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 373, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "10", ), Operator( ( "or", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 375, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 374, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "10", ), Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 376, }, ], ), Ident { expr: [], line: 376, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 375, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 377, }, ], ), Ident { expr: [], line: 377, }, ], ], ), ], line: 376, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "nil", ), Operator( ( "or", true, ), ), Symbol( "\"alo\"", ), ], ), Ident { expr: [], line: 378, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 377, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "nil", ), Operator( ( "and", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 379, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 378, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "false", ), Operator( ( "and", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 380, }, Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 379, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "true", ), Operator( ( "or", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 381, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 380, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "false", ), Operator( ( "or", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 382, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 381, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "false", ), Operator( ( "~=", true, ), ), Symbol( "nil", ), ], ], ), ], line: 382, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "nil", ), Operator( ( "~=", true, ), ), Symbol( "false", ), ], ], ), ], line: 383, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Symbol( "nil", ), Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 384, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Symbol( "nil", ), Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 385, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 386, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 388, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 387, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "6", ), Operator( ( "or", true, ), ), Symbol( "nil", ), ], ), Ident { expr: [], line: 389, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 388, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "nil", ), Operator( ( "and", true, ), ), Symbol( "56", ), ], ), Ident { expr: [], line: 390, }, Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 389, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "nil", ), Operator( ( "and", true, ), ), Symbol( "true", ), ], ), Ident { expr: [], line: 391, }, Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 390, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Symbol( "10", ), Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 391, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Table { data: [], line: 393, column: 5, }, Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 392, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Symbol( "0.5", ), Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 393, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Symbol( "\"x\"", ), Operator( ( "==", true, ), ), Symbol( "false", ), ], ], ), ], line: 394, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Table { data: [], line: 397, column: 4, }, Operator( ( "~=", true, ), ), Table { data: [], line: 397, column: 7, }, ], ], ), ], line: 395, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 397, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 398, }, ], values: [ [ Table { data: [], line: 400, column: 4, }, ], ], line: 400, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "true", ), ], ), Symbol( "]", ), ], line: 400, }, ], values: [ [ Symbol( "20", ), ], ], line: 401, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "false", ), ], ), Symbol( "]", ), ], line: 401, }, ], values: [ [ Symbol( "10", ), ], ], line: 402, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "2", ), ], ), Symbol( "]", ), ], line: 403, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), Operator( ( ">", true, ), ), Symbol( "2", ), ], ), Symbol( "]", ), ], line: 403, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 402, }, Function { local: false, name: [ Symbol( "f", ), ], args: [ "a", ], body: CodeBlock { start: 2522, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 405, }, ], ], ), ), ], end: 2525, }, line: 405, column: 8, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 407, column: 5, }, ], ], line: 408, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "3000", ), ], end: [ Operator( ( "-", false, ), ), Symbol( "3000", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2541, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 408, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ), Symbol( "]", ), ], line: 408, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 408, }, ], ], line: 408, column: 9, }, ], end: 2551, }, line: 408, column: 21, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10e30", ), ], ), Symbol( "]", ), ], line: 408, }, ], values: [ [ Symbol( "\"alo\"", ), ], ], line: 409, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "true", ), ], ), Symbol( "]", ), ], line: 409, }, ], values: [ [ Symbol( "10", ), ], ], line: 409, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "false", ), ], ), Symbol( "]", ), ], line: 409, }, ], values: [ [ Symbol( "20", ), ], ], line: 409, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10e30", ), ], ), Symbol( "]", ), ], line: 410, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "not", false, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 410, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "10", ), Operator( ( "<", true, ), ), Symbol( "20", ), ], ), Symbol( "]", ), ], line: 410, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 409, }, ForLoop { iter: "i", start: [ Symbol( "3000", ), ], end: [ Operator( ( "-", false, ), ), Symbol( "3000", ), ], step: Some( [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), code: CodeBlock { start: 2608, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 411, }, ], ), Symbol( "]", ), ], line: 411, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 411, }, ], ], ), ], line: 411, }, ], end: 2619, }, line: 411, column: 22, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "print", ), ], line: 412, }, ], ), Symbol( "]", ), ], line: 411, }, ], values: [ [ Ident { expr: [ Symbol( "assert", ), ], line: 412, }, ], ], line: 412, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), ], line: 413, }, ], ), Symbol( "]", ), ], line: 412, }, ], values: [ [ Ident { expr: [ Symbol( "print", ), ], line: 413, }, ], ], line: 413, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 414, }, ], ), Symbol( "]", ), ], line: 413, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 414, }, ], ], line: 414, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 415, }, ], ), Symbol( "]", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 415, }, ], ), Symbol( "]", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 415, }, ], ), Symbol( "]", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 415, }, ], ), Symbol( "]", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "print", ), ], line: 415, }, ], ), Symbol( "]", ), ], line: 415, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "assert", ), ], line: 415, }, ], ], ), ], line: 414, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "print", ), ], line: 416, }, ], ), Symbol( "]", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), ], line: 416, }, ], ), Symbol( "]", ), ], line: 416, }, ], ), Symbol( "]", ), ], line: 416, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "print", ), ], line: 416, }, ], ), Symbol( "]", ), ], line: 416, }, ], ], ), ], line: 415, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 2684, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 417, column: 5, }, ], ], line: 417, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "nil", ), ], ), Symbol( "]", ), ], line: 417, }, ], values: [ [ Symbol( "10", ), ], ], line: 417, column: 12, }, ], end: 2697, }, line: 417, column: 21, }, ], ], ), ], line: 417, }, ], ], ), ], line: 416, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 2707, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "nil", ), ], ), [ Symbol( "10", ), ], ), ], line: 418, column: 10, }, ], ], line: 418, column: 10, }, ], end: 2718, }, line: 418, column: 19, }, ], ], ), ], line: 418, }, ], ], ), ], line: 417, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "nil", ), ], ), Symbol( "]", ), ], line: 419, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 419, }, ], ], ), ], line: 418, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 419, }, ], values: [ [ Symbol( "nil", ), ], ], line: 420, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 420, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "9", ), ], ), ( None, [ Symbol( "8", ), ], ), ( None, [ Symbol( "7", ), ], ), ( None, [ Symbol( "6", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "4", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "2", ), ], ), ( Some( [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), [ Symbol( "'a'", ), ], ), ( Some( [ Ident { expr: [ Symbol( "f", ), ], line: 422, }, ], ), [ Ident { expr: [ Symbol( "print", ), ], line: 422, }, ], ), ( Some( [ Symbol( "a", ), ], ), [ Symbol( "'a'", ), ], ), ( Some( [ Symbol( "b", ), ], ), [ Symbol( "'ab'", ), ], ), ], line: 422, column: 42, }, ], ], line: 422, column: 42, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 422, }, Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 423, }, Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "y", ), ], line: 423, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 423, }, ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), Symbol( "]", ), ], line: 423, }, ], ], line: 423, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 424, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), Symbol( "]", ), ], line: 424, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "a", ), ], line: 424, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), ], line: 424, }, ], ), Symbol( "]", ), ], line: 424, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 424, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 424, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "y", ), ], line: 424, }, ], ], ), ], line: 423, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 424, }, Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 425, }, ], ], ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 425, }, Ident { expr: [ Symbol( "b", ), ], line: 425, }, Ident { expr: [ Symbol( "c", ), ], line: 425, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "'alo'", ), ], ), [ Ident { expr: [ Symbol( "assert", ), ], line: 425, }, ], ), ], line: 425, column: 24, }, ], [ Symbol( "10", ), ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 425, }, ], [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "f", ), ], line: 425, }, ], ), Symbol( "]", ), ], line: 425, }, ], [ Symbol( "6", ), ], [ Symbol( "10", ), ], [ Symbol( "23", ), ], [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 425, }, ], ], ), ], line: 425, }, ], [ Symbol( "2", ), ], ], line: 425, column: 49, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), Symbol( ".", ), Symbol( "alo", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 426, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 426, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 426, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 426, }, ], ], ), ], line: 425, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "aVeryLongName012345678901234567890123456789012345678901234567890123456789", ), ], line: 426, }, ], values: [ [ Symbol( "10", ), ], ], line: 429, column: 0, }, Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 2909, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "aVeryLongName012345678901234567890123456789012345678901234567890123456789", ), ], line: 430, }, ], ], ), ), ], end: 2914, }, line: 431, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), Call( [], ), ], line: 432, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "aVeryLongName012345678901234567890123456789012345678901234567890123456789", ), ], line: 432, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 431, }, Variable { names: [ ( "maxint", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 441, }, ], ], line: 444, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "maxint", ), ], line: 444, }, Operator( ( "~=", true, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 444, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ), Ident { expr: [], line: 444, }, Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 444, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 444, }, Operator( ( "~=", true, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 444, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ), Ident { expr: [], line: 444, }, ], body: CodeBlock { start: 2955, code: [ Alter { names: [ Ident { expr: [ Symbol( "maxint", ), ], line: 445, }, ], values: [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 445, }, Operator( ( "//", true, ), ), Symbol( "2", ), ], ], line: 445, column: 5, }, ], end: 2961, }, line: 446, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "maxintF", ), ], line: 446, }, ], values: [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 448, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], line: 448, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxintF", ), ], line: 450, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 450, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "maxintF", ), ], line: 450, }, ], ], ), ], line: 450, }, Operator( ( "==", true, ), ), Symbol( "\"float\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "maxintF", ), ], line: 450, }, Operator( ( ">=", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "14", ), ], ], ), ], line: 448, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxintF", ), ], line: 454, }, ], ), Symbol( "]", ), ], line: 451, }, ], values: [ [ Symbol( "10", ), ], ], line: 454, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxintF", ), ], line: 454, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ), Symbol( "]", ), ], line: 454, }, ], values: [ [ Symbol( "11", ), ], ], line: 454, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxintF", ), ], line: 455, }, ], ), Symbol( "]", ), ], line: 454, }, ], values: [ [ Symbol( "12", ), ], ], line: 455, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxintF", ), ], line: 455, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ), Symbol( "]", ), ], line: 455, }, ], values: [ [ Symbol( "13", ), ], ], line: 455, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 457, }, ], ), Symbol( "]", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 457, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 458, }, ], ), Symbol( "]", ), ], line: 457, }, Operator( ( "==", true, ), ), Symbol( "12", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 458, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 458, }, Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 455, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 460, }, ], ), Symbol( "]", ), ], line: 458, }, ], values: [ [ Symbol( "20", ), ], ], line: 460, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 461, }, ], ), Symbol( "]", ), ], line: 460, }, ], values: [ [ Symbol( "22", ), ], ], line: 461, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxintF", ), ], line: 463, }, ], ), Symbol( "]", ), ], line: 463, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "maxintF", ), ], line: 463, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ), Symbol( "]", ), ], line: 463, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxintF", ), ], line: 464, }, ], ), Symbol( "]", ), ], line: 463, }, Operator( ( "==", true, ), ), Symbol( "22", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxintF", ), ], line: 464, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ), Symbol( "]", ), ], line: 464, }, Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 461, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 464, }, ], values: [ [ Symbol( "nil", ), ], ], line: 470, column: 0, }, DoBlock( CodeBlock { start: 3110, code: [ Variable { names: [ ( "a", false, ), ( "i", false, ), ( "j", false, ), ( "b", false, ), ], values: [], line: 471, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 471, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "'a'", ), ], ), ( None, [ Symbol( "'b'", ), ], ), ], line: 472, column: 7, }, ], ], line: 472, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 472, }, ], values: [ [ Symbol( "1", ), ], ], line: 472, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "j", ), ], line: 472, }, ], values: [ [ Symbol( "2", ), ], ], line: 472, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 472, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 472, }, ], ], line: 472, column: 19, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 472, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 473, }, ], ), Symbol( "]", ), ], line: 473, }, Ident { expr: [ Symbol( "a", ), ], line: 473, }, Ident { expr: [ Symbol( "j", ), ], line: 473, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "j", ), ], line: 473, }, ], ), Symbol( "]", ), ], line: 473, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 473, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 473, }, ], ), Symbol( "]", ), ], line: 473, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 473, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 473, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 473, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 473, }, ], [ Ident { expr: [ Symbol( "j", ), ], line: 473, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 473, }, ], ], line: 473, column: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 474, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 474, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 474, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 474, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 474, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 474, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 474, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 473, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 475, }, ], values: [ [ Table { data: [], line: 476, column: 4, }, ], ], line: 477, column: 0, }, Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 105, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 478, }, Ident { expr: [ Symbol( "a", ), Symbol( ".", ), Symbol( "x", ), ], line: 478, }, Ident { expr: [ Symbol( "a", ), ], line: 478, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 478, }, ], [ Symbol( "10", ), ], [ Symbol( "20", ), ], ], line: 478, column: 13, }, ], end: 119, }, line: 479, column: 1, }, Ident { expr: [ Symbol( "foo", ), Call( [], ), ], line: 479, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 481, }, Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( ".", ), Symbol( "x", ), ], line: 481, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 480, }, ], end: 3245, }, ), DoBlock( CodeBlock { start: 3246, code: [ Variable { names: [ ( "a", false, ), ( "i", false, ), ( "j", false, ), ( "b", false, ), ], values: [], line: 486, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 486, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "'a'", ), ], ), ( None, [ Symbol( "'b'", ), ], ), ], line: 487, column: 7, }, ], ], line: 487, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 487, }, ], values: [ [ Symbol( "1", ), ], ], line: 487, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "j", ), ], line: 487, }, ], values: [ [ Symbol( "2", ), ], ], line: 487, column: 16, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 487, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 487, }, ], ], line: 488, column: 0, }, Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 32, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 489, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 489, }, ], ), Symbol( "]", ), ], line: 489, }, Ident { expr: [ Symbol( "a", ), ], line: 489, }, Ident { expr: [ Symbol( "j", ), ], line: 489, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "j", ), ], line: 489, }, ], ), Symbol( "]", ), ], line: 489, }, Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 489, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 489, }, ], ), Symbol( "]", ), ], line: 489, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 489, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 489, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 489, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 489, }, ], [ Ident { expr: [ Symbol( "j", ), ], line: 489, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 489, }, ], ], line: 489, column: 34, }, ], end: 67, }, line: 490, column: 1, }, Ident { expr: [ Symbol( "foo", ), Call( [], ), ], line: 490, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 492, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 492, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 492, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 492, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 492, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 492, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 492, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 491, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [], line: 494, column: 5, }, Expr( [ Lambda { args: [ "a", ], body: CodeBlock { start: 115, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 495, }, ], ), Symbol( "]", ), ], line: 495, }, Ident { expr: [ Symbol( "a", ), ], line: 495, }, ], values: [ [ Symbol( "10", ), ], [ Symbol( "20", ), ], ], line: 495, column: 10, }, ], end: 126, }, line: 495, column: 16, }, ], ), Ident { expr: [ Call( [ [ Symbol( "1", ), ], ], ), ], line: 495, }, ], ], line: 495, column: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 496, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 495, }, ], end: 3387, }, ), Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 3392, code: [ Variable { names: [ ( "a", false, ), ], values: [], line: 501, column: 2, }, Return( Some( [ [ Lambda { args: [], body: CodeBlock { start: 6, code: [ Variable { names: [ ( "b", false, ), ], values: [], line: 503, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 503, }, Ident { expr: [ Symbol( "b", ), ], line: 504, }, ], values: [ [ Symbol( "3", ), ], [ Symbol( "14", ), ], ], line: 505, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 505, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 505, }, ], ], ), ), ], end: 20, }, line: 506, column: 1, }, ], ], ), ), ], end: 3413, }, line: 507, column: 1, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Ident { expr: [ Symbol( "foo", ), Call( [], ), Call( [], ), ], line: 509, }, ], ], line: 509, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 510, }, Operator( ( "==", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 510, }, Operator( ( "==", true, ), ), Symbol( "14", ), ], ], ), ], line: 509, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 510, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), ], line: 514, }, ], ], ), ), ]