--- source: src/main.rs expression: parsed input_file: test-data/lua5.1-tests/strings.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing strings and string library'", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'alo'", ), Operator( ( "<", true, ), ), Symbol( "'alo1'", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "''", ), Operator( ( "<", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'alo\\0alo'", ), Operator( ( "<", true, ), ), Symbol( "'alo\\0b'", ), ], ], ), ], line: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'alo\\0alo\\0\\0'", ), Operator( ( ">", true, ), ), Symbol( "'alo\\0alo\\0'", ), ], ], ), ], line: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'alo'", ), Operator( ( "<", true, ), ), Symbol( "'alo\\0'", ), ], ], ), ], line: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'alo\\0'", ), Operator( ( ">", true, ), ), Symbol( "'alo'", ), ], ], ), ], line: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0'", ), Operator( ( "<", true, ), ), Symbol( "'\\1'", ), ], ], ), ], line: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0\\0'", ), Operator( ( "<", true, ), ), Symbol( "'\\0\\1'", ), ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\1\\0a\\0a'", ), Operator( ( "<=", true, ), ), Symbol( "'\\1\\0a\\0a'", ), ], ], ), ], line: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'\\1\\0a\\0b'", ), Operator( ( "<=", true, ), ), Symbol( "'\\1\\0a\\0a'", ), ], ), Ident { expr: [], line: 12, }, ], ], ), ], line: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0\\0\\0'", ), Operator( ( "<", true, ), ), Symbol( "'\\0\\0\\0\\0'", ), ], ], ), ], line: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'\\0\\0\\0\\0'", ), Operator( ( "<", true, ), ), Symbol( "'\\0\\0\\0'", ), ], ), Ident { expr: [], line: 14, }, ], ], ), ], line: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0\\0\\0'", ), Operator( ( "<=", true, ), ), Symbol( "'\\0\\0\\0\\0'", ), ], ], ), ], line: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'\\0\\0\\0\\0'", ), Operator( ( "<=", true, ), ), Symbol( "'\\0\\0\\0'", ), ], ), Ident { expr: [], line: 16, }, ], ], ), ], line: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0\\0\\0'", ), Operator( ( "<=", true, ), ), Symbol( "'\\0\\0\\0'", ), ], ], ), ], line: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0\\0\\0'", ), Operator( ( ">=", true, ), ), Symbol( "'\\0\\0\\0'", ), ], ], ), ], line: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'\\0\\0b'", ), Operator( ( "<", true, ), ), Symbol( "'\\0\\0a\\0'", ), ], ), Ident { expr: [], line: 19, }, ], ], ), ], line: 18, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "2", ), ], [ Symbol( "4", ), ], ], ), ], line: 22, }, Operator( ( "==", true, ), ), Symbol( "\"234\"", ), ], ], ), ], line: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "7", ), ], ], ), ], line: 23, }, Operator( ( "==", true, ), ), Symbol( "\"789\"", ), ], ], ), ], line: 22, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "7", ), ], [ Symbol( "6", ), ], ], ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 23, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "7", ), ], [ Symbol( "7", ), ], ], ), ], line: 25, }, Operator( ( "==", true, ), ), Symbol( "\"7\"", ), ], ], ), ], line: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "0", ), ], [ Symbol( "0", ), ], ], ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Symbol( "10", ), ], ], ), ], line: 27, }, Operator( ( "==", true, ), ), Symbol( "\"123456789\"", ), ], ], ), ], line: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "1", ), ], [ Symbol( "9", ), ], ], ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "\"123456789\"", ), ], ], ), ], line: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Operator( ( "-", false, ), ), Symbol( "20", ), ], ], ), ], line: 29, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 28, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 30, }, Operator( ( "==", true, ), ), Symbol( "\"9\"", ), ], ], ), ], line: 29, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 31, }, Operator( ( "==", true, ), ), Symbol( "\"6789\"", ), ], ], ), ], line: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "6", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Symbol( "\"456\"", ), ], ], ), ], line: 31, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"\\000123456789\"", ), ], [ Symbol( "3", ), ], [ Symbol( "5", ), ], ], ), ], line: 33, }, Operator( ( "==", true, ), ), Symbol( "\"234\"", ), ], ], ), ], line: 32, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "\"\\000123456789\"", ), ], ), Ident { expr: [ Symbol( ":", ), Symbol( "sub", ), Call( [ [ Symbol( "8", ), ], ], ), ], line: 34, }, Operator( ( "==", true, ), ), Symbol( "\"789\"", ), ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "\"345\"", ), ], ], ), ], line: 37, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 35, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 37, }, Ident { expr: [ Symbol( "b", ), ], line: 38, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "\"345\"", ), ], ], ), ], line: 38, }, ], ], line: 38, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Ident { expr: [ Symbol( "a", ), ], line: 39, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 39, }, ], ], ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "\"345\"", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\"345\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\"345\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\"346\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 42, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\".45\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "9", ), ], ], ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abcdefg\"", ), ], [ Symbol( "\"\\0\"", ), ], [ Symbol( "5", ), ], [ Symbol( "1", ), ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'aaa'", ), ], [ Symbol( "1", ), ], ], ), ], line: 46, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "'alo(.)alo'", ), ], ), Ident { expr: [ Symbol( ":", ), Symbol( "find", ), Call( [ [ Symbol( "'(.)'", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 51, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 50, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"1234567890\"", ), ], ], ), ], line: 52, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Symbol( "\"\"", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 52, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Symbol( "\"\\0\\0\\0\"", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Symbol( "\"1234567890\"", ), Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"a\"", ), ], ], ), ], line: 58, }, Operator( ( "==", true, ), ), Symbol( "97", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"�\"", ), ], ], ), ], line: 59, }, Operator( ( ">", true, ), ), Symbol( "127", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "255", ), ], ], ), ], line: 60, }, ], ], ), ], line: 60, }, Operator( ( "==", true, ), ), Symbol( "255", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 61, }, ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\0\"", ), ], ], ), ], line: 62, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\0\\0alo\\0x\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 63, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "'x'", ), ], ], ), ], line: 63, }, ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"ba\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 64, }, Operator( ( "==", true, ), ), Symbol( "97", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\n\\n\"", ), ], [ Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\n\\n\"", ), ], [ Symbol( "2", ), ], [ Symbol( "2", ), ], ], ), ], line: 66, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Symbol( "9", ), ], [ Symbol( "10", ), ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Symbol( "2", ), ], [ Symbol( "1", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [], ), ], line: 72, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "255", ), ], [ Symbol( "0", ), ], ], ), ], line: 73, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\255\\0\"", ), ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"�\"", ), ], ], ), ], line: 74, }, ], [ Symbol( "0", ), ], ], ), ], line: 74, }, Operator( ( "==", true, ), ), Symbol( "\"\\0�\\0\"", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"�l\\0�u\"", ), ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 75, }, ], ], ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "\"�l\\0�u\"", ), ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"�l\\0�u\"", ), ], [ Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 76, }, ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"�l\\0�u\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Symbol( "100", ), ], ], ), ], line: 77, }, ], ], ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "\"�l\\0�u\"", ), ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 77, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Symbol( "\"ab\\0c\"", ), ], ], ), ], line: 80, }, Operator( ( "==", true, ), ), Symbol( "\"AB\\0C\"", ), ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "lower", ), Call( [ [ Symbol( "\"\\0ABCc%$\"", ), ], ], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "\"\\0abcc%$\"", ), ], ], ), ], line: 80, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'teste'", ), ], [ Symbol( "0", ), ], ], ), ], line: 82, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 81, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'t�s\\00t�'", ), ], [ Symbol( "2", ), ], ], ), ], line: 83, }, Operator( ( "==", true, ), ), Symbol( "'t�s\\0t�t�s\\000t�'", ), ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "10", ), ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "reverse", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 86, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "reverse", ), Call( [ [ Symbol( "\"\\0\\1\\2\\3\"", ), ], ], ), ], line: 87, }, Operator( ( "==", true, ), ), Symbol( "\"\\3\\2\\1\\0\"", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "reverse", ), Call( [ [ Symbol( "\"\\0001234\"", ), ], ], ), ], line: 88, }, Operator( ( "==", true, ), ), Symbol( "\"4321\\0\"", ), ], ], ), ], line: 87, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "30", ), ], step: None, code: CodeBlock { start: 943, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 90, }, ], ], ), ], line: 90, }, ], ], ), ], line: 90, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 90, }, ], ], ), ], line: 90, }, ], end: 962, }, line: 90, column: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 92, }, ], ], ), ], line: 92, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "12", ), ], ], ), ], line: 93, }, ], ], ), ], line: 93, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 92, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "''", ), Operator( ( "..", true, ), ), Symbol( "12", ), Operator( ( "==", true, ), ), Symbol( "'12'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Symbol( "12", ), Operator( ( "..", true, ), ), Symbol( "''", ), ], ], ), ], line: 94, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 93, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Table { data: [], line: 95, column: 9, }, ], ], ), ], line: 95, }, ], [ Symbol( "'table:'", ), ], ], ), ], line: 95, }, ], ], ), ], line: 94, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 96, }, ], ], ), ], line: 96, }, ], [ Symbol( "'function:'", ), ], ], ), ], line: 96, }, ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "1234567890123", ), ], ], ), ], line: 97, }, Operator( ( "==", true, ), ), Symbol( "'1234567890123'", ), ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "'\\0'", ), ], ], ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 97, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "true", ), ], ], ), ], line: 99, }, Operator( ( "==", true, ), ), Symbol( "\"true\"", ), ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 100, }, Operator( ( "==", true, ), ), Symbol( "\"false\"", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 100, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 101, }, ], values: [ [ Symbol( "'\"�lo\"\\n\\\\'", ), ], ], line: 103, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%q%s'", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 104, }, ], [ Ident { expr: [ Symbol( "x", ), ], line: 104, }, ], ], ), ], line: 104, }, Operator( ( "==", true, ), ), Symbol( "'\"\\\\\"�lo\\\\\"\\\\\\n\\\\\\\\\"\"�lo\"\\n\\\\'", ), ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%q'", ), ], [ Symbol( "\"\\0\"", ), ], ], ), ], line: 105, }, Operator( ( "==", true, ), ), MultilineString( "[[\"\\000\"]]", ), ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"\\0%c\\0%c%x\\0\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"�\"", ), ], ], ), ], line: 106, }, ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"b\"", ), ], ], ), ], line: 106, }, ], [ Symbol( "140", ), ], ], ), ], line: 106, }, Operator( ( "==", true, ), ), Symbol( "\"\\0�\\0b8c\\0\"", ), ], ], ), ], line: 105, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "''", ), ], ], ), ], line: 108, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "34", ), ], ], ), ], line: 109, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "48", ), ], ], ), ], line: 109, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "90", ), ], ], ), ], line: 109, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "100", ), ], ], ), ], line: 109, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c%c%c%c\"", ), ], [ Symbol( "34", ), ], [ Symbol( "48", ), ], [ Symbol( "90", ), ], [ Symbol( "100", ), ], ], ), ], line: 109, }, ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%s\\0 is not \\0%s\"", ), ], [ Symbol( "'not be'", ), ], [ Symbol( "'be'", ), ], ], ), ], line: 111, }, Operator( ( "==", true, ), ), Symbol( "'not be\\0 is not \\0be'", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%%%d %010d\"", ), ], [ Symbol( "10", ), ], [ Symbol( "23", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "\"%10 0000000023\"", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%f\"", ), ], [ Symbol( "10.3", ), ], ], ), ], line: 113, }, ], ], ), ], line: 113, }, Operator( ( "==", true, ), ), Symbol( "10.3", ), ], ], ), ], line: 112, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 113, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'\"%-50s\"'", ), ], [ Symbol( "'a'", ), ], ], ), ], line: 114, }, ], ], line: 114, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "52", ), ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 116, }, ], [ Symbol( "1", ), ], [ Symbol( "4", ), ], ], ), ], line: 116, }, Operator( ( "==", true, ), ), Symbol( "'\"a '", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"-%.20s.20s\"", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 118, }, ], ], ), ], line: 118, }, Operator( ( "==", true, ), ), Symbol( "\"-\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "20", ), ], ], ), ], line: 118, }, Operator( ( "..", true, ), ), Symbol( "\".20s\"", ), ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'\"-%20s.20s\"'", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 119, }, ], ], ), ], line: 119, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%q\"", ), ], [ Symbol( "\"-\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "2000", ), ], ], ), ], line: 120, }, Operator( ( "..", true, ), ), Symbol( "\".20s\"", ), ], ], ), ], line: 119, }, ], ], ), ], line: 118, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%99.99f'", ), ], [ Operator( ( "-", false, ), ), Symbol( "1e308", ), ], ], ), ], line: 124, }, ], ], ), ], line: 124, }, Operator( ( ">=", true, ), ), Symbol( "100", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "loadstring", ), Call( [ [ Symbol( "\"return 1\\n--coment�rio sem EOL no final\"", ), ], ], ), Call( [], ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 129, column: 7, }, ], ], ), ], line: 129, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 126, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 130, column: 8, }, ], [ Symbol( "'x'", ), ], ], ), ], line: 130, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 129, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [ ( None, [ Symbol( "'\\0'", ), ], ), ( None, [ Symbol( "'\\0\\1'", ), ], ), ( None, [ Symbol( "'\\0\\1\\2'", ), ], ), ], line: 131, column: 13, }, ], [ Symbol( "'.\\0.'", ), ], ], ), ], line: 131, }, Operator( ( "==", true, ), ), Symbol( "\"\\0.\\0.\\0\\1.\\0.\\0\\1\\2\"", ), ], ], ), ], line: 130, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 132, column: 5, }, ], ], line: 132, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "3000", ), ], step: None, code: CodeBlock { start: 1426, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 133, }, ], ), Symbol( "]", ), ], line: 133, }, ], values: [ [ Symbol( "\"xuxu\"", ), ], ], line: 133, column: 6, }, ], end: 1433, }, line: 133, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 134, }, ], [ Symbol( "\"123\"", ), ], ], ), ], line: 134, }, Operator( ( "..", true, ), ), Symbol( "\"123\"", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"xuxu123\"", ), ], [ Symbol( "3000", ), ], ], ), ], line: 134, }, ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 135, }, ], [ Symbol( "\"b\"", ), ], [ Symbol( "20", ), ], [ Symbol( "20", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 136, }, ], [ Symbol( "\"\"", ), ], [ Symbol( "20", ), ], [ Symbol( "21", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "\"xuxuxuxu\"", ), ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 137, }, ], [ Symbol( "\"\"", ), ], [ Symbol( "22", ), ], [ Symbol( "21", ), ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 136, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 138, }, ], [ Symbol( "\"3\"", ), ], [ Symbol( "2999", ), ], ], ), ], line: 138, }, Operator( ( "==", true, ), ), Symbol( "\"xuxu3xuxu\"", ), ], ], ), ], line: 137, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 138, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "\"a\"", ), ], ), ( None, [ Symbol( "\"b\"", ), ], ), ( None, [ Symbol( "\"c\"", ), ], ), ], line: 140, column: 9, }, ], ], line: 140, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 141, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 141, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 142, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 142, }, Operator( ( "==", true, ), ), Symbol( "\"a\"", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 143, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 143, }, Operator( ( "==", true, ), ), Symbol( "\"a,b\"", ), ], ], ), ], line: 142, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 144, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 144, }, Operator( ( "==", true, ), ), Symbol( "\"b,c\"", ), ], ], ), ], line: 143, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 145, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 145, }, Operator( ( "==", true, ), ), Symbol( "\"c\"", ), ], ], ), ], line: 144, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 146, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 145, }, Variable { names: [ ( "locales", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"ptb\"", ), ], ), ( None, [ Symbol( "\"ISO-8859-1\"", ), ], ), ( None, [ Symbol( "\"pt_BR\"", ), ], ), ], line: 148, column: 10, }, ], ], line: 149, column: 0, }, Function { local: true, name: [ Symbol( "trylocale", ), ], args: [ "w", ], body: CodeBlock { start: 1642, code: [ ForFuncLoop { iters: [ "_", "l", ], expr: [ Ident { expr: [ Symbol( "ipairs", ), Call( [ [ Ident { expr: [ Symbol( "locales", ), ], line: 150, }, ], ], ), ], line: 150, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Ident { expr: [ Symbol( "l", ), ], line: 151, }, ], [ Ident { expr: [ Symbol( "w", ), ], line: 151, }, ], ], ), ], line: 151, }, ], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Symbol( "true", ), ], ], ), ), ], end: 13, }, next: None, line: 151, column: 13, }, ], end: 24, }, line: 152, column: 1, }, Return( Some( [ [ Symbol( "false", ), ], ], ), ), ], end: 1669, }, line: 154, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "trylocale", ), Call( [ [ Symbol( "\"collate\"", ), ], ], ), ], line: 156, }, ], body: CodeBlock { start: 1676, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"locale not supported\"", ), ], ], ), ], line: 157, }, ], end: 1681, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 1681, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"alo\"", ), Operator( ( "<", true, ), ), Symbol( "\"�lo\"", ), Operator( ( "and", true, ), ), Symbol( "\"�lo\"", ), Operator( ( "<", true, ), ), Symbol( "\"amo\"", ), ], ], ), ], line: 159, }, ], end: 1692, }, next: None, line: 160, column: 1, }, ), line: 160, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "trylocale", ), Call( [ [ Symbol( "\"ctype\"", ), ], ], ), ], line: 162, }, ], body: CodeBlock { start: 1699, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"locale not supported\"", ), ], ], ), ], line: 163, }, ], end: 1704, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 1704, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"�����\"", ), ], [ Symbol( "\"%a\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 165, }, Operator( ( "==", true, ), ), Symbol( "\"xxxxx\"", ), ], ], ), ], line: 165, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"����\"", ), ], [ Symbol( "\"%l\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 166, }, Operator( ( "==", true, ), ), Symbol( "\"x�x�\"", ), ], ], ), ], line: 165, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"����\"", ), ], [ Symbol( "\"%u\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 167, }, Operator( ( "==", true, ), ), Symbol( "\"�x�x\"", ), ], ], ), ], line: 166, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Symbol( "\"���{xuxu}��o\"", ), ], ], ), ], line: 168, }, Operator( ( "==", true, ), ), Symbol( "\"���{XUXU}��O\"", ), ], ], ), ], line: 167, }, ], end: 1759, }, next: None, line: 169, column: 1, }, ), line: 169, column: 1, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "\"C\"", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [], ), ], line: 172, }, Operator( ( "==", true, ), ), Symbol( "'C'", ), ], ], ), ], line: 171, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "\"numeric\"", ), ], ], ), ], line: 173, }, Operator( ( "==", true, ), ), Symbol( "'C'", ), ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 173, }, ]