--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-tests/math.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing numbers and math lib\"", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0e12", ), Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0.2e2", ), Operator( ( "==", true, ), ), Symbol( "20", ), Operator( ( "and", true, ), ), Symbol( "2.0e-1", ), Operator( ( "==", true, ), ), Symbol( "0.2", ), ], ], ), ], line: 1, }, DoBlock( CodeBlock { start: 27, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Symbol( "\"2\"", ), ], [ Symbol( "\" 3e0 \"", ), ], [ Symbol( "\" 10 \"", ), ], ], line: 8, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 9, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 9, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 9, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 9, }, Operator( ( "+", true, ), ), Symbol( "\"2\"", ), Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Symbol( "\"10\"", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 9, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 10, }, ], ], ), ], line: 10, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 11, }, Operator( ( "==", true, ), ), Symbol( "\"2\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 11, }, Operator( ( "==", true, ), ), Symbol( "\" 3e0 \"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 11, }, Operator( ( "==", true, ), ), Symbol( "\" 10 \"", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "c", ), ], line: 11, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "\" 10 \"", ), ], ], ), ], line: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 12, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 12, }, Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 12, }, Operator( ( "==", true, ), ), Symbol( "08", ), ], ], ), ], line: 11, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 12, }, ], values: [ [ Symbol( "0", ), ], ], line: 13, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 14, }, Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0", ), ], ], ), ], line: 13, }, ], end: 138, }, ), DoBlock( CodeBlock { start: 139, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], line: 19, column: 0, }, Variable { names: [ ( "mz", false, ), ], values: [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 19, }, ], ], line: 19, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 19, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "0", ), ], ), [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "40", ), ], ), ( None, [ Symbol( "50", ), ], ), ], line: 20, column: 17, }, ], ], line: 20, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "mz", ), ], line: 21, }, ], ), Symbol( "]", ), ], line: 21, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 21, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "0", ), ], ), Symbol( "]", ), ], line: 21, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 21, }, ], ], ), ], line: 20, }, ], end: 191, }, ), DoBlock( CodeBlock { start: 192, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Symbol( "3.5", ), ], ], ), ], line: 25, }, ], ], line: 25, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 27, }, Operator( ( ">", true, ), ), Symbol( "10e30", ), ], ], ), ], line: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 28, }, Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "10e30", ), ], ], ), ], line: 27, }, ], end: 232, }, ), Function { local: false, name: [ Symbol( "f", ), ], args: [ "...", ], body: CodeBlock { start: 237, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Symbol( "...", ), ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Expr( [ Symbol( "...", ), ], ), Ident { expr: [], line: 33, }, ], ], ), ), ], end: 15, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Symbol( "\"***\"", ), ], ], ), ), ], end: 18, }, next: None, line: 36, column: 1, }, ), line: 36, column: 1, }, ], end: 256, }, line: 37, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"2\"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"2 \"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" -2 \"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" -0xa \"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "9", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Table { data: [], line: 48, column: 5, }, ], ], ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+0.01'", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "100", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+.01'", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "0.01", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'.01'", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "0.01", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-1.'", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+1.'", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+ 0.01'", ), ], ], ), ], line: 52, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+.e1'", ), ], ], ), ], line: 52, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1e'", ), ], ], ), ], line: 52, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1.0e+'", ), ], ], ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "nil", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'.'", ), ], ], ), ], line: 53, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-012'", ), ], ], ), ], line: 55, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "010", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-1.2e2'", ), ], ], ), ], line: 56, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Operator( ( "-", true, ), ), Operator( ( "-", false, ), ), Symbol( "120", ), ], ], ), ], line: 55, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"0xffffffffffff\"", ), ], ], ), ], line: 58, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "12", ), ], ), Ident { expr: [], line: 58, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"0x\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"f\"", ), ], [ Symbol( "150", ), ], ], ), ], line: 59, }, ], ], ), ], line: 59, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "150", ), ], ), Ident { expr: [], line: 59, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 58, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x3.'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'0'", ), ], [ Symbol( "100", ), ], ], ), ], line: 60, }, ], ], ), ], line: 60, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x0.'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'0'", ), ], [ Symbol( "150", ), ], ], ), ], line: 61, }, Operator( ( "..", true, ), ), Symbol( "\"1\"", ), ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "151", ), ], ), Ident { expr: [], line: 61, }, ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 001010 '", ), ], [ Symbol( "2", ), ], ], ), ], line: 64, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 001010 '", ), ], [ Symbol( "10", ), ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Symbol( "001010", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -1010 '", ), ], [ Symbol( "2", ), ], ], ), ], line: 66, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "10", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'10'", ), ], [ Symbol( "36", ), ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Symbol( "36", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -10 '", ), ], [ Symbol( "36", ), ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "36", ), ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' +1Z '", ), ], [ Symbol( "36", ), ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Symbol( "36", ), Operator( ( "+", true, ), ), Symbol( "35", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -1z '", ), ], [ Symbol( "36", ), ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "36", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "35", ), ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-fFfa'", ), ], [ Symbol( "16", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Symbol( "10", ), Operator( ( "+", true, ), ), Expr( [ Symbol( "16", ), Operator( ( "*", true, ), ), Expr( [ Symbol( "15", ), Operator( ( "+", true, ), ), Expr( [ Symbol( "16", ), Operator( ( "*", true, ), ), Expr( [ Symbol( "15", ), Operator( ( "+", true, ), ), Expr( [ Symbol( "16", ), Operator( ( "*", true, ), ), Symbol( "15", ), ], ), Ident { expr: [], line: 71, }, ], ), Ident { expr: [], line: 71, }, ], ), Ident { expr: [], line: 71, }, ], ), Ident { expr: [], line: 71, }, ], ), Ident { expr: [], line: 71, }, ], ), Ident { expr: [], line: 71, }, ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'1'", ), ], [ Symbol( "42", ), ], ], ), ], line: 72, }, ], [ Symbol( "2", ), ], ], ), ], line: 72, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "42", ), ], ], ), ], line: 71, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'1'", ), ], [ Symbol( "34", ), ], ], ), ], line: 73, }, ], [ Symbol( "2", ), ], ], ), ], line: 73, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "34", ), ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'ffffFFFF'", ), ], [ Symbol( "16", ), ], ], ), ], line: 74, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0ffffFFFF'", ), ], [ Symbol( "16", ), ], ], ), ], line: 75, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0ffffffFFFF'", ), ], [ Symbol( "16", ), ], ], ), ], line: 76, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), ], ], ), ], line: 75, }, ForLoop { iter: "i", start: [ Symbol( "2", ), ], end: [ Symbol( "36", ), ], step: None, code: CodeBlock { start: 685, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'\\t10000000000\\t'", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 78, }, ], ], ), ], line: 78, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 78, }, Operator( ( "^", true, ), ), Symbol( "10", ), ], ], ), ], line: 78, }, ], end: 699, }, line: 79, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'fFfa'", ), ], [ Symbol( "15", ), ], ], ), ], line: 82, }, ], ], ), ], line: 82, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 79, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'099'", ), ], [ Symbol( "8", ), ], ], ), ], line: 83, }, ], ], ), ], line: 83, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1\\0'", ), ], [ Symbol( "2", ), ], ], ), ], line: 84, }, ], ], ), ], line: 84, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 83, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "8", ), ], ], ), ], line: 85, }, ], ], ), ], line: 85, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' '", ), ], [ Symbol( "9", ), ], ], ), ], line: 86, }, ], ], ), ], line: 86, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' '", ), ], [ Symbol( "9", ), ], ], ), ], line: 87, }, ], ], ), ], line: 87, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0xf'", ), ], [ Symbol( "10", ), ], ], ), ], line: 88, }, ], ], ), ], line: 88, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'inf'", ), ], ], ), ], line: 90, }, ], ], ), ], line: 90, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' INF '", ), ], ], ), ], line: 91, }, ], ], ), ], line: 91, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'Nan'", ), ], ], ), ], line: 92, }, ], ], ), ], line: 92, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 91, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'nan'", ), ], ], ), ], line: 93, }, ], ], ), ], line: 93, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 92, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' '", ), ], ], ), ], line: 95, }, ], ], ), ], line: 95, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 93, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "''", ), ], ], ), ], line: 96, }, ], ], ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1 a'", ), ], ], ), ], line: 97, }, ], ], ), ], line: 97, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1\\0'", ), ], ], ), ], line: 98, }, ], ], ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 97, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1 \\0'", ), ], ], ), ], line: 99, }, ], ], ), ], line: 99, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1\\0 '", ), ], ], ), ], line: 100, }, ], ], ), ], line: 100, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'e1'", ), ], ], ), ], line: 101, }, ], ], ), ], line: 101, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 100, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'e 1'", ), ], ], ), ], line: 102, }, ], ], ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 101, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 3.4.5 '", ), ], ], ), ], line: 103, }, ], ], ), ], line: 103, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x'", ), ], ], ), ], line: 108, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'x'", ), ], ], ), ], line: 109, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'x3'", ), ], ], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'00x2'", ), ], ], ), ], line: 111, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x 2'", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0 x2'", ), ], ], ), ], line: 113, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'23x'", ), ], ], ), ], line: 114, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 113, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'- 0xaa'", ), ], ], ), ], line: 115, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 114, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x10", ), Operator( ( "==", true, ), ), Symbol( "16", ), Operator( ( "and", true, ), ), Symbol( "0xfff", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "12", ), Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Symbol( "0XFB", ), Operator( ( "==", true, ), ), Symbol( "251", ), ], ], ), ], line: 115, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0", ), Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 120, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0xFFFFFFFF", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 121, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+0x2'", ), ], ], ), ], line: 123, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 122, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0xaA'", ), ], ], ), ], line: 124, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "170", ), ], ], ), ], line: 123, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0xffFFFfff'", ), ], ], ), ], line: 125, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 124, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0e+1", ), Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0xE", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "15", ), Operator( ( "and", true, ), ), Symbol( "0xe", ), Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "13", ), ], ], ), ], line: 125, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 0x2.5 '", ), ], ], ), ], line: 133, }, Operator( ( "==", true, ), ), Symbol( "0x25", ), Operator( ( "/", true, ), ), Symbol( "16", ), ], ], ), ], line: 128, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -0x2.5 '", ), ], ], ), ], line: 134, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0x25", ), Operator( ( "/", true, ), ), Symbol( "16", ), ], ], ), ], line: 133, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' +0x0.51p+8 '", ), ], ], ), ], line: 135, }, Operator( ( "==", true, ), ), Symbol( "0x51", ), ], ], ), ], line: 134, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x0.51p'", ), ], ], ), ], line: 136, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x5p+-2'", ), ], ], ), ], line: 137, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 136, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0.9999999997671694", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "-", true, ), ), Symbol( "'0x.00000001'", ), ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'0xA.a'", ), Operator( ( "+", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Symbol( "10", ), Operator( ( "+", true, ), ), Symbol( "10", ), Operator( ( "/", true, ), ), Symbol( "16", ), ], ], ), ], line: 138, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "170", ), Operator( ( "==", true, ), ), Symbol( "0XAA", ), ], ], ), ], line: 139, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 140, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.0625", ), Operator( ( "==", true, ), ), Symbol( "'0x1.'", ), Operator( ( "+", true, ), ), Symbol( "'+0x.1'", ), ], ], ), ], line: 141, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.1", ), Operator( ( "==", true, ), ), Symbol( "1.0", ), Operator( ( "+", true, ), ), Symbol( "0.1", ), ], ], ), ], line: 142, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "100.0", ), Operator( ( "==", true, ), ), Symbol( "1e2", ), Operator( ( "and", true, ), ), Symbol( "0.01", ), Operator( ( "==", true, ), ), Symbol( "1e-2", ), ], ], ), ], line: 145, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1111111111111111", ), Operator( ( "-", true, ), ), Symbol( "1111111111111110", ), Operator( ( "==", true, ), ), Symbol( "1000.00e-03", ), ], ], ), ], line: 146, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.1", ), Operator( ( "==", true, ), ), Symbol( "'1.'", ), Operator( ( "+", true, ), ), Symbol( "'.1'", ), ], ], ), ], line: 147, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "'1111111111111111'", ), Operator( ( "-", true, ), ), Symbol( "'1111111111111110'", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\" +0.001e+3 \\n\\t\"", ), ], ], ), ], line: 150, }, ], ], ), ], line: 149, }, Function { local: false, name: [ Symbol( "eq", ), ], args: [ "a", "b", "limit", ], body: CodeBlock { start: 1256, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "limit", ), ], line: 153, }, ], body: CodeBlock { start: 4, code: [ Alter { names: [ Ident { expr: [ Symbol( "limit", ), ], line: 153, }, ], values: [ [ Symbol( "10e-10", ), ], ], line: 153, column: 3, }, ], end: 8, }, next: None, line: 153, column: 8, }, Return( Some( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 154, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 154, }, ], ], ), ], line: 154, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "limit", ), ], line: 154, }, ], ], ), ), ], end: 1276, }, line: 155, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0.1e-30", ), Operator( ( ">", true, ), ), Symbol( "0.9e-31", ), Operator( ( "and", true, ), ), Symbol( "0.9e30", ), Operator( ( "<", true, ), ), Symbol( "0.1e31", ), ], ], ), ], line: 155, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0.123456", ), Operator( ( ">", true, ), ), Symbol( "0.123455", ), ], ], ), ], line: 157, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+1.23E18'", ), ], ], ), ], line: 161, }, Operator( ( "==", true, ), ), Symbol( "1.23", ), Operator( ( "*", true, ), ), Symbol( "10", ), Operator( ( "^", true, ), ), Symbol( "18", ), ], ], ), ], line: 159, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 164, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 164, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "2", ), Operator( ( "<", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 164, }, ], ], ), ], line: 161, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( "<", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 165, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'a'", ), Operator( ( "<", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 165, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'b'", ), Operator( ( "<", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 165, }, ], ], ), ], line: 164, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 166, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 166, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "2", ), Operator( ( "<=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 166, }, ], ], ), ], line: 165, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "'a'", ), Operator( ( "<=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 167, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'a'", ), Operator( ( "<=", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 167, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'b'", ), Operator( ( "<=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 167, }, ], ], ), ], line: 166, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( ">", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 168, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( ">", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 168, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "2", ), Operator( ( ">", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 168, }, ], ], ), ], line: 167, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( ">", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 169, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( ">", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 169, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'b'", ), Operator( ( ">", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 169, }, ], ], ), ], line: 168, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( ">=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 170, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( ">=", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 170, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "2", ), Operator( ( ">=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 170, }, ], ], ), ], line: 169, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "'a'", ), Operator( ( ">=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 171, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( ">=", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 171, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'b'", ), Operator( ( ">=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 171, }, ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "%", true, ), ), Symbol( "3", ), Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 171, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 174, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 176, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 176, }, Operator( ( "%", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 175, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 177, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 177, }, Operator( ( "%", true, ), ), Symbol( "0.001", ), Operator( ( "==", true, ), ), Symbol( "3.141", ), ], ], ), ], line: 176, }, Function { local: true, name: [ Symbol( "testbit", ), ], args: [ "a", "n", ], body: CodeBlock { start: 1532, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 180, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 180, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( ">=", true, ), ), Symbol( "1", ), ], ], ), ), ], end: 1543, }, line: 181, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sin", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "9.8", ), ], ], ), ], line: 183, }, Operator( ( "^", true, ), ), Symbol( "2", ), Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "cos", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "9.8", ), ], ], ), ], line: 183, }, Operator( ( "^", true, ), ), Symbol( "2", ), ], [ Symbol( "1", ), ], ], ), ], line: 183, }, ], ], ), ], line: 181, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tan", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 184, }, Operator( ( "/", true, ), ), Symbol( "4", ), ], ], ), ], line: 184, }, ], [ Symbol( "1", ), ], ], ), ], line: 184, }, ], ], ), ], line: 183, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sin", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 185, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 185, }, ], [ Symbol( "1", ), ], ], ), ], line: 185, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "cos", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 185, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 185, }, ], [ Symbol( "0", ), ], ], ), ], line: 185, }, ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "atan", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 186, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 186, }, Operator( ( "/", true, ), ), Symbol( "4", ), ], ], ), ], line: 186, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "acos", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 186, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 186, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 186, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "asin", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 187, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 187, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 186, }, ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "deg", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 188, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 188, }, ], [ Symbol( "90", ), ], ], ), ], line: 188, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "rad", ), Call( [ [ Symbol( "90", ), ], ], ), ], line: 188, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 188, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 188, }, ], ], ), ], line: 187, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10", ), ], ], ), ], line: 189, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 188, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "atan2", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 190, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 190, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 190, }, ], ], ), ], line: 189, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Symbol( "4.5", ), ], ], ), ], line: 191, }, Operator( ( "==", true, ), ), Symbol( "5.0", ), ], ], ), ], line: 190, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Symbol( "4.5", ), ], ], ), ], line: 192, }, Operator( ( "==", true, ), ), Symbol( "4.0", ), ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Symbol( "10", ), ], [ Symbol( "3", ), ], ], ), ], line: 193, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 192, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sqrt", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 194, }, Operator( ( "^", true, ), ), Symbol( "2", ), ], [ Symbol( "10", ), ], ], ), ], line: 194, }, ], ], ), ], line: 193, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], [ Symbol( "10", ), ], ], ), ], line: 195, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 195, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 195, }, ], ], ), ], line: 195, }, ], ], ), ], line: 194, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], [ Symbol( "2", ), ], ], ), ], line: 196, }, ], [ Symbol( "1", ), ], ], ), ], line: 196, }, ], ], ), ], line: 195, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "9", ), ], [ Symbol( "3", ), ], ], ), ], line: 197, }, ], [ Symbol( "2", ), ], ], ), ], line: 197, }, ], ], ), ], line: 196, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "exp", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 198, }, ], [ Symbol( "1", ), ], ], ), ], line: 198, }, ], ], ), ], line: 197, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sin", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 199, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sin", ), Call( [ [ Symbol( "10", ), Operator( ( "%", true, ), ), Expr( [ Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 199, }, ], ), Ident { expr: [], line: 199, }, ], ], ), ], line: 199, }, ], ], ), ], line: 199, }, ], ], ), ], line: 198, }, Variable { names: [ ( "v", false, ), ( "e", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "frexp", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 200, }, ], ], ), ], line: 200, }, ], ], line: 200, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ldexp", ), Call( [ [ Ident { expr: [ Symbol( "v", ), ], line: 201, }, ], [ Ident { expr: [ Symbol( "e", ), ], line: 201, }, ], ], ), ], line: 201, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 201, }, ], ], ), ], line: 201, }, ], ], ), ], line: 200, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tanh", ), Call( [ [ Symbol( "3.5", ), ], ], ), ], line: 203, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sinh", ), Call( [ [ Symbol( "3.5", ), ], ], ), ], line: 203, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "cosh", ), Call( [ [ Symbol( "3.5", ), ], ], ), ], line: 203, }, ], ], ), ], line: 203, }, ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 1.3e-2 '", ), ], ], ), ], line: 205, }, Operator( ( "==", true, ), ), Symbol( "1.3e-2", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -1.00000000000001 '", ), ], ], ), ], line: 206, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.00000000000001", ), ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "8388609", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "8388609", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "8388608", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "8388608", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 210, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "8388607", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "8388607", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 211, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Symbol( "'10'", ), ], [ Symbol( "'20'", ), ], ], line: 216, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 217, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "200", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 217, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 217, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 217, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 217, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "0.5", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 217, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "20", ), ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "'10'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "'20'", ), ], ], ), ], line: 217, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 221, }, ], body: CodeBlock { start: 2048, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing -0 and NaN\"", ), ], ], ), ], line: 222, }, Variable { names: [ ( "mz", false, ), ( "z", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "0", ), ], [ Symbol( "0", ), ], ], line: 223, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "mz", ), ], line: 224, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 224, }, ], ], ), ], line: 223, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "mz", ), ], line: 225, }, Operator( ( "<", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "<", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 225, }, ], ], ), ], line: 224, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( Some( [ Ident { expr: [ Symbol( "mz", ), ], line: 226, }, ], ), [ Symbol( "1", ), ], ), ], line: 226, column: 10, }, ], ], line: 226, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "z", ), ], line: 227, }, ], ), Symbol( "]", ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "mz", ), ], line: 227, }, ], ), Symbol( "]", ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 226, }, Variable { names: [ ( "inf", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 228, }, Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 228, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "mz", ), ], line: 228, }, Ident { expr: [ Symbol( "z", ), ], line: 229, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "inf", ), ], line: 229, }, ], [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "inf", ), ], line: 229, }, ], ], line: 229, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "mz", ), ], line: 230, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 230, }, ], ], ), ], line: 229, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "mz", ), ], line: 231, }, Operator( ( "<", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "<", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 231, }, ], ], ), ], line: 230, }, Variable { names: [ ( "NaN", false, ), ], values: [ [ Ident { expr: [ Symbol( "inf", ), ], line: 232, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "inf", ), ], line: 232, }, ], ], line: 232, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "NaN", ), ], line: 233, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 233, }, ], ], ), ], line: 232, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 234, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 234, }, ], ), Ident { expr: [], line: 234, }, ], ], ), ], line: 233, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 235, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 235, }, ], ), Ident { expr: [], line: 235, }, ], ], ), ], line: 234, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 236, }, Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 236, }, ], ), Ident { expr: [], line: 236, }, ], ], ), ], line: 235, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 237, }, Operator( ( ">=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 237, }, ], ), Ident { expr: [], line: 237, }, ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 238, }, ], ), Ident { expr: [], line: 238, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 238, }, Operator( ( "<", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 238, }, ], ], ), ], line: 237, }, Variable { names: [ ( "NaN1", false, ), ], values: [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], line: 239, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "NaN", ), ], line: 240, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "NaN1", ), ], line: 240, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 240, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN1", ), ], line: 240, }, ], ), Ident { expr: [], line: 240, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN1", ), ], line: 240, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 240, }, ], ), Ident { expr: [], line: 240, }, ], ], ), ], line: 239, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 241, column: 5, }, ], ], line: 241, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 204, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 242, }, ], ), Symbol( "]", ), ], line: 242, }, ], values: [ [ Symbol( "1", ), ], ], line: 242, column: 6, }, ], end: 211, }, line: 242, column: 15, }, ], ], ), ], line: 242, }, ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 243, }, ], ), Symbol( "]", ), ], line: 243, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 242, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 243, }, ], values: [ [ Symbol( "1", ), ], ], line: 244, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 236, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 245, }, ], ), Symbol( "]", ), ], line: 245, }, ], values: [ [ Symbol( "1", ), ], ], line: 245, column: 6, }, ], end: 243, }, line: 245, column: 15, }, ], ], ), ], line: 245, }, ], ], ), ], line: 244, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 246, }, ], ), Symbol( "]", ), ], line: 246, }, Operator( ( "==", true, ), ), Symbol( "nil", ), ], ], ), ], line: 245, }, Variable { names: [ ( "a1", false, ), ( "a2", false, ), ( "a3", false, ), ( "a4", false, ), ( "a5", false, ), ], values: [ [ Symbol( "0", ), ], [ Symbol( "0", ), ], [ Symbol( "\"\\0\\0\\0\\0\\0\\0\\0\\0\"", ), ], [ Symbol( "0", ), ], [ Symbol( "\"\\0\\0\\0\\0\\0\\0\\0\\0\"", ), ], ], line: 249, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a1", ), ], line: 250, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a2", ), ], line: 250, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a2", ), ], line: 250, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a4", ), ], line: 250, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a1", ), ], line: 250, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "a3", ), ], line: 250, }, ], ], ), ], line: 249, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a3", ), ], line: 251, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a5", ), ], line: 251, }, ], ], ), ], line: 250, }, ], end: 2343, }, next: None, line: 252, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 255, }, ], body: CodeBlock { start: 2347, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing 'math.random'\"", ), ], ], ), ], line: 256, }, Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "randomseed", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 256, }, Function { local: true, name: [ Symbol( "aux", ), ], args: [ "x1", "x2", "p", ], body: CodeBlock { start: 20, code: [ Variable { names: [ ( "Max", false, ), ], values: [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 260, }, ], ], line: 261, column: 0, }, Variable { names: [ ( "Min", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 261, }, ], ], line: 262, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "20000", ), ], step: None, code: CodeBlock { start: 20, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [ [ Ident { expr: [ Symbol( "table", ), Symbol( ".", ), Symbol( "unpack", ), Call( [ [ Ident { expr: [ Symbol( "p", ), ], line: 263, }, ], ], ), ], line: 263, }, ], ], ), ], line: 263, }, ], ], line: 263, column: 14, }, Alter { names: [ Ident { expr: [ Symbol( "Max", ), ], line: 263, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "Max", ), ], line: 264, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 264, }, ], ], ), ], line: 264, }, ], ], line: 264, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "Min", ), ], line: 264, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "Min", ), ], line: 265, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 265, }, ], ], ), ], line: 265, }, ], ], line: 266, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "Max", ), ], line: 266, }, ], [ Ident { expr: [ Symbol( "x2", ), ], line: 266, }, ], [ Symbol( "0.001", ), ], ], ), ], line: 266, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "Min", ), ], line: 266, }, ], [ Ident { expr: [ Symbol( "x1", ), ], line: 266, }, ], [ Symbol( "0.001", ), ], ], ), ], line: 266, }, ], body: CodeBlock { start: 53, code: [], end: 54, }, next: None, line: 267, column: 1, }, ], end: 75, }, line: 268, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "false", ), ], ], ), ], line: 268, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 271, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "Min", ), ], line: 271, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "Max", ), ], line: 271, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 271, }, ], ], ), ], line: 270, }, ], end: 110, }, line: 272, column: 1, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "1", ), ], [ Table { data: [], line: 274, column: 8, }, ], ], ), ], line: 272, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Symbol( "0", ), ], [ Table { data: [ ( None, [ Operator( ( "-", false, ), ), Symbol( "10", ), ], ), ( None, [ Symbol( "0", ), ], ), ], line: 275, column: 13, }, ], ], ), ], line: 274, }, ], end: 2481, }, next: None, line: 276, column: 1, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 2488, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [ [ Symbol( "5", ), ], ], ), ], line: 279, }, ], ], line: 279, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 280, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 280, }, Operator( ( "<=", true, ), ), Symbol( "5", ), ], ], ), ], line: 279, }, ], end: 2508, }, line: 281, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 281, }, ]