--- source: src/main.rs expression: parsed input_file: test-data/lua5.3-tests/pm.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing pattern matching'", ), ], ], ), ], line: 4, }, Function { local: true, name: [ Symbol( "checkerror", ), ], args: [ "msg", "f", "...", ], body: CodeBlock { start: 14, code: [ Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 7, }, ], [ Symbol( "...", ), ], ], ), ], line: 7, }, ], ], line: 7, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 8, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 8, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 8, }, ], ], ), ], line: 8, }, ], ], ), ], line: 7, }, ], end: 40, }, line: 9, column: 1, }, Function { local: false, name: [ Symbol( "f", ), ], args: [ "s", "p", ], body: CodeBlock { start: 47, code: [ Variable { names: [ ( "i", false, ), ( "e", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 13, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 13, }, ], ], ), ], line: 13, }, ], ], line: 14, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 14, }, ], body: CodeBlock { start: 16, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 14, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 14, }, ], [ Ident { expr: [ Symbol( "e", ), ], line: 14, }, ], ], ), ], line: 14, }, ], ], ), ), ], end: 28, }, next: None, line: 14, column: 15, }, ], end: 76, }, line: 15, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 15, }, Ident { expr: [ Symbol( "b", ), ], line: 17, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "''", ), ], ], ), ], line: 17, }, ], ], line: 17, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 18, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 17, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 18, }, Ident { expr: [ Symbol( "b", ), ], line: 19, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'alo'", ), ], [ Symbol( "''", ), ], ], ), ], line: 19, }, ], ], line: 19, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 20, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 20, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 19, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 20, }, Ident { expr: [ Symbol( "b", ), ], line: 21, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0o a\\0o a\\0o'", ), ], [ Symbol( "'a'", ), ], [ Symbol( "1", ), ], ], ), ], line: 21, }, ], ], line: 21, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 21, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 22, }, Ident { expr: [ Symbol( "b", ), ], line: 23, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0o a\\0o a\\0o'", ), ], [ Symbol( "'a\\0o'", ), ], [ Symbol( "2", ), ], ], ), ], line: 23, }, ], ], line: 23, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "7", ), ], ], ), ], line: 23, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 24, }, Ident { expr: [ Symbol( "b", ), ], line: 25, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0o a\\0o a\\0o'", ), ], [ Symbol( "'a\\0o'", ), ], [ Symbol( "9", ), ], ], ), ], line: 25, }, ], ], line: 25, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "9", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 25, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 26, }, Ident { expr: [ Symbol( "b", ), ], line: 27, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0a\\0a\\0a\\0\\0ab'", ), ], [ Symbol( "'\\0ab'", ), ], [ Symbol( "2", ), ], ], ), ], line: 27, }, ], ], line: 27, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "9", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 27, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 28, }, Ident { expr: [ Symbol( "b", ), ], line: 29, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0a\\0a\\0a\\0\\0ab'", ), ], [ Symbol( "'b'", ), ], ], ), ], line: 29, }, ], ], line: 29, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 30, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 30, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0a\\0a\\0a\\0\\0ab'", ), ], [ Symbol( "'b\\0'", ), ], ], ), ], line: 31, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'\\0'", ), ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'alo123alo'", ), ], [ Symbol( "'12'", ), ], ], ), ], line: 33, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 32, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'alo123alo'", ), ], [ Symbol( "'^12'", ), ], ], ), ], line: 34, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaab\"", ), ], [ Symbol( "\".*b\"", ), ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "\"aaab\"", ), ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaa\"", ), ], [ Symbol( "\".*a\"", ), ], ], ), ], line: 37, }, Operator( ( "==", true, ), ), Symbol( "\"aaa\"", ), ], ], ), ], line: 36, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "\".*b\"", ), ], ], ), ], line: 38, }, Operator( ( "==", true, ), ), Symbol( "\"b\"", ), ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaab\"", ), ], [ Symbol( "\".+b\"", ), ], ], ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "\"aaab\"", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaa\"", ), ], [ Symbol( "\".+a\"", ), ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "\"aaa\"", ), ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "\".+b\"", ), ], ], ), ], line: 42, }, ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaab\"", ), ], [ Symbol( "\".?b\"", ), ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "\"ab\"", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaa\"", ), ], [ Symbol( "\".?a\"", ), ], ], ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "\"aa\"", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "\".?b\"", ), ], ], ), ], line: 46, }, Operator( ( "==", true, ), ), Symbol( "\"b\"", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aloALO'", ), ], [ Symbol( "'%l*'", ), ], ], ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aLo_ALO'", ), ], [ Symbol( "'%a*'", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "'aLo'", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\" \\n\\r*&\\n\\r xuxu \\n\\n\"", ), ], [ Symbol( "\"%g%g%g+\"", ), ], ], ), ], line: 51, }, Operator( ( "==", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 49, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a*'", ), ], ], ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.*$'", ), ], ], ), ], line: 54, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'b*'", ), ], ], ), ], line: 55, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'ab*a'", ), ], ], ), ], line: 56, }, Operator( ( "==", true, ), ), Symbol( "'aa'", ), ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aba'", ), ], [ Symbol( "'ab*a'", ), ], ], ), ], line: 57, }, Operator( ( "==", true, ), ), Symbol( "'aba'", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a+'", ), ], ], ), ], line: 58, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 57, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.+$'", ), ], ], ), ], line: 59, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'b+'", ), ], ], ), ], line: 60, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'ab+a'", ), ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aba'", ), ], [ Symbol( "'ab+a'", ), ], ], ), ], line: 62, }, Operator( ( "==", true, ), ), Symbol( "'aba'", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.$'", ), ], ], ), ], line: 63, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.%$'", ), ], ], ), ], line: 64, }, Operator( ( "==", true, ), ), Symbol( "'a$'", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.$.'", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "'a$a'", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'$$'", ), ], ], ), ], line: 66, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$b'", ), ], [ Symbol( "'a$'", ), ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'$'", ), ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'b*'", ), ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'bb*'", ), ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a-'", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.-$'", ), ], ], ), ], line: 72, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aabaaabaaabaaaba'", ), ], [ Symbol( "'b.*b'", ), ], ], ), ], line: 73, }, Operator( ( "==", true, ), ), Symbol( "'baaabaaabaaab'", ), ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aabaaabaaabaaaba'", ), ], [ Symbol( "'b.-b'", ), ], ], ), ], line: 74, }, Operator( ( "==", true, ), ), Symbol( "'baaab'", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'alo xo'", ), ], [ Symbol( "'.o$'", ), ], ], ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "'xo'", ), ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto é assim'", ), ], [ Symbol( "'%S%S*'", ), ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "'isto'", ), ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto é assim'", ), ], [ Symbol( "'%S*$'", ), ], ], ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "'assim'", ), ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto é assim'", ), ], [ Symbol( "'[a-z]*$'", ), ], ], ), ], line: 78, }, Operator( ( "==", true, ), ), Symbol( "'assim'", ), ], ], ), ], line: 77, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'um caracter ? extra'", ), ], [ Symbol( "'[^%sa-z]'", ), ], ], ), ], line: 79, }, Operator( ( "==", true, ), ), Symbol( "'?'", ), ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'a?'", ), ], ], ), ], line: 80, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 79, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'á'", ), ], [ Symbol( "'á?'", ), ], ], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "'á'", ), ], ], ), ], line: 80, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'ábl'", ), ], [ Symbol( "'á?b?l?'", ), ], ], ), ], line: 82, }, Operator( ( "==", true, ), ), Symbol( "'ábl'", ), ], ], ), ], line: 81, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' ábl'", ), ], [ Symbol( "'á?b?l?'", ), ], ], ), ], line: 83, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aa'", ), ], [ Symbol( "'^aa?a?a'", ), ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "'aa'", ), ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "']]]áb'", ), ], [ Symbol( "'[^]]'", ), ], ], ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "'á'", ), ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\"0alo alo\"", ), ], [ Symbol( "\"%x*\"", ), ], ], ), ], line: 86, }, Operator( ( "==", true, ), ), Symbol( "\"0a\"", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"%C+\"", ), ], ], ), ], line: 87, }, Operator( ( "==", true, ), ), Symbol( "\"alo alo\"", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 87, }, Function { local: false, name: [ Symbol( "f1", ), ], args: [ "s", "p", ], body: CodeBlock { start: 841, code: [ Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 92, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 92, }, ], [ Symbol( "\"%%([0-9])\"", ), ], [ Lambda { args: [ "s", ], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Symbol( "\"%\"", ), Operator( ( "..", true, ), ), Expr( [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 93, }, ], ], ), ], line: 93, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 93, }, ], ], ), ), ], end: 26, }, line: 94, column: 1, }, ], ], ), ], line: 92, }, ], ], line: 94, column: 2, }, Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 94, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 95, }, ], [ Symbol( "\"^(^?)\"", ), ], [ Symbol( "\"%1()\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 95, }, ], ], line: 95, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 95, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 96, }, ], [ Symbol( "\"($?)$\"", ), ], [ Symbol( "\"()%1\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 96, }, ], ], line: 97, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 97, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 97, }, ], ], ), ], line: 97, }, ], ), ], line: 97, column: 13, }, ], ], line: 98, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 98, }, ], [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 98, }, ], [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 98, }, ], ), Symbol( "]", ), ], line: 98, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 98, }, ], ], ), ), ], end: 930, }, line: 99, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'alo alx 123 b\\0o b\\0o'", ), ], [ Symbol( "'(..*) %1'", ), ], ], ), ], line: 101, }, Operator( ( "==", true, ), ), Symbol( "\"b\\0o b\\0o\"", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'axz123= 4= 4 34'", ), ], [ Symbol( "'(.+)=(.*)=%2 %1'", ), ], ], ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "'3= 4= 4 3'", ), ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'======='", ), ], [ Symbol( "'^(=*)=%1$'", ), ], ], ), ], line: 103, }, Operator( ( "==", true, ), ), Symbol( "'======='", ), ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "'=========='", ), ], [ Symbol( "'^([=]*)=%1$'", ), ], ], ), ], line: 104, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 103, }, Function { local: true, name: [ Symbol( "range", ), ], args: [ "i", "j", ], body: CodeBlock { start: 984, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 107, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 107, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 108, }, ], [ Ident { expr: [ Symbol( "range", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 108, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "j", ), ], line: 108, }, ], ], ), ], line: 108, }, ], ], ), ), ], end: 17, }, next: None, line: 109, column: 1, }, ], end: 1002, }, line: 110, column: 1, }, Variable { names: [ ( "abc", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "range", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "255", ), ], ], ), ], line: 112, }, ], ], ), ], line: 112, }, ], ], line: 112, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "abc", ), ], line: 114, }, ], ], ), ], line: 114, }, Operator( ( "==", true, ), ), Symbol( "256", ), ], ], ), ], line: 112, }, Function { local: false, name: [ Symbol( "strset", ), ], args: [ "p", ], body: CodeBlock { start: 1033, code: [ Variable { names: [ ( "res", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "s", ), ], ), [ Symbol( "''", ), ], ), ], line: 117, column: 8, }, ], ], line: 117, column: 8, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "abc", ), ], line: 118, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 118, }, ], [ Lambda { args: [ "c", ], body: CodeBlock { start: 20, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 118, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 118, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 118, }, ], ], line: 118, column: 9, }, ], end: 30, }, line: 118, column: 22, }, ], ], ), ], line: 117, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 119, }, ], ], ), ), ], end: 1069, }, line: 120, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\200-\\210]'", ), ], ], ), ], line: 122, }, ], ], ), ], line: 122, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-z]'", ), ], ], ), ], line: 124, }, Operator( ( "==", true, ), ), Symbol( "\"abcdefghijklmnopqrstuvwxyz\"", ), ], ], ), ], line: 122, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-z%d]'", ), ], ], ), ], line: 125, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%da-uu-z]'", ), ], ], ), ], line: 125, }, ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-]'", ), ], ], ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "\"-a\"", ), ], ], ), ], line: 125, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[^%W]'", ), ], ], ), ], line: 127, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%w]'", ), ], ], ), ], line: 127, }, ], ], ), ], line: 126, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[]%%]'", ), ], ], ), ], line: 128, }, Operator( ( "==", true, ), ), Symbol( "'%]'", ), ], ], ), ], line: 127, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a%-z]'", ), ], ], ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'-az'", ), ], ], ), ], line: 128, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%^%[%-a%]%-b]'", ), ], ], ), ], line: 130, }, Operator( ( "==", true, ), ), Symbol( "'-[]^ab'", ), ], ], ), ], line: 129, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'%Z'", ), ], ], ), ], line: 131, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\1-\\255]'", ), ], ], ), ], line: 131, }, ], ], ), ], line: 130, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'.'", ), ], ], ), ], line: 132, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\1-\\255%z]'", ), ], ], ), ], line: 132, }, ], ], ), ], line: 131, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo xyzK\"", ), ], [ Symbol( "\"(%w+)K\"", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "\"xyz\"", ), ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"254 K\"", ), ], [ Symbol( "\"(%d*)K\"", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo \"", ), ], [ Symbol( "\"(%w*)$\"", ), ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 136, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo \"", ), ], [ Symbol( "\"(%w+)$\"", ), ], ], ), ], line: 138, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"(álo)\"", ), ], [ Symbol( "\"%(á\"", ), ], ], ), ], line: 139, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 138, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ( "d", false, ), ( "e", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"âlo alo\"", ), ], [ Symbol( "\"^(((.).).* (%w*))$\"", ), ], ], ), ], line: 140, }, ], ], line: 140, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "'âlo alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "'âl'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "'â'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 140, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 141, }, Ident { expr: [ Symbol( "b", ), ], line: 142, }, Ident { expr: [ Symbol( "c", ), ], line: 142, }, Ident { expr: [ Symbol( "d", ), ], line: 142, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "'0123456789'", ), ], [ Symbol( "'(.+(.?)())'", ), ], ], ), ], line: 142, }, ], ], line: 142, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "'0123456789'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "''", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 142, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'ülo ülo'", ), ], [ Symbol( "'ü'", ), ], [ Symbol( "'x'", ), ], ], ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "'xlo xlo'", ), ], ], ), ], line: 144, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo úlo '", ), ], [ Symbol( "' +$'", ), ], [ Symbol( "''", ), ], ], ), ], line: 147, }, Operator( ( "==", true, ), ), Symbol( "'alo úlo'", ), ], ], ), ], line: 146, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "' alo alo '", ), ], [ Symbol( "'^%s*(.-)%s*$'", ), ], [ Symbol( "'%1'", ), ], ], ), ], line: 148, }, Operator( ( "==", true, ), ), Symbol( "'alo alo'", ), ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo alo \\n 123\\n '", ), ], [ Symbol( "'%s+'", ), ], [ Symbol( "' '", ), ], ], ), ], line: 149, }, Operator( ( "==", true, ), ), Symbol( "'alo alo 123 '", ), ], ], ), ], line: 148, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 149, }, ], values: [ [ Symbol( "\"abç d\"", ), ], ], line: 150, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 150, }, Ident { expr: [ Symbol( "b", ), ], line: 151, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 151, }, ], [ Symbol( "'(.)'", ), ], [ Symbol( "'%1@'", ), ], ], ), ], line: 151, }, ], ], line: 151, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'@'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 152, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 152, }, ], [ Symbol( "''", ), ], [ Symbol( "'@'", ), ], ], ), ], line: 152, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 152, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 151, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 152, }, Ident { expr: [ Symbol( "b", ), ], line: 153, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'abçd'", ), ], [ Symbol( "'(.)'", ), ], [ Symbol( "'%0@'", ), ], [ Symbol( "2", ), ], ], ), ], line: 153, }, ], ], line: 153, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 154, }, Operator( ( "==", true, ), ), Symbol( "'a@b@çd'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 154, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 153, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo alo'", ), ], [ Symbol( "'()[al]'", ), ], [ Symbol( "'%1'", ), ], ], ), ], line: 155, }, Operator( ( "==", true, ), ), Symbol( "'12o 56o'", ), ], ], ), ], line: 154, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc=xyz\"", ), ], [ Symbol( "\"(%w*)(%p)(%w+)\"", ), ], [ Symbol( "\"%3%2%1-%0\"", ), ], ], ), ], line: 156, }, Operator( ( "==", true, ), ), Symbol( "\"xyz=abc-abc=xyz\"", ), ], ], ), ], line: 155, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc\"", ), ], [ Symbol( "\"%w\"", ), ], [ Symbol( "\"%1%0\"", ), ], ], ), ], line: 158, }, Operator( ( "==", true, ), ), Symbol( "\"aabbcc\"", ), ], ], ), ], line: 157, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc\"", ), ], [ Symbol( "\"%w+\"", ), ], [ Symbol( "\"%0%1\"", ), ], ], ), ], line: 159, }, Operator( ( "==", true, ), ), Symbol( "\"abcabc\"", ), ], ], ), ], line: 158, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'áéí'", ), ], [ Symbol( "'$'", ), ], [ Symbol( "'\\0óú'", ), ], ], ), ], line: 160, }, Operator( ( "==", true, ), ), Symbol( "'áéí\\0óú'", ), ], ], ), ], line: 159, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'^'", ), ], [ Symbol( "'r'", ), ], ], ), ], line: 161, }, Operator( ( "==", true, ), ), Symbol( "'r'", ), ], ], ), ], line: 160, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'$'", ), ], [ Symbol( "'r'", ), ], ], ), ], line: 162, }, Operator( ( "==", true, ), ), Symbol( "'r'", ), ], ], ), ], line: 161, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 162, }, DoBlock( CodeBlock { start: 1560, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"a b cd\"", ), ], [ Symbol( "\" *\"", ), ], [ Symbol( "\"-\"", ), ], ], ), ], line: 167, }, Operator( ( "==", true, ), ), Symbol( "\"-a-b-c-d-\"", ), ], ], ), ], line: 167, }, Variable { names: [ ( "res", false, ), ], values: [ [ Symbol( "\"\"", ), ], ], line: 170, column: 0, }, Variable { names: [ ( "sub", false, ), ], values: [ [ Symbol( "\"a \\nbc\\t\\td\"", ), ], ], line: 171, column: 0, }, Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "1", ), ], ], line: 172, column: 0, }, ForFuncLoop { iters: [ "p", "e", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Ident { expr: [ Symbol( "sub", ), ], line: 172, }, ], [ Symbol( "\"()%s*()\"", ), ], ], ), ], line: 172, }, ], stop: None, initial: None, code: CodeBlock { start: 41, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), ], line: 173, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), ], line: 173, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "sub", ), ], line: 173, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 173, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 173, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 173, }, Operator( ( "..", true, ), ), Symbol( "\"-\"", ), ], ], line: 173, column: 18, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 173, }, ], values: [ [ Ident { expr: [ Symbol( "e", ), ], line: 174, }, ], ], line: 174, column: 3, }, ], end: 63, }, line: 175, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "res", ), ], line: 176, }, Operator( ( "==", true, ), ), Symbol( "\"-a-b-c-d-\"", ), ], ], ), ], line: 175, }, ], end: 1630, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"um (dois) tres (quatro)\"", ), ], [ Symbol( "\"(%(%w+%))\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), ], line: 180, }, ], ], ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "\"um (DOIS) tres (QUATRO)\"", ), ], ], ), ], line: 177, }, DoBlock( CodeBlock { start: 1648, code: [ Function { local: true, name: [ Symbol( "setglobal", ), ], args: [ "n", "v", ], body: CodeBlock { start: 8, code: [ Ident { expr: [ Symbol( "rawset", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), ], line: 184, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 184, }, ], [ Ident { expr: [ Symbol( "v", ), ], line: 184, }, ], ], ), ], line: 184, }, ], end: 17, }, line: 184, column: 17, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"a=roberto,roberto=a\"", ), ], [ Symbol( "\"(%w+)=(%w%w*)\"", ), ], [ Ident { expr: [ Symbol( "setglobal", ), ], line: 185, }, ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "a", ), ], line: 186, }, Operator( ( "==", true, ), ), Symbol( "\"roberto\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "roberto", ), ], line: 186, }, Operator( ( "==", true, ), ), Symbol( "\"a\"", ), ], ], ), ], line: 185, }, ], end: 1690, }, ), Function { local: false, name: [ Symbol( "f", ), ], args: [ "a", "b", ], body: CodeBlock { start: 1697, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 189, }, ], [ Symbol( "'.'", ), ], [ Ident { expr: [ Symbol( "b", ), ], line: 189, }, ], ], ), ], line: 189, }, ], ], ), ), ], end: 1709, }, line: 189, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"trocar tudo em |teste|b| é |beleza|al|\"", ), ], [ Symbol( "\"|([^|]*)|([^|]*)|\"", ), ], [ Ident { expr: [ Symbol( "f", ), ], line: 190, }, ], ], ), ], line: 190, }, Operator( ( "==", true, ), ), Symbol( "\"trocar tudo em bbbbb é alalalalalal\"", ), ], ], ), ], line: 189, }, Function { local: true, name: [ Symbol( "dostring", ), ], args: [ "s", ], body: CodeBlock { start: 1730, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 193, }, ], [ Symbol( "\"\"", ), ], ], ), Call( [], ), ], line: 193, }, Operator( ( "or", true, ), ), Symbol( "\"\"", ), ], ], ), ), ], end: 1742, }, line: 193, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo $a='x'$ novamente $return a$\"", ), ], [ Symbol( "\"$([^$]*)%$\"", ), ], [ Ident { expr: [ Symbol( "dostring", ), ], line: 195, }, ], ], ), ], line: 194, }, Operator( ( "==", true, ), ), Symbol( "\"alo novamente x\"", ), ], ], ), ], line: 193, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 196, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"$x=string.gsub('alo', '.', string.upper)$ assim vai para $return x$\"", ), ], [ Symbol( "\"$([^$]*)%$\"", ), ], [ Ident { expr: [ Symbol( "dostring", ), ], line: 199, }, ], ], ), ], line: 198, }, ], ], line: 199, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 200, }, Operator( ( "==", true, ), ), Symbol( "' assim vai para ALO'", ), ], ], ), ], line: 199, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 200, }, ], values: [ [ Table { data: [], line: 202, column: 4, }, ], ], line: 202, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 202, }, ], values: [ [ Symbol( "'a alo jose joao'", ), ], ], line: 203, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 203, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 204, }, ], [ Symbol( "'()(%w+)()'", ), ], [ Lambda { args: [ "a", "w", "b", ], body: CodeBlock { start: 1800, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "w", ), ], line: 205, }, ], ], ), ], line: 205, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 205, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 205, }, ], ], ), ], line: 205, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 206, }, ], ), Symbol( "]", ), ], line: 205, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 206, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 206, }, ], ], line: 206, column: 9, }, ], end: 1824, }, line: 207, column: 1, }, ], ], ), ], line: 204, }, ], ], line: 207, column: 2, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 208, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "r", ), ], line: 208, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 208, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 208, }, Operator( ( "==", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "7", ), ], ), Symbol( "]", ), ], line: 208, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "13", ), ], ), Symbol( "]", ), ], line: 208, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 207, }, Function { local: false, name: [ Symbol( "isbalanced", ), ], args: [ "s", ], body: CodeBlock { start: 1864, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 212, }, ], [ Symbol( "\"%b()\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 212, }, ], [ Symbol( "\"[()]\"", ), ], ], ), ], line: 212, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ), ], end: 1885, }, line: 213, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "isbalanced", ), Call( [ [ Symbol( "\"(9 ((8))(\\0) 7) \\0\\0 a b ()(c)() a\"", ), ], ], ), ], line: 215, }, ], ], ), ], line: 213, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "isbalanced", ), Call( [ [ Symbol( "\"(9 ((8) 7) a b (\\0 c) a\"", ), ], ], ), ], line: 216, }, ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo 'oi' alo\"", ), ], [ Symbol( "\"%b''\"", ), ], [ Symbol( "'\"'", ), ], ], ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "'alo \" alo'", ), ], ], ), ], line: 216, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"apple\"", ), ], ), ( None, [ Symbol( "\"orange\"", ), ], ), ( None, [ Symbol( "\"lime\"", ), ], ), ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 220, column: 14, }, ], ], line: 220, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"x and x and x\"", ), ], [ Symbol( "\"x\"", ), ], [ Lambda { args: [], body: CodeBlock { start: 1942, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 221, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 221, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 221, column: 10, }, Return( Some( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 221, }, ], ), Symbol( "]", ), ], line: 221, }, ], ], ), ), ], end: 1960, }, line: 221, column: 31, }, ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Symbol( "\"apple and orange and lime\"", ), ], ], ), ], line: 220, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 222, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 224, column: 7, }, ], ], line: 224, column: 7, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w%w*\"", ), ], [ Lambda { args: [ "w", ], body: CodeBlock { start: 1983, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 225, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 225, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 225, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 225, }, ], ), Symbol( "]", ), ], line: 225, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 225, }, ], ], line: 225, column: 18, }, ], end: 2002, }, line: 225, column: 31, }, ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "\"word\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 225, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 226, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 228, column: 7, }, ], ], line: 228, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w+\"", ), ], [ Lambda { args: [ "w", ], body: CodeBlock { start: 2053, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 230, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 230, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 230, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 230, }, ], ), Symbol( "]", ), ], line: 230, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 230, }, ], ], line: 230, column: 18, }, ], end: 2072, }, line: 230, column: 23, }, ], [ Symbol( "2", ), ], ], ), ], line: 229, }, Operator( ( "==", true, ), ), Symbol( "\"first second word\"", ), ], ], ), ], line: 228, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 231, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 231, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 231, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 230, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid replacement value %(a table%)\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 233, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\".\"", ), ], [ Table { data: [ ( Some( [ Symbol( "a", ), ], ), [ Table { data: [], line: 234, column: 13, }, ], ), ], line: 234, column: 14, }, ], ], ), ], line: 231, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid capture index %%2\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 235, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\".\"", ), ], [ Symbol( "\"%2\"", ), ], ], ), ], line: 234, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid capture index %%0\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 236, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(%0)\"", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 235, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid capture index %%1\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 237, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(%1)\"", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"invalid use of '%%'\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 238, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\".\"", ), ], [ Symbol( "\"%x\"", ), ], ], ), ], line: 237, }, DoBlock( CodeBlock { start: 2177, code: [ Function { local: true, name: [ Symbol( "f", ), ], args: [ "size", ], body: CodeBlock { start: 6, code: [ Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"a\"", ), ], [ Ident { expr: [ Symbol( "size", ), ], line: 243, }, ], ], ), ], line: 243, }, ], ], line: 244, column: 0, }, Variable { names: [ ( "p", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\".?\"", ), ], [ Ident { expr: [ Symbol( "size", ), ], line: 244, }, ], ], ), ], line: 244, }, ], ], line: 245, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), ], line: 245, }, ], [ Ident { expr: [ Symbol( "s", ), ], line: 245, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 245, }, ], ], ), ], line: 245, }, ], ], ), ), ], end: 40, }, line: 246, column: 1, }, Variable { names: [ ( "r", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "80", ), ], ], ), ], line: 247, }, ], ], line: 247, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 248, }, Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "m", ), ], line: 248, }, Operator( ( "==", true, ), ), Symbol( "80", ), ], ], ), ], line: 247, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 248, }, Ident { expr: [ Symbol( "m", ), ], line: 249, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "200000", ), ], ], ), ], line: 249, }, ], ], line: 249, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 250, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 250, }, ], [ Symbol( "\"too complex\"", ), ], ], ), ], line: 250, }, ], ], ), ], line: 249, }, ], end: 2258, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_soft", ), ], line: 253, }, ], body: CodeBlock { start: 2262, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"big strings\"", ), ], ], ), ], line: 254, }, Variable { names: [ ( "a", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "300000", ), ], ], ), ], line: 255, }, ], ], line: 255, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 256, }, ], [ Symbol( "'^a*.?$'", ), ], ], ), ], line: 256, }, ], ], ), ], line: 255, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 257, }, ], [ Symbol( "'^a*.?b$'", ), ], ], ), ], line: 257, }, ], ], ), ], line: 256, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 258, }, ], [ Symbol( "'^a-.?$'", ), ], ], ), ], line: 258, }, ], ], ), ], line: 257, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 258, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "10000", ), ], ], ), ], line: 261, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'b'", ), ], [ Symbol( "10000", ), ], ], ), ], line: 261, }, ], ], line: 261, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 262, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 262, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 262, }, ], ], ), ], line: 261, }, ], end: 2345, }, next: None, line: 263, column: 1, }, Function { local: false, name: [ Symbol( "rev", ), ], args: [ "s", ], body: CodeBlock { start: 2350, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 267, }, ], [ Symbol( "\"(.)(.+)\"", ), ], [ Lambda { args: [ "c", "s1", ], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "s1", ), ], line: 267, }, ], ], ), ], line: 267, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 267, }, ], ], ), ), ], end: 23, }, line: 267, column: 23, }, ], ], ), ], line: 267, }, ], ], ), ), ], end: 2375, }, line: 268, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "\"abcdef\"", ), ], ], line: 270, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 271, }, ], ], ), ], line: 271, }, ], ], ), ], line: 271, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 271, }, ], ], ), ], line: 270, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\".\"", ), ], [ Table { data: [], line: 275, column: 12, }, ], ], ), ], line: 275, }, Operator( ( "==", true, ), ), Symbol( "\"alo alo\"", ), ], ], ), ], line: 271, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"(.)\"", ), ], [ Table { data: [ ( Some( [ Symbol( "a", ), ], ), [ Symbol( "\"AA\"", ), ], ), ( Some( [ Symbol( "l", ), ], ), [ Symbol( "\"\"", ), ], ), ], line: 276, column: 19, }, ], ], ), ], line: 276, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 275, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"(.).\"", ), ], [ Table { data: [ ( Some( [ Symbol( "a", ), ], ), [ Symbol( "\"AA\"", ), ], ), ( Some( [ Symbol( "l", ), ], ), [ Symbol( "\"K\"", ), ], ), ], line: 277, column: 19, }, ], ], ), ], line: 277, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 276, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"((.)(.?))\"", ), ], [ Table { data: [ ( Some( [ Symbol( "al", ), ], ), [ Symbol( "\"AA\"", ), ], ), ( Some( [ Symbol( "o", ), ], ), [ Symbol( "false", ), ], ), ], line: 278, column: 19, }, ], ], ), ], line: 278, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 277, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"().\"", ), ], [ Table { data: [ ( None, [ Symbol( "'x'", ), ], ), ( None, [ Symbol( "'yy'", ), ], ), ( None, [ Symbol( "'zzz'", ), ], ), ], line: 280, column: 17, }, ], ], ), ], line: 280, }, Operator( ( "==", true, ), ), Symbol( "\"xyyzzz alo\"", ), ], ], ), ], line: 278, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 280, }, ], values: [ [ Table { data: [], line: 282, column: 4, }, ], ], line: 282, column: 5, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 282, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "t", "s", ], body: CodeBlock { start: 2515, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 282, }, ], ], ), ], line: 282, }, ], ], ), ), ], end: 2523, }, line: 282, column: 26, }, ], ), ], line: 282, column: 27, }, ], ], ), ], line: 282, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"a alo b hi\"", ), ], [ Symbol( "\"%w%w+\"", ), ], [ Ident { expr: [ Symbol( "t", ), ], line: 283, }, ], ], ), ], line: 283, }, Operator( ( "==", true, ), ), Symbol( "\"a ALO b HI\"", ), ], ], ), ], line: 282, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 288, column: 0, }, ForFuncLoop { iters: [ "i", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "'abcde'", ), ], [ Symbol( "'()'", ), ], ], ), ], line: 288, }, ], stop: None, initial: None, code: CodeBlock { start: 2556, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 288, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 288, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 288, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 288, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 288, }, ], ], line: 288, column: 12, }, ], end: 2569, }, line: 288, column: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 289, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 288, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 289, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 291, column: 7, }, ], ], line: 292, column: 0, }, ForFuncLoop { iters: [ "w", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w+\"", ), ], ], ), ], line: 292, }, ], stop: None, initial: None, code: CodeBlock { start: 2594, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 293, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 293, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 293, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 293, }, ], ), Symbol( "]", ), ], line: 293, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 293, }, ], ], line: 293, column: 18, }, ], end: 2613, }, line: 294, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 295, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 295, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 295, }, Operator( ( "==", true, ), ), Symbol( "\"word\"", ), ], ], ), ], line: 294, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 295, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "6", ), ], ), ( None, [ Symbol( "9", ), ], ), ], line: 297, column: 9, }, ], ], line: 298, column: 0, }, ForFuncLoop { iters: [ "i", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"xuxx uu ppar r\"", ), ], [ Symbol( "\"()(.)%2\"", ), ], ], ), ], line: 298, }, ], stop: None, initial: None, code: CodeBlock { start: 2657, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 299, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 299, }, ], [ Symbol( "1", ), ], ], ), ], line: 299, }, ], ], ), ], line: 299, }, ], end: 2671, }, line: 300, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 301, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 300, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 301, }, ], values: [ [ Table { data: [], line: 303, column: 4, }, ], ], line: 304, column: 0, }, ForFuncLoop { iters: [ "i", "j", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"13 14 10 = 11, 15= 16, 22=23\"", ), ], [ Symbol( "\"(%d+)%s*=%s*(%d+)\"", ), ], ], ), ], line: 304, }, ], stop: None, initial: None, code: CodeBlock { start: 2696, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 305, }, ], ], ), ], line: 305, }, ], ), Symbol( "]", ), ], line: 305, }, ], values: [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "j", ), ], line: 305, }, ], ], ), ], line: 305, }, ], ], line: 305, column: 12, }, ], end: 2709, }, line: 306, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 306, }, ], values: [ [ Symbol( "0", ), ], ], line: 308, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 308, }, ], ], ), ], line: 308, }, ], stop: None, initial: None, code: CodeBlock { start: 2722, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 308, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 308, }, Operator( ( "+", true, ), ), Symbol( "0", ), ], ], ), ], line: 308, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 308, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 308, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 308, column: 16, }, ], end: 2739, }, line: 308, column: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 309, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"aaa aa a aaa a\"", ), ], [ Symbol( "\"%f[%w]a\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 314, }, Operator( ( "==", true, ), ), Symbol( "\"xaa xa x xaa x\"", ), ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"[[]] [][] [[[[\"", ), ], [ Symbol( "\"%f[[].\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 315, }, Operator( ( "==", true, ), ), Symbol( "\"x[]] x]x] x[[[\"", ), ], ], ), ], line: 314, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"01abc45de3\"", ), ], [ Symbol( "\"%f[%d]\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 316, }, Operator( ( "==", true, ), ), Symbol( "\".01abc.45de.3\"", ), ], ], ), ], line: 315, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"01abc45 de3x\"", ), ], [ Symbol( "\"%f[%D]%w\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 317, }, Operator( ( "==", true, ), ), Symbol( "\"01.bc45 de3.\"", ), ], ], ), ], line: 316, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"function\"", ), ], [ Symbol( "\"%f[\\1-\\255]%w\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 318, }, Operator( ( "==", true, ), ), Symbol( "\".unction\"", ), ], ], ), ], line: 317, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"function\"", ), ], [ Symbol( "\"%f[^\\1-\\255]\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 319, }, Operator( ( "==", true, ), ), Symbol( "\"function.\"", ), ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"%f[a]\"", ), ], ], ), ], line: 321, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"%f[^%z]\"", ), ], ], ), ], line: 322, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"%f[^%l]\"", ), ], ], ), ], line: 323, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 322, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[a%z]\"", ), ], ], ), ], line: 324, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 323, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[%z]\"", ), ], ], ), ], line: 325, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[%l%z]\"", ), ], ], ), ], line: 326, }, ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[^%l%z]\"", ), ], ], ), ], line: 327, }, ], ], ), ], line: 326, }, Variable { names: [ ( "i", false, ), ( "e", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\" alo aalo allo\"", ), ], [ Symbol( "\"%f[%S].-%f[%s].-%f[%S]\"", ), ], ], ), ], line: 329, }, ], ], line: 329, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 330, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 330, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 329, }, Variable { names: [ ( "k", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\" alo aalo allo\"", ), ], [ Symbol( "\"%f[%S](.-%f[%s].-%f[%S])\"", ), ], ], ), ], line: 331, }, ], ], line: 331, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 332, }, Operator( ( "==", true, ), ), Symbol( "'alo '", ), ], ], ), ], line: 331, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "9", ), ], ), ( None, [ Symbol( "14", ), ], ), ( None, [ Symbol( "17", ), ], ), ], line: 334, column: 15, }, ], ], line: 335, column: 0, }, ForFuncLoop { iters: [ "k", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"alo alo th02 is 1hat\"", ), ], [ Symbol( "\"()%f[%w%d]\"", ), ], ], ), ], line: 335, }, ], stop: None, initial: None, code: CodeBlock { start: 2991, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 336, }, ], [ Symbol( "1", ), ], ], ), ], line: 336, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 336, }, ], ], ), ], line: 336, }, ], end: 3005, }, line: 337, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 338, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 337, }, Function { local: true, name: [ Symbol( "malform", ), ], args: [ "p", "m", ], body: CodeBlock { start: 3020, code: [ Alter { names: [ Ident { expr: [ Symbol( "m", ), ], line: 343, }, ], values: [ [ Ident { expr: [ Symbol( "m", ), ], line: 343, }, Operator( ( "or", true, ), ), Symbol( "\"malformed\"", ), ], ], line: 344, column: 0, }, Variable { names: [ ( "r", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), ], line: 344, }, ], [ Symbol( "\"a\"", ), ], [ Ident { expr: [ Symbol( "p", ), ], line: 344, }, ], ], ), ], line: 344, }, ], ], line: 344, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 345, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 345, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 345, }, ], ], ), ], line: 345, }, ], ], ), ], line: 344, }, ], end: 3055, }, line: 346, column: 1, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"(.\"", ), ], [ Symbol( "\"unfinished capture\"", ), ], ], ), ], line: 346, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\".)\"", ), ], [ Symbol( "\"invalid pattern capture\"", ), ], ], ), ], line: 348, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[a\"", ), ], ], ), ], line: 349, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[]\"", ), ], ], ), ], line: 350, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[^]\"", ), ], ], ), ], line: 351, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[a%]\"", ), ], ], ), ], line: 352, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[a%\"", ), ], ], ), ], line: 353, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%b\"", ), ], ], ), ], line: 354, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%ba\"", ), ], ], ), ], line: 355, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%\"", ), ], ], ), ], line: 356, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%f\"", ), ], [ Symbol( "\"missing\"", ), ], ], ), ], line: 357, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"ab\\0\\1\\2c\"", ), ], [ Symbol( "\"[\\0-\\2]+\"", ), ], ], ), ], line: 361, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\1\\2\"", ), ], ], ), ], line: 358, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"ab\\0\\1\\2c\"", ), ], [ Symbol( "\"[\\0-\\0]+\"", ), ], ], ), ], line: 362, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\"", ), ], ], ), ], line: 361, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"b$a\"", ), ], [ Symbol( "\"$\\0?\"", ), ], ], ), ], line: 363, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 362, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abc\\0efg\"", ), ], [ Symbol( "\"%\\0\"", ), ], ], ), ], line: 364, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 363, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"abc\\0efg\\0\\1e\\1g\"", ), ], [ Symbol( "\"%b\\0\\1\"", ), ], ], ), ], line: 365, }, Operator( ( "==", true, ), ), Symbol( "\"\\0efg\\0\\1e\\1\"", ), ], ], ), ], line: 364, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"abc\\0\\0\\0\"", ), ], [ Symbol( "\"%\\0+\"", ), ], ], ), ], line: 366, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 365, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"abc\\0\\0\\0\"", ), ], [ Symbol( "\"%\\0%\\0?\"", ), ], ], ), ], line: 367, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 366, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abc\\0\\0\"", ), ], [ Symbol( "\"\\0.\"", ), ], ], ), ], line: 370, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 367, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abcx\\0\\0abc\\0abc\"", ), ], [ Symbol( "\"x\\0\\0abc\\0a.\"", ), ], ], ), ], line: 371, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 370, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 371, }, ]