--- source: src/main.rs expression: parsed input_file: test-data/lua5.1-tests/pm.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing pattern matching'", ), ], ], ), ], line: 1, }, Function { local: false, name: [ Symbol( "f", ), ], args: [ "s", "p", ], body: CodeBlock { start: 11, code: [ Variable { names: [ ( "i", false, ), ( "e", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 4, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 4, }, ], ], ), ], line: 4, }, ], ], line: 5, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 5, }, ], body: CodeBlock { start: 16, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 5, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 5, }, ], [ Ident { expr: [ Symbol( "e", ), ], line: 5, }, ], ], ), ], line: 5, }, ], ], ), ), ], end: 28, }, next: None, line: 5, column: 15, }, ], end: 40, }, line: 6, column: 1, }, Function { local: false, name: [ Symbol( "f1", ), ], args: [ "s", "p", ], body: CodeBlock { start: 47, code: [ Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 9, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 9, }, ], [ Symbol( "\"%%([0-9])\"", ), ], [ Lambda { args: [ "s", ], body: CodeBlock { start: 14, code: [ Return( Some( [ [ Symbol( "\"%\"", ), Operator( ( "..", true, ), ), Expr( [ Ident { expr: [ Symbol( "s", ), ], line: 9, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 9, }, ], ], ), ), ], end: 23, }, line: 9, column: 23, }, ], ], ), ], line: 9, }, ], ], line: 9, column: 24, }, Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 9, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 10, }, ], [ Symbol( "\"^(^?)\"", ), ], [ Symbol( "\"%1()\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 10, }, ], ], line: 10, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 10, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 11, }, ], [ Symbol( "\"($?)$\"", ), ], [ Symbol( "\"()%1\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 11, }, ], ], line: 12, column: 0, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 12, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 12, }, ], ], ), ], line: 12, }, ], ), ], line: 12, column: 13, }, ], ], line: 13, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 13, }, ], [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 13, }, ], [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 13, }, ], ), Symbol( "]", ), ], line: 13, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 13, }, ], ], ), ), ], end: 133, }, line: 14, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 14, }, Ident { expr: [ Symbol( "b", ), ], line: 16, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "''", ), ], ], ), ], line: 16, }, ], ], line: 16, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 17, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 17, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 16, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 17, }, Ident { expr: [ Symbol( "b", ), ], line: 18, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'alo'", ), ], [ Symbol( "''", ), ], ], ), ], line: 18, }, ], ], line: 18, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 19, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 19, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 18, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 19, }, Ident { expr: [ Symbol( "b", ), ], line: 20, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0o a\\0o a\\0o'", ), ], [ Symbol( "'a'", ), ], [ Symbol( "1", ), ], ], ), ], line: 20, }, ], ], line: 20, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 21, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 20, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 21, }, Ident { expr: [ Symbol( "b", ), ], line: 22, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0o a\\0o a\\0o'", ), ], [ Symbol( "'a\\0o'", ), ], [ Symbol( "2", ), ], ], ), ], line: 22, }, ], ], line: 22, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 23, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 23, }, Operator( ( "==", true, ), ), Symbol( "7", ), ], ], ), ], line: 22, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 23, }, Ident { expr: [ Symbol( "b", ), ], line: 24, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0o a\\0o a\\0o'", ), ], [ Symbol( "'a\\0o'", ), ], [ Symbol( "9", ), ], ], ), ], line: 24, }, ], ], line: 24, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 25, }, Operator( ( "==", true, ), ), Symbol( "9", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 25, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 24, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 25, }, Ident { expr: [ Symbol( "b", ), ], line: 26, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0a\\0a\\0a\\0\\0ab'", ), ], [ Symbol( "'\\0ab'", ), ], [ Symbol( "2", ), ], ], ), ], line: 26, }, ], ], line: 26, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 27, }, Operator( ( "==", true, ), ), Symbol( "9", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 27, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 26, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 27, }, Ident { expr: [ Symbol( "b", ), ], line: 28, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0a\\0a\\0a\\0\\0ab'", ), ], [ Symbol( "'b'", ), ], ], ), ], line: 28, }, ], ], line: 28, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 29, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 29, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 28, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'a\\0a\\0a\\0a\\0\\0ab'", ), ], [ Symbol( "'b\\0'", ), ], ], ), ], line: 30, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'\\0'", ), ], ], ), ], line: 31, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'alo123alo'", ), ], [ Symbol( "'12'", ), ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "'alo123alo'", ), ], [ Symbol( "'^12'", ), ], ], ), ], line: 33, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 32, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aloALO'", ), ], [ Symbol( "'%l*'", ), ], ], ), ], line: 35, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aLo_ALO'", ), ], [ Symbol( "'%a*'", ), ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "'aLo'", ), ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a*'", ), ], ], ), ], line: 38, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 36, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.*$'", ), ], ], ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'b*'", ), ], ], ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'ab*a'", ), ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "'aa'", ), ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aba'", ), ], [ Symbol( "'ab*a'", ), ], ], ), ], line: 42, }, Operator( ( "==", true, ), ), Symbol( "'aba'", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a+'", ), ], ], ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.+$'", ), ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'b+'", ), ], ], ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'ab+a'", ), ], ], ), ], line: 46, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aba'", ), ], [ Symbol( "'ab+a'", ), ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "'aba'", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.$'", ), ], ], ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.%$'", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "'a$'", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.$.'", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "'a$a'", ), ], ], ), ], line: 49, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'$$'", ), ], ], ), ], line: 51, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 50, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$b'", ), ], [ Symbol( "'a$'", ), ], ], ), ], line: 52, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'$'", ), ], ], ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 52, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'b*'", ), ], ], ), ], line: 54, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'bb*'", ), ], ], ), ], line: 55, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a-'", ), ], ], ), ], line: 56, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.-$'", ), ], ], ), ], line: 57, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aabaaabaaabaaaba'", ), ], [ Symbol( "'b.*b'", ), ], ], ), ], line: 58, }, Operator( ( "==", true, ), ), Symbol( "'baaabaaabaaab'", ), ], ], ), ], line: 57, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aabaaabaaabaaaba'", ), ], [ Symbol( "'b.-b'", ), ], ], ), ], line: 59, }, Operator( ( "==", true, ), ), Symbol( "'baaab'", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'alo xo'", ), ], [ Symbol( "'.o$'", ), ], ], ), ], line: 60, }, Operator( ( "==", true, ), ), Symbol( "'xo'", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto � assim'", ), ], [ Symbol( "'%S%S*'", ), ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Symbol( "'isto'", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto � assim'", ), ], [ Symbol( "'%S*$'", ), ], ], ), ], line: 62, }, Operator( ( "==", true, ), ), Symbol( "'assim'", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto � assim'", ), ], [ Symbol( "'[a-z]*$'", ), ], ], ), ], line: 63, }, Operator( ( "==", true, ), ), Symbol( "'assim'", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'um caracter ? extra'", ), ], [ Symbol( "'[^%sa-z]'", ), ], ], ), ], line: 64, }, Operator( ( "==", true, ), ), Symbol( "'?'", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'a?'", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'�'", ), ], [ Symbol( "'�?'", ), ], ], ), ], line: 66, }, Operator( ( "==", true, ), ), Symbol( "'�'", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'�bl'", ), ], [ Symbol( "'�?b?l?'", ), ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Symbol( "'�bl'", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' �bl'", ), ], [ Symbol( "'�?b?l?'", ), ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aa'", ), ], [ Symbol( "'^aa?a?a'", ), ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Symbol( "'aa'", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "']]]�b'", ), ], [ Symbol( "'[^]]'", ), ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Symbol( "'�'", ), ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\"0alo alo\"", ), ], [ Symbol( "\"%x*\"", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Symbol( "\"0a\"", ), ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"%C+\"", ), ], ], ), ], line: 72, }, Operator( ( "==", true, ), ), Symbol( "\"alo alo\"", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'alo alx 123 b\\0o b\\0o'", ), ], [ Symbol( "'(..*) %1'", ), ], ], ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "\"b\\0o b\\0o\"", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'axz123= 4= 4 34'", ), ], [ Symbol( "'(.+)=(.*)=%2 %1'", ), ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "'3= 4= 4 3'", ), ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'======='", ), ], [ Symbol( "'^(=*)=%1$'", ), ], ], ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "'======='", ), ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "'=========='", ), ], [ Symbol( "'^([=]*)=%1$'", ), ], ], ), ], line: 78, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 77, }, Function { local: true, name: [ Symbol( "range", ), ], args: [ "i", "j", ], body: CodeBlock { start: 818, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 81, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 81, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 82, }, ], [ Ident { expr: [ Symbol( "range", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 82, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "j", ), ], line: 82, }, ], ], ), ], line: 82, }, ], ], ), ), ], end: 17, }, next: None, line: 83, column: 1, }, ], end: 836, }, line: 84, 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: 86, }, ], ], ), ], line: 86, }, ], ], line: 86, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "abc", ), ], line: 88, }, ], ], ), ], line: 88, }, Operator( ( "==", true, ), ), Symbol( "256", ), ], ], ), ], line: 86, }, Function { local: false, name: [ Symbol( "strset", ), ], args: [ "p", ], body: CodeBlock { start: 867, code: [ Variable { names: [ ( "res", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "s", ), ], ), [ Symbol( "''", ), ], ), ], line: 91, column: 8, }, ], ], line: 91, column: 8, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "abc", ), ], line: 92, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 92, }, ], [ Lambda { args: [ "c", ], body: CodeBlock { start: 20, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 92, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 92, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 92, }, ], ], line: 92, column: 9, }, ], end: 30, }, line: 92, column: 22, }, ], ], ), ], line: 91, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 93, }, ], ], ), ), ], end: 903, }, line: 94, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\200-\\210]'", ), ], ], ), ], line: 96, }, ], ], ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 94, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-z]'", ), ], ], ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "\"abcdefghijklmnopqrstuvwxyz\"", ), ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-z%d]'", ), ], ], ), ], line: 99, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%da-uu-z]'", ), ], ], ), ], line: 99, }, ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-]'", ), ], ], ), ], line: 100, }, Operator( ( "==", true, ), ), Symbol( "\"-a\"", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[^%W]'", ), ], ], ), ], line: 101, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%w]'", ), ], ], ), ], line: 101, }, ], ], ), ], line: 100, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[]%%]'", ), ], ], ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "'%]'", ), ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a%-z]'", ), ], ], ), ], line: 103, }, Operator( ( "==", true, ), ), Symbol( "'-az'", ), ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%^%[%-a%]%-b]'", ), ], ], ), ], line: 104, }, Operator( ( "==", true, ), ), Symbol( "'-[]^ab'", ), ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'%Z'", ), ], ], ), ], line: 105, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\1-\\255]'", ), ], ], ), ], line: 105, }, ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'.'", ), ], ], ), ], line: 106, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\1-\\255%z]'", ), ], ], ), ], line: 106, }, ], ], ), ], line: 105, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 106, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo xyzK\"", ), ], [ Symbol( "\"(%w+)K\"", ), ], ], ), ], line: 109, }, Operator( ( "==", true, ), ), Symbol( "\"xyz\"", ), ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"254 K\"", ), ], [ Symbol( "\"(%d*)K\"", ), ], ], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo \"", ), ], [ Symbol( "\"(%w*)$\"", ), ], ], ), ], line: 111, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo \"", ), ], [ Symbol( "\"(%w+)$\"", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"(�lo)\"", ), ], [ Symbol( "\"%(�\"", ), ], ], ), ], line: 113, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 112, }, 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: 114, }, ], ], line: 114, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "'�lo alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "'�l'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "'�'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 114, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 115, }, Ident { expr: [ Symbol( "b", ), ], line: 116, }, Ident { expr: [ Symbol( "c", ), ], line: 116, }, Ident { expr: [ Symbol( "d", ), ], line: 116, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "'0123456789'", ), ], [ Symbol( "'(.+(.?)())'", ), ], ], ), ], line: 116, }, ], ], line: 116, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "'0123456789'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "''", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 117, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'�lo �lo'", ), ], [ Symbol( "'�'", ), ], [ Symbol( "'x'", ), ], ], ), ], line: 120, }, Operator( ( "==", true, ), ), Symbol( "'xlo xlo'", ), ], ], ), ], line: 118, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo �lo '", ), ], [ Symbol( "' +$'", ), ], [ Symbol( "''", ), ], ], ), ], line: 121, }, Operator( ( "==", true, ), ), Symbol( "'alo �lo'", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "' alo alo '", ), ], [ Symbol( "'^%s*(.-)%s*$'", ), ], [ Symbol( "'%1'", ), ], ], ), ], line: 122, }, Operator( ( "==", true, ), ), Symbol( "'alo alo'", ), ], ], ), ], line: 121, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo alo \\n 123\\n '", ), ], [ Symbol( "'%s+'", ), ], [ Symbol( "' '", ), ], ], ), ], line: 123, }, Operator( ( "==", true, ), ), Symbol( "'alo alo 123 '", ), ], ], ), ], line: 122, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 123, }, ], values: [ [ Symbol( "\"ab� d\"", ), ], ], line: 124, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 124, }, Ident { expr: [ Symbol( "b", ), ], line: 125, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 125, }, ], [ Symbol( "'(.)'", ), ], [ Symbol( "'%1@'", ), ], ], ), ], line: 125, }, ], ], line: 125, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'@'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 126, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 126, }, ], [ Symbol( "''", ), ], [ Symbol( "'@'", ), ], ], ), ], line: 126, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 125, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 126, }, Ident { expr: [ Symbol( "b", ), ], line: 127, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'ab�d'", ), ], [ Symbol( "'(.)'", ), ], [ Symbol( "'%0@'", ), ], [ Symbol( "2", ), ], ], ), ], line: 127, }, ], ], line: 127, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 128, }, Operator( ( "==", true, ), ), Symbol( "'a@b@�d'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 128, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 127, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo alo'", ), ], [ Symbol( "'()[al]'", ), ], [ Symbol( "'%1'", ), ], ], ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'12o 56o'", ), ], ], ), ], line: 128, }, 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: 130, }, Operator( ( "==", true, ), ), Symbol( "\"xyz=abc-abc=xyz\"", ), ], ], ), ], line: 129, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc\"", ), ], [ Symbol( "\"%w\"", ), ], [ Symbol( "\"%1%0\"", ), ], ], ), ], line: 132, }, Operator( ( "==", true, ), ), Symbol( "\"aabbcc\"", ), ], ], ), ], line: 131, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc\"", ), ], [ Symbol( "\"%w+\"", ), ], [ Symbol( "\"%0%1\"", ), ], ], ), ], line: 133, }, Operator( ( "==", true, ), ), Symbol( "\"abcabc\"", ), ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'���'", ), ], [ Symbol( "'$'", ), ], [ Symbol( "'\\0��'", ), ], ], ), ], line: 134, }, Operator( ( "==", true, ), ), Symbol( "'���\\0��'", ), ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'^'", ), ], [ Symbol( "'r'", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "'r'", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'$'", ), ], [ Symbol( "'r'", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "'r'", ), ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 136, }, 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: 139, }, ], ], ), ], line: 139, }, Operator( ( "==", true, ), ), Symbol( "\"um (DOIS) tres (QUATRO)\"", ), ], ], ), ], line: 137, }, DoBlock( CodeBlock { start: 1410, 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: 143, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 143, }, ], [ Ident { expr: [ Symbol( "v", ), ], line: 143, }, ], ], ), ], line: 143, }, ], end: 17, }, line: 143, column: 17, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"a=roberto,roberto=a\"", ), ], [ Symbol( "\"(%w+)=(%w%w*)\"", ), ], [ Ident { expr: [ Symbol( "setglobal", ), ], line: 145, }, ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "a", ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "\"roberto\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "roberto", ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "\"a\"", ), ], ], ), ], line: 145, }, ], end: 1452, }, ), Function { local: false, name: [ Symbol( "f", ), ], args: [ "a", "b", ], body: CodeBlock { start: 1459, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 149, }, ], [ Symbol( "'.'", ), ], [ Ident { expr: [ Symbol( "b", ), ], line: 149, }, ], ], ), ], line: 149, }, ], ], ), ), ], end: 1471, }, line: 149, 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: 151, }, ], ], ), ], line: 151, }, Operator( ( "==", true, ), ), Symbol( "\"trocar tudo em bbbbb � alalalalalal\"", ), ], ], ), ], line: 149, }, Function { local: true, name: [ Symbol( "dostring", ), ], args: [ "s", ], body: CodeBlock { start: 1492, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "loadstring", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 154, }, ], ], ), Call( [], ), ], line: 154, }, Operator( ( "or", true, ), ), Symbol( "\"\"", ), ], ], ), ), ], end: 1502, }, line: 154, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo $a=1$ novamente $return a$\"", ), ], [ Symbol( "\"$([^$]*)%$\"", ), ], [ Ident { expr: [ Symbol( "dostring", ), ], line: 156, }, ], ], ), ], line: 156, }, Operator( ( "==", true, ), ), Symbol( "\"alo novamente 1\"", ), ], ], ), ], line: 154, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 157, }, ], 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: 160, }, ], ], ), ], line: 159, }, ], ], line: 160, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 161, }, Operator( ( "==", true, ), ), Symbol( "' assim vai para ALO'", ), ], ], ), ], line: 160, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 161, }, ], values: [ [ Table { data: [], line: 163, column: 4, }, ], ], line: 163, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 163, }, ], values: [ [ Symbol( "'a alo jose joao'", ), ], ], line: 164, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 164, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 165, }, ], [ Symbol( "'()(%w+)()'", ), ], [ Lambda { args: [ "a", "w", "b", ], body: CodeBlock { start: 1560, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "w", ), ], line: 166, }, ], ], ), ], line: 166, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 166, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 166, }, ], ], ), ], line: 166, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 167, }, ], ), Symbol( "]", ), ], line: 166, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 167, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 167, }, ], ], line: 167, column: 9, }, ], end: 1584, }, line: 168, column: 1, }, ], ], ), ], line: 165, }, ], ], line: 168, column: 2, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 169, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "r", ), ], line: 169, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 169, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 169, }, Operator( ( "==", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "7", ), ], ), Symbol( "]", ), ], line: 169, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "13", ), ], ), Symbol( "]", ), ], line: 169, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 168, }, Function { local: false, name: [ Symbol( "isbalanced", ), ], args: [ "s", ], body: CodeBlock { start: 1624, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 173, }, ], [ Symbol( "\"%b()\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 173, }, ], [ Symbol( "\"[()]\"", ), ], ], ), ], line: 173, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ), ], end: 1645, }, line: 174, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "isbalanced", ), Call( [ [ Symbol( "\"(9 ((8))(\\0) 7) \\0\\0 a b ()(c)() a\"", ), ], ], ), ], line: 176, }, ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "isbalanced", ), Call( [ [ Symbol( "\"(9 ((8) 7) a b (\\0 c) a\"", ), ], ], ), ], line: 177, }, ], ], ), ], line: 176, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo 'oi' alo\"", ), ], [ Symbol( "\"%b''\"", ), ], [ Symbol( "'\"'", ), ], ], ), ], line: 178, }, Operator( ( "==", true, ), ), Symbol( "'alo \" alo'", ), ], ], ), ], line: 177, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"apple\"", ), ], ), ( None, [ Symbol( "\"orange\"", ), ], ), ( None, [ Symbol( "\"lime\"", ), ], ), ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 181, column: 14, }, ], ], line: 181, 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: 1702, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 182, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 182, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 182, column: 10, }, Return( Some( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 182, }, ], ), Symbol( "]", ), ], line: 182, }, ], ], ), ), ], end: 1720, }, line: 182, column: 31, }, ], ], ), ], line: 182, }, Operator( ( "==", true, ), ), Symbol( "\"apple and orange and lime\"", ), ], ], ), ], line: 181, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 183, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 185, column: 7, }, ], ], line: 185, column: 7, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w%w*\"", ), ], [ Lambda { args: [ "w", ], body: CodeBlock { start: 1743, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 186, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 186, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 186, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 187, }, ], ), Symbol( "]", ), ], line: 186, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 187, }, ], ], line: 187, column: 8, }, ], end: 1762, }, line: 188, column: 1, }, ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "\"word\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 188, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 189, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 191, column: 7, }, ], ], line: 191, 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: 1813, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 193, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 193, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 193, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 194, }, ], ), Symbol( "]", ), ], line: 193, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 194, }, ], ], line: 194, column: 8, }, ], end: 1832, }, line: 195, column: 1, }, ], [ Symbol( "2", ), ], ], ), ], line: 192, }, Operator( ( "==", true, ), ), Symbol( "\"first second word\"", ), ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 196, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 196, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 196, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 195, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 198, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(.\"", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 198, }, ], ], ), ], line: 198, }, ], ], ), ], line: 196, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 199, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\".)\"", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 199, }, ], ], ), ], line: 199, }, ], ], ), ], line: 198, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 200, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(.\"", ), ], [ Table { data: [], line: 200, column: 15, }, ], ], ), ], line: 200, }, ], ], ), ], line: 199, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 201, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(.)\"", ), ], [ Symbol( "\"%2\"", ), ], ], ), ], line: 201, }, ], ], ), ], line: 200, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 202, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(%1)\"", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 202, }, ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 203, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(%0)\"", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 203, }, ], ], ), ], line: 202, }, Variable { names: [ ( "a", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "300000", ), ], ], ), ], line: 206, }, ], ], line: 206, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 207, }, ], [ Symbol( "'^a*.?$'", ), ], ], ), ], line: 207, }, ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 208, }, ], [ Symbol( "'^a*.?b$'", ), ], ], ), ], line: 208, }, ], ], ), ], line: 207, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 209, }, ], [ Symbol( "'^a-.?$'", ), ], ], ), ], line: 209, }, ], ], ), ], line: 208, }, Function { local: false, name: [ Symbol( "rev", ), ], args: [ "s", ], body: CodeBlock { start: 2008, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 213, }, ], [ Symbol( "\"(.)(.+)\"", ), ], [ Lambda { args: [ "c", "s1", ], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "s1", ), ], line: 213, }, ], ], ), ], line: 213, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 213, }, ], ], ), ), ], end: 23, }, line: 213, column: 23, }, ], ], ), ], line: 213, }, ], ], ), ), ], end: 2033, }, line: 214, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'012345'", ), ], [ Symbol( "10", ), ], ], ), ], line: 216, }, ], ], line: 216, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 217, }, ], ], ), ], line: 217, }, ], ], ), ], line: 217, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 217, }, ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\".\"", ), ], [ Table { data: [], line: 221, column: 12, }, ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Symbol( "\"alo alo\"", ), ], ], ), ], line: 217, }, 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: 222, column: 19, }, ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 221, }, 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: 223, column: 19, }, ], ], ), ], line: 223, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 222, }, 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: 224, column: 19, }, ], ], ), ], line: 224, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 223, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"().\"", ), ], [ Table { data: [ ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "6", ), ], ), ], line: 226, column: 17, }, ], ], ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "\"256 alo\"", ), ], ], ), ], line: 224, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 226, }, ], values: [ [ Table { data: [], line: 228, column: 4, }, ], ], line: 228, column: 5, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 229, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "t", "s", ], body: CodeBlock { start: 2180, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 229, }, ], ], ), ], line: 229, }, ], ], ), ), ], end: 2188, }, line: 229, column: 21, }, ], ), ], line: 229, column: 22, }, ], ], ), ], line: 228, }, 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: 230, }, ], ], ), ], line: 230, }, Operator( ( "==", true, ), ), Symbol( "\"a ALO b HI\"", ), ], ], ), ], line: 229, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gfind", ), ], line: 234, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), ], line: 234, }, ], ], ), ], line: 230, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 236, column: 0, }, ForFuncLoop { iters: [ "i", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "'abcde'", ), ], [ Symbol( "'()'", ), ], ], ), ], line: 236, }, ], stop: None, initial: None, code: CodeBlock { start: 2231, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 236, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 236, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 236, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 236, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 236, }, ], ], line: 236, column: 12, }, ], end: 2244, }, line: 236, column: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 237, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 236, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 237, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 239, column: 7, }, ], ], line: 240, column: 0, }, ForFuncLoop { iters: [ "w", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w+\"", ), ], ], ), ], line: 240, }, ], stop: None, initial: None, code: CodeBlock { start: 2269, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 241, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 241, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 241, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 242, }, ], ), Symbol( "]", ), ], line: 241, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 242, }, ], ], line: 242, column: 8, }, ], end: 2288, }, line: 243, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "\"word\"", ), ], ], ), ], line: 243, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 244, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "6", ), ], ), ( None, [ Symbol( "9", ), ], ), ], line: 246, column: 9, }, ], ], line: 247, column: 0, }, ForFuncLoop { iters: [ "i", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"xuxx uu ppar r\"", ), ], [ Symbol( "\"()(.)%2\"", ), ], ], ), ], line: 247, }, ], stop: None, initial: None, code: CodeBlock { start: 2332, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 248, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 248, }, ], [ Symbol( "1", ), ], ], ), ], line: 248, }, ], ], ), ], line: 248, }, ], end: 2346, }, line: 249, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 250, }, ], ], ), ], line: 250, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 249, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 250, }, ], values: [ [ Table { data: [], line: 252, column: 4, }, ], ], line: 253, 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: 253, }, ], stop: None, initial: None, code: CodeBlock { start: 2375, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 254, }, ], ), Symbol( "]", ), ], line: 254, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 254, }, ], ], line: 254, column: 6, }, ], end: 2382, }, line: 255, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 255, }, ], values: [ [ Symbol( "0", ), ], ], line: 257, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 257, }, ], ], ), ], line: 257, }, ], stop: None, initial: None, code: CodeBlock { start: 2395, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 257, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 257, }, Operator( ( "+", true, ), ), Symbol( "0", ), ], ], ), ], line: 257, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 257, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 257, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 257, column: 16, }, ], end: 2412, }, line: 257, column: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 258, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 257, }, 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: 263, }, Operator( ( "==", true, ), ), Symbol( "\"xaa xa x xaa x\"", ), ], ], ), ], line: 258, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"[[]] [][] [[[[\"", ), ], [ Symbol( "\"%f[[].\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 264, }, Operator( ( "==", true, ), ), Symbol( "\"x[]] x]x] x[[[\"", ), ], ], ), ], line: 263, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"01abc45de3\"", ), ], [ Symbol( "\"%f[%d]\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 265, }, Operator( ( "==", true, ), ), Symbol( "\".01abc.45de.3\"", ), ], ], ), ], line: 264, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"01abc45 de3x\"", ), ], [ Symbol( "\"%f[%D]%w\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 266, }, Operator( ( "==", true, ), ), Symbol( "\"01.bc45 de3.\"", ), ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"function\"", ), ], [ Symbol( "\"%f[\\1-\\255]%w\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "\".unction\"", ), ], ], ), ], line: 266, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"function\"", ), ], [ Symbol( "\"%f[^\\1-\\255]\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 268, }, Operator( ( "==", true, ), ), Symbol( "\"function.\"", ), ], ], ), ], line: 267, }, 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: 270, }, ], ], line: 270, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 271, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 271, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 270, }, 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: 272, }, ], ], line: 272, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 273, }, Operator( ( "==", true, ), ), Symbol( "'alo '", ), ], ], ), ], line: 272, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "9", ), ], ), ( None, [ Symbol( "14", ), ], ), ( None, [ Symbol( "17", ), ], ), ], line: 275, column: 15, }, ], ], line: 276, 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: 276, }, ], stop: None, initial: None, code: CodeBlock { start: 2575, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 277, }, ], [ Symbol( "1", ), ], ], ), ], line: 277, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 277, }, ], ], ), ], line: 277, }, ], end: 2589, }, line: 278, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "getn", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 279, }, ], ], ), ], line: 279, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 278, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 279, }, ]