--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/literals.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'testing scanner'", ), ], ], ), ], line: 4, }, Variable { names: [ ( "debug", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"debug\"", ), ], ], ), ], line: 6, }, ], ], line: 9, column: 0, }, Function { local: true, name: [ Symbol( "dostring", ), ], args: [ "x", ], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 9, }, ], ], ), ], line: 9, }, ], [ Symbol( "\"\"", ), ], ], ), Call( [], ), ], line: 9, }, ], ], ), ), ], end: 28, }, line: 9, column: 19, }, Ident { expr: [ Symbol( "dostring", ), Call( [ [ Symbol( "\"x \\v\\f = \\t\\r 'a\\0a' \\v\\f\\f\"", ), ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 12, }, Operator( ( "==", true, ), ), Symbol( "'a\\0a'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 12, }, ], ], ), ], line: 12, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\n\\\"\\'\\\\'", ), Operator( ( "==", true, ), ), MultilineString( "[[\n\n\"'\\]]", ), ], ], ), ], line: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Symbol( "\"\\a\\b\\f\\n\\r\\t\\v\"", ), ], [ Symbol( "\"^%c%c%c%c%c%c%c$\"", ), ], ], ), ], line: 19, }, ], ], ), ], line: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\09912\"", ), Operator( ( "==", true, ), ), Symbol( "'c12'", ), ], ], ), ], line: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\99ab\"", ), Operator( ( "==", true, ), ), Symbol( "'cab'", ), ], ], ), ], line: 22, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\099\"", ), Operator( ( "==", true, ), ), Symbol( "'\\99'", ), ], ], ), ], line: 23, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\099\\n\"", ), Operator( ( "==", true, ), ), Symbol( "'c\\10'", ), ], ], ), ], line: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'\\0\\0\\0alo'", ), Operator( ( "==", true, ), ), Symbol( "'\\0'", ), Operator( ( "..", true, ), ), Symbol( "'\\0\\0'", ), Operator( ( "..", true, ), ), Symbol( "'alo'", ), ], ], ), ], line: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "010", ), Operator( ( "..", true, ), ), Symbol( "020", ), Operator( ( "..", true, ), ), Operator( ( "-", false, ), ), Symbol( "030", ), Operator( ( "==", true, ), ), Symbol( "\"1020-30\"", ), ], ], ), ], line: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\x00\\x05\\x10\\x1f\\x3C\\xfF\\xe8\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\0\\5\\16\\31\\60\\255\\232\"", ), ], ], ), ], line: 28, }, Function { local: true, name: [ Symbol( "lexstring", ), ], args: [ "x", "y", "n", ], body: CodeBlock { start: 125, code: [ Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "'return '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 34, }, Operator( ( "..", true, ), ), Symbol( "', require\"debug\".getinfo(1).currentline'", ), ], [ Symbol( "''", ), ], ], ), ], line: 34, }, ], ], ), ], line: 34, }, ], ], line: 36, column: 0, }, Variable { names: [ ( "s", false, ), ( "l", false, ), ], values: [ [ Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 36, }, ], ], line: 36, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 37, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 37, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 37, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 37, }, ], ], ), ], line: 36, }, ], end: 160, }, line: 38, column: 1, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"'abc\\\\z \\n efg'\"", ), ], [ Symbol( "\"abcefg\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"'abc\\\\z \\n\\n\\n'\"", ), ], [ Symbol( "\"abc\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"'\\\\z \\n\\t\\f\\v\\n'\"", ), ], [ Symbol( "\"\"", ), ], [ Symbol( "3", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"[[\\nalo\\nalo\\n\\n]]\"", ), ], [ Symbol( "\"alo\\nalo\\n\\n\"", ), ], [ Symbol( "5", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"[[\\nalo\\ralo\\n\\n]]\"", ), ], [ Symbol( "\"alo\\nalo\\n\\n\"", ), ], [ Symbol( "5", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"[[\\nalo\\ralo\\r\\n]]\"", ), ], [ Symbol( "\"alo\\nalo\\n\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"[[\\ralo\\n\\ralo\\r\\n]]\"", ), ], [ Symbol( "\"alo\\nalo\\n\"", ), ], [ Symbol( "4", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "lexstring", ), Call( [ [ Symbol( "\"[[alo]\\n]alo]]\"", ), ], [ Symbol( "\"alo]\\n]alo\"", ), ], [ Symbol( "2", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"abc\\z\n def\\z\n ghi\\z\n \"", ), Operator( ( "==", true, ), ), Symbol( "'abcdefghi'", ), ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{0}\\u{00000000}\\x00\\0\"", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "0", ), ], [ Symbol( "0", ), ], [ Symbol( "0", ), ], ], ), ], line: 56, }, ], ], ), ], line: 52, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{0}\\u{7F}\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\x00\\x7F\"", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{80}\\u{7FF}\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\xC2\\x80\\xDF\\xBF\"", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{800}\\u{FFFF}\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\xE0\\xA0\\x80\\xEF\\xBF\\xBF\"", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{10000}\\u{1FFFFF}\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\xF0\\x90\\x80\\x80\\xF7\\xBF\\xBF\\xBF\"", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{200000}\\u{3FFFFFF}\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\xF8\\x88\\x80\\x80\\x80\\xFB\\xBF\\xBF\\xBF\\xBF\"", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\u{4000000}\\u{7FFFFFFF}\"", ), Operator( ( "==", true, ), ), Symbol( "\"\\xFC\\x84\\x80\\x80\\x80\\x80\\xFD\\xBF\\xBF\\xBF\\xBF\\xBF\"", ), ], ], ), ], line: 71, }, Function { local: true, name: [ Symbol( "lexerror", ), ], args: [ "s", "err", ], body: CodeBlock { start: 291, code: [ Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "'return '", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "s", ), ], line: 80, }, ], [ Symbol( "''", ), ], ], ), ], line: 80, }, ], ], line: 81, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "err", ), ], line: 81, }, Operator( ( "~=", true, ), ), Symbol( "''", ), ], body: CodeBlock { start: 18, code: [ Alter { names: [ Ident { expr: [ Symbol( "err", ), ], line: 81, }, ], values: [ [ Ident { expr: [ Symbol( "err", ), ], line: 81, }, Operator( ( "..", true, ), ), Symbol( "\"'\"", ), ], ], line: 81, column: 5, }, ], end: 24, }, next: None, line: 81, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "st", ), ], line: 82, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 82, }, ], [ Symbol( "\"near .-\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "err", ), ], line: 82, }, ], ], ), ], line: 82, }, ], ], ), ], line: 81, }, ], end: 332, }, line: 83, column: 1, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\x\"]]", ), ], [ MultilineString( "[[\\x\"]]", ), ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\x]]", ), ], [ MultilineString( "[[\\x]]", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\x]]", ), ], [ MultilineString( "[[\\x]]", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\x5\"]]", ), ], [ MultilineString( "[[\\x5\"]]", ), ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\x5]]", ), ], [ MultilineString( "[[\\x5]]", ), ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\xr\"]]", ), ], [ MultilineString( "[[\\xr]]", ), ], ], ), ], line: 89, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\xr]]", ), ], [ MultilineString( "[[\\xr]]", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\x.]]", ), ], [ MultilineString( "[[\\x.]]", ), ], ], ), ], line: 91, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\x8%\"]]", ), ], [ MultilineString( "[[\\x8%%]]", ), ], ], ), ], line: 92, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\xAG]]", ), ], [ MultilineString( "[[\\xAG]]", ), ], ], ), ], line: 93, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\g\"]]", ), ], [ MultilineString( "[[\\g]]", ), ], ], ), ], line: 94, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\g]]", ), ], [ MultilineString( "[[\\g]]", ), ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\.\"]]", ), ], [ MultilineString( "[[\\%.]]", ), ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"\\999\"]]", ), ], [ MultilineString( "[[\\999\"]]", ), ], ], ), ], line: 97, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"xyz\\300\"]]", ), ], [ MultilineString( "[[\\300\"]]", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\" \\256\"]]", ), ], [ MultilineString( "[[\\256\"]]", ), ], ], ), ], line: 100, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u{100000000}\"]]", ), ], [ MultilineString( "[[abc\\u{100000000]]", ), ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u11r\"]]", ), ], [ MultilineString( "[[abc\\u1]]", ), ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u\"]]", ), ], [ MultilineString( "[[abc\\u\"]]", ), ], ], ), ], line: 105, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u{11r\"]]", ), ], [ MultilineString( "[[abc\\u{11r]]", ), ], ], ), ], line: 106, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u{11\"]]", ), ], [ MultilineString( "[[abc\\u{11\"]]", ), ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u{11]]", ), ], [ MultilineString( "[[abc\\u{11]]", ), ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[[\"abc\\u{r\"]]", ), ], [ MultilineString( "[[abc\\u{r]]", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ Symbol( "\"[=[alo]]\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ Symbol( "\"[=[alo]=\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ Symbol( "\"[=[alo]\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ Symbol( "\"'alo\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ Symbol( "\"'alo \\\\z \\n\\n\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ Symbol( "\"'alo \\\\z\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 117, }, Ident { expr: [ Symbol( "lexerror", ), Call( [ [ MultilineString( "[['alo \\98]]", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 118, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "255", ), ], step: None, code: CodeBlock { start: 519, code: [ Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 123, }, ], ], ), ], line: 123, }, ], ], line: 123, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 124, }, ], [ Symbol( "\"[a-zA-Z_]\"", ), ], ], ), ], line: 124, }, Operator( ( "==", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 124, }, Operator( ( "..", true, ), ), Symbol( "\"=1\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 124, }, ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 125, }, ], [ Symbol( "\"[a-zA-Z_0-9]\"", ), ], ], ), ], line: 125, }, Operator( ( "==", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "s", ), ], line: 126, }, Operator( ( "..", true, ), ), Symbol( "\"1 = 1\"", ), ], [ Symbol( "\"\"", ), ], ], ), ], line: 126, }, ], ], ), ], line: 124, }, ], end: 575, }, line: 127, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "var1", ), ], line: 127, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "15000", ), ], ], ), ], line: 132, }, Operator( ( "..", true, ), ), Symbol( "'1'", ), ], ], line: 132, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "var2", ), ], line: 132, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'a'", ), ], [ Symbol( "15000", ), ], ], ), ], line: 133, }, Operator( ( "..", true, ), ), Symbol( "'2'", ), ], ], line: 133, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "prog", ), ], line: 133, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ MultilineString( "[[\n %s = 5\n %s = %s + 1\n return function () return %s - %s end\n]]", ), ], [ Ident { expr: [ Symbol( "var1", ), ], line: 138, }, ], [ Ident { expr: [ Symbol( "var2", ), ], line: 138, }, ], [ Ident { expr: [ Symbol( "var1", ), ], line: 138, }, ], [ Ident { expr: [ Symbol( "var1", ), ], line: 138, }, ], [ Ident { expr: [ Symbol( "var2", ), ], line: 138, }, ], ], ), ], line: 134, }, ], ], line: 139, column: 0, }, Variable { names: [ ( "f", false, ), ], values: [ [ Ident { expr: [ Symbol( "dostring", ), Call( [ [ Ident { expr: [ Symbol( "prog", ), ], line: 139, }, ], ], ), ], line: 139, }, ], ], line: 139, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "var1", ), ], line: 140, }, ], ), Symbol( "]", ), ], line: 140, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_G", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "var2", ), ], line: 140, }, ], ), Symbol( "]", ), ], line: 140, }, Operator( ( "==", true, ), ), Symbol( "6", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "f", ), Call( [], ), ], line: 140, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 139, }, Alter { names: [ Ident { expr: [ Symbol( "var1", ), ], line: 140, }, Ident { expr: [ Symbol( "var2", ), ], line: 141, }, Ident { expr: [ Symbol( "f", ), ], line: 141, }, ], values: [ [ Symbol( "nil", ), ], ], line: 141, column: 7, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"\\n\\t\"", ), Operator( ( "==", true, ), ), MultilineString( "[[\n\n\t]]", ), ], ], ), ], line: 142, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ MultilineString( "[[\n\n $debug]]", ), Operator( ( "==", true, ), ), Symbol( "\"\\n $debug\"", ), ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ MultilineString( "[[ [ ]]", ), Operator( ( "~=", true, ), ), MultilineString( "[[ ] ]]", ), ], ], ), ], line: 150, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 151, }, ], values: [ [ Symbol( "\"001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789\"", ), ], ], line: 153, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "len", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 154, }, ], ], ), ], line: 154, }, Operator( ( "==", true, ), ), Symbol( "960", ), ], ], ), ], line: 153, }, Alter { names: [ Ident { expr: [ Symbol( "prog", ), ], line: 154, }, ], values: [ [ MultilineString( "[=[\nprint('+')\n\na1 = [[\"this is a 'string' with several 'quotes'\"]]\na2 = \"'quotes'\"\n\nassert(string.find(a1, a2) == 34)\nprint('+')\n\na1 = [==[temp = [[an arbitrary value]]; ]==]\nassert(load(a1))()\nassert(temp == 'an arbitrary value')\n-- long strings --\nb = \"001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789001234567890123456789012345678901234567891234567890123456789012345678901234567890012345678901234567890123456789012345678912345678901234567890123456789012345678900123456789012345678901234567890123456789123456789012345678901234567890123456789\"\nassert(string.len(b) == 960)\nprint('+')\n\na = [[00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n00123456789012345678901234567890123456789123456789012345678901234567890123456789\n]]\nassert(string.len(a) == 1863)\nassert(string.sub(a, 1, 40) == string.sub(b, 1, 40))\nx = 1\n]=]", ), ], ], line: 199, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 199, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 201, }, ], values: [ [ Symbol( "nil", ), ], ], line: 202, column: 3, }, Ident { expr: [ Symbol( "dostring", ), Call( [ [ Ident { expr: [ Symbol( "prog", ), ], line: 203, }, ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 204, }, ], ], ), ], line: 203, }, Alter { names: [ Ident { expr: [ Symbol( "prog", ), ], line: 204, }, ], values: [ [ Symbol( "nil", ), ], ], line: 206, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 206, }, ], values: [ [ Symbol( "nil", ), ], ], line: 207, column: 3, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 207, }, ], values: [ [ Symbol( "nil", ), ], ], line: 211, column: 0, }, DoBlock( CodeBlock { start: 718, code: [ Function { local: true, name: [ Symbol( "getadd", ), ], args: [ "s", ], body: CodeBlock { start: 6, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%p\"", ), ], [ Ident { expr: [ Symbol( "s", ), ], line: 214, }, ], ], ), ], line: 214, }, ], ], ), ), ], end: 16, }, line: 214, column: 16, }, Variable { names: [ ( "s1", false, ), ], values: [ [ Symbol( "\"01234567890123456789012345678901234567890123456789\"", ), ], ], line: 217, column: 0, }, Variable { names: [ ( "s2", false, ), ], values: [ [ Symbol( "\"01234567890123456789012345678901234567890123456789\"", ), ], ], line: 218, column: 0, }, Variable { names: [ ( "s3", false, ), ], values: [ [ Symbol( "\"01234567890123456789012345678901234567890123456789\"", ), ], ], line: 219, column: 0, }, Function { local: true, name: [ Symbol( "foo", ), ], args: [], body: CodeBlock { start: 39, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "s1", ), ], line: 219, }, ], ], ), ), ], end: 42, }, line: 219, column: 8, }, Function { local: true, name: [ Symbol( "foo1", ), ], args: [], body: CodeBlock { start: 47, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "s3", ), ], line: 220, }, ], ], ), ), ], end: 50, }, line: 220, column: 8, }, Function { local: true, name: [ Symbol( "foo2", ), ], args: [], body: CodeBlock { start: 55, code: [ Return( Some( [ [ Symbol( "\"01234567890123456789012345678901234567890123456789\"", ), ], ], ), ), ], end: 58, }, line: 223, column: 1, }, Variable { names: [ ( "a1", false, ), ], values: [ [ Ident { expr: [ Symbol( "getadd", ), Call( [ [ Ident { expr: [ Symbol( "s1", ), ], line: 224, }, ], ], ), ], line: 224, }, ], ], line: 224, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a1", ), ], line: 225, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "getadd", ), Call( [ [ Ident { expr: [ Symbol( "s2", ), ], line: 225, }, ], ], ), ], line: 225, }, ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a1", ), ], line: 226, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "getadd", ), Call( [ [ Ident { expr: [ Symbol( "foo", ), Call( [], ), ], line: 226, }, ], ], ), ], line: 226, }, ], ], ), ], line: 225, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a1", ), ], line: 227, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "getadd", ), Call( [ [ Ident { expr: [ Symbol( "foo1", ), Call( [], ), ], line: 227, }, ], ], ), ], line: 227, }, ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a1", ), ], line: 228, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "getadd", ), Call( [ [ Ident { expr: [ Symbol( "foo2", ), Call( [], ), ], line: 228, }, ], ], ), ], line: 228, }, ], ], ), ], line: 227, }, Variable { names: [ ( "sd", false, ), ], values: [ [ Symbol( "\"0123456789\"", ), Operator( ( "..", true, ), ), Symbol( "\"0123456789012345678901234567890123456789\"", ), ], ], line: 230, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "sd", ), ], line: 231, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "s1", ), ], line: 231, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "getadd", ), Call( [ [ Ident { expr: [ Symbol( "sd", ), ], line: 231, }, ], ], ), ], line: 231, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "a1", ), ], line: 231, }, ], ], ), ], line: 230, }, ], end: 845, }, ), Alter { names: [ Ident { expr: [ Symbol( "prog", ), ], line: 232, }, ], values: [ [ MultilineString( "[[\na = 1 -- a comment\nb = 2\n\n\nx = [=[\nhi\n]=]\ny = \"\\\nhello\\r\\n\\\n\"\nreturn require\"debug\".getinfo(1).currentline\n]]", ), ], ], line: 250, column: 0, }, ForFuncLoop { iters: [ "_", "n", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [ ( None, [ Symbol( "\"\\n\"", ), ], ), ( None, [ Symbol( "\"\\r\"", ), ], ), ( None, [ Symbol( "\"\\n\\r\"", ), ], ), ( None, [ Symbol( "\"\\r\\n\"", ), ], ), ], line: 250, column: 15, }, ], ], ), ], line: 250, }, ], stop: None, initial: None, code: CodeBlock { start: 864, code: [ Variable { names: [ ( "prog", false, ), ( "nn", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "prog", ), ], line: 251, }, ], [ Symbol( "\"\\n\"", ), ], [ Ident { expr: [ Symbol( "n", ), ], line: 251, }, ], ], ), ], line: 251, }, ], ], line: 251, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "dostring", ), Call( [ [ Ident { expr: [ Symbol( "prog", ), ], line: 252, }, ], ], ), ], line: 252, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "nn", ), ], line: 252, }, ], ], ), ], line: 251, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "x", ), ], line: 253, }, Operator( ( "==", true, ), ), Symbol( "\"hi\\n\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "_G", ), Symbol( ".", ), Symbol( "y", ), ], line: 253, }, Operator( ( "==", true, ), ), Symbol( "\"\\nhello\\r\\n\\n\"", ), ], ], ), ], line: 252, }, ], end: 903, }, line: 254, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 254, }, ], values: [ [ MultilineString( "[==[]=]==]", ), ], ], line: 258, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 259, }, Operator( ( "==", true, ), ), Symbol( "\"]=\"", ), ], ], ), ], line: 258, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 259, }, ], values: [ [ MultilineString( "[==[[===[[=[]]=][====[]]===]===]==]", ), ], ], line: 261, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 262, }, Operator( ( "==", true, ), ), Symbol( "\"[===[[=[]]=][====[]]===]===\"", ), ], ], ), ], line: 261, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 262, }, ], values: [ [ MultilineString( "[====[[===[[=[]]=][====[]]===]===]====]", ), ], ], line: 264, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 265, }, Operator( ( "==", true, ), ), Symbol( "\"[===[[=[]]=][====[]]===]===\"", ), ], ], ), ], line: 264, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 265, }, ], values: [ [ MultilineString( "[=[]]]]]]]]]=]", ), ], ], line: 267, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 268, }, Operator( ( "==", true, ), ), Symbol( "\"]]]]]]]]\"", ), ], ], ), ], line: 267, }, Variable { names: [ ( "x", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "\"=\"", ), ], ), ( None, [ Symbol( "\"[\"", ), ], ), ( None, [ Symbol( "\"]\"", ), ], ), ( None, [ Symbol( "\"\\n\"", ), ], ), ], line: 279, column: 12, }, ], ], line: 280, column: 0, }, Variable { names: [ ( "len", false, ), ], values: [ [ Symbol( "4", ), ], ], line: 281, column: 0, }, Function { local: true, name: [ Symbol( "gen", ), ], args: [ "c", "n", ], body: CodeBlock { start: 963, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "n", ), ], line: 282, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "yield", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 282, }, ], ], ), ], line: 282, }, ], end: 12, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 12, code: [ ForFuncLoop { iters: [ "_", "a", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 284, }, ], ], ), ], line: 284, }, ], stop: None, initial: None, code: CodeBlock { start: 10, code: [ Ident { expr: [ Symbol( "gen", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 285, }, Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 285, }, ], [ Ident { expr: [ Symbol( "n", ), ], line: 285, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 285, }, ], end: 21, }, line: 286, column: 1, }, ], end: 34, }, next: None, line: 287, column: 1, }, ), line: 287, column: 1, }, ], end: 998, }, line: 288, column: 1, }, ForFuncLoop { iters: [ "s", ], expr: [ Ident { expr: [ Symbol( "coroutine", ), Symbol( ".", ), Symbol( "wrap", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 1008, code: [ Ident { expr: [ Symbol( "gen", ), Call( [ [ Symbol( "\"\"", ), ], [ Ident { expr: [ Symbol( "len", ), ], line: 290, }, ], ], ), ], line: 290, }, ], end: 1015, }, line: 290, column: 17, }, ], ], ), ], line: 290, }, ], stop: None, initial: None, code: CodeBlock { start: 1017, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 291, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return [====[\\n\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "s", ), ], line: 291, }, Operator( ( "..", true, ), ), Symbol( "\"]====]\"", ), ], [ Symbol( "\"\"", ), ], ], ), Call( [], ), ], line: 291, }, ], ], ), ], line: 291, }, ], end: 1035, }, line: 292, column: 1, }, IfStatement { condition: [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "\"pt_BR\"", ), ], ], ), ], line: 296, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "\"ptb\"", ), ], ], ), ], line: 296, }, ], body: CodeBlock { start: 1050, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"3,4\"", ), ], ], ), ], line: 297, }, Operator( ( "==", true, ), ), Symbol( "3.4", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"3.4\"", ), ], ], ), ], line: 297, }, Operator( ( "==", true, ), ), Symbol( "3.4", ), ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\" -.4 \"", ), ], ], ), ], line: 298, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0.4", ), ], ], ), ], line: 297, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\" +0x.41 \"", ), ], ], ), ], line: 299, }, Operator( ( "==", true, ), ), Symbol( "0.25390625", ), ], ], ), ], line: 298, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a = (3,4)\"", ), ], ], ), ], line: 300, }, ], ], ), ], line: 299, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return 3.4\"", ), ], ], ), ], line: 301, }, ], ], ), Call( [], ), ], line: 301, }, Operator( ( "==", true, ), ), Symbol( "3.4", ), ], ], ), ], line: 300, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return .4,3\"", ), ], ], ), ], line: 302, }, ], ], ), Call( [], ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "0.4", ), ], ], ), ], line: 301, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return 4.\"", ), ], ], ), ], line: 303, }, ], ], ), Call( [], ), ], line: 303, }, Operator( ( "==", true, ), ), Symbol( "4.0", ), ], ], ), ], line: 302, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return 4.+.5\"", ), ], ], ), ], line: 304, }, ], ], ), Call( [], ), ], line: 304, }, Operator( ( "==", true, ), ), Symbol( "4.5", ), ], ], ), ], line: 303, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" 0x.1 \"", ), Operator( ( "+", true, ), ), Symbol( "\" 0x,1\"", ), Operator( ( "+", true, ), ), Symbol( "\"-0X.1\\t\"", ), Operator( ( "==", true, ), ), Symbol( "0.0625", ), ], ], ), ], line: 304, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"inf\"", ), ], ], ), ], line: 308, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"NAN\"", ), ], ], ), ], line: 308, }, ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"return %q\"", ), ], [ Symbol( "4.51", ), ], ], ), ], line: 310, }, ], ], ), ], line: 310, }, ], ], ), Call( [], ), ], line: 310, }, Operator( ( "==", true, ), ), Symbol( "4.51", ), ], ], ), ], line: 308, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return 4.5.\"", ), ], ], ), ], line: 312, }, ], ], line: 312, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 313, }, ], [ Symbol( "\"'4%.5%.'\"", ), ], ], ), ], line: 313, }, ], ], ), ], line: 312, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "os", ), Symbol( ".", ), Symbol( "setlocale", ), Call( [ [ Symbol( "\"C\"", ), ], ], ), ], line: 315, }, ], ], ), ], line: 313, }, ], end: 1218, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 1218, code: [ Expr( [ Ident { expr: [ Symbol( "Message", ), ], line: 317, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "print", ), ], line: 317, }, ], ), Ident { expr: [ Call( [ [ Symbol( "'\\n >>> pt_BR locale not available: skipping decimal point tests <<<\\n'", ), ], ], ), ], line: 317, }, ], end: 1227, }, next: None, line: 319, column: 1, }, ), line: 319, column: 1, }, Variable { names: [ ( "s", false, ), ], values: [ [ Symbol( "\"a string with \\r and \\n and \\r\\n and \\n\\r\"", ), ], ], line: 324, column: 0, }, Variable { names: [ ( "c", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"return %q\"", ), ], [ Ident { expr: [ Symbol( "s", ), ], line: 324, }, ], ], ), ], line: 324, }, ], ], line: 324, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 325, }, ], ], ), ], line: 325, }, ], ], ), Call( [], ), ], line: 325, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "s", ), ], line: 325, }, ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a = 'non-ending string\"", ), ], ], ), ], line: 328, }, ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a = 'non-ending string\\n'\"", ), ], ], ), ], line: 329, }, ], ], ), ], line: 328, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a = '\\\\345'\"", ), ], ], ), ], line: 330, }, ], ], ), ], line: 329, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"a = [=x]\"", ), ], ], ), ], line: 331, }, ], ], ), ], line: 330, }, Function { local: true, name: [ Symbol( "malformednum", ), ], args: [ "n", "exp", ], body: CodeBlock { start: 1288, code: [ Variable { names: [ ( "s", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 334, }, ], ], ), ], line: 334, }, ], ], line: 334, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 335, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 335, }, ], [ Ident { expr: [ Symbol( "exp", ), ], line: 335, }, ], ], ), ], line: 335, }, ], ], ), ], line: 334, }, ], end: 1314, }, line: 336, column: 1, }, Ident { expr: [ Symbol( "malformednum", ), Call( [ [ Symbol( "\"0xe-\"", ), ], [ Symbol( "\"near \"", ), ], ], ), ], line: 336, }, Ident { expr: [ Symbol( "malformednum", ), Call( [ [ Symbol( "\"0xep-p\"", ), ], [ Symbol( "\"malformed number\"", ), ], ], ), ], line: 338, }, Ident { expr: [ Symbol( "malformednum", ), Call( [ [ Symbol( "\"1print()\"", ), ], [ Symbol( "\"malformed number\"", ), ], ], ), ], line: 339, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 340, }, ]