--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-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, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_no32", ), ], line: 33, }, ], body: CodeBlock { start: 292, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 34, }, Operator( ( "==", true, ), ), Symbol( "\"123456\"", ), ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 35, }, Operator( ( "==", true, ), ), Symbol( "\"123456789\"", ), ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 35, }, ], end: 355, }, next: None, line: 37, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"\\000123456789\"", ), ], [ Symbol( "3", ), ], [ Symbol( "5", ), ], ], ), ], line: 38, }, Operator( ( "==", true, ), ), Symbol( "\"234\"", ), ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "\"\\000123456789\"", ), ], ), Ident { expr: [ Symbol( ":", ), Symbol( "sub", ), Call( [ [ Symbol( "8", ), ], ], ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "\"789\"", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "\"345\"", ), ], ], ), ], line: 42, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 40, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 42, }, Ident { expr: [ Symbol( "b", ), ], line: 43, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Symbol( "\"345\"", ), ], ], ), ], line: 43, }, ], ], line: 43, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Symbol( "\"123456789\"", ), ], [ Ident { expr: [ Symbol( "a", ), ], line: 44, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 44, }, ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "\"345\"", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\"345\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\"345\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 46, }, Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\"346\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"1234567890123456789\"", ), ], [ Symbol( "\".45\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "9", ), ], ], ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"abcdefg\"", ), ], [ Symbol( "\"\\0\"", ), ], [ Symbol( "5", ), ], [ Symbol( "1", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 49, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"\"", ), ], [ Symbol( "\"\"", ), ], [ Symbol( "1", ), ], ], ), ], line: 51, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 50, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"\"", ), ], [ Symbol( "\"\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 52, }, ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "'aaa'", ), ], [ Symbol( "1", ), ], ], ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 52, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "'alo(.)alo'", ), ], ), Ident { expr: [ Symbol( ":", ), Symbol( "find", ), Call( [ [ Symbol( "'(.)'", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 54, }, Operator( ( "==", true, ), ), Symbol( "4", ), ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 57, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"\\0\\0\\0\"", ), ], ], ), ], line: 58, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 57, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Symbol( "\"1234567890\"", ), ], ], ), ], line: 59, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Symbol( "\"\"", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Symbol( "\"\\0\\0\\0\"", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Symbol( "\"1234567890\"", ), Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"a\"", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "97", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\xe4\"", ), ], ], ), ], line: 66, }, Operator( ( ">", true, ), ), Symbol( "127", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "255", ), ], ], ), ], line: 67, }, ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Symbol( "255", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 68, }, ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\0\"", ), ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\0\\0alo\\0x\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "'x'", ), ], ], ), ], line: 70, }, ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"ba\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Symbol( "97", ), ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\n\\n\"", ), ], [ Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 72, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\n\\n\"", ), ], [ Symbol( "2", ), ], [ Symbol( "2", ), ], ], ), ], line: 73, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 74, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Symbol( "9", ), ], [ Symbol( "10", ), ], ], ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"hi\"", ), ], [ Symbol( "2", ), ], [ Symbol( "1", ), ], ], ), ], line: 78, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 77, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [], ), ], line: 79, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "255", ), ], [ Symbol( "0", ), ], ], ), ], line: 80, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\255\\0\"", ), ], ], ), ], line: 79, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\xe4\"", ), ], ], ), ], line: 81, }, ], [ Symbol( "0", ), ], ], ), ], line: 81, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\xe4\\0\"", ), ], ], ), ], line: 80, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\xe4l\\0óu\"", ), ], [ Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 82, }, ], ], ), ], line: 82, }, Operator( ( "==", true, ), ), Symbol( "\"\\xe4l\\0óu\"", ), ], ], ), ], line: 81, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\xe4l\\0óu\"", ), ], [ Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 83, }, ], ], ), ], line: 83, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"\\xe4l\\0óu\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Symbol( "100", ), ], ], ), ], line: 84, }, ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "\"\\xe4l\\0óu\"", ), ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Symbol( "\"ab\\0c\"", ), ], ], ), ], line: 87, }, Operator( ( "==", true, ), ), Symbol( "\"AB\\0C\"", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "lower", ), Call( [ [ Symbol( "\"\\0ABCc%$\"", ), ], ], ), ], line: 88, }, Operator( ( "==", true, ), ), Symbol( "\"\\0abcc%$\"", ), ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'teste'", ), ], [ Symbol( "0", ), ], ], ), ], line: 89, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'tés\\00tê'", ), ], [ Symbol( "2", ), ], ], ), ], line: 90, }, Operator( ( "==", true, ), ), Symbol( "'tés\\0têtés\\000tê'", ), ], ], ), ], line: 89, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "10", ), ], ], ), ], line: 91, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'teste'", ), ], [ Symbol( "0", ), ], [ Symbol( "'xuxu'", ), ], ], ), ], line: 94, }, Operator( ( "==", true, ), ), Symbol( "''", ), ], ], ), ], line: 91, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'teste'", ), ], [ Symbol( "1", ), ], [ Symbol( "'xuxu'", ), ], ], ), ], line: 95, }, Operator( ( "==", true, ), ), Symbol( "'teste'", ), ], ], ), ], line: 94, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'\\1\\0\\1'", ), ], [ Symbol( "2", ), ], [ Symbol( "'\\0\\0'", ), ], ], ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "'\\1\\0\\1\\0\\0\\1\\0\\1'", ), ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "10", ), ], [ Symbol( "'.'", ), ], ], ), ], line: 97, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'.'", ), ], [ Symbol( "9", ), ], ], ), ], line: 97, }, ], ], ), ], line: 96, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_no32", ), ], line: 98, }, ], body: CodeBlock { start: 1076, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), ], line: 99, }, ], [ Symbol( "\"aa\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), ], ], ), ], line: 99, }, ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), ], line: 100, }, ], [ Symbol( "\"\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), ], [ Symbol( "\"aa\"", ), ], ], ), ], line: 100, }, ], ], ), ], line: 99, }, ], end: 1111, }, next: None, line: 101, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "reverse", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 103, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "reverse", ), Call( [ [ Symbol( "\"\\0\\1\\2\\3\"", ), ], ], ), ], line: 104, }, Operator( ( "==", true, ), ), Symbol( "\"\\3\\2\\1\\0\"", ), ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "reverse", ), Call( [ [ Symbol( "\"\\0001234\"", ), ], ], ), ], line: 105, }, Operator( ( "==", true, ), ), Symbol( "\"4321\\0\"", ), ], ], ), ], line: 104, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "30", ), ], step: None, code: CodeBlock { start: 1145, 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: 107, }, ], ], ), ], line: 107, }, ], ], ), ], line: 107, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 107, }, ], ], ), ], line: 107, }, ], end: 1164, }, line: 107, column: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "nil", ), ], ], ), ], line: 109, }, ], ], ), ], line: 109, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "12", ), ], ], ), ], line: 110, }, ], ], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 109, }, 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: 111, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Table { data: [], line: 112, column: 9, }, ], ], ), ], line: 112, }, ], [ Symbol( "'table:'", ), ], ], ), ], line: 112, }, ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "print", ), ], line: 113, }, ], ], ), ], line: 113, }, ], [ Symbol( "'function:'", ), ], ], ), ], line: 113, }, ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "1234567890123", ), ], ], ), ], line: 114, }, Operator( ( "==", true, ), ), Symbol( "'1234567890123'", ), ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "'\\0'", ), ], ], ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "true", ), ], ], ), ], line: 116, }, Operator( ( "==", true, ), ), Symbol( "\"true\"", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 117, }, Operator( ( "==", true, ), ), Symbol( "\"false\"", ), ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 117, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 118, }, ], values: [ [ Symbol( "'\"ílo\"\\n\\\\'", ), ], ], line: 120, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%q%s'", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 121, }, ], [ Ident { expr: [ Symbol( "x", ), ], line: 121, }, ], ], ), ], line: 121, }, Operator( ( "==", true, ), ), Symbol( "'\"\\\\\"ílo\\\\\"\\\\\\n\\\\\\\\\"\"ílo\"\\n\\\\'", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'%q'", ), ], [ Symbol( "\"\\0\"", ), ], ], ), ], line: 122, }, Operator( ( "==", true, ), ), MultilineString( "[[\"\\0\"]]", ), ], ], ), ], line: 121, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'return %q'", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 123, }, ], ], ), ], line: 123, }, ], ], ), Call( [], ), ], line: 123, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 123, }, ], ], ), ], line: 122, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 123, }, ], values: [ [ Symbol( "\"\\0\\1\\0023\\5\\0009\"", ), ], ], line: 124, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'return %q'", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 125, }, ], ], ), ], line: 125, }, ], ], ), Call( [], ), ], line: 125, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 125, }, ], ], ), ], line: 124, }, 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( "\"\\xe4\"", ), ], ], ), ], line: 126, }, ], [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Symbol( "\"b\"", ), ], ], ), ], line: 126, }, ], [ Symbol( "140", ), ], ], ), ], line: 126, }, Operator( ( "==", true, ), ), Symbol( "\"\\0\\xe4\\0b8c\\0\"", ), ], ], ), ], line: 125, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "''", ), ], ], ), ], line: 128, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 127, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "34", ), ], ], ), ], line: 129, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "48", ), ], ], ), ], line: 129, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "90", ), ], ], ), ], line: 129, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c\"", ), ], [ Symbol( "100", ), ], ], ), ], line: 129, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%c%c%c%c\"", ), ], [ Symbol( "34", ), ], [ Symbol( "48", ), ], [ Symbol( "90", ), ], [ Symbol( "100", ), ], ], ), ], line: 129, }, ], ], ), ], line: 128, }, 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: 131, }, Operator( ( "==", true, ), ), Symbol( "'not be\\0 is not \\0be'", ), ], ], ), ], line: 130, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%%%d %010d\"", ), ], [ Symbol( "10", ), ], [ Symbol( "23", ), ], ], ), ], line: 132, }, Operator( ( "==", true, ), ), Symbol( "\"%10 0000000023\"", ), ], ], ), ], line: 131, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%f\"", ), ], [ Symbol( "10.3", ), ], ], ), ], line: 133, }, ], ], ), ], line: 133, }, Operator( ( "==", true, ), ), Symbol( "10.3", ), ], ], ), ], line: 132, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 133, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "'\"%-50s\"'", ), ], [ Symbol( "'a'", ), ], ], ), ], line: 134, }, ], ], line: 134, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "52", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "sub", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 136, }, ], [ Symbol( "1", ), ], [ Symbol( "4", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "'\"a '", ), ], ], ), ], line: 135, }, 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: 138, }, ], ], ), ], line: 138, }, Operator( ( "==", true, ), ), Symbol( "\"-\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"%\"", ), ], [ Symbol( "20", ), ], ], ), ], line: 139, }, Operator( ( "..", true, ), ), Symbol( "\".20s\"", ), ], ], ), ], line: 136, }, 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: 140, }, ], ], ), ], line: 140, }, 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: 141, }, Operator( ( "..", true, ), ), Symbol( "\".20s\"", ), ], ], ), ], line: 140, }, ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%s %s\"", ), ], [ Symbol( "nil", ), ], [ Symbol( "true", ), ], ], ), ], line: 144, }, Operator( ( "==", true, ), ), Symbol( "\"nil true\"", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%s %.4s\"", ), ], [ Symbol( "false", ), ], [ Symbol( "true", ), ], ], ), ], line: 145, }, Operator( ( "==", true, ), ), Symbol( "\"false true\"", ), ], ], ), ], line: 144, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%.3s %.3s\"", ), ], [ Symbol( "false", ), ], [ Symbol( "true", ), ], ], ), ], line: 146, }, Operator( ( "==", true, ), ), Symbol( "\"fal tru\"", ), ], ], ), ], line: 145, }, Variable { names: [ ( "m", false, ), ], values: [ [ Ident { expr: [ Symbol( "setmetatable", ), Call( [ [ Table { data: [], line: 147, column: 7, }, ], [ Table { data: [ ( Some( [ Symbol( "__tostring", ), ], ), [ Lambda { args: [], body: CodeBlock { start: 1640, code: [ Return( Some( [ [ Symbol( "\"hello\"", ), ], ], ), ), ], end: 1643, }, line: 147, column: 17, }, ], ), ], line: 147, column: 18, }, ], ], ), ], line: 147, }, ], ], line: 147, column: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%s %.10s\"", ), ], [ Ident { expr: [ Symbol( "m", ), ], line: 148, }, ], [ Ident { expr: [ Symbol( "m", ), ], line: 148, }, ], ], ), ], line: 148, }, Operator( ( "==", true, ), ), Symbol( "\"hello hello\"", ), ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%x\"", ), ], [ Symbol( "0.3", ), ], ], ), ], line: 151, }, Operator( ( "==", true, ), ), Symbol( "\"0\"", ), ], ], ), ], line: 148, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%02x\"", ), ], [ Symbol( "0.1", ), ], ], ), ], line: 152, }, Operator( ( "==", true, ), ), Symbol( "\"00\"", ), ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%08X\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 153, }, Operator( ( "==", true, ), ), Symbol( "\"FFFFFFFF\"", ), ], ], ), ], line: 152, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%+08d\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 154, }, Operator( ( "==", true, ), ), Symbol( "\"+2147483647\"", ), ], ], ), ], line: 153, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%+08d\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], ], ), ], line: 155, }, Operator( ( "==", true, ), ), Symbol( "\"-2147483648\"", ), ], ], ), ], line: 154, }, 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: 159, }, ], ], ), ], line: 159, }, Operator( ( ">=", true, ), ), Symbol( "100", ), ], ], ), ], line: 155, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_nolonglong", ), ], line: 163, }, ], body: CodeBlock { start: 1759, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing large numbers for format\"", ), ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%8x\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "52", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 165, }, Operator( ( "==", true, ), ), Symbol( "\"fffffffffffff\"", ), ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 166, }, Operator( ( "==", true, ), ), Symbol( "\"-1\"", ), ], ], ), ], line: 165, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%u\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "62", ), ], ], ), ], line: 167, }, ], ], ), ], line: 167, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "62", ), ], ], ), ], line: 166, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%8x\"", ), ], [ Symbol( "0xffffffff", ), ], ], ), ], line: 168, }, Operator( ( "==", true, ), ), Symbol( "\"ffffffff\"", ), ], ], ), ], line: 167, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%8x\"", ), ], [ Symbol( "0x7fffffff", ), ], ], ), ], line: 169, }, Operator( ( "==", true, ), ), Symbol( "\"7fffffff\"", ), ], ], ), ], line: 168, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "53", ), ], ], ), ], line: 170, }, Operator( ( "==", true, ), ), Symbol( "\"9007199254740992\"", ), ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "53", ), ], ], ), ], line: 171, }, Operator( ( "==", true, ), ), Symbol( "\"-9007199254740992\"", ), ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"0x%8X\"", ), ], [ Symbol( "0x8f000003", ), ], ], ), ], line: 172, }, Operator( ( "==", true, ), ), Symbol( "\"0x8F000003\"", ), ], ], ), ], line: 171, }, Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "64", ), Operator( ( "-", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "64", ), Operator( ( "-", true, ), ), Symbol( "53", ), ], ), ], ], line: 174, column: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 175, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffffffff800", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%u\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 176, }, ], ], ), ], line: 176, }, ], ], ), ], line: 176, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 176, }, ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"0X%x\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 177, }, ], ], ), ], line: 177, }, ], ], ), ], line: 177, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 177, }, ], ], ), ], line: 176, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%x\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 178, }, ], ], ), ], line: 178, }, Operator( ( "==", true, ), ), Symbol( "\"fffffffffffff800\"", ), ], ], ), ], line: 177, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 179, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 179, }, Operator( ( "==", true, ), ), Symbol( "\"9223372036854774784\"", ), ], ], ), ], line: 178, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "x", ), ], line: 180, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 180, }, Operator( ( "==", true, ), ), Symbol( "\"-9223372036854774784\"", ), ], ], ), ], line: 179, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "63", ), ], ], ), ], line: 181, }, Operator( ( "==", true, ), ), Symbol( "\"-9223372036854775808\"", ), ], ], ), ], line: 180, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%x\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "63", ), ], ], ), ], line: 182, }, Operator( ( "==", true, ), ), Symbol( "\"8000000000000000\"", ), ], ], ), ], line: 181, }, ], end: 2012, }, next: None, line: 183, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_noformatA", ), ], line: 185, }, ], body: CodeBlock { start: 2016, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing 'format %a %A'\"", ), ], ], ), ], line: 186, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%.2a\"", ), ], [ Symbol( "0.5", ), ], ], ), ], line: 187, }, Operator( ( "==", true, ), ), Symbol( "\"0x1.00p-1\"", ), ], ], ), ], line: 186, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%A\"", ), ], [ Symbol( "0x1fffffffffffff", ), ], ], ), ], line: 188, }, Operator( ( "==", true, ), ), Symbol( "\"0X1.FFFFFFFFFFFFFP+52\"", ), ], ], ), ], line: 187, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%.4a\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "\"-0x1.8000p+1\"", ), ], ], ), ], line: 188, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%a\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "0.1", ), ], ], ), ], line: 190, }, ], ], ), ], line: 190, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0.1", ), ], ], ), ], line: 189, }, ], end: 2079, }, next: None, line: 191, column: 1, }, Function { local: true, name: [ Symbol( "check", ), ], args: [ "fmt", "msg", ], body: CodeBlock { start: 2087, code: [ Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), ], line: 196, }, ], [ Ident { expr: [ Symbol( "fmt", ), ], line: 196, }, ], [ Symbol( "10", ), ], ], ), ], line: 196, }, ], ], line: 196, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 197, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 197, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 197, }, ], ], ), ], line: 197, }, ], ], ), ], line: 196, }, ], end: 2117, }, line: 198, column: 1, }, Variable { names: [ ( "aux", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'0'", ), ], [ Symbol( "600", ), ], ], ), ], line: 200, }, ], ], line: 200, column: 11, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%100.3d\"", ), ], [ Symbol( "\"too long\"", ), ], ], ), ], line: 200, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%1\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "aux", ), ], line: 202, }, Operator( ( "..", true, ), ), Symbol( "\".3d\"", ), ], [ Symbol( "\"too long\"", ), ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%1.100d\"", ), ], [ Symbol( "\"too long\"", ), ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%10.1\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "aux", ), ], line: 204, }, Operator( ( "..", true, ), ), Symbol( "\"004d\"", ), ], [ Symbol( "\"too long\"", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%t\"", ), ], [ Symbol( "\"invalid option\"", ), ], ], ), ], line: 204, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "aux", ), ], line: 206, }, Operator( ( "..", true, ), ), Symbol( "\"d\"", ), ], [ Symbol( "\"repeated flags\"", ), ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "check", ), Call( [ [ Symbol( "\"%d %d\"", ), ], [ Symbol( "\"no value\"", ), ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), ], line: 211, }, ], [ Symbol( "\"%d\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "63", ), ], ], ), ], line: 211, }, ], ], ), ], line: 207, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), ], line: 212, }, ], [ Symbol( "\"%x\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "64", ), ], ], ), ], line: 212, }, ], ], ), ], line: 211, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), ], line: 213, }, ], [ Symbol( "\"%x\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "64", ), ], ], ), ], line: 213, }, ], ], ), ], line: 212, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), ], line: 214, }, ], [ Symbol( "\"%x\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 214, }, ], ], ), ], line: 213, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return 1\\n--comentário sem EOL no final\"", ), ], ], ), Call( [], ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 214, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 220, column: 7, }, ], ], ), ], line: 220, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 221, column: 8, }, ], [ Symbol( "'x'", ), ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 220, }, 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: 222, column: 13, }, ], [ Symbol( "'.\\0.'", ), ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Symbol( "\"\\0.\\0.\\0\\1.\\0.\\0\\1\\2\"", ), ], ], ), ], line: 221, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 223, column: 5, }, ], ], line: 223, column: 6, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "3000", ), ], step: None, code: CodeBlock { start: 2313, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 223, }, ], ), Symbol( "]", ), ], line: 223, }, ], values: [ [ Symbol( "\"xuxu\"", ), ], ], line: 223, column: 6, }, ], end: 2320, }, line: 223, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 224, }, ], [ Symbol( "\"123\"", ), ], ], ), ], line: 224, }, Operator( ( "..", true, ), ), Symbol( "\"123\"", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"xuxu123\"", ), ], [ Symbol( "3000", ), ], ], ), ], line: 224, }, ], ], ), ], line: 223, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 225, }, ], [ Symbol( "\"b\"", ), ], [ Symbol( "20", ), ], [ Symbol( "20", ), ], ], ), ], line: 225, }, Operator( ( "==", true, ), ), Symbol( "\"xuxu\"", ), ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 226, }, ], [ Symbol( "\"\"", ), ], [ Symbol( "20", ), ], [ Symbol( "21", ), ], ], ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "\"xuxuxuxu\"", ), ], ], ), ], line: 225, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 227, }, ], [ Symbol( "\"x\"", ), ], [ Symbol( "22", ), ], [ Symbol( "21", ), ], ], ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 228, }, ], [ Symbol( "\"3\"", ), ], [ Symbol( "2999", ), ], ], ), ], line: 228, }, Operator( ( "==", true, ), ), Symbol( "\"xuxu3xuxu\"", ), ], ], ), ], line: 227, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_no32", ), ], line: 229, }, ], body: CodeBlock { start: 2412, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 230, column: 8, }, ], [ Symbol( "\"x\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 230, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 230, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 231, column: 8, }, ], [ Symbol( "\"x\"", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], ], ), ], line: 231, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 230, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [], line: 232, column: 8, }, ], [ Symbol( "\"x\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), ], ], ), ], line: 232, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 231, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Table { data: [ ( Some( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ), [ Symbol( "\"alo\"", ), ], ), ], line: 233, column: 17, }, ], [ Symbol( "\"x\"", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 233, }, Operator( ( "==", true, ), ), Symbol( "\"alo\"", ), ], ], ), ], line: 232, }, ], end: 2525, }, next: None, line: 234, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), ], line: 236, }, ], [ Table { data: [ ( None, [ Symbol( "\"a\"", ), ], ), ( None, [ Symbol( "\"b\"", ), ], ), ( None, [ Table { data: [], line: 236, column: 16, }, ], ), ], line: 236, column: 17, }, ], ], ), ], line: 236, }, ], ], ), ], line: 234, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 236, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "\"a\"", ), ], ), ( None, [ Symbol( "\"b\"", ), ], ), ( None, [ Symbol( "\"c\"", ), ], ), ], line: 238, column: 9, }, ], ], line: 238, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 239, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 239, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 240, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 240, }, Operator( ( "==", true, ), ), Symbol( "\"a\"", ), ], ], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 241, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 241, }, Operator( ( "==", true, ), ), Symbol( "\"a,b\"", ), ], ], ), ], line: 240, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 242, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 242, }, Operator( ( "==", true, ), ), Symbol( "\"b,c\"", ), ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 243, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 243, }, Operator( ( "==", true, ), ), Symbol( "\"c\"", ), ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "concat", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 244, }, ], [ Symbol( "\",\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 243, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 246, }, ], body: CodeBlock { start: 2653, code: [ Variable { names: [ ( "locales", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"ptb\"", ), ], ), ( None, [ Symbol( "\"ISO-8859-1\"", ), ], ), ( None, [ Symbol( "\"pt_BR\"", ), ], ), ], line: 248, column: 10, }, ], ], line: 249, column: 0, }, Function { local: true, name: [ Symbol( "trylocale", ), ], args: [ "w", ], body: CodeBlock { start: 16, code: [ ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "locales", ), ], line: 250, }, ], step: None, code: CodeBlock { start: 8, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Ident { expr: [ Symbol( "locales", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 251, }, ], ), Symbol( "]", ), ], line: 251, }, ], [ Ident { expr: [ Symbol( "w", ), ], line: 251, }, ], ], ), ], line: 251, }, ], body: CodeBlock { start: 13, code: [ Return( Some( [ [ Symbol( "true", ), ], ], ), ), ], end: 16, }, next: None, line: 251, column: 16, }, ], end: 25, }, line: 252, column: 1, }, Return( Some( [ [ Symbol( "false", ), ], ], ), ), ], end: 44, }, line: 254, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "trylocale", ), Call( [ [ Symbol( "\"collate\"", ), ], ], ), ], line: 256, }, ], body: CodeBlock { start: 51, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"locale not supported\"", ), ], ], ), ], line: 257, }, ], end: 56, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 56, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"alo\"", ), Operator( ( "<", true, ), ), Symbol( "\"álo\"", ), Operator( ( "and", true, ), ), Symbol( "\"álo\"", ), Operator( ( "<", true, ), ), Symbol( "\"amo\"", ), ], ], ), ], line: 259, }, ], end: 67, }, next: None, line: 260, column: 1, }, ), line: 260, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "trylocale", ), Call( [ [ Symbol( "\"ctype\"", ), ], ], ), ], line: 262, }, ], body: CodeBlock { start: 74, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"locale not supported\"", ), ], ], ), ], line: 263, }, ], end: 79, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 79, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a = 3.4\"", ), ], ], ), ], line: 265, }, ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"á = 3.4\"", ), ], ], ), ], line: 266, }, ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"áéíóú\"", ), ], [ Symbol( "\"%a\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 267, }, Operator( ( "==", true, ), ), Symbol( "\"xxxxx\"", ), ], ], ), ], line: 266, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"áÁéÉ\"", ), ], [ Symbol( "\"%l\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 268, }, Operator( ( "==", true, ), ), Symbol( "\"xÁxÉ\"", ), ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Symbol( "\"áÁéÉ\"", ), ], [ Symbol( "\"%u\"", ), ], [ Symbol( "\"x\"", ), ], ], ), ], line: 269, }, Operator( ( "==", true, ), ), Symbol( "\"áxéx\"", ), ], ], ), ], line: 268, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "upper", ), Call( [ [ Symbol( "\"áÁé{xuxu}ção\"", ), ], ], ), ], line: 270, }, Operator( ( "==", true, ), ), Symbol( "\"ÁÁÉ{XUXU}ÇÃO\"", ), ], ], ), ], line: 269, }, ], end: 151, }, next: None, line: 271, column: 1, }, ), line: 271, column: 1, }, Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "\"C\"", ), ], ], ), ], line: 271, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [], ), ], line: 274, }, Operator( ( "==", true, ), ), Symbol( "'C'", ), ], ], ), ], line: 273, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "nil", ), ], [ Symbol( "\"numeric\"", ), ], ], ), ], line: 275, }, Operator( ( "==", true, ), ), Symbol( "'C'", ), ], ], ), ], line: 274, }, ], end: 2834, }, next: None, line: 277, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 277, }, ]