--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-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( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaab\"", ), ], [ Symbol( "\".*b\"", ), ], ], ), ], line: 35, }, Operator( ( "==", true, ), ), Symbol( "\"aaab\"", ), ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaa\"", ), ], [ Symbol( "\".*a\"", ), ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "\"aaa\"", ), ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "\".*b\"", ), ], ], ), ], line: 37, }, Operator( ( "==", true, ), ), Symbol( "\"b\"", ), ], ], ), ], line: 36, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaab\"", ), ], [ Symbol( "\".+b\"", ), ], ], ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "\"aaab\"", ), ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaa\"", ), ], [ Symbol( "\".+a\"", ), ], ], ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "\"aaa\"", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "\".+b\"", ), ], ], ), ], line: 41, }, ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaab\"", ), ], [ Symbol( "\".?b\"", ), ], ], ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "\"ab\"", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"aaa\"", ), ], [ Symbol( "\".?a\"", ), ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "\"aa\"", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"b\"", ), ], [ Symbol( "\".?b\"", ), ], ], ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "\"b\"", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aloALO'", ), ], [ Symbol( "'%l*'", ), ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aLo_ALO'", ), ], [ Symbol( "'%a*'", ), ], ], ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "'aLo'", ), ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\" \\n\\r*&\\n\\r xuxu \\n\\n\"", ), ], [ Symbol( "\"%g%g%g+\"", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a*'", ), ], ], ), ], line: 52, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 50, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.*$'", ), ], ], ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 52, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'b*'", ), ], ], ), ], line: 54, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'ab*a'", ), ], ], ), ], line: 55, }, Operator( ( "==", true, ), ), Symbol( "'aa'", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aba'", ), ], [ Symbol( "'ab*a'", ), ], ], ), ], line: 56, }, Operator( ( "==", true, ), ), Symbol( "'aba'", ), ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a+'", ), ], ], ), ], line: 57, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.+$'", ), ], ], ), ], line: 58, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 57, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'b+'", ), ], ], ), ], line: 59, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'ab+a'", ), ], ], ), ], line: 60, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aba'", ), ], [ Symbol( "'ab+a'", ), ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Symbol( "'aba'", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'.$'", ), ], ], ), ], line: 62, }, Operator( ( "==", true, ), ), Symbol( "'a'", ), ], ], ), ], 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$a'", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'$$'", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$b'", ), ], [ Symbol( "'a$'", ), ], ], ), ], line: 66, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'a$a'", ), ], [ Symbol( "'$'", ), ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'b*'", ), ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'bb*'", ), ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaab'", ), ], [ Symbol( "'a-'", ), ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aaa'", ), ], [ Symbol( "'^.-$'", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Symbol( "'aaa'", ), ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aabaaabaaabaaaba'", ), ], [ Symbol( "'b.*b'", ), ], ], ), ], line: 72, }, Operator( ( "==", true, ), ), Symbol( "'baaabaaabaaab'", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aabaaabaaabaaaba'", ), ], [ Symbol( "'b.-b'", ), ], ], ), ], line: 73, }, Operator( ( "==", true, ), ), Symbol( "'baaab'", ), ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'alo xo'", ), ], [ Symbol( "'.o$'", ), ], ], ), ], line: 74, }, Operator( ( "==", true, ), ), Symbol( "'xo'", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto é assim'", ), ], [ Symbol( "'%S%S*'", ), ], ], ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "'isto'", ), ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto é assim'", ), ], [ Symbol( "'%S*$'", ), ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "'assim'", ), ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' \\n isto é assim'", ), ], [ Symbol( "'[a-z]*$'", ), ], ], ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "'assim'", ), ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'um caracter ? extra'", ), ], [ Symbol( "'[^%sa-z]'", ), ], ], ), ], line: 78, }, Operator( ( "==", true, ), ), Symbol( "'?'", ), ], ], ), ], line: 77, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'a?'", ), ], ], ), ], line: 79, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'á'", ), ], [ Symbol( "'á?'", ), ], ], ), ], line: 80, }, Operator( ( "==", true, ), ), Symbol( "'á'", ), ], ], ), ], line: 79, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'ábl'", ), ], [ Symbol( "'á?b?l?'", ), ], ], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "'ábl'", ), ], ], ), ], line: 80, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "' ábl'", ), ], [ Symbol( "'á?b?l?'", ), ], ], ), ], line: 82, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 81, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "'aa'", ), ], [ Symbol( "'^aa?a?a'", ), ], ], ), ], line: 83, }, Operator( ( "==", true, ), ), Symbol( "'aa'", ), ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "']]]áb'", ), ], [ Symbol( "'[^]]'", ), ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "'á'", ), ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\"0alo alo\"", ), ], [ Symbol( "\"%x*\"", ), ], ], ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "\"0a\"", ), ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\"%C+\"", ), ], ], ), ], line: 86, }, Operator( ( "==", true, ), ), Symbol( "\"alo alo\"", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'alo alx 123 b\\0o b\\0o'", ), ], [ Symbol( "'(..*) %1'", ), ], ], ), ], line: 89, }, Operator( ( "==", true, ), ), Symbol( "\"b\\0o b\\0o\"", ), ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'axz123= 4= 4 34'", ), ], [ Symbol( "'(.+)=(.*)=%2 %1'", ), ], ], ), ], line: 90, }, Operator( ( "==", true, ), ), Symbol( "'3= 4= 4 3'", ), ], ], ), ], line: 89, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f1", ), Call( [ [ Symbol( "'======='", ), ], [ Symbol( "'^(=*)=%1$'", ), ], ], ), ], line: 91, }, Operator( ( "==", true, ), ), Symbol( "'======='", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "'=========='", ), ], [ Symbol( "'^([=]*)=%1$'", ), ], ], ), ], line: 92, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 91, }, Function { local: true, name: [ Symbol( "range", ), ], args: [ "i", "j", ], body: CodeBlock { start: 945, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 95, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 95, }, ], body: CodeBlock { start: 5, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "i", ), ], line: 96, }, ], [ Ident { expr: [ Symbol( "range", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 96, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "j", ), ], line: 96, }, ], ], ), ], line: 96, }, ], ], ), ), ], end: 17, }, next: None, line: 97, column: 1, }, ], end: 963, }, line: 98, 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: 100, }, ], ], ), ], line: 100, }, ], ], line: 100, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "abc", ), ], line: 102, }, ], ], ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "256", ), ], ], ), ], line: 100, }, Function { local: false, name: [ Symbol( "strset", ), ], args: [ "p", ], body: CodeBlock { start: 994, code: [ Variable { names: [ ( "res", false, ), ], values: [ [ Table { data: [ ( Some( [ Symbol( "s", ), ], ), [ Symbol( "''", ), ], ), ], line: 105, column: 8, }, ], ], line: 105, column: 8, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "abc", ), ], line: 106, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 106, }, ], [ Lambda { args: [ "c", ], body: CodeBlock { start: 20, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 106, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 106, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 106, }, ], ], line: 106, column: 9, }, ], end: 30, }, line: 106, column: 22, }, ], ], ), ], line: 105, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), Symbol( ".", ), Symbol( "s", ), ], line: 107, }, ], ], ), ), ], end: 1030, }, line: 108, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\200-\\210]'", ), ], ], ), ], line: 110, }, ], ], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "11", ), ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-z]'", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "\"abcdefghijklmnopqrstuvwxyz\"", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-z%d]'", ), ], ], ), ], line: 113, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%da-uu-z]'", ), ], ], ), ], line: 113, }, ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a-]'", ), ], ], ), ], line: 114, }, Operator( ( "==", true, ), ), Symbol( "\"-a\"", ), ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[^%W]'", ), ], ], ), ], line: 115, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%w]'", ), ], ], ), ], line: 115, }, ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[]%%]'", ), ], ], ), ], line: 116, }, Operator( ( "==", true, ), ), Symbol( "'%]'", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[a%-z]'", ), ], ], ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "'-az'", ), ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[%^%[%-a%]%-b]'", ), ], ], ), ], line: 118, }, Operator( ( "==", true, ), ), Symbol( "'-[]^ab'", ), ], ], ), ], line: 117, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'%Z'", ), ], ], ), ], line: 119, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\1-\\255]'", ), ], ], ), ], line: 119, }, ], ], ), ], line: 118, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'.'", ), ], ], ), ], line: 120, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "strset", ), Call( [ [ Symbol( "'[\\1-\\255%z]'", ), ], ], ), ], line: 120, }, ], ], ), ], line: 119, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo xyzK\"", ), ], [ Symbol( "\"(%w+)K\"", ), ], ], ), ], line: 123, }, Operator( ( "==", true, ), ), Symbol( "\"xyz\"", ), ], ], ), ], line: 121, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"254 K\"", ), ], [ Symbol( "\"(%d*)K\"", ), ], ], ), ], line: 124, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo \"", ), ], [ Symbol( "\"(%w*)$\"", ), ], ], ), ], line: 125, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"alo \"", ), ], [ Symbol( "\"(%w+)$\"", ), ], ], ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 125, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"(álo)\"", ), ], [ Symbol( "\"%(á\"", ), ], ], ), ], line: 127, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 126, }, 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: 128, }, ], ], line: 128, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'âlo alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'âl'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'â'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "'alo'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 128, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 129, }, Ident { expr: [ Symbol( "b", ), ], line: 130, }, Ident { expr: [ Symbol( "c", ), ], line: 130, }, Ident { expr: [ Symbol( "d", ), ], line: 130, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "'0123456789'", ), ], [ Symbol( "'(.+(.?)())'", ), ], ], ), ], line: 130, }, ], ], line: 130, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "'0123456789'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "''", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "11", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 130, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 131, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'ülo ülo'", ), ], [ Symbol( "'ü'", ), ], [ Symbol( "'x'", ), ], ], ), ], line: 134, }, Operator( ( "==", true, ), ), Symbol( "'xlo xlo'", ), ], ], ), ], line: 132, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo úlo '", ), ], [ Symbol( "' +$'", ), ], [ Symbol( "''", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "'alo úlo'", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "' alo alo '", ), ], [ Symbol( "'^%s*(.-)%s*$'", ), ], [ Symbol( "'%1'", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "'alo alo'", ), ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo alo \\n 123\\n '", ), ], [ Symbol( "'%s+'", ), ], [ Symbol( "' '", ), ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Symbol( "'alo alo 123 '", ), ], ], ), ], line: 136, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 137, }, ], values: [ [ Symbol( "\"abç d\"", ), ], ], line: 138, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 138, }, Ident { expr: [ Symbol( "b", ), ], line: 139, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 139, }, ], [ Symbol( "'(.)'", ), ], [ Symbol( "'%1@'", ), ], ], ), ], line: 139, }, ], ], line: 139, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'@'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 140, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 140, }, ], [ Symbol( "''", ), ], [ Symbol( "'@'", ), ], ], ), ], line: 140, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 140, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 139, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 140, }, Ident { expr: [ Symbol( "b", ), ], line: 141, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'abçd'", ), ], [ Symbol( "'(.)'", ), ], [ Symbol( "'%0@'", ), ], [ Symbol( "2", ), ], ], ), ], line: 141, }, ], ], line: 141, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 142, }, Operator( ( "==", true, ), ), Symbol( "'a@b@çd'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 142, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'alo alo'", ), ], [ Symbol( "'()[al]'", ), ], [ Symbol( "'%1'", ), ], ], ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "'12o 56o'", ), ], ], ), ], line: 142, }, 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: 144, }, Operator( ( "==", true, ), ), Symbol( "\"xyz=abc-abc=xyz\"", ), ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc\"", ), ], [ Symbol( "\"%w\"", ), ], [ Symbol( "\"%1%0\"", ), ], ], ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "\"aabbcc\"", ), ], ], ), ], line: 145, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"abc\"", ), ], [ Symbol( "\"%w+\"", ), ], [ Symbol( "\"%0%1\"", ), ], ], ), ], line: 147, }, Operator( ( "==", true, ), ), Symbol( "\"abcabc\"", ), ], ], ), ], line: 146, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "'áéí'", ), ], [ Symbol( "'$'", ), ], [ Symbol( "'\\0óú'", ), ], ], ), ], line: 148, }, Operator( ( "==", true, ), ), Symbol( "'áéí\\0óú'", ), ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'^'", ), ], [ Symbol( "'r'", ), ], ], ), ], line: 149, }, Operator( ( "==", true, ), ), Symbol( "'r'", ), ], ], ), ], line: 148, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'$'", ), ], [ Symbol( "'r'", ), ], ], ), ], line: 150, }, Operator( ( "==", true, ), ), Symbol( "'r'", ), ], ], ), ], line: 149, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 150, }, 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: 153, }, ], ], ), ], line: 153, }, Operator( ( "==", true, ), ), Symbol( "\"um (DOIS) tres (QUATRO)\"", ), ], ], ), ], line: 151, }, DoBlock( CodeBlock { start: 1538, 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: 157, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 157, }, ], [ Ident { expr: [ Symbol( "v", ), ], line: 157, }, ], ], ), ], line: 157, }, ], end: 17, }, line: 157, column: 17, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"a=roberto,roberto=a\"", ), ], [ Symbol( "\"(%w+)=(%w%w*)\"", ), ], [ Ident { expr: [ Symbol( "setglobal", ), ], line: 158, }, ], ], ), ], line: 157, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "a", ), ], line: 159, }, Operator( ( "==", true, ), ), Symbol( "\"roberto\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "roberto", ), ], line: 159, }, Operator( ( "==", true, ), ), Symbol( "\"a\"", ), ], ], ), ], line: 158, }, ], end: 1580, }, ), Function { local: false, name: [ Symbol( "f", ), ], args: [ "a", "b", ], body: CodeBlock { start: 1587, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 162, }, ], [ Symbol( "'.'", ), ], [ Ident { expr: [ Symbol( "b", ), ], line: 162, }, ], ], ), ], line: 162, }, ], ], ), ), ], end: 1599, }, line: 162, 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: 163, }, ], ], ), ], line: 163, }, Operator( ( "==", true, ), ), Symbol( "\"trocar tudo em bbbbb é alalalalalal\"", ), ], ], ), ], line: 162, }, Function { local: true, name: [ Symbol( "dostring", ), ], args: [ "s", ], body: CodeBlock { start: 1620, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 166, }, ], ], ), Call( [], ), ], line: 166, }, Operator( ( "or", true, ), ), Symbol( "\"\"", ), ], ], ), ), ], end: 1630, }, line: 166, 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: 167, }, ], ], ), ], line: 167, }, Operator( ( "==", true, ), ), Symbol( "\"alo novamente 1\"", ), ], ], ), ], line: 166, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 168, }, ], 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: 171, }, ], ], ), ], line: 170, }, ], ], line: 171, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 172, }, Operator( ( "==", true, ), ), Symbol( "' assim vai para ALO'", ), ], ], ), ], line: 171, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 172, }, ], values: [ [ Table { data: [], line: 174, column: 4, }, ], ], line: 174, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 174, }, ], values: [ [ Symbol( "'a alo jose joao'", ), ], ], line: 175, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 175, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 176, }, ], [ Symbol( "'()(%w+)()'", ), ], [ Lambda { args: [ "a", "w", "b", ], body: CodeBlock { start: 1688, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "w", ), ], line: 177, }, ], ], ), ], line: 177, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 177, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 177, }, ], ], ), ], line: 177, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 178, }, ], ), Symbol( "]", ), ], line: 177, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 178, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 178, }, ], ], line: 178, column: 9, }, ], end: 1712, }, line: 179, column: 1, }, ], ], ), ], line: 176, }, ], ], line: 179, column: 2, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 180, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "r", ), ], line: 180, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "7", ), ], ), Symbol( "]", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "13", ), ], ), Symbol( "]", ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 179, }, Function { local: false, name: [ Symbol( "isbalanced", ), ], args: [ "s", ], body: CodeBlock { start: 1752, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 184, }, ], [ Symbol( "\"%b()\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 184, }, ], [ Symbol( "\"[()]\"", ), ], ], ), ], line: 184, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ), ], end: 1773, }, line: 185, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "isbalanced", ), Call( [ [ Symbol( "\"(9 ((8))(\\0) 7) \\0\\0 a b ()(c)() a\"", ), ], ], ), ], line: 187, }, ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "isbalanced", ), Call( [ [ Symbol( "\"(9 ((8) 7) a b (\\0 c) a\"", ), ], ], ), ], line: 188, }, ], ], ), ], line: 187, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo 'oi' alo\"", ), ], [ Symbol( "\"%b''\"", ), ], [ Symbol( "'\"'", ), ], ], ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "'alo \" alo'", ), ], ], ), ], line: 188, }, Variable { names: [ ( "t", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"apple\"", ), ], ), ( None, [ Symbol( "\"orange\"", ), ], ), ( None, [ Symbol( "\"lime\"", ), ], ), ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 192, column: 14, }, ], ], line: 192, 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: 1830, 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, }, Return( Some( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 193, }, ], ), Symbol( "]", ), ], line: 193, }, ], ], ), ), ], end: 1848, }, line: 193, column: 31, }, ], ], ), ], line: 193, }, Operator( ( "==", true, ), ), Symbol( "\"apple and orange and lime\"", ), ], ], ), ], line: 192, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 194, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 196, column: 7, }, ], ], line: 196, column: 7, }, Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w%w*\"", ), ], [ Lambda { args: [ "w", ], body: CodeBlock { start: 1871, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 197, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 197, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 197, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 197, }, ], ), Symbol( "]", ), ], line: 197, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 197, }, ], ], line: 197, column: 18, }, ], end: 1890, }, line: 197, column: 31, }, ], ], ), ], line: 196, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 198, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 198, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 198, }, Operator( ( "==", true, ), ), Symbol( "\"word\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 198, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 197, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 198, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 200, column: 7, }, ], ], line: 200, 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: 1941, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 202, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 202, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 202, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 202, }, ], ), Symbol( "]", ), ], line: 202, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 202, }, ], ], line: 202, column: 18, }, ], end: 1960, }, line: 202, column: 23, }, ], [ Symbol( "2", ), ], ], ), ], line: 201, }, Operator( ( "==", true, ), ), Symbol( "\"first second word\"", ), ], ], ), ], line: 200, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 203, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 203, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 203, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 205, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(.\"", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 205, }, ], ], ), ], line: 205, }, ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 206, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\".)\"", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 206, }, ], ], ), ], line: 206, }, ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 207, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(.\"", ), ], [ Table { data: [], line: 207, column: 15, }, ], ], ), ], line: 207, }, ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 208, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(.)\"", ), ], [ Symbol( "\"%2\"", ), ], ], ), ], line: 208, }, ], ], ), ], line: 207, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 209, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(%1)\"", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 209, }, ], ], ), ], line: 208, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 210, }, ], [ Symbol( "\"alo\"", ), ], [ Symbol( "\"(%0)\"", ), ], [ Symbol( "\"a\"", ), ], ], ), ], line: 210, }, ], ], ), ], line: 209, }, DoBlock( CodeBlock { start: 2087, 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: 215, }, ], ], ), ], line: 215, }, ], ], line: 216, column: 0, }, Variable { names: [ ( "p", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\".?\"", ), ], [ Ident { expr: [ Symbol( "size", ), ], line: 216, }, ], ], ), ], line: 216, }, ], ], line: 217, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), ], line: 217, }, ], [ Ident { expr: [ Symbol( "s", ), ], line: 217, }, ], [ Ident { expr: [ Symbol( "p", ), ], line: 217, }, ], ], ), ], line: 217, }, ], ], ), ), ], end: 40, }, line: 218, column: 1, }, Variable { names: [ ( "r", false, ), ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "80", ), ], ], ), ], line: 219, }, ], ], line: 219, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "r", ), ], line: 220, }, Operator( ( "and", true, ), ), Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "m", ), ], line: 220, }, Operator( ( "==", true, ), ), Symbol( "80", ), ], ], ), ], line: 219, }, Alter { names: [ Ident { expr: [ Symbol( "r", ), ], line: 220, }, Ident { expr: [ Symbol( "m", ), ], line: 221, }, ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Symbol( "200000", ), ], ], ), ], line: 221, }, ], ], line: 221, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 222, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "m", ), ], line: 222, }, ], [ Symbol( "\"too complex\"", ), ], ], ), ], line: 222, }, ], ], ), ], line: 221, }, ], end: 2168, }, ), IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_soft", ), ], line: 225, }, ], body: CodeBlock { start: 2172, code: [ Variable { names: [ ( "a", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "300000", ), ], ], ), ], line: 227, }, ], ], line: 227, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 228, }, ], [ Symbol( "'^a*.?$'", ), ], ], ), ], line: 228, }, ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 229, }, ], [ Symbol( "'^a*.?b$'", ), ], ], ), ], line: 229, }, ], ], ), ], line: 228, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 230, }, ], [ Symbol( "'^a-.?$'", ), ], ], ), ], line: 230, }, ], ], ), ], line: 229, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 230, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "10000", ), ], ], ), ], line: 233, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'b'", ), ], [ Symbol( "10000", ), ], ], ), ], line: 233, }, ], ], line: 233, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), ], line: 234, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 234, }, ], [ Symbol( "'b'", ), ], ], ), ], line: 234, }, ], ], ), ], line: 233, }, ], end: 2251, }, next: None, line: 235, column: 1, }, Function { local: false, name: [ Symbol( "rev", ), ], args: [ "s", ], body: CodeBlock { start: 2256, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 239, }, ], [ Symbol( "\"(.)(.+)\"", ), ], [ Lambda { args: [ "c", "s1", ], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "s1", ), ], line: 239, }, ], ], ), ], line: 239, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 239, }, ], ], ), ), ], end: 23, }, line: 239, column: 23, }, ], ], ), ], line: 239, }, ], ], ), ), ], end: 2281, }, line: 240, column: 1, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "\"abcdef\"", ), ], ], line: 242, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "rev", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 243, }, ], ], ), ], line: 243, }, ], ], ), ], line: 243, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 243, }, ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"alo alo\"", ), ], [ Symbol( "\".\"", ), ], [ Table { data: [], line: 247, column: 12, }, ], ], ), ], line: 247, }, Operator( ( "==", true, ), ), Symbol( "\"alo alo\"", ), ], ], ), ], line: 243, }, 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: 248, column: 19, }, ], ], ), ], line: 248, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 247, }, 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: 249, column: 19, }, ], ], ), ], line: 249, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 248, }, 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: 250, column: 19, }, ], ], ), ], line: 250, }, Operator( ( "==", true, ), ), Symbol( "\"AAo AAo\"", ), ], ], ), ], line: 249, }, 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: 252, column: 17, }, ], ], ), ], line: 252, }, Operator( ( "==", true, ), ), Symbol( "\"256 alo\"", ), ], ], ), ], line: 250, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 252, }, ], values: [ [ Table { data: [], line: 254, column: 4, }, ], ], line: 254, column: 5, }, Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 254, }, ], [ Table { data: [ ( Some( [ Symbol( "__index", ), ], ), [ Lambda { args: [ "t", "s", ], body: CodeBlock { start: 2421, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 254, }, ], ], ), ], line: 254, }, ], ], ), ), ], end: 2429, }, line: 254, column: 26, }, ], ), ], line: 254, column: 27, }, ], ], ), ], line: 254, }, 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: 255, }, ], ], ), ], line: 255, }, Operator( ( "==", true, ), ), Symbol( "\"a ALO b HI\"", ), ], ], ), ], line: 254, }, Variable { names: [ ( "a", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 260, column: 0, }, ForFuncLoop { iters: [ "i", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "'abcde'", ), ], [ Symbol( "'()'", ), ], ], ), ], line: 260, }, ], stop: None, initial: None, code: CodeBlock { start: 2462, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 260, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 260, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 260, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 260, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 260, }, ], ], line: 260, column: 12, }, ], end: 2475, }, line: 260, column: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 261, }, Operator( ( "==", true, ), ), Symbol( "6", ), ], ], ), ], line: 260, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 261, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "n", ), ], ), [ Symbol( "0", ), ], ), ], line: 263, column: 7, }, ], ], line: 264, column: 0, }, ForFuncLoop { iters: [ "w", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"first second word\"", ), ], [ Symbol( "\"%w+\"", ), ], ], ), ], line: 264, }, ], stop: None, initial: None, code: CodeBlock { start: 2500, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 265, }, ], values: [ [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 265, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 265, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), Symbol( ".", ), Symbol( "n", ), ], line: 265, }, ], ), Symbol( "]", ), ], line: 265, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 265, }, ], ], line: 265, column: 18, }, ], end: 2519, }, line: 266, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "\"first\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "2", ), ], ), Symbol( "]", ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "\"second\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "3", ), ], ), Symbol( "]", ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "\"word\"", ), ], ], ), ], line: 266, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 267, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "6", ), ], ), ( None, [ Symbol( "9", ), ], ), ], line: 269, column: 9, }, ], ], line: 270, column: 0, }, ForFuncLoop { iters: [ "i", ], expr: [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gmatch", ), Call( [ [ Symbol( "\"xuxx uu ppar r\"", ), ], [ Symbol( "\"()(.)%2\"", ), ], ], ), ], line: 270, }, ], stop: None, initial: None, code: CodeBlock { start: 2563, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 271, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 271, }, ], [ Symbol( "1", ), ], ], ), ], line: 271, }, ], ], ), ], line: 271, }, ], end: 2577, }, line: 272, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "t", ), ], line: 273, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 272, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 273, }, ], values: [ [ Table { data: [], line: 275, column: 4, }, ], ], line: 276, 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: 276, }, ], stop: None, initial: None, code: CodeBlock { start: 2602, code: [ Alter { names: [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 277, }, ], ), Symbol( "]", ), ], line: 277, }, ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 277, }, ], ], line: 277, column: 6, }, ], end: 2609, }, line: 278, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 278, }, ], values: [ [ Symbol( "0", ), ], ], line: 280, column: 0, }, ForFuncLoop { iters: [ "k", "v", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 280, }, ], ], ), ], line: 280, }, ], stop: None, initial: None, code: CodeBlock { start: 2622, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 280, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "v", ), ], line: 280, }, Operator( ( "+", true, ), ), Symbol( "0", ), ], ], ), ], line: 280, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 280, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 280, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 280, column: 16, }, ], end: 2639, }, line: 280, column: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 281, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 280, }, 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: 286, }, Operator( ( "==", true, ), ), Symbol( "\"xaa xa x xaa x\"", ), ], ], ), ], line: 281, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"[[]] [][] [[[[\"", ), ], [ Symbol( "\"%f[[].\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 287, }, Operator( ( "==", true, ), ), Symbol( "\"x[]] x]x] x[[[\"", ), ], ], ), ], line: 286, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"01abc45de3\"", ), ], [ Symbol( "\"%f[%d]\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 288, }, Operator( ( "==", true, ), ), Symbol( "\".01abc.45de.3\"", ), ], ], ), ], line: 287, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"01abc45 de3x\"", ), ], [ Symbol( "\"%f[%D]%w\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 289, }, Operator( ( "==", true, ), ), Symbol( "\"01.bc45 de3.\"", ), ], ], ), ], line: 288, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"function\"", ), ], [ Symbol( "\"%f[\\1-\\255]%w\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 290, }, Operator( ( "==", true, ), ), Symbol( "\".unction\"", ), ], ], ), ], line: 289, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"function\"", ), ], [ Symbol( "\"%f[^\\1-\\255]\"", ), ], [ Symbol( "\".\"", ), ], ], ), ], line: 291, }, Operator( ( "==", true, ), ), Symbol( "\"function.\"", ), ], ], ), ], line: 290, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"%f[a]\"", ), ], ], ), ], line: 293, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 291, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"%f[^%z]\"", ), ], ], ), ], line: 294, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 293, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"a\"", ), ], [ Symbol( "\"%f[^%l]\"", ), ], ], ), ], line: 295, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 294, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[a%z]\"", ), ], ], ), ], line: 296, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 295, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[%z]\"", ), ], ], ), ], line: 297, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 296, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[%l%z]\"", ), ], ], ), ], line: 298, }, ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"aba\"", ), ], [ Symbol( "\"%f[^%l%z]\"", ), ], ], ), ], line: 299, }, ], ], ), ], line: 298, }, 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: 301, }, ], ], line: 301, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "e", ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "5", ), ], ], ), ], line: 301, }, 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: 303, }, ], ], line: 303, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "k", ), ], line: 304, }, Operator( ( "==", true, ), ), Symbol( "'alo '", ), ], ], ), ], line: 303, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "5", ), ], ), ( None, [ Symbol( "9", ), ], ), ( None, [ Symbol( "14", ), ], ), ( None, [ Symbol( "17", ), ], ), ], line: 306, column: 15, }, ], ], line: 307, 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: 307, }, ], stop: None, initial: None, code: CodeBlock { start: 2891, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "remove", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 308, }, ], [ Symbol( "1", ), ], ], ), ], line: 308, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "k", ), ], line: 308, }, ], ], ), ], line: 308, }, ], end: 2905, }, line: 309, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 310, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 309, }, Function { local: true, name: [ Symbol( "malform", ), ], args: [ "p", "m", ], body: CodeBlock { start: 2920, code: [ Alter { names: [ Ident { expr: [ Symbol( "m", ), ], line: 315, }, ], values: [ [ Ident { expr: [ Symbol( "m", ), ], line: 315, }, Operator( ( "or", true, ), ), Symbol( "\"malformed\"", ), ], ], line: 316, column: 0, }, Variable { names: [ ( "r", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), ], line: 316, }, ], [ Symbol( "\"a\"", ), ], [ Ident { expr: [ Symbol( "p", ), ], line: 316, }, ], ], ), ], line: 316, }, ], ], line: 316, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "r", ), ], line: 317, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 317, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 317, }, ], ], ), ], line: 317, }, ], ], ), ], line: 316, }, ], end: 2955, }, line: 318, column: 1, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[a\"", ), ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[]\"", ), ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[^]\"", ), ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[a%]\"", ), ], ], ), ], line: 322, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"[a%\"", ), ], ], ), ], line: 323, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%b\"", ), ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%ba\"", ), ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%\"", ), ], ], ), ], line: 326, }, Ident { expr: [ Symbol( "malform", ), Call( [ [ Symbol( "\"%f\"", ), ], [ Symbol( "\"missing\"", ), ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"ab\\0\\1\\2c\"", ), ], [ Symbol( "\"[\\0-\\2]+\"", ), ], ], ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\1\\2\"", ), ], ], ), ], line: 328, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"ab\\0\\1\\2c\"", ), ], [ Symbol( "\"[\\0-\\0]+\"", ), ], ], ), ], line: 332, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\"", ), ], ], ), ], line: 331, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"b$a\"", ), ], [ Symbol( "\"$\\0?\"", ), ], ], ), ], line: 333, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 332, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abc\\0efg\"", ), ], [ Symbol( "\"%\\0\"", ), ], ], ), ], line: 334, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"abc\\0efg\\0\\1e\\1g\"", ), ], [ Symbol( "\"%b\\0\\1\"", ), ], ], ), ], line: 335, }, Operator( ( "==", true, ), ), Symbol( "\"\\0efg\\0\\1e\\1\"", ), ], ], ), ], line: 334, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"abc\\0\\0\\0\"", ), ], [ Symbol( "\"%\\0+\"", ), ], ], ), ], line: 336, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 335, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "match", ), Call( [ [ Symbol( "\"abc\\0\\0\\0\"", ), ], [ Symbol( "\"%\\0%\\0?\"", ), ], ], ), ], line: 337, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\0\"", ), ], ], ), ], line: 336, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abc\\0\\0\"", ), ], [ Symbol( "\"\\0.\"", ), ], ], ), ], line: 340, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 337, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abcx\\0\\0abc\\0abc\"", ), ], [ Symbol( "\"x\\0\\0abc\\0a.\"", ), ], ], ), ], line: 341, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 340, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 341, }, ]