--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/math.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing numbers and math lib\"", ), ], ], ), ], line: 4, }, Variable { names: [ ( "minint", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 6, }, ], ], line: 7, column: 0, }, Variable { names: [ ( "maxint", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 7, }, ], ], line: 9, column: 0, }, Variable { names: [ ( "intbits", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 9, }, ], [ Symbol( "2", ), ], ], ), ], line: 9, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 9, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 9, column: 23, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 10, }, ], ), Ident { expr: [], line: 10, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 12, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 12, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 12, }, ], ], ), ], line: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 13, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 13, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 12, }, Variable { names: [ ( "floatbits", false, ), ], values: [ [ Symbol( "24", ), ], ], line: 17, column: 0, }, DoBlock( CodeBlock { start: 80, code: [ Variable { names: [ ( "p", false, ), ], values: [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 18, }, ], ], line: 19, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "p", ), ], line: 19, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 19, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], body: CodeBlock { start: 13, code: [ Alter { names: [ Ident { expr: [ Symbol( "p", ), ], line: 20, }, ], values: [ [ Ident { expr: [ Symbol( "p", ), ], line: 20, }, Operator( ( "*", true, ), ), Symbol( "2.0", ), ], ], line: 20, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "floatbits", ), ], line: 20, }, ], values: [ [ Ident { expr: [ Symbol( "floatbits", ), ], line: 21, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 21, column: 5, }, ], end: 24, }, line: 22, column: 1, }, ], end: 105, }, ), Function { local: true, name: [ Symbol( "isNaN", ), ], args: [ "x", ], body: CodeBlock { start: 111, code: [ Return( Some( [ [ Expr( [ Ident { expr: [ Symbol( "x", ), ], line: 26, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 26, }, ], ), Ident { expr: [], line: 26, }, ], ], ), ), ], end: 118, }, line: 27, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "isNaN", ), Call( [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 29, }, ], ], ), ], line: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "isNaN", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 30, }, ], ], ), ], line: 29, }, DoBlock( CodeBlock { start: 138, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 34, }, ], ], line: 34, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 35, }, Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 35, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 35, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 35, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 34, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d-bit integers, %d-bit (mantissa) floats\"", ), ], [ Ident { expr: [ Symbol( "intbits", ), ], line: 37, }, ], [ Ident { expr: [ Symbol( "floatbits", ), ], line: 38, }, ], ], ), ], line: 37, }, ], ], ), ], line: 35, }, ], end: 172, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "\"integer\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "0.0", ), ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "\"float\"", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Symbol( "\"10\"", ), ], ], ), ], line: 42, }, ], ], ), ], line: 39, }, Function { local: true, name: [ Symbol( "checkerror", ), ], args: [ "msg", "f", "...", ], body: CodeBlock { start: 210, code: [ Variable { names: [ ( "s", false, ), ( "err", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 46, }, ], [ Symbol( "...", ), ], ], ), ], line: 46, }, ], ], line: 46, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "s", ), ], line: 47, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "err", ), ], line: 47, }, ], [ Ident { expr: [ Symbol( "msg", ), ], line: 47, }, ], ], ), ], line: 47, }, ], ], ), ], line: 46, }, ], end: 236, }, line: 48, column: 1, }, Variable { names: [ ( "msgf2i", false, ), ], values: [ [ Symbol( "\"number.* has no integer representation\"", ), ], ], line: 53, column: 0, }, Function { local: false, name: [ Symbol( "eq", ), ], args: [ "a", "b", "limit", ], body: CodeBlock { start: 249, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "limit", ), ], line: 54, }, ], body: CodeBlock { start: 4, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "floatbits", ), ], line: 55, }, Operator( ( ">=", true, ), ), Symbol( "50", ), ], body: CodeBlock { start: 5, code: [ Alter { names: [ Ident { expr: [ Symbol( "limit", ), ], line: 56, }, ], values: [ [ Symbol( "1e-11", ), ], ], line: 56, column: 3, }, ], end: 9, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 9, code: [ Alter { names: [ Ident { expr: [ Symbol( "limit", ), ], line: 58, }, ], values: [ [ Symbol( "1e-5", ), ], ], line: 58, column: 3, }, ], end: 13, }, next: None, line: 59, column: 1, }, ), line: 59, column: 1, }, ], end: 18, }, next: None, line: 60, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 62, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 62, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 62, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 62, }, ], ], ), ], line: 62, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "limit", ), ], line: 62, }, ], ], ), ), ], end: 283, }, line: 63, column: 1, }, Function { local: false, name: [ Symbol( "eqT", ), ], args: [ "a", "b", ], body: CodeBlock { start: 290, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 67, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 67, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 67, }, ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 67, }, ], ], ), ], line: 67, }, ], ], ), ), ], end: 309, }, line: 68, column: 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: 68, }, DoBlock( CodeBlock { start: 332, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ], values: [ [ Symbol( "\"2\"", ), ], [ Symbol( "\" 3e0 \"", ), ], [ Symbol( "\" 10 \"", ), ], ], line: 74, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 75, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 75, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 75, }, Operator( ( "+", true, ), ), Symbol( "\"2\"", ), Operator( ( "==", true, ), ), Symbol( "5", ), Operator( ( "and", true, ), ), Symbol( "\"10\"", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 75, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 76, }, ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 76, }, ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 76, }, ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Symbol( "'string'", ), ], ], ), ], line: 75, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "\"2\"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "\" 3e0 \"", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 77, }, Operator( ( "==", true, ), ), Symbol( "\" 10 \"", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "c", ), ], line: 77, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "\" 10 \"", ), ], ], ), ], line: 76, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 78, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 78, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 78, }, Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 78, }, Operator( ( "==", true, ), ), Symbol( "08", ), ], ], ), ], line: 77, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 78, }, ], values: [ [ Symbol( "0", ), ], ], line: 79, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 80, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 80, }, Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0", ), ], ], ), ], line: 79, }, ], end: 443, }, ), DoBlock( CodeBlock { start: 444, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], line: 85, column: 0, }, Variable { names: [ ( "mz", false, ), ], values: [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 85, }, ], ], line: 85, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "t", ), ], line: 85, }, ], values: [ [ Table { data: [ ( Some( [ Symbol( "0", ), ], ), [ Symbol( "10", ), ], ), ( None, [ Symbol( "20", ), ], ), ( None, [ Symbol( "30", ), ], ), ( None, [ Symbol( "40", ), ], ), ( None, [ Symbol( "50", ), ], ), ], line: 86, column: 17, }, ], ], line: 86, column: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "mz", ), ], line: 87, }, ], ), Symbol( "]", ), ], line: 87, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 87, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Operator( ( "-", false, ), ), Symbol( "0", ), ], ), Symbol( "]", ), ], line: 87, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "t", ), Symbol( "[", ), Expr( [ Symbol( "0", ), ], ), Symbol( "]", ), ], line: 87, }, ], ], ), ], line: 86, }, ], end: 496, }, ), DoBlock( CodeBlock { start: 497, code: [ Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Symbol( "3.5", ), ], ], ), ], line: 91, }, ], ], line: 91, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 92, }, Operator( ( "==", true, ), ), Symbol( "3.0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 92, }, Operator( ( "==", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 91, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 92, }, Ident { expr: [ Symbol( "b", ), ], line: 93, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2.5", ), ], ], ), ], line: 93, }, ], ], line: 93, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 94, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2.0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 94, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0.5", ), ], ], ), ], line: 93, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 94, }, Ident { expr: [ Symbol( "b", ), ], line: 95, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "3e23", ), ], ], ), ], line: 95, }, ], ], line: 95, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 96, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "3e23", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 95, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 96, }, Ident { expr: [ Symbol( "b", ), ], line: 97, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Symbol( "3e35", ), ], ], ), ], line: 97, }, ], ], line: 97, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "3e35", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 97, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 98, }, Ident { expr: [ Symbol( "b", ), ], line: 99, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 99, }, ], ], line: 99, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 100, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 100, }, Operator( ( "==", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 99, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 100, }, Ident { expr: [ Symbol( "b", ), ], line: 101, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 101, }, ], ], line: 101, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 102, }, Operator( ( "==", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 101, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 102, }, Ident { expr: [ Symbol( "b", ), ], line: 103, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 103, }, ], ], line: 103, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "isNaN", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 104, }, ], ], ), ], line: 104, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "isNaN", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 104, }, ], ], ), ], line: 104, }, ], ], ), ], line: 103, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 104, }, Ident { expr: [ Symbol( "b", ), ], line: 105, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 105, }, ], ], line: 105, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 106, }, ], [ Symbol( "3", ), ], ], ), ], line: 106, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 106, }, ], [ Symbol( "0.0", ), ], ], ), ], line: 106, }, ], ], ), ], line: 105, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 106, }, Ident { expr: [ Symbol( "b", ), ], line: 107, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "modf", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 107, }, ], ], ), ], line: 107, }, ], ], line: 107, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 108, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 108, }, ], ], ), ], line: 108, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 108, }, ], [ Symbol( "0.0", ), ], ], ), ], line: 108, }, ], ], ), ], line: 107, }, ], end: 710, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 111, }, Operator( ( ">", true, ), ), Symbol( "10e30", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 112, }, Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "10e30", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 116, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 116, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 112, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 117, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 117, }, ], ], ), ], line: 116, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 118, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 118, }, ], ], ), ], line: 117, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 119, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 119, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 118, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 120, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 120, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 120, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 120, }, ], ], ), ], line: 119, }, ForFuncLoop { iters: [ "_", "i", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [ ( None, [ Operator( ( "-", false, ), ), Symbol( "16", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "15", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "15", ), ], ), ], line: 125, column: 32, }, ], ], ), ], line: 125, }, ], stop: None, initial: None, code: CodeBlock { start: 803, code: [ ForFuncLoop { iters: [ "_", "j", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [ ( None, [ Operator( ( "-", false, ), ), Symbol( "16", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "15", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ), ( None, [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ), ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "15", ), ], ), ], line: 126, column: 30, }, ], ], ), ], line: 126, }, ], stop: None, initial: None, code: CodeBlock { start: 31, code: [ ForFuncLoop { iters: [ "_", "ti", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [ ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0.0", ), ], ), ], line: 127, column: 11, }, ], ], ), ], line: 127, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ ForFuncLoop { iters: [ "_", "tj", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [ ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0.0", ), ], ), ], line: 128, column: 11, }, ], ], ), ], line: 128, }, ], stop: None, initial: None, code: CodeBlock { start: 12, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 129, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "ti", ), ], line: 129, }, ], ], line: 130, column: 0, }, Variable { names: [ ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "j", ), ], line: 130, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "tj", ), ], line: 130, }, ], ], line: 130, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 131, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 131, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 131, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 131, }, ], ], ), ], line: 131, }, ], ], ), ], line: 130, }, ], end: 40, }, line: 132, column: 1, }, ], end: 53, }, line: 133, column: 1, }, ], end: 85, }, line: 134, column: 1, }, ], end: 889, }, line: 135, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "//", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 135, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "//", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 137, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "3.5", ), Operator( ( "//", true, ), ), Symbol( "1.5", ), ], [ Symbol( "2.0", ), ], ], ), ], line: 139, }, ], ], ), ], line: 138, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "3.5", ), Operator( ( "//", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.5", ), ], [ Operator( ( "-", false, ), ), Symbol( "3.0", ), ], ], ), ], line: 140, }, ], ], ), ], line: 139, }, DoBlock( CodeBlock { start: 936, code: [ Variable { names: [ ( "x", false, ), ( "y", false, ), ], values: [], line: 143, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 143, }, ], values: [ [ Symbol( "1", ), ], ], line: 144, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 144, }, Operator( ( "//", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 144, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 144, }, ], values: [ [ Symbol( "1.0", ), ], ], line: 145, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 145, }, Operator( ( "//", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 145, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 145, }, ], values: [ [ Symbol( "3.5", ), ], ], line: 146, column: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 146, }, Operator( ( "//", true, ), ), Symbol( "1", ), ], [ Symbol( "3.0", ), ], ], ), ], line: 146, }, ], ], ), ], line: 146, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 147, }, Operator( ( "//", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "4.0", ), ], ], ), ], line: 147, }, ], ], ), ], line: 146, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 147, }, ], values: [ [ Symbol( "3.5", ), ], ], line: 149, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 149, }, ], values: [ [ Symbol( "1.5", ), ], ], line: 149, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 149, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 149, }, ], [ Symbol( "2.0", ), ], ], ), ], line: 149, }, ], ], ), ], line: 149, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 149, }, ], values: [ [ Symbol( "3.5", ), ], ], line: 150, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "y", ), ], line: 150, }, ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1.5", ), ], ], line: 150, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 150, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 150, }, ], [ Operator( ( "-", false, ), ), Symbol( "3.0", ), ], ], ), ], line: 150, }, ], ], ), ], line: 150, }, ], end: 1037, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 153, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 153, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 151, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 154, }, Operator( ( "//", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 154, }, ], ], ), ], line: 153, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 155, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 155, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 155, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 154, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 156, }, Operator( ( "//", true, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 156, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 156, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 155, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 157, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 157, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 156, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 158, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 158, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 157, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 159, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 159, }, Operator( ( "//", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 159, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 158, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 160, }, Operator( ( "//", true, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 160, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 160, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 159, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 161, }, Operator( ( "//", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 161, }, ], ], ), ], line: 160, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 163, }, Operator( ( "//", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 163, }, ], ], ), ], line: 161, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 164, }, Operator( ( "//", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 164, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 164, }, ], ], ), ], line: 163, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 165, }, Operator( ( "//", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 165, }, ], ], ), ], line: 164, }, DoBlock( CodeBlock { start: 1161, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "3", ), ], ], ), ], line: 170, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Expr( [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), Ident { expr: [], line: 171, }, Operator( ( "^", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), ], [ Symbol( "1", ), Operator( ( "/", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ), Ident { expr: [], line: 171, }, Operator( ( "^", true, ), ), Symbol( "3", ), ], ], ), ], line: 171, }, ], ], ), ], line: 170, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "3", ), ], end: [ Symbol( "3", ), ], step: None, code: CodeBlock { start: 43, code: [ ForLoop { iter: "j", start: [ Operator( ( "-", false, ), ), Symbol( "3", ), ], end: [ Symbol( "3", ), ], step: None, code: CodeBlock { start: 8, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 175, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 175, }, Operator( ( "~=", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 175, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 12, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 176, }, Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 176, }, ], [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 176, }, Operator( ( "^", true, ), ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "j", ), ], line: 176, }, ], ), Ident { expr: [], line: 176, }, ], ], ), ], line: 176, }, ], ], ), ], line: 176, }, ], end: 31, }, next: None, line: 177, column: 1, }, ], end: 40, }, line: 178, column: 1, }, ], end: 84, }, line: 179, column: 1, }, ], end: 1246, }, ), IfStatement { condition: [ Ident { expr: [ Symbol( "floatbits", ), ], line: 183, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 183, }, ], body: CodeBlock { start: 1251, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 184, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 184, }, ], ), Ident { expr: [], line: 184, }, ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 185, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 185, }, ], ), Ident { expr: [], line: 185, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 184, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 186, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "~=", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 186, }, ], ), Ident { expr: [], line: 186, }, ], ], ), ], line: 185, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 188, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), Operator( ( "~=", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 188, }, ], ), Ident { expr: [], line: 188, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 186, }, ], end: 1310, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 1310, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 190, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 190, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 190, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 191, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 191, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 190, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 192, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 192, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 191, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 193, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 193, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 192, }, ], end: 1347, }, next: None, line: 194, column: 1, }, ), line: 194, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 195, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 195, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 195, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 194, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 196, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 196, }, ], ], ), ], line: 195, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 197, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 197, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 197, }, ], ], ), ], line: 196, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "1.1", ), ], ], ), ], line: 197, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "0.9", ), ], ), Ident { expr: [], line: 201, }, ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "1.1", ), ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "0.9", ), ], ), Ident { expr: [], line: 202, }, ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "0.9", ), ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.1", ), ], ), Ident { expr: [], line: 203, }, ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "1.1", ), ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<=", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.1", ), ], ), Ident { expr: [], line: 204, }, ], ], ), ], line: 204, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "0.9", ), ], ], ), ], line: 204, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.1", ), ], ), Ident { expr: [], line: 205, }, ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<=", true, ), ), Operator( ( "-", false, ), ), Symbol( "0.9", ), ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<=", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.1", ), ], ), Ident { expr: [], line: 206, }, ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 207, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 207, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 208, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 208, }, ], ], ), ], line: 207, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 209, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 209, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ), Ident { expr: [], line: 209, }, ], ], ), ], line: 208, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 210, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 210, }, ], ), Ident { expr: [], line: 210, }, ], ], ), ], line: 209, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 211, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 211, }, Operator( ( "*", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.0", ), ], ], ), ], line: 210, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 212, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 212, }, Operator( ( "*", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.0", ), ], ], ), ], line: 211, }, DoBlock( CodeBlock { start: 1553, code: [ Variable { names: [ ( "fmaxi1", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 215, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), ], ], line: 215, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 216, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "fmaxi1", ), ], line: 216, }, ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 217, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "fmaxi1", ), ], line: 217, }, ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "fmaxi1", ), ], line: 218, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 218, }, ], ), Ident { expr: [], line: 218, }, ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 219, }, Operator( ( "<=", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 219, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 219, }, ], ], ), ], line: 218, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 220, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 220, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 220, }, ], ], ), ], line: 219, }, ], end: 1611, }, ), IfStatement { condition: [ Ident { expr: [ Symbol( "floatbits", ), ], line: 223, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 223, }, ], body: CodeBlock { start: 1616, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing order (floats cannot represent all integers)\"", ), ], ], ), ], line: 224, }, Variable { names: [ ( "fmax", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 225, }, ], ], line: 226, column: 0, }, Variable { names: [ ( "ifmax", false, ), ], values: [ [ Ident { expr: [ Symbol( "fmax", ), ], line: 226, }, Operator( ( "|", true, ), ), Symbol( "0", ), ], ], line: 226, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fmax", ), ], line: 227, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "ifmax", ), ], line: 227, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fmax", ), ], line: 228, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "ifmax", ), ], line: 228, }, ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Expr( [ Ident { expr: [ Symbol( "fmax", ), ], line: 229, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 229, }, Operator( ( ">", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "ifmax", ), ], line: 229, }, ], ], ), ], line: 228, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "fmax", ), ], line: 230, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "ifmax", ), ], line: 230, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 230, }, ], ], ), ], line: 229, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "fmax", ), ], line: 231, }, Operator( ( ">", true, ), ), Operator( ( "-", false, ), ), Expr( [ Ident { expr: [ Symbol( "ifmax", ), ], line: 231, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 231, }, ], ], ), ], line: 230, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "fmax", ), ], line: 232, }, Operator( ( ">=", true, ), ), Operator( ( "-", false, ), ), Expr( [ Ident { expr: [ Symbol( "ifmax", ), ], line: 232, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 232, }, ], ), Ident { expr: [], line: 232, }, ], ], ), ], line: 231, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "fmax", ), ], line: 234, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Symbol( "0.5", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "ifmax", ), ], line: 234, }, Operator( ( "//", true, ), ), Symbol( "2", ), ], ], ), ], line: 232, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Expr( [ Ident { expr: [ Symbol( "fmax", ), ], line: 235, }, Operator( ( "/", true, ), ), Symbol( "2", ), Operator( ( "-", true, ), ), Symbol( "0.5", ), ], ), Ident { expr: [], line: 235, }, Operator( ( ">", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "ifmax", ), ], line: 235, }, Operator( ( "//", true, ), ), Symbol( "2", ), ], ], ), ], line: 234, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 237, }, Operator( ( "<", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 237, }, ], ], ), ], line: 235, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 238, }, Operator( ( ">", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 238, }, ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 239, }, Operator( ( "<=", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 239, }, ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 240, }, Operator( ( ">=", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 240, }, ], ], ), ], line: 239, }, ], end: 1761, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 1761, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing order (floats can represent all integers)\"", ), ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 243, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 243, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 244, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 244, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 243, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 245, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 245, }, ], ], ), ], line: 244, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 246, }, Operator( ( "-", true, ), ), Symbol( "0.5", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 246, }, ], ], ), ], line: 245, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 247, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 247, }, ], ), Ident { expr: [], line: 247, }, ], ], ), ], line: 246, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 248, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 248, }, ], ], ), ], line: 247, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 249, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 249, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ), Ident { expr: [], line: 249, }, ], ], ), ], line: 248, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 250, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 250, }, ], ], ), ], line: 249, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 251, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 251, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 250, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 252, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 252, }, ], ), Ident { expr: [], line: 252, }, ], ], ), ], line: 251, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 253, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 253, }, ], ), Ident { expr: [], line: 253, }, ], ], ), ], line: 252, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 254, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 254, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ), Ident { expr: [], line: 254, }, ], ], ), ], line: 253, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 255, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 255, }, Operator( ( "-", true, ), ), Symbol( "0.5", ), ], ), Ident { expr: [], line: 255, }, ], ], ), ], line: 254, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 257, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 257, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 255, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 258, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 258, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 257, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 259, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 259, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 258, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 260, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 260, }, ], ], ), ], line: 259, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 261, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 261, }, ], ], ), ], line: 260, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 262, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 262, }, ], ), Ident { expr: [], line: 262, }, ], ], ), ], line: 261, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 263, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 263, }, ], ), Ident { expr: [], line: 263, }, ], ], ), ], line: 262, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 264, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 264, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ), Ident { expr: [], line: 264, }, ], ], ), ], line: 263, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 265, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 265, }, ], ], ), ], line: 264, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 266, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 266, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 265, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 267, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 267, }, ], ), Ident { expr: [], line: 267, }, ], ], ), ], line: 266, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 268, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 268, }, ], ), Ident { expr: [], line: 268, }, ], ], ), ], line: 267, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 269, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 269, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ), Ident { expr: [], line: 269, }, ], ], ), ], line: 268, }, ], end: 2010, }, next: None, line: 270, column: 1, }, ), line: 270, column: 1, }, DoBlock( CodeBlock { start: 2011, code: [ Variable { names: [ ( "NaN", false, ), ], values: [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], line: 273, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 274, }, Operator( ( "<", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 274, }, ], ], ), ], line: 273, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 275, }, Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 275, }, ], ), Ident { expr: [], line: 275, }, ], ], ), ], line: 274, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 276, }, Operator( ( "<=", true, ), ), Operator( ( "-", false, ), ), Symbol( "9", ), ], ), Ident { expr: [], line: 276, }, ], ], ), ], line: 275, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 277, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 277, }, ], ), Ident { expr: [], line: 277, }, ], ], ), ], line: 276, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 278, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 278, }, ], ), Ident { expr: [], line: 278, }, ], ], ), ], line: 277, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 279, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 279, }, ], ), Ident { expr: [], line: 279, }, ], ], ), ], line: 278, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 280, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 280, }, ], ), Ident { expr: [], line: 280, }, ], ], ), ], line: 279, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "4", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 281, }, ], ), Ident { expr: [], line: 281, }, ], ], ), ], line: 280, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "4", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 282, }, ], ), Ident { expr: [], line: 282, }, ], ], ), ], line: 281, }, ], end: 2103, }, ), Function { local: true, name: [ Symbol( "checkcompt", ), ], args: [ "msg", "code", ], body: CodeBlock { start: 2111, code: [ Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 288, }, ], [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "load", ), Call( [ [ Ident { expr: [ Symbol( "code", ), ], line: 288, }, ], ], ), ], line: 288, }, ], ], ), ], line: 288, }, ], ], ), ], line: 288, }, ], end: 2124, }, line: 289, column: 1, }, Ident { expr: [ Symbol( "checkcompt", ), Call( [ [ Symbol( "\"divide by zero\"", ), ], [ Symbol( "\"return 2 // 0\"", ), ], ], ), ], line: 289, }, Ident { expr: [ Symbol( "checkcompt", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 291, }, ], [ Symbol( "\"return 2.3 >> 0\"", ), ], ], ), ], line: 290, }, Ident { expr: [ Symbol( "checkcompt", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 292, }, ], [ Expr( [ Symbol( "\"return 2.0^%d & 1\"", ), ], ), Ident { expr: [ Symbol( ":", ), Symbol( "format", ), Call( [ [ Ident { expr: [ Symbol( "intbits", ), ], line: 292, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 292, }, ], ], ), ], line: 291, }, Ident { expr: [ Symbol( "checkcompt", ), Call( [ [ Symbol( "\"field 'huge'\"", ), ], [ Symbol( "\"return math.huge << 1\"", ), ], ], ), ], line: 292, }, Ident { expr: [ Symbol( "checkcompt", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 294, }, ], [ Expr( [ Symbol( "\"return 1 | 2.0^%d\"", ), ], ), Ident { expr: [ Symbol( ":", ), Symbol( "format", ), Call( [ [ Ident { expr: [ Symbol( "intbits", ), ], line: 294, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 294, }, ], ], ), ], line: 293, }, Ident { expr: [ Symbol( "checkcompt", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 295, }, ], [ Symbol( "\"return 2.3 ~ 0.0\"", ), ], ], ), ], line: 294, }, Function { local: true, name: [ Symbol( "f2i", ), ], args: [ "x", ], body: CodeBlock { start: 2184, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "x", ), ], line: 299, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "x", ), ], line: 299, }, ], ], ), ), ], end: 2189, }, line: 299, column: 11, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 300, }, ], [ Ident { expr: [ Symbol( "f2i", ), ], line: 300, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 300, }, ], ], ), ], line: 299, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 301, }, ], [ Ident { expr: [ Symbol( "f2i", ), ], line: 301, }, ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 301, }, ], ], ), ], line: 300, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 302, }, ], [ Ident { expr: [ Symbol( "f2i", ), ], line: 302, }, ], [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 301, }, IfStatement { condition: [ Ident { expr: [ Symbol( "floatbits", ), ], line: 304, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 304, }, ], body: CodeBlock { start: 2225, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 306, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 306, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 307, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 307, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Ident { expr: [ Symbol( "msgf2i", ), ], line: 308, }, ], [ Ident { expr: [ Symbol( "f2i", ), ], line: 308, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 308, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 307, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f2i", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 309, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 309, }, ], ], ), ], line: 309, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 309, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 309, }, ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f2i", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 310, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 310, }, ], ], ), ], line: 310, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 310, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 310, }, ], ), Ident { expr: [], line: 310, }, ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "floatbits", ), ], line: 311, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 311, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ), Ident { expr: [], line: 311, }, Operator( ( "//", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "floatbits", ), ], line: 311, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 311, }, ], ), Ident { expr: [], line: 311, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 310, }, Variable { names: [ ( "mf", false, ), ], values: [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 313, }, Operator( ( "-", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "floatbits", ), ], line: 313, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 313, }, ], ), Ident { expr: [], line: 313, }, ], ), Ident { expr: [], line: 313, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 313, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f2i", ), Call( [ [ Ident { expr: [ Symbol( "mf", ), ], line: 314, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 314, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "mf", ), ], line: 314, }, ], ], ), ], line: 313, }, Alter { names: [ Ident { expr: [ Symbol( "mf", ), ], line: 314, }, ], values: [ [ Ident { expr: [ Symbol( "mf", ), ], line: 315, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 315, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f2i", ), Call( [ [ Ident { expr: [ Symbol( "mf", ), ], line: 316, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 316, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "mf", ), ], line: 316, }, ], ], ), ], line: 315, }, ], end: 2373, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 2373, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 319, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 319, }, ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 320, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 320, }, ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f2i", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 321, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 321, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 321, }, ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"no integer rep\"", ), ], [ Ident { expr: [ Symbol( "f2i", ), ], line: 322, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 322, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"no integer rep\"", ), ], [ Ident { expr: [ Symbol( "f2i", ), ], line: 323, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 323, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 322, }, ], end: 2421, }, next: None, line: 324, column: 1, }, ), line: 324, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f2i", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 327, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 327, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 327, }, ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"2\"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"2 \"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 332, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" -2 \"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" -0xa \"", ), Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "9", ), ], ], ), ], line: 334, }, DoBlock( CodeBlock { start: 2467, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 341, }, ], ], ), ], line: 341, }, ], ], ), ], line: 341, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 341, }, ], ], ), ], line: 341, }, ], ], ), ], line: 341, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "tostring", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 342, }, ], ], ), ], line: 342, }, ], ], ), ], line: 342, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 342, }, ], ], ), ], line: 342, }, ], ], ), ], line: 341, }, Function { local: true, name: [ Symbol( "incd", ), ], args: [ "n", ], body: CodeBlock { start: 36, code: [ Variable { names: [ ( "s", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"%d\"", ), ], [ Ident { expr: [ Symbol( "n", ), ], line: 346, }, ], ], ), ], line: 346, }, ], ], line: 346, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "s", ), ], line: 346, }, ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "gsub", ), Call( [ [ Ident { expr: [ Symbol( "s", ), ], line: 347, }, ], [ Symbol( "\"%d$\"", ), ], [ Lambda { args: [ "d", ], body: CodeBlock { start: 25, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 348, }, Operator( ( "~=", true, ), ), Symbol( "'9'", ), ], ], ), ], line: 348, }, Return( Some( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "char", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "byte", ), Call( [ [ Ident { expr: [ Symbol( "d", ), ], line: 349, }, ], ], ), ], line: 349, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 349, }, ], ], ), ), ], end: 46, }, line: 350, column: 1, }, ], ], ), ], line: 347, }, ], ], line: 351, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "s", ), ], line: 351, }, ], ], ), ), ], end: 86, }, line: 352, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "incd", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 355, }, ], ], ), ], line: 355, }, ], ], ), ], line: 355, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 355, }, Operator( ( "+", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 355, }, ], ], ), ], line: 352, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "incd", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 356, }, ], ], ), ], line: 356, }, ], ], ), ], line: 356, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 356, }, Operator( ( "-", true, ), ), Symbol( "1.0", ), ], ], ), ], line: 356, }, ], ], ), ], line: 355, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"1\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"0\"", ), ], [ Symbol( "30", ), ], ], ), ], line: 359, }, ], ], ), ], line: 359, }, ], [ Symbol( "1e30", ), ], ], ), ], line: 359, }, ], ], ), ], line: 356, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"-1\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"0\"", ), ], [ Symbol( "30", ), ], ], ), ], line: 360, }, ], ], ), ], line: 360, }, ], [ Operator( ( "-", false, ), ), Symbol( "1e30", ), ], ], ), ], line: 360, }, ], ], ), ], line: 359, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"0x1\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"0\"", ), ], [ Symbol( "30", ), ], ], ), ], line: 363, }, ], ], ), ], line: 363, }, ], [ Symbol( "0", ), ], ], ), ], line: 363, }, ], ], ), ], line: 360, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 366, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 366, }, ], ], ), Call( [], ), ], line: 366, }, ], ], ), ], line: 363, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 367, }, ], [ Ident { expr: [ Symbol( "load", ), Call( [ [ Symbol( "\"return \"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 367, }, ], ], ), Call( [], ), ], line: 367, }, ], ], ), ], line: 367, }, ], ], ), ], line: 366, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "10000000000000000000000.0", ), ], [ Symbol( "10000000000000000000000", ), ], ], ), ], line: 369, }, ], ], ), ], line: 367, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10000000000000000000000.0", ), ], [ Operator( ( "-", false, ), ), Symbol( "10000000000000000000000", ), ], ], ), ], line: 370, }, ], ], ), ], line: 369, }, ], end: 2701, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "3.4", ), ], ], ), ], line: 377, }, Operator( ( "==", true, ), ), Symbol( "3.4", ), ], ], ), ], line: 371, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 378, }, ], [ Symbol( "3", ), ], ], ), ], line: 378, }, ], ], ), ], line: 377, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 379, }, ], ], ), ], line: 379, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 379, }, ], ], ), ], line: 379, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 379, }, ], ], ), ], line: 379, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 379, }, ], ], ), ], line: 379, }, ], ], ), ], line: 378, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 380, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 379, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"0\"", ), ], ], ), ], line: 383, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 380, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"\"", ), ], ], ), ], line: 384, }, ], ], ), ], line: 383, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\" \"", ), ], ], ), ], line: 385, }, ], ], ), ], line: 384, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"-\"", ), ], ], ), ], line: 386, }, ], ], ), ], line: 385, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\" -0x \"", ), ], ], ), ], line: 387, }, ], ], ), ], line: 386, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Table { data: [], line: 388, column: 6, }, ], ], ), ], line: 388, }, ], ], ), ], line: 387, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+0.01'", ), ], ], ), ], line: 389, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Symbol( "100", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+.01'", ), ], ], ), ], line: 389, }, Operator( ( "==", true, ), ), Symbol( "0.01", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'.01'", ), ], ], ), ], line: 389, }, Operator( ( "==", true, ), ), Symbol( "0.01", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-1.'", ), ], ], ), ], line: 390, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+1.'", ), ], ], ), ], line: 390, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 388, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+ 0.01'", ), ], ], ), ], line: 392, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+.e1'", ), ], ], ), ], line: 392, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1e'", ), ], ], ), ], line: 393, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1.0e+'", ), ], ], ), ], line: 393, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'.'", ), ], ], ), ], line: 394, }, ], ], ), ], line: 391, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-012'", ), ], ], ), ], line: 395, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "010", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 394, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-1.2e2'", ), ], ], ), ], line: 396, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Operator( ( "-", true, ), ), Operator( ( "-", false, ), ), Symbol( "120", ), ], ], ), ], line: 395, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"0xffffffffffff\"", ), ], ], ), ], line: 398, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "12", ), ], ), Ident { expr: [], line: 398, }, ], ), Ident { expr: [], line: 398, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 396, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"0x\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"f\"", ), ], [ Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 399, }, Operator( ( "//", true, ), ), Symbol( "4", ), ], ), Ident { expr: [], line: 399, }, ], ], ), ], line: 399, }, ], ], ), ], line: 399, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 398, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\"-0x\"", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "\"f\"", ), ], [ Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 400, }, Operator( ( "//", true, ), ), Symbol( "4", ), ], ), Ident { expr: [], line: 400, }, ], ], ), ], line: 400, }, ], ], ), ], line: 400, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 399, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 001010 '", ), ], [ Symbol( "2", ), ], ], ), ], line: 403, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 400, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 001010 '", ), ], [ Symbol( "10", ), ], ], ), ], line: 404, }, Operator( ( "==", true, ), ), Symbol( "001010", ), ], ], ), ], line: 403, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -1010 '", ), ], [ Symbol( "2", ), ], ], ), ], line: 405, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "10", ), ], ], ), ], line: 404, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'10'", ), ], [ Symbol( "36", ), ], ], ), ], line: 406, }, Operator( ( "==", true, ), ), Symbol( "36", ), ], ], ), ], line: 405, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -10 '", ), ], [ Symbol( "36", ), ], ], ), ], line: 407, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "36", ), ], ], ), ], line: 406, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' +1Z '", ), ], [ Symbol( "36", ), ], ], ), ], line: 408, }, Operator( ( "==", true, ), ), Symbol( "36", ), Operator( ( "+", true, ), ), Symbol( "35", ), ], ], ), ], line: 407, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -1z '", ), ], [ Symbol( "36", ), ], ], ), ], line: 409, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "36", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "35", ), ], ], ), ], line: 408, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-fFfa'", ), ], [ Symbol( "16", ), ], ], ), ], line: 410, }, 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: 410, }, ], ), Ident { expr: [], line: 410, }, ], ), Ident { expr: [], line: 410, }, ], ), Ident { expr: [], line: 410, }, ], ), Ident { expr: [], line: 410, }, ], ), Ident { expr: [], line: 410, }, ], ], ), ], line: 409, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'1'", ), ], [ Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 411, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 411, }, ], ], ), ], line: 411, }, ], [ Symbol( "2", ), ], ], ), ], line: 411, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 411, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 411, }, ], ], ), ], line: 410, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'ffffFFFF'", ), ], [ Symbol( "16", ), ], ], ), ], line: 412, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 412, }, ], ], ), ], line: 411, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0ffffFFFF'", ), ], [ Symbol( "16", ), ], ], ), ], line: 413, }, Operator( ( "+", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 413, }, ], ], ), ], line: 412, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0ffffffFFFF'", ), ], [ Symbol( "16", ), ], ], ), ], line: 414, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "40", ), ], ), Ident { expr: [], line: 414, }, ], ], ), ], line: 413, }, ForLoop { iter: "i", start: [ Symbol( "2", ), ], end: [ Symbol( "36", ), ], step: None, code: CodeBlock { start: 3155, code: [ Variable { names: [ ( "i2", false, ), ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 416, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 416, }, ], ], line: 417, column: 0, }, Variable { names: [ ( "i10", false, ), ], values: [ [ Ident { expr: [ Symbol( "i2", ), ], line: 417, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "i2", ), ], line: 417, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "i2", ), ], line: 417, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "i2", ), ], line: 417, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "i2", ), ], line: 417, }, ], ], line: 417, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'\\t10000000000\\t'", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 418, }, ], ], ), ], line: 418, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i10", ), ], line: 418, }, ], ], ), ], line: 417, }, ], end: 3185, }, line: 419, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_soft", ), ], line: 421, }, ], body: CodeBlock { start: 3189, code: [ 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( "13", ), ], ], ), ], line: 423, }, Operator( ( "..", true, ), ), Symbol( "\".0\"", ), ], ], ), ], line: 423, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "13", ), ], ), Ident { expr: [], line: 423, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 423, }, 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: 424, }, Operator( ( "..", true, ), ), Symbol( "\".0\"", ), ], ], ), ], line: 424, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "150", ), ], ), Ident { expr: [], line: 424, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 423, }, 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( "300", ), ], ], ), ], line: 425, }, Operator( ( "..", true, ), ), Symbol( "\".0\"", ), ], ], ), ], line: 425, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "300", ), ], ), Ident { expr: [], line: 425, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 424, }, 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( "500", ), ], ], ), ], line: 426, }, Operator( ( "..", true, ), ), Symbol( "\".0\"", ), ], ], ), ], line: 426, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "500", ), ], ), Ident { expr: [], line: 426, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 425, }, 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( "1000", ), ], ], ), ], line: 427, }, ], ], ), ], line: 427, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 426, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'0'", ), ], [ Symbol( "1000", ), ], ], ), ], line: 428, }, Operator( ( "..", true, ), ), Symbol( "'a'", ), ], ], ), ], line: 428, }, Operator( ( "==", true, ), ), Symbol( "10", ), ], ], ), ], line: 427, }, 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( "13", ), ], ], ), ], line: 429, }, Operator( ( "..", true, ), ), Symbol( "\"1\"", ), ], ], ), ], line: 429, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "14", ), ], ), Ident { expr: [], line: 429, }, ], ], ), ], line: 428, }, 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: 430, }, Operator( ( "..", true, ), ), Symbol( "\"1\"", ), ], ], ), ], line: 430, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "151", ), ], ), Ident { expr: [], line: 430, }, ], ], ), ], line: 429, }, 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( "300", ), ], ], ), ], line: 431, }, Operator( ( "..", true, ), ), Symbol( "\"1\"", ), ], ], ), ], line: 431, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "301", ), ], ), Ident { expr: [], line: 431, }, ], ], ), ], line: 430, }, 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( "500", ), ], ], ), ], line: 432, }, Operator( ( "..", true, ), ), Symbol( "\"1\"", ), ], ], ), ], line: 432, }, Operator( ( "==", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "*", true, ), ), Symbol( "501", ), ], ), Ident { expr: [], line: 432, }, ], ], ), ], line: 431, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0xe03'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'0'", ), ], [ Symbol( "1000", ), ], ], ), ], line: 434, }, Operator( ( "..", true, ), ), Symbol( "'p-4000'", ), ], ], ), ], line: 434, }, Operator( ( "==", true, ), ), Symbol( "3587.0", ), ], ], ), ], line: 432, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x.'", ), Operator( ( "..", true, ), ), Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "rep", ), Call( [ [ Symbol( "'0'", ), ], [ Symbol( "1000", ), ], ], ), ], line: 435, }, Operator( ( "..", true, ), ), Symbol( "'74p4004'", ), ], ], ), ], line: 435, }, Operator( ( "==", true, ), ), Symbol( "7.25", ), ], ], ), ], line: 434, }, ], end: 3488, }, next: None, line: 436, column: 1, }, Function { local: true, name: [ Symbol( "f", ), ], args: [ "...", ], body: CodeBlock { start: 3494, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "select", ), Call( [ [ Symbol( "'#'", ), ], [ Symbol( "...", ), ], ], ), ], line: 441, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Expr( [ Symbol( "...", ), ], ), Ident { expr: [], line: 442, }, ], ], ), ), ], end: 15, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 15, code: [ Return( Some( [ [ Symbol( "\"***\"", ), ], ], ), ), ], end: 18, }, next: None, line: 445, column: 1, }, ), line: 445, column: 1, }, ], end: 3513, }, line: 446, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'fFfa'", ), ], [ Symbol( "15", ), ], ], ), ], line: 448, }, ], ], ), ], line: 448, }, ], ], ), ], line: 446, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'099'", ), ], [ Symbol( "8", ), ], ], ), ], line: 449, }, ], ], ), ], line: 449, }, ], ], ), ], line: 448, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1\\0'", ), ], [ Symbol( "2", ), ], ], ), ], line: 450, }, ], ], ), ], line: 450, }, ], ], ), ], line: 449, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "''", ), ], [ Symbol( "8", ), ], ], ), ], line: 451, }, ], ], ), ], line: 451, }, ], ], ), ], line: 450, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' '", ), ], [ Symbol( "9", ), ], ], ), ], line: 452, }, ], ], ), ], line: 452, }, ], ], ), ], line: 451, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' '", ), ], [ Symbol( "9", ), ], ], ), ], line: 453, }, ], ], ), ], line: 453, }, ], ], ), ], line: 452, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0xf'", ), ], [ Symbol( "10", ), ], ], ), ], line: 454, }, ], ], ), ], line: 454, }, ], ], ), ], line: 453, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'inf'", ), ], ], ), ], line: 456, }, ], ], ), ], line: 456, }, ], ], ), ], line: 454, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' INF '", ), ], ], ), ], line: 457, }, ], ], ), ], line: 457, }, ], ], ), ], line: 456, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'Nan'", ), ], ], ), ], line: 458, }, ], ], ), ], line: 458, }, ], ], ), ], line: 457, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'nan'", ), ], ], ), ], line: 459, }, ], ], ), ], line: 459, }, ], ], ), ], line: 458, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' '", ), ], ], ), ], line: 461, }, ], ], ), ], line: 461, }, ], ], ), ], line: 459, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "''", ), ], ], ), ], line: 462, }, ], ], ), ], line: 462, }, ], ], ), ], line: 461, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1 a'", ), ], ], ), ], line: 463, }, ], ], ), ], line: 463, }, ], ], ), ], line: 462, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1 a'", ), ], [ Symbol( "2", ), ], ], ), ], line: 464, }, ], ], ), ], line: 464, }, ], ], ), ], line: 463, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1\\0'", ), ], ], ), ], line: 465, }, ], ], ), ], line: 465, }, ], ], ), ], line: 464, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1 \\0'", ), ], ], ), ], line: 466, }, ], ], ), ], line: 466, }, ], ], ), ], line: 465, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1\\0 '", ), ], ], ), ], line: 467, }, ], ], ), ], line: 467, }, ], ], ), ], line: 466, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'e1'", ), ], ], ), ], line: 468, }, ], ], ), ], line: 468, }, ], ], ), ], line: 467, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'e 1'", ), ], ], ), ], line: 469, }, ], ], ), ], line: 469, }, ], ], ), ], line: 468, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "f", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 3.4.5 '", ), ], ], ), ], line: 470, }, ], ], ), ], line: 470, }, ], ], ), ], line: 469, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x'", ), ], ], ), ], line: 475, }, ], ], ), ], line: 470, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'x'", ), ], ], ), ], line: 476, }, ], ], ), ], line: 475, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'x3'", ), ], ], ), ], line: 477, }, ], ], ), ], line: 476, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x3.3.3'", ), ], ], ), ], line: 478, }, ], ], ), ], line: 477, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'00x2'", ), ], ], ), ], line: 479, }, ], ], ), ], line: 478, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x 2'", ), ], ], ), ], line: 480, }, ], ], ), ], line: 479, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0 x2'", ), ], ], ), ], line: 481, }, ], ], ), ], line: 480, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'23x'", ), ], ], ), ], line: 482, }, ], ], ), ], line: 481, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'- 0xaa'", ), ], ], ), ], line: 483, }, ], ], ), ], line: 482, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0xaaP '", ), ], ], ), ], line: 484, }, ], ], ), ], line: 483, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x0.51p'", ), ], ], ), ], line: 485, }, ], ], ), ], line: 484, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'0x5p+-2'", ), ], ], ), ], line: 486, }, ], ], ), ], line: 485, }, 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: 486, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0", ), Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 491, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0xFFFFFFFF", ), Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 493, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 492, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+0x2'", ), ], ], ), ], line: 494, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 493, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0xaA'", ), ], ], ), ], line: 495, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "170", ), ], ], ), ], line: 494, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'-0xffFFFfff'", ), ], ], ), ], line: 496, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 496, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 495, }, 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: 496, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 0x2.5 '", ), ], ], ), ], line: 504, }, Operator( ( "==", true, ), ), Symbol( "0x25", ), Operator( ( "/", true, ), ), Symbol( "16", ), ], ], ), ], line: 499, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -0x2.5 '", ), ], ], ), ], line: 505, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "0x25", ), Operator( ( "/", true, ), ), Symbol( "16", ), ], ], ), ], line: 504, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' +0x0.51p+8 '", ), ], ], ), ], line: 506, }, Operator( ( "==", true, ), ), Symbol( "0x51", ), ], ], ), ], line: 505, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0.9999999997671694", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "-", true, ), ), Symbol( "'0x.00000001'", ), ], ], ), ], line: 506, }, 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: 507, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "170", ), Operator( ( "==", true, ), ), Symbol( "0XAA", ), ], ], ), ], line: 508, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 509, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.0625", ), Operator( ( "==", true, ), ), Symbol( "'0x1.'", ), Operator( ( "+", true, ), ), Symbol( "'+0x.1'", ), ], ], ), ], line: 510, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "703711", ), Operator( ( "==", true, ), ), Symbol( "11259376", ), ], ], ), ], line: 511, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.1", ), Operator( ( "==", true, ), ), Symbol( "1.0", ), Operator( ( "+", true, ), ), Symbol( "0.1", ), ], ], ), ], line: 512, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "100.0", ), Operator( ( "==", true, ), ), Symbol( "1e2", ), Operator( ( "and", true, ), ), Symbol( "0.01", ), Operator( ( "==", true, ), ), Symbol( "1e-2", ), ], ], ), ], line: 515, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1111111111", ), Operator( ( "-", true, ), ), Symbol( "1111111110", ), Operator( ( "==", true, ), ), Symbol( "1000.00e-03", ), ], ], ), ], line: 516, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.1", ), Operator( ( "==", true, ), ), Symbol( "'1.'", ), Operator( ( "+", true, ), ), Symbol( "'.1'", ), ], ], ), ], line: 517, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1111111111'", ), ], ], ), ], line: 519, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'1111111110'", ), ], ], ), ], line: 519, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "\" +0.001e+3 \\n\\t\"", ), ], ], ), ], line: 519, }, ], ], ), ], line: 518, }, 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: 520, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0.123456", ), Operator( ( ">", true, ), ), Symbol( "0.123455", ), ], ], ), ], line: 522, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "'+1.23E18'", ), ], ], ), ], line: 526, }, Operator( ( "==", true, ), ), Symbol( "1.23", ), Operator( ( "*", true, ), ), Symbol( "10.0", ), Operator( ( "^", true, ), ), Symbol( "18", ), ], ], ), ], line: 524, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 529, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 529, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "2", ), Operator( ( "<", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 529, }, ], ], ), ], line: 526, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( "<", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 530, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'a'", ), Operator( ( "<", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 530, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'b'", ), Operator( ( "<", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 530, }, ], ], ), ], line: 529, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 531, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<=", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 531, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "2", ), Operator( ( "<=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 531, }, ], ], ), ], line: 530, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "'a'", ), Operator( ( "<=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 532, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'a'", ), Operator( ( "<=", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 532, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'b'", ), Operator( ( "<=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 532, }, ], ], ), ], line: 531, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( ">", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 533, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( ">", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 533, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "2", ), Operator( ( ">", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 533, }, ], ], ), ], line: 532, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( ">", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 534, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( ">", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 534, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'b'", ), Operator( ( ">", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 534, }, ], ], ), ], line: 533, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( ">=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 535, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "1", ), Operator( ( ">=", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 535, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "2", ), Operator( ( ">=", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 535, }, ], ], ), ], line: 534, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "'a'", ), Operator( ( ">=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 536, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "'a'", ), Operator( ( ">=", true, ), ), Symbol( "'b'", ), ], ), Ident { expr: [], line: 536, }, Operator( ( "and", true, ), ), Expr( [ Symbol( "'b'", ), Operator( ( ">=", true, ), ), Symbol( "'a'", ), ], ), Ident { expr: [], line: 536, }, ], ], ), ], line: 535, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1.3", ), Operator( ( "<", true, ), ), Symbol( "1.4", ), Operator( ( "and", true, ), ), Symbol( "1.3", ), Operator( ( "<=", true, ), ), Symbol( "1.4", ), Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Symbol( "1.3", ), Operator( ( "<", true, ), ), Symbol( "1.3", ), ], ), Ident { expr: [], line: 537, }, Operator( ( "and", true, ), ), Symbol( "1.3", ), Operator( ( "<=", true, ), ), Symbol( "1.3", ), ], ], ), ], line: 536, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "%", true, ), ), Symbol( "3", ), ], [ Symbol( "2", ), ], ], ), ], line: 540, }, ], ], ), ], line: 537, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 541, }, ], ], ), ], line: 540, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4.0", ), Operator( ( "%", true, ), ), Symbol( "3", ), ], [ Symbol( "2.0", ), ], ], ), ], line: 542, }, ], ], ), ], line: 541, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "3.0", ), ], [ Operator( ( "-", false, ), ), Symbol( "2.0", ), ], ], ), ], line: 543, }, ], ], ), ], line: 542, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "5", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 544, }, ], ], ), ], line: 543, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "5.0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1.0", ), ], ], ), ], line: 545, }, ], ], ), ], line: 544, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Symbol( "5", ), ], [ Symbol( "4", ), ], ], ), ], line: 546, }, ], ], ), ], line: 545, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4", ), Operator( ( "%", true, ), ), Symbol( "5.0", ), ], [ Symbol( "4.0", ), ], ], ), ], line: 547, }, ], ], ), ], line: 546, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "5", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 548, }, ], ], ), ], line: 547, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "5.0", ), ], [ Operator( ( "-", false, ), ), Symbol( "4.0", ), ], ], ), ], line: 549, }, ], ], ), ], line: 548, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "%", true, ), ), Symbol( "5", ), ], [ Symbol( "1", ), ], ], ), ], line: 550, }, ], ], ), ], line: 549, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "%", true, ), ), Symbol( "5.0", ), ], [ Symbol( "1.0", ), ], ], ), ], line: 551, }, ], ], ), ], line: 550, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "4.25", ), Operator( ( "%", true, ), ), Symbol( "4", ), ], [ Symbol( "0.25", ), ], ], ), ], line: 552, }, ], ], ), ], line: 551, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Symbol( "10.0", ), Operator( ( "%", true, ), ), Symbol( "2", ), ], [ Symbol( "0.0", ), ], ], ), ], line: 553, }, ], ], ), ], line: 552, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10.0", ), Operator( ( "%", true, ), ), Symbol( "2", ), ], [ Symbol( "0.0", ), ], ], ), ], line: 554, }, ], ], ), ], line: 553, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10.0", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], [ Symbol( "0.0", ), ], ], ), ], line: 555, }, ], ], ), ], line: 554, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 556, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 556, }, Operator( ( "%", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 555, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 557, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 557, }, Operator( ( "%", true, ), ), Symbol( "0.001", ), Operator( ( "==", true, ), ), Symbol( "3.141", ), ], ], ), ], line: 556, }, DoBlock( CodeBlock { start: 4520, code: [ Variable { names: [ ( "i", false, ), ( "j", false, ), ], values: [ [ Symbol( "0", ), ], [ Symbol( "20000", ), ], ], line: 561, column: 0, }, WhileLoop { condition: [ Ident { expr: [ Symbol( "i", ), ], line: 561, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 561, }, ], body: CodeBlock { start: 13, code: [ Variable { names: [ ( "m", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 562, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 562, }, ], ), Ident { expr: [], line: 562, }, Operator( ( "//", true, ), ), Symbol( "2", ), ], ], line: 563, column: 0, }, IfStatement { condition: [ Symbol( "10", ), Operator( ( "^", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "m", ), ], line: 563, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 18, code: [ Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 564, }, ], values: [ [ Ident { expr: [ Symbol( "m", ), ], line: 564, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 564, column: 5, }, ], end: 24, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 24, code: [ Alter { names: [ Ident { expr: [ Symbol( "j", ), ], line: 566, }, ], values: [ [ Ident { expr: [ Symbol( "m", ), ], line: 566, }, ], ], line: 566, column: 3, }, ], end: 28, }, next: None, line: 567, column: 1, }, ), line: 567, column: 1, }, ], end: 42, }, line: 568, column: 1, }, Variable { names: [ ( "b", false, ), ], values: [ [ Symbol( "10", ), Operator( ( "^", true, ), ), Operator( ( "-", false, ), ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 570, }, Operator( ( "-", true, ), ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 570, }, Operator( ( "//", true, ), ), Symbol( "10", ), ], ), Ident { expr: [], line: 570, }, ], ), ], ], line: 570, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 571, }, Operator( ( ">", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 571, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 571, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 570, }, Variable { names: [ ( "delta", false, ), ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 572, }, Operator( ( "/", true, ), ), Symbol( "1000", ), ], ], line: 572, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Expr( [ Symbol( "2.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 573, }, ], ), Ident { expr: [], line: 573, }, Operator( ( "%", true, ), ), Expr( [ Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 573, }, ], ), Ident { expr: [], line: 573, }, ], [ Expr( [ Symbol( "0.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 573, }, ], ), Ident { expr: [], line: 573, }, ], [ Ident { expr: [ Symbol( "delta", ), ], line: 573, }, ], ], ), ], line: 573, }, ], ], ), ], line: 572, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Expr( [ Operator( ( "-", false, ), ), Symbol( "2.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 574, }, ], ), Ident { expr: [], line: 574, }, Operator( ( "%", true, ), ), Expr( [ Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 574, }, ], ), Ident { expr: [], line: 574, }, ], [ Expr( [ Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 574, }, ], ), Ident { expr: [], line: 574, }, Operator( ( "-", true, ), ), Expr( [ Symbol( "0.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 574, }, ], ), Ident { expr: [], line: 574, }, ], [ Ident { expr: [ Symbol( "delta", ), ], line: 574, }, ], ], ), ], line: 574, }, ], ], ), ], line: 573, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Expr( [ Symbol( "2.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 575, }, ], ), Ident { expr: [], line: 575, }, Operator( ( "%", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 575, }, ], ), Ident { expr: [], line: 575, }, ], [ Expr( [ Symbol( "0.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 575, }, ], ), Ident { expr: [], line: 575, }, Operator( ( "-", true, ), ), Expr( [ Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 575, }, ], ), Ident { expr: [], line: 575, }, ], [ Ident { expr: [ Symbol( "delta", ), ], line: 575, }, ], ], ), ], line: 575, }, ], ], ), ], line: 574, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Expr( [ Operator( ( "-", false, ), ), Symbol( "2.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 576, }, ], ), Ident { expr: [], line: 576, }, Operator( ( "%", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 576, }, ], ), Ident { expr: [], line: 576, }, ], [ Expr( [ Operator( ( "-", false, ), ), Symbol( "0.1", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 576, }, ], ), Ident { expr: [], line: 576, }, ], [ Ident { expr: [ Symbol( "delta", ), ], line: 576, }, ], ], ), ], line: 576, }, ], ], ), ], line: 575, }, ], end: 4713, }, ), ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "10", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 4721, code: [ ForLoop { iter: "j", start: [ Operator( ( "-", false, ), ), Symbol( "10", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 8, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "j", ), ], line: 583, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 584, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ), Ident { expr: [], line: 584, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 584, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 584, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 584, }, ], ], ), ], line: 584, }, ], end: 20, }, next: None, line: 585, column: 1, }, ], end: 29, }, line: 586, column: 1, }, ], end: 4751, }, line: 587, column: 1, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 4758, code: [ ForLoop { iter: "j", start: [ Operator( ( "-", false, ), ), Symbol( "10", ), ], end: [ Symbol( "10", ), ], step: None, code: CodeBlock { start: 8, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "j", ), ], line: 591, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 592, }, ], ), Ident { expr: [], line: 592, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 592, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 592, }, ], ), Ident { expr: [], line: 592, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 592, }, ], ], ), ], line: 592, }, ], end: 24, }, next: None, line: 593, column: 1, }, ], end: 33, }, line: 594, column: 1, }, ], end: 4792, }, line: 595, column: 1, }, DoBlock( CodeBlock { start: 4793, code: [ Variable { names: [ ( "i", false, ), ], values: [ [ Symbol( "10", ), ], ], line: 599, column: 0, }, WhileLoop { condition: [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 599, }, ], ), Ident { expr: [], line: 599, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 13, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 600, }, ], ), Ident { expr: [], line: 600, }, Operator( ( "%", true, ), ), Symbol( "3", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 600, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 600, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 600, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 601, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 601, column: 5, }, ], end: 35, }, line: 602, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 602, }, ], values: [ [ Symbol( "10", ), ], ], line: 605, column: 0, }, WhileLoop { condition: [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 605, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 605, }, ], body: CodeBlock { start: 47, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 606, }, Operator( ( "%", true, ), ), Symbol( "3", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 606, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 606, }, Alter { names: [ Ident { expr: [ Symbol( "i", ), ], line: 606, }, ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 607, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 607, column: 5, }, ], end: 67, }, line: 608, column: 1, }, ], end: 4861, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 611, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 611, }, ], [ Symbol( "0", ), ], ], ), ], line: 611, }, ], ], ), ], line: 609, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 612, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 612, }, ], [ Symbol( "0", ), ], ], ), ], line: 612, }, ], ], ), ], line: 611, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 613, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 613, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 613, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 613, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 612, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 614, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 614, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 614, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 614, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 613, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 615, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 615, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 615, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 614, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 617, }, Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 615, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 618, }, Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 617, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 619, }, Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 618, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "_port", ), ], line: 623, }, ], body: CodeBlock { start: 4953, code: [ Function { local: true, name: [ Symbol( "anan", ), ], args: [ "x", ], body: CodeBlock { start: 6, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "isNaN", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 624, }, ], ], ), ], line: 624, }, ], ], ), ], line: 624, }, ], end: 14, }, line: 624, column: 14, }, Ident { expr: [ Symbol( "anan", ), Call( [ [ Symbol( "0.0", ), Operator( ( "%", true, ), ), Symbol( "0", ), ], ], ), ], line: 624, }, Ident { expr: [ Symbol( "anan", ), Call( [ [ Symbol( "1.3", ), Operator( ( "%", true, ), ), Symbol( "0", ), ], ], ), ], line: 625, }, Ident { expr: [ Symbol( "anan", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 627, }, Operator( ( "%", true, ), ), Symbol( "1", ), ], ], ), ], line: 626, }, Ident { expr: [ Symbol( "anan", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 628, }, Operator( ( "%", true, ), ), Symbol( "1e30", ), ], ], ), ], line: 627, }, Ident { expr: [ Symbol( "anan", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 629, }, Operator( ( "%", true, ), ), Symbol( "1e30", ), ], ], ), ], line: 628, }, Ident { expr: [ Symbol( "anan", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 630, }, Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Symbol( "1e30", ), ], ], ), ], line: 629, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 631, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 630, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1e30", ), Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 632, }, Operator( ( "==", true, ), ), Symbol( "1e30", ), ], ], ), ], line: 631, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1e30", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 633, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 633, }, ], ], ), ], line: 632, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 634, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 634, }, ], ], ), ], line: 633, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "%", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 635, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 634, }, ], end: 5075, }, next: None, line: 636, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Symbol( "3", ), ], [ Symbol( "4", ), ], ], ), ], line: 640, }, ], ], ), ], line: 636, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Symbol( "4", ), ], [ Symbol( "4", ), ], ], ), ], line: 641, }, ], ], ), ], line: 640, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 642, }, ], ], ), ], line: 641, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 643, }, ], ], ), ], line: 642, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 644, }, ], ], ), ], line: 643, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 645, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 645, }, ], ], ), ], line: 645, }, ], ], ), ], line: 644, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ult", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 646, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 646, }, ], ], ), ], line: 646, }, ], ], ), ], line: 645, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sin", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "9.8", ), ], ], ), ], line: 649, }, Operator( ( "^", true, ), ), Symbol( "2", ), Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "cos", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "9.8", ), ], ], ), ], line: 649, }, Operator( ( "^", true, ), ), Symbol( "2", ), ], [ Symbol( "1", ), ], ], ), ], line: 649, }, ], ], ), ], line: 646, }, 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: 650, }, Operator( ( "/", true, ), ), Symbol( "4", ), ], ], ), ], line: 650, }, ], [ Symbol( "1", ), ], ], ), ], line: 650, }, ], ], ), ], line: 649, }, 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: 651, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 651, }, ], [ Symbol( "1", ), ], ], ), ], line: 651, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "cos", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 651, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 651, }, ], [ Symbol( "0", ), ], ], ), ], line: 651, }, ], ], ), ], line: 650, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "atan", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 652, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 652, }, Operator( ( "/", true, ), ), Symbol( "4", ), ], ], ), ], line: 652, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "acos", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 652, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 652, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 652, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "asin", ), Call( [ [ Symbol( "1", ), ], ], ), ], line: 653, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 653, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 652, }, ], ], ), ], line: 651, }, 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: 654, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 654, }, ], [ Symbol( "90", ), ], ], ), ], line: 654, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "rad", ), Call( [ [ Symbol( "90", ), ], ], ), ], line: 654, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 654, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 654, }, ], ], ), ], line: 653, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10.43", ), ], ], ), ], line: 655, }, Operator( ( "==", true, ), ), Symbol( "10.43", ), ], ], ), ], line: 654, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 656, }, ], ], ), ], line: 656, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 656, }, ], ], ), ], line: 656, }, ], ], ), ], line: 655, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 657, }, ], ], ), ], line: 657, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 657, }, ], ], ), ], line: 657, }, ], ], ), ], line: 656, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 658, }, ], ], ), ], line: 658, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 658, }, ], ], ), ], line: 658, }, ], ], ), ], line: 657, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "atan", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "0", ), ], ], ), ], line: 659, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 659, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 659, }, ], ], ), ], line: 658, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Symbol( "10", ), ], [ Symbol( "3", ), ], ], ), ], line: 660, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 659, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sqrt", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 661, }, Operator( ( "^", true, ), ), Symbol( "2", ), ], [ Symbol( "10", ), ], ], ), ], line: 661, }, ], ], ), ], line: 660, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], [ Symbol( "10", ), ], ], ), ], line: 662, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], ], ), ], line: 662, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 662, }, ], ], ), ], line: 662, }, ], ], ), ], line: 661, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "2", ), ], [ Symbol( "2", ), ], ], ), ], line: 663, }, ], [ Symbol( "1", ), ], ], ), ], line: 663, }, ], ], ), ], line: 662, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "log", ), Call( [ [ Symbol( "9", ), ], [ Symbol( "3", ), ], ], ), ], line: 664, }, ], [ Symbol( "2", ), ], ], ), ], line: 664, }, ], ], ), ], line: 663, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "exp", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 665, }, ], [ Symbol( "1", ), ], ], ), ], line: 665, }, ], ], ), ], line: 664, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "sin", ), Call( [ [ Symbol( "10", ), ], ], ), ], line: 666, }, ], [ 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: 666, }, ], ), Ident { expr: [], line: 666, }, ], ], ), ], line: 666, }, ], ], ), ], line: 666, }, ], ], ), ], line: 665, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' 1.3e-2 '", ), ], ], ), ], line: 669, }, Operator( ( "==", true, ), ), Symbol( "1.3e-2", ), ], ], ), ], line: 666, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "tonumber", ), Call( [ [ Symbol( "' -1.00000000000001 '", ), ], ], ), ], line: 670, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1.00000000000001", ), ], ], ), ], line: 669, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "8388609", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "8388609", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 670, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "8388608", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "8388608", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 674, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "8388607", ), Operator( ( "+", true, ), ), Operator( ( "-", false, ), ), Symbol( "8388607", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 675, }, DoBlock( CodeBlock { start: 5575, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Symbol( "3.4", ), ], ], ), ], line: 681, }, ], [ Symbol( "3", ), ], ], ), ], line: 681, }, ], ], ), ], line: 681, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Symbol( "3.4", ), ], ], ), ], line: 682, }, ], [ Symbol( "4", ), ], ], ), ], line: 682, }, ], ], ), ], line: 681, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "3.4", ), ], ], ), ], line: 683, }, ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 683, }, ], ], ), ], line: 682, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "3.4", ), ], ], ), ], line: 684, }, ], [ Operator( ( "-", false, ), ), Symbol( "3", ), ], ], ), ], line: 684, }, ], ], ), ], line: 683, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 685, }, ], ], ), ], line: 685, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 685, }, ], ], ), ], line: 685, }, ], ], ), ], line: 684, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 686, }, ], ], ), ], line: 686, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 686, }, ], ], ), ], line: 686, }, ], ], ), ], line: 685, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 687, }, ], ], ), ], line: 687, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 687, }, ], ], ), ], line: 687, }, ], ], ), ], line: 686, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 688, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 688, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 688, }, ], ], ), ], line: 688, }, ], ], ), ], line: 687, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 689, }, ], ], ), ], line: 689, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 689, }, ], ], ), ], line: 689, }, ], ], ), ], line: 688, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 690, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 690, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 690, }, ], ], ), ], line: 690, }, ], ], ), ], line: 689, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Symbol( "1e50", ), ], ], ), ], line: 691, }, Operator( ( "==", true, ), ), Symbol( "1e50", ), ], ], ), ], line: 690, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Symbol( "1e50", ), ], ], ), ], line: 692, }, Operator( ( "==", true, ), ), Symbol( "1e50", ), ], ], ), ], line: 691, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1e50", ), ], ], ), ], line: 693, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1e50", ), ], ], ), ], line: 692, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1e50", ), ], ], ), ], line: 694, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1e50", ), ], ], ), ], line: 693, }, ForFuncLoop { iters: [ "_", "p", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Table { data: [ ( None, [ Symbol( "31", ), ], ), ( None, [ Symbol( "32", ), ], ), ( None, [ Symbol( "63", ), ], ), ( None, [ Symbol( "64", ), ], ), ], line: 695, column: 15, }, ], ], ), ], line: 695, }, ], stop: None, initial: None, code: CodeBlock { start: 212, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 696, }, ], ], ), ], line: 696, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 696, }, ], ], ), ], line: 696, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 697, }, Operator( ( "+", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 697, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 697, }, ], ], ), ], line: 696, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 698, }, ], ], ), ], line: 698, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 698, }, ], ], ), ], line: 697, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 699, }, Operator( ( "-", true, ), ), Symbol( "0.5", ), ], ], ), ], line: 699, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "p", ), ], line: 699, }, ], ], ), ], line: 698, }, ], end: 277, }, line: 700, column: 1, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"number expected\"", ), ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), ], line: 701, }, ], [ Table { data: [], line: 701, column: 10, }, ], ], ), ], line: 700, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"number expected\"", ), ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), ], line: 702, }, ], [ Ident { expr: [ Symbol( "print", ), ], line: 702, }, ], ], ), ], line: 701, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 703, }, ], ], ), ], line: 703, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 703, }, ], ], ), ], line: 703, }, ], ], ), ], line: 702, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 704, }, Operator( ( "..", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 704, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 704, }, ], ], ), ], line: 704, }, ], ], ), ], line: 703, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 705, }, ], ], ), ], line: 705, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 705, }, ], ], ), ], line: 705, }, ], ], ), ], line: 704, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 706, }, Operator( ( "..", true, ), ), Symbol( "\"\"", ), ], ], ), ], line: 706, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 706, }, ], ], ), ], line: 706, }, ], ], ), ], line: 705, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 707, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], ], ), ], line: 707, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 707, }, ], ], ), ], line: 707, }, ], ], ), ], line: 706, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Symbol( "0.0", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 708, }, ], ], ), ], line: 708, }, ], ], ), ], line: 707, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 709, }, ], ], ), ], line: 709, }, ], ], ), ], line: 708, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "pi", ), ], line: 710, }, ], ], ), ], line: 710, }, ], ], ), ], line: 709, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 711, }, ], ], ), ], line: 711, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 711, }, ], ], ), ], line: 710, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 712, }, ], ], ), ], line: 712, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 712, }, ], ], ), ], line: 711, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 713, }, ], ], ), ], line: 713, }, ], ], ), ], line: 712, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 714, }, ], ], ), ], line: 714, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 714, }, ], ], ), ], line: 713, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "ceil", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 715, }, ], ], ), ], line: 715, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 715, }, ], ], ), ], line: 714, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 716, }, ], ], ), ], line: 716, }, ], ], ), ], line: 715, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Symbol( "\"34.0\"", ), ], ], ), ], line: 717, }, Operator( ( "==", true, ), ), Symbol( "34", ), ], ], ), ], line: 716, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Symbol( "\"34.3\"", ), ], ], ), ], line: 718, }, ], ], ), ], line: 717, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Table { data: [], line: 719, column: 9, }, ], ], ), ], line: 719, }, ], ], ), ], line: 718, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "tointeger", ), Call( [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], ), ], line: 720, }, ], ], ), ], line: 719, }, ], end: 6120, }, ), ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "6", ), ], end: [ Symbol( "6", ), ], step: None, code: CodeBlock { start: 6128, code: [ ForLoop { iter: "j", start: [ Operator( ( "-", false, ), ), Symbol( "6", ), ], end: [ Symbol( "6", ), ], step: None, code: CodeBlock { start: 8, code: [ IfStatement { condition: [ Ident { expr: [ Symbol( "j", ), ], line: 727, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 5, code: [ Variable { names: [ ( "mi", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 728, }, ], [ Ident { expr: [ Symbol( "j", ), ], line: 728, }, ], ], ), ], line: 728, }, ], ], line: 729, column: 0, }, Variable { names: [ ( "mf", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "i", ), ], line: 729, }, Operator( ( "+", true, ), ), Symbol( "0.0", ), ], [ Ident { expr: [ Symbol( "j", ), ], line: 729, }, ], ], ), ], line: 729, }, ], ], line: 729, column: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "mi", ), ], line: 730, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "mf", ), ], line: 730, }, ], ], ), ], line: 729, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "mi", ), ], line: 731, }, ], ], ), ], line: 731, }, Operator( ( "==", true, ), ), Symbol( "'integer'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "type", ), Call( [ [ Ident { expr: [ Symbol( "mf", ), ], line: 731, }, ], ], ), ], line: 731, }, Operator( ( "==", true, ), ), Symbol( "'float'", ), ], ], ), ], line: 730, }, IfStatement { condition: [ Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 732, }, Operator( ( ">=", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 732, }, Operator( ( ">=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 732, }, Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 732, }, Operator( ( "<=", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 732, }, Operator( ( "<=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 732, }, Operator( ( "or", true, ), ), Ident { expr: [ Symbol( "mi", ), ], line: 732, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 75, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "mi", ), ], line: 733, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 733, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "j", ), ], line: 733, }, ], ], ), ], line: 733, }, ], ], ), ], line: 733, }, ], end: 87, }, next: None, line: 734, column: 1, }, ], end: 93, }, next: None, line: 735, column: 1, }, ], end: 102, }, line: 736, column: 1, }, ], end: 6231, }, line: 737, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 738, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 738, }, ], ], ), ], line: 738, }, ], [ Symbol( "0", ), ], ], ), ], line: 738, }, ], ], ), ], line: 737, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 739, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 739, }, ], ], ), ], line: 739, }, ], [ Symbol( "0", ), ], ], ), ], line: 739, }, ], ], ), ], line: 738, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 740, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "minint", ), ], line: 740, }, ], ], ), ], line: 740, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 740, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 740, }, ], ], ), ], line: 739, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 741, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 741, }, ], ], ), ], line: 741, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 741, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 741, }, ], ], ), ], line: 740, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"zero\"", ), ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), ], line: 743, }, ], [ Symbol( "3", ), ], [ Symbol( "0", ), ], ], ), ], line: 741, }, DoBlock( CodeBlock { start: 6316, code: [ Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"value expected\"", ), ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), ], line: 747, }, ], ], ), ], line: 747, }, Ident { expr: [ Symbol( "checkerror", ), Call( [ [ Symbol( "\"value expected\"", ), ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), ], line: 748, }, ], ], ), ], line: 747, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 749, }, ], [ Symbol( "3", ), ], ], ), ], line: 749, }, ], ], ), ], line: 748, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Symbol( "3", ), ], [ Symbol( "5", ), ], [ Symbol( "9", ), ], [ Symbol( "1", ), ], ], ), ], line: 750, }, ], [ Symbol( "9", ), ], ], ), ], line: 750, }, ], ], ), ], line: 749, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 751, }, ], [ Symbol( "10e60", ), ], ], ), ], line: 751, }, Operator( ( "==", true, ), ), Symbol( "10e60", ), ], ], ), ], line: 750, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 752, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 752, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 752, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 752, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 752, }, ], ], ), ], line: 751, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Symbol( "3", ), ], ], ), ], line: 753, }, ], [ Symbol( "3", ), ], ], ), ], line: 753, }, ], ], ), ], line: 752, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Symbol( "3", ), ], [ Symbol( "5", ), ], [ Symbol( "9", ), ], [ Symbol( "1", ), ], ], ), ], line: 754, }, ], [ Symbol( "1", ), ], ], ), ], line: 754, }, ], ], ), ], line: 753, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Symbol( "3.2", ), ], [ Symbol( "5.9", ), ], [ Operator( ( "-", false, ), ), Symbol( "9.2", ), ], [ Symbol( "1.1", ), ], ], ), ], line: 755, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "9.2", ), ], ], ), ], line: 754, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Symbol( "1.9", ), ], [ Symbol( "1.7", ), ], [ Symbol( "1.72", ), ], ], ), ], line: 756, }, Operator( ( "==", true, ), ), Symbol( "1.7", ), ], ], ), ], line: 755, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10e60", ), ], [ Ident { expr: [ Symbol( "minint", ), ], line: 757, }, ], ], ), ], line: 757, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "10e60", ), ], ], ), ], line: 756, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 758, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 758, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 758, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 758, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 758, }, ], ], ), ], line: 757, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eqT", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 759, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 759, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 759, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 759, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 759, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 759, }, ], ], ), ], line: 758, }, ], end: 6527, }, ), Variable { names: [ ( "a", false, ), ( "b", false, ), ], values: [ [ Symbol( "'10'", ), ], [ Symbol( "'20'", ), ], ], line: 763, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 764, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 764, }, Operator( ( "==", true, ), ), Symbol( "200", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 764, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 764, }, Operator( ( "==", true, ), ), Symbol( "30", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 764, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 764, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "10", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 764, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 764, }, Operator( ( "==", true, ), ), Symbol( "0.5", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 764, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "20", ), ], ], ), ], line: 763, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 765, }, Operator( ( "==", true, ), ), Symbol( "'10'", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 765, }, Operator( ( "==", true, ), ), Symbol( "'20'", ), ], ], ), ], line: 764, }, DoBlock( CodeBlock { start: 6579, code: [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing -0 and NaN\"", ), ], ], ), ], line: 769, }, Variable { names: [ ( "mz", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "0.0", ), ], ], line: 771, column: 0, }, Variable { names: [ ( "z", false, ), ], values: [ [ Symbol( "0.0", ), ], ], line: 771, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "mz", ), ], line: 772, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 772, }, ], ], ), ], line: 771, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "mz", ), ], line: 773, }, Operator( ( "<", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "<", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 773, }, ], ], ), ], line: 772, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [ ( Some( [ Ident { expr: [ Symbol( "mz", ), ], line: 774, }, ], ), [ Symbol( "1", ), ], ), ], line: 774, column: 10, }, ], ], line: 774, column: 10, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "z", ), ], line: 775, }, ], ), Symbol( "]", ), ], line: 775, }, Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "mz", ), ], line: 775, }, ], ), Symbol( "]", ), ], line: 775, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 774, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "z", ), ], line: 776, }, ], ), Symbol( "]", ), ], line: 775, }, ], values: [ [ Symbol( "2", ), ], ], line: 776, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "z", ), ], line: 777, }, ], ), Symbol( "]", ), ], line: 777, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "mz", ), ], line: 777, }, ], ), Symbol( "]", ), ], line: 777, }, Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 776, }, Variable { names: [ ( "inf", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 778, }, Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 779, column: 0, }, Variable { names: [ ( "mz", false, ), ], values: [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "inf", ), ], line: 779, }, ], ], line: 780, column: 0, }, Variable { names: [ ( "z", false, ), ], values: [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "inf", ), ], line: 780, }, ], ], line: 780, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "mz", ), ], line: 781, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 781, }, ], ], ), ], line: 780, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "mz", ), ], line: 782, }, Operator( ( "<", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Symbol( "0", ), Operator( ( "<", true, ), ), Symbol( "1", ), Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 782, }, ], ], ), ], line: 781, }, Variable { names: [ ( "NaN", false, ), ], values: [ [ Ident { expr: [ Symbol( "inf", ), ], line: 783, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "inf", ), ], line: 783, }, ], ], line: 783, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "NaN", ), ], line: 784, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 784, }, ], ], ), ], line: 783, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 785, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 785, }, ], ), Ident { expr: [], line: 785, }, ], ], ), ], line: 784, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 786, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 786, }, ], ), Ident { expr: [], line: 786, }, ], ], ), ], line: 785, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 787, }, Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 787, }, ], ), Ident { expr: [], line: 787, }, ], ], ), ], line: 786, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 788, }, Operator( ( ">=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 788, }, ], ), Ident { expr: [], line: 788, }, ], ], ), ], line: 787, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Expr( [ Symbol( "0", ), Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 789, }, ], ), Ident { expr: [], line: 789, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 789, }, Operator( ( "<", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 789, }, ], ], ), ], line: 788, }, Variable { names: [ ( "NaN1", false, ), ], values: [ [ Symbol( "0", ), Operator( ( "/", true, ), ), Symbol( "0", ), ], ], line: 790, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "NaN", ), ], line: 791, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "NaN1", ), ], line: 791, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 791, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN1", ), ], line: 791, }, ], ), Ident { expr: [], line: 791, }, Operator( ( "and", true, ), ), Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "NaN1", ), ], line: 791, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "NaN", ), ], line: 791, }, ], ), Ident { expr: [], line: 791, }, ], ], ), ], line: 790, }, Variable { names: [ ( "a", false, ), ], values: [ [ Table { data: [], line: 792, column: 5, }, ], ], line: 792, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "rawset", ), ], line: 793, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 793, }, ], [ Ident { expr: [ Symbol( "NaN", ), ], line: 793, }, ], [ Symbol( "1", ), ], ], ), ], line: 793, }, ], ], ), ], line: 792, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 794, }, ], ), Symbol( "]", ), ], line: 794, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 794, }, ], ], ), ], line: 793, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Symbol( "1", ), ], ), Symbol( "]", ), ], line: 794, }, ], values: [ [ Symbol( "1", ), ], ], line: 795, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "rawset", ), ], line: 796, }, ], [ Ident { expr: [ Symbol( "a", ), ], line: 796, }, ], [ Ident { expr: [ Symbol( "NaN", ), ], line: 796, }, ], [ Symbol( "1", ), ], ], ), ], line: 796, }, ], ], ), ], line: 795, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "NaN", ), ], line: 797, }, ], ), Symbol( "]", ), ], line: 797, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "undef", ), ], line: 797, }, ], ], ), ], line: 796, }, 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: 800, column: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a1", ), ], line: 801, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a2", ), ], line: 801, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a2", ), ], line: 801, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a4", ), ], line: 801, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a1", ), ], line: 801, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "a3", ), ], line: 801, }, ], ], ), ], line: 800, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a3", ), ], line: 802, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a5", ), ], line: 802, }, ], ], ), ], line: 801, }, ], end: 6909, }, ), Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing 'math.random'\"", ), ], ], ), ], line: 803, }, Variable { names: [ ( "random", false, ), ( "max", false, ), ( "min", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), ], line: 808, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), ], line: 808, }, ], [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), ], line: 808, }, ], ], line: 810, column: 0, }, Function { local: true, name: [ Symbol( "testnear", ), ], args: [ "val", "ref", "tol", ], body: CodeBlock { start: 6941, code: [ Return( Some( [ [ Expr( [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "abs", ), Call( [ [ Ident { expr: [ Symbol( "val", ), ], line: 811, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "ref", ), ], line: 811, }, ], ], ), ], line: 811, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "ref", ), ], line: 811, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "tol", ), ], line: 811, }, ], ), Ident { expr: [], line: 811, }, ], ], ), ), ], end: 6957, }, line: 812, column: 1, }, DoBlock( CodeBlock { start: 6958, code: [ Variable { names: [ ( "h", false, ), ], values: [ [ Symbol( "0x7a7040a5", ), ], ], line: 820, column: 0, }, Variable { names: [ ( "l", false, ), ], values: [ [ Symbol( "0xa323c9d6", ), ], ], line: 820, column: 7, }, Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "randomseed", ), Call( [ [ Symbol( "1007", ), ], ], ), ], line: 820, }, Variable { names: [ ( "res", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "h", ), ], line: 824, }, Operator( ( "<<", true, ), ), Symbol( "32", ), Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "l", ), ], line: 824, }, ], ), Ident { expr: [], line: 824, }, Operator( ( "&", true, ), ), Operator( ( "~", false, ), ), Expr( [ Operator( ( "~", false, ), ), Symbol( "0", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 824, }, ], ), ], ], line: 824, column: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "random", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 825, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "res", ), ], line: 825, }, ], ], ), ], line: 824, }, Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "randomseed", ), Call( [ [ Symbol( "1007", ), ], [ Symbol( "0", ), ], ], ), ], line: 825, }, Variable { names: [ ( "res", false, ), ], values: [], line: 830, column: 2, }, IfStatement { condition: [ Ident { expr: [ Symbol( "floatbits", ), ], line: 831, }, Operator( ( "<=", true, ), ), Symbol( "32", ), ], body: CodeBlock { start: 62, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), ], line: 833, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "h", ), ], line: 833, }, Operator( ( ">>", true, ), ), Expr( [ Symbol( "32", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 833, }, ], ), Ident { expr: [], line: 833, }, ], ), Ident { expr: [], line: 833, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], line: 833, column: 15, }, ], end: 78, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 78, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), ], line: 836, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "h", ), ], line: 836, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 836, }, Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Expr( [ Ident { expr: [ Symbol( "floatbits", ), ], line: 836, }, Operator( ( "-", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 836, }, Operator( ( "+", true, ), ), Expr( [ Expr( [ Ident { expr: [ Symbol( "l", ), ], line: 836, }, Operator( ( ">>", true, ), ), Expr( [ Symbol( "64", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 836, }, ], ), Ident { expr: [], line: 836, }, ], ), Ident { expr: [], line: 836, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 836, }, ], ], line: 836, column: 33, }, ], end: 112, }, next: None, line: 837, column: 1, }, ), line: 837, column: 1, }, Variable { names: [ ( "rand", false, ), ], values: [ [ Ident { expr: [ Symbol( "random", ), Call( [], ), ], line: 838, }, ], ], line: 838, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "rand", ), ], line: 839, }, ], [ Symbol( "0.4782753376376966", ), ], [ Symbol( "2", ), Operator( ( "^", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 839, }, ], ], ), ], line: 839, }, ], ], ), ], line: 838, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "rand", ), ], line: 840, }, Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "floatbits", ), ], line: 840, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "res", ), ], line: 840, }, ], ], ), ], line: 839, }, ], end: 7101, }, ), DoBlock( CodeBlock { start: 7102, code: [ Variable { names: [ ( "x", false, ), ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "randomseed", ), Call( [], ), ], line: 845, }, ], ], line: 846, column: 0, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 846, }, ], ], line: 846, column: 9, }, Alter { names: [ Ident { expr: [ Symbol( "x", ), ], line: 846, }, Ident { expr: [ Symbol( "y", ), ], line: 847, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "randomseed", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 847, }, ], [ Ident { expr: [ Symbol( "y", ), ], line: 847, }, ], ], ), ], line: 847, }, ], ], line: 847, column: 12, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 848, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "res", ), ], line: 848, }, ], ], ), ], line: 847, }, Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "randomseed", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 849, }, ], [ Ident { expr: [ Symbol( "y", ), ], line: 849, }, ], ], ), ], line: 848, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "random", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 850, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "res", ), ], line: 850, }, ], ], ), ], line: 849, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"random seeds: %d, %d\"", ), ], [ Ident { expr: [ Symbol( "x", ), ], line: 852, }, ], [ Ident { expr: [ Symbol( "y", ), ], line: 852, }, ], ], ), ], line: 852, }, ], ], ), ], line: 850, }, ], end: 7177, }, ), DoBlock( CodeBlock { start: 7178, code: [ Variable { names: [ ( "randbits", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "floatbits", ), ], line: 856, }, ], [ Symbol( "64", ), ], ], ), ], line: 856, }, ], ], line: 857, column: 0, }, Variable { names: [ ( "mult", false, ), ], values: [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "randbits", ), ], line: 857, }, ], ], line: 858, column: 0, }, Variable { names: [ ( "counts", false, ), ], values: [ [ Table { data: [], line: 858, column: 5, }, ], ], line: 859, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "randbits", ), ], line: 859, }, ], step: None, code: CodeBlock { start: 29, code: [ Alter { names: [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 859, }, ], ), Symbol( "]", ), ], line: 859, }, ], values: [ [ Symbol( "0", ), ], ], line: 859, column: 6, }, ], end: 36, }, line: 859, column: 14, }, Variable { names: [ ( "up", false, ), ], values: [ [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 860, }, ], ], line: 861, column: 0, }, Variable { names: [ ( "low", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "huge", ), ], line: 861, }, ], ], line: 862, column: 0, }, Variable { names: [ ( "rounds", false, ), ], values: [ [ Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "randbits", ), ], line: 862, }, ], ], line: 863, column: 0, }, Variable { names: [ ( "totalrounds", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 865, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "rounds", ), ], line: 865, }, ], step: None, code: CodeBlock { start: 66, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "random", ), Call( [], ), ], line: 866, }, ], ], line: 866, column: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0", ), Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 867, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 867, }, Operator( ( "<", true, ), ), Symbol( "1", ), ], ], ), ], line: 866, }, Alter { names: [ Ident { expr: [ Symbol( "up", ), ], line: 867, }, ], values: [ [ Ident { expr: [ Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "up", ), ], line: 868, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 868, }, ], ], ), ], line: 868, }, ], ], line: 868, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "low", ), ], line: 868, }, ], values: [ [ Ident { expr: [ Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "low", ), ], line: 869, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 869, }, ], ], ), ], line: 869, }, ], ], line: 869, column: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "t", ), ], line: 870, }, Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "mult", ), ], line: 870, }, Operator( ( "%", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 869, }, Variable { names: [ ( "bit", false, ), ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 871, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "randbits", ), ], line: 871, }, ], ], line: 872, column: 0, }, IfStatement { condition: [ Expr( [ Ident { expr: [ Symbol( "t", ), ], line: 872, }, Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "bit", ), ], line: 872, }, ], ), Ident { expr: [], line: 872, }, Operator( ( "%", true, ), ), Symbol( "1", ), Operator( ( ">=", true, ), ), Symbol( "0.5", ), ], body: CodeBlock { start: 61, code: [ Alter { names: [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "bit", ), ], line: 873, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 873, }, ], values: [ [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "bit", ), ], line: 873, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 873, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 873, column: 15, }, ], end: 77, }, next: None, line: 874, column: 1, }, ], end: 144, }, line: 875, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 875, }, ], values: [ [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 876, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "rounds", ), ], line: 876, }, ], ], line: 877, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "up", ), ], line: 877, }, ], [ Symbol( "1", ), ], [ Symbol( "0.001", ), ], ], ), ], line: 877, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "eq", ), Call( [ [ Ident { expr: [ Symbol( "low", ), ], line: 877, }, ], [ Symbol( "0", ), ], [ Symbol( "0.001", ), ], ], ), ], line: 877, }, ], ), Ident { expr: [], line: 877, }, ], body: CodeBlock { start: 171, code: [], end: 172, }, next: None, line: 879, column: 1, }, Variable { names: [ ( "expected", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 881, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "randbits", ), ], line: 881, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 881, }, ], ], line: 882, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "randbits", ), ], line: 882, }, ], step: None, code: CodeBlock { start: 189, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "testnear", ), Call( [ [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 883, }, ], ), Symbol( "]", ), ], line: 883, }, ], [ Ident { expr: [ Symbol( "expected", ), ], line: 883, }, ], [ Symbol( "0.10", ), ], ], ), ], line: 883, }, ], body: CodeBlock { start: 14, code: [], end: 15, }, next: None, line: 885, column: 1, }, ], end: 205, }, line: 886, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"float random range in %d calls: [%f, %f]\"", ), ], [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 887, }, ], [ Ident { expr: [ Symbol( "low", ), ], line: 888, }, ], [ Ident { expr: [ Symbol( "up", ), ], line: 888, }, ], ], ), ], line: 887, }, ], ], ), ], line: 886, }, ], end: 7399, }, ), DoBlock( CodeBlock { start: 7400, code: [ Variable { names: [ ( "up", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 894, column: 0, }, Variable { names: [ ( "low", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 895, column: 0, }, Variable { names: [ ( "counts", false, ), ], values: [ [ Table { data: [], line: 895, column: 5, }, ], ], line: 896, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "intbits", ), ], line: 896, }, ], step: None, code: CodeBlock { start: 20, code: [ Alter { names: [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 896, }, ], ), Symbol( "]", ), ], line: 896, }, ], values: [ [ Symbol( "0", ), ], ], line: 896, column: 6, }, ], end: 27, }, line: 896, column: 14, }, Variable { names: [ ( "rounds", false, ), ], values: [ [ Symbol( "100", ), Operator( ( "*", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 897, }, ], ], line: 898, column: 0, }, Variable { names: [ ( "totalrounds", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 900, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "0", ), ], end: [ Ident { expr: [ Symbol( "rounds", ), ], line: 900, }, ], step: None, code: CodeBlock { start: 44, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "random", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 901, }, ], ], line: 901, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "up", ), ], line: 901, }, ], values: [ [ Ident { expr: [ Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "up", ), ], line: 902, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 902, }, ], ], ), ], line: 902, }, ], ], line: 902, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "low", ), ], line: 902, }, ], values: [ [ Ident { expr: [ Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "low", ), ], line: 903, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 903, }, ], ], ), ], line: 903, }, ], ], line: 904, column: 0, }, Variable { names: [ ( "bit", false, ), ], values: [ [ Ident { expr: [ Symbol( "i", ), ], line: 904, }, Operator( ( "%", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 904, }, ], ], line: 904, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "bit", ), ], line: 906, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 904, }, ], values: [ [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "bit", ), ], line: 906, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ), Symbol( "]", ), ], line: 906, }, Operator( ( "+", true, ), ), Expr( [ Expr( [ Ident { expr: [ Symbol( "t", ), ], line: 906, }, Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "bit", ), ], line: 906, }, ], ), Ident { expr: [], line: 906, }, Operator( ( "&", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 906, }, ], ], line: 906, column: 23, }, ], end: 97, }, line: 907, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 907, }, ], values: [ [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 908, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "rounds", ), ], line: 908, }, ], ], line: 909, column: 0, }, Variable { names: [ ( "lim", false, ), ], values: [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 909, }, Operator( ( ">>", true, ), ), Symbol( "10", ), ], ], line: 910, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 910, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "up", ), ], line: 910, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 910, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "low", ), ], line: 910, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 910, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "lim", ), ], line: 910, }, ], ), Ident { expr: [], line: 910, }, ], body: CodeBlock { start: 124, code: [], end: 125, }, next: None, line: 912, column: 1, }, Variable { names: [ ( "expected", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 914, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "intbits", ), ], line: 914, }, Operator( ( "/", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 914, }, ], ], line: 915, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "intbits", ), ], line: 915, }, ], step: None, code: CodeBlock { start: 142, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "testnear", ), Call( [ [ Ident { expr: [ Symbol( "counts", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 916, }, ], ), Symbol( "]", ), ], line: 916, }, ], [ Ident { expr: [ Symbol( "expected", ), ], line: 916, }, ], [ Symbol( "0.10", ), ], ], ), ], line: 916, }, ], body: CodeBlock { start: 14, code: [], end: 15, }, next: None, line: 918, column: 1, }, ], end: 158, }, line: 919, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "format", ), Call( [ [ Symbol( "\"integer random range in %d calls: [minint + %.0fppm, maxint - %.0fppm]\"", ), ], [ Ident { expr: [ Symbol( "totalrounds", ), ], line: 921, }, ], [ Expr( [ Ident { expr: [ Symbol( "minint", ), ], line: 922, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "low", ), ], line: 922, }, ], ), Ident { expr: [], line: 922, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "minint", ), ], line: 922, }, Operator( ( "*", true, ), ), Symbol( "1e6", ), ], [ Expr( [ Ident { expr: [ Symbol( "maxint", ), ], line: 923, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "up", ), ], line: 923, }, ], ), Ident { expr: [], line: 923, }, Operator( ( "/", true, ), ), Ident { expr: [ Symbol( "maxint", ), ], line: 923, }, Operator( ( "*", true, ), ), Symbol( "1e6", ), ], ], ), ], line: 920, }, ], ], ), ], line: 919, }, ], end: 7590, }, ), DoBlock( CodeBlock { start: 7591, code: [ Variable { names: [ ( "count", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "0", ), ], ), ], line: 928, column: 16, }, ], ], line: 929, column: 0, }, Variable { names: [ ( "rep", false, ), ], values: [ [ Symbol( "200", ), ], ], line: 930, column: 0, }, Variable { names: [ ( "totalrep", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 932, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "rep", ), ], line: 932, }, Operator( ( "*", true, ), ), Symbol( "6", ), ], step: None, code: CodeBlock { start: 33, code: [ Variable { names: [ ( "r", false, ), ], values: [ [ Ident { expr: [ Symbol( "random", ), Call( [ [ Symbol( "6", ), ], ], ), ], line: 933, }, ], ], line: 933, column: 7, }, Alter { names: [ Ident { expr: [ Symbol( "count", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "r", ), ], line: 934, }, ], ), Symbol( "]", ), ], line: 933, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "r", ), ], line: 934, }, ], ), Symbol( "]", ), ], line: 934, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 934, column: 11, }, ], end: 52, }, line: 935, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "totalrep", ), ], line: 935, }, ], values: [ [ Ident { expr: [ Symbol( "totalrep", ), ], line: 936, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "rep", ), ], line: 936, }, ], ], line: 937, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Symbol( "6", ), ], step: None, code: CodeBlock { start: 64, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "testnear", ), Call( [ [ Ident { expr: [ Symbol( "count", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 938, }, ], ), Symbol( "]", ), ], line: 938, }, ], [ Ident { expr: [ Symbol( "totalrep", ), ], line: 938, }, ], [ Symbol( "0.05", ), ], ], ), ], line: 938, }, ], body: CodeBlock { start: 14, code: [], end: 15, }, next: None, line: 940, column: 1, }, ], end: 80, }, line: 941, column: 1, }, ], end: 7672, }, ), DoBlock( CodeBlock { start: 7673, code: [ Function { local: true, name: [ Symbol( "aux", ), ], args: [ "x1", "x2", ], body: CodeBlock { start: 8, code: [ Variable { names: [ ( "mark", false, ), ], values: [ [ Table { data: [], line: 946, column: 5, }, ], ], line: 946, column: 6, }, Variable { names: [ ( "count", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 947, column: 0, }, WhileLoop { condition: [ Symbol( "true", ), ], body: CodeBlock { start: 13, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "random", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 948, }, ], [ Ident { expr: [ Symbol( "x2", ), ], line: 948, }, ], ], ), ], line: 948, }, ], ], line: 948, column: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "x1", ), ], line: 949, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 949, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 949, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 949, }, ], ], ), ], line: 948, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "mark", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), ], line: 950, }, ], ), Symbol( "]", ), ], line: 950, }, ], body: CodeBlock { start: 26, code: [ Alter { names: [ Ident { expr: [ Symbol( "mark", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), ], line: 951, }, ], ), Symbol( "]", ), ], line: 951, }, ], values: [ [ Symbol( "true", ), ], ], line: 951, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 951, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 952, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 953, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "count", ), ], line: 953, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "x2", ), ], line: 953, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "x1", ), ], line: 953, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], body: CodeBlock { start: 20, code: [], end: 21, }, next: None, line: 955, column: 1, }, ], end: 48, }, next: None, line: 956, column: 1, }, ], end: 62, }, line: 957, column: 1, }, ], end: 71, }, line: 958, column: 1, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Symbol( "0", ), ], ], ), ], line: 958, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "6", ), ], ], ), ], line: 960, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 961, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "13", ), ], ], ), ], line: 962, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "31", ), ], ], ), ], line: 963, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "32", ), ], ], ), ], line: 964, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "33", ), ], ], ), ], line: 965, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Symbol( "10", ), ], ], ), ], line: 966, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "10", ), ], [ Operator( ( "-", false, ), ), Symbol( "10", ), ], ], ), ], line: 967, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 969, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 969, }, ], ], ), ], line: 968, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 970, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 970, }, ], ], ), ], line: 969, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 971, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 971, }, Operator( ( "+", true, ), ), Symbol( "9", ), ], ], ), ], line: 970, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 972, }, Operator( ( "-", true, ), ), Symbol( "3", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 972, }, ], ], ), ], line: 971, }, ], end: 7831, }, ), DoBlock( CodeBlock { start: 7832, code: [ Function { local: true, name: [ Symbol( "aux", ), ], args: [ "p1", "p2", ], body: CodeBlock { start: 8, code: [ Variable { names: [ ( "max", false, ), ], values: [ [ Ident { expr: [ Symbol( "minint", ), ], line: 977, }, ], ], line: 978, column: 0, }, Variable { names: [ ( "min", false, ), ], values: [ [ Ident { expr: [ Symbol( "maxint", ), ], line: 978, }, ], ], line: 979, column: 0, }, Variable { names: [ ( "n", false, ), ], values: [ [ Symbol( "100", ), ], ], line: 980, column: 0, }, Variable { names: [ ( "mark", false, ), ], values: [ [ Table { data: [], line: 980, column: 5, }, ], ], line: 980, column: 6, }, Variable { names: [ ( "count", false, ), ], values: [ [ Symbol( "0", ), ], ], line: 982, column: 0, }, ForLoop { iter: "_", start: [ Symbol( "1", ), ], end: [ Ident { expr: [ Symbol( "n", ), ], line: 982, }, ], step: None, code: CodeBlock { start: 29, code: [ Variable { names: [ ( "t", false, ), ], values: [ [ Ident { expr: [ Symbol( "random", ), Call( [ [ Ident { expr: [ Symbol( "p1", ), ], line: 983, }, ], [ Ident { expr: [ Symbol( "p2", ), ], line: 983, }, ], ], ), ], line: 983, }, ], ], line: 984, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "mark", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), ], line: 984, }, ], ), Symbol( "]", ), ], line: 984, }, ], body: CodeBlock { start: 16, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "p1", ), ], line: 985, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 985, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "t", ), ], line: 985, }, Operator( ( "<=", true, ), ), Ident { expr: [ Symbol( "p2", ), ], line: 985, }, ], ], ), ], line: 985, }, Alter { names: [ Ident { expr: [ Symbol( "max", ), ], line: 985, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "max", ), Call( [ [ Ident { expr: [ Symbol( "max", ), ], line: 986, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 986, }, ], ], ), ], line: 986, }, ], ], line: 986, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "min", ), ], line: 986, }, ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "min", ), Call( [ [ Ident { expr: [ Symbol( "min", ), ], line: 987, }, ], [ Ident { expr: [ Symbol( "t", ), ], line: 987, }, ], ], ), ], line: 987, }, ], ], line: 987, column: 10, }, Alter { names: [ Ident { expr: [ Symbol( "mark", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "t", ), ], line: 988, }, ], ), Symbol( "]", ), ], line: 987, }, ], values: [ [ Symbol( "true", ), ], ], line: 988, column: 6, }, Alter { names: [ Ident { expr: [ Symbol( "count", ), ], line: 988, }, ], values: [ [ Ident { expr: [ Symbol( "count", ), ], line: 989, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], line: 989, column: 5, }, ], end: 58, }, next: None, line: 990, column: 1, }, ], end: 88, }, line: 991, column: 1, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "count", ), ], line: 993, }, Operator( ( ">=", true, ), ), Ident { expr: [ Symbol( "n", ), ], line: 993, }, Operator( ( "*", true, ), ), Symbol( "0.8", ), ], ), Ident { expr: [], line: 993, }, ], body: CodeBlock { start: 98, code: [], end: 99, }, next: None, line: 995, column: 1, }, Variable { names: [ ( "diff", false, ), ], values: [ [ Expr( [ Ident { expr: [ Symbol( "p2", ), ], line: 997, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "p1", ), ], line: 997, }, ], ), Ident { expr: [], line: 997, }, Operator( ( ">>", true, ), ), Symbol( "4", ), ], ], line: 998, column: 0, }, IfStatement { condition: [ Operator( ( "not", false, ), ), Expr( [ Ident { expr: [ Symbol( "min", ), ], line: 998, }, Operator( ( "<", true, ), ), Ident { expr: [ Symbol( "p1", ), ], line: 998, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 998, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "max", ), ], line: 998, }, Operator( ( ">", true, ), ), Ident { expr: [ Symbol( "p2", ), ], line: 998, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "diff", ), ], line: 998, }, ], ), Ident { expr: [], line: 998, }, ], body: CodeBlock { start: 125, code: [], end: 126, }, next: None, line: 1000, column: 1, }, ], end: 135, }, line: 1001, column: 1, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "0", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1002, }, ], ], ), ], line: 1001, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "1", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1003, }, ], ], ), ], line: 1002, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "3", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1004, }, Operator( ( "//", true, ), ), Symbol( "3", ), ], ], ), ], line: 1003, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 1005, }, ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 1004, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 1006, }, Operator( ( "//", true, ), ), Symbol( "2", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1006, }, Operator( ( "//", true, ), ), Symbol( "2", ), ], ], ), ], line: 1005, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 1007, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1007, }, ], ], ), ], line: 1006, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 1008, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1008, }, ], ], ), ], line: 1007, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Ident { expr: [ Symbol( "minint", ), ], line: 1009, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1009, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 1008, }, Ident { expr: [ Symbol( "aux", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "intbits", ), ], line: 1010, }, Operator( ( "-", true, ), ), Symbol( "5", ), ], ), Ident { expr: [], line: 1010, }, ], ], ), ], line: 1009, }, ], end: 8039, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "random", ), ], line: 1014, }, ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], [ Symbol( "3", ), ], ], ), ], line: 1014, }, ], ], ), ], line: 1011, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "random", ), ], line: 1017, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 1017, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], [ Ident { expr: [ Symbol( "minint", ), ], line: 1017, }, ], ], ), ], line: 1017, }, ], ], ), ], line: 1014, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "random", ), ], line: 1018, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1018, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1018, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 1018, }, ], ], ), ], line: 1017, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "random", ), ], line: 1019, }, ], [ Ident { expr: [ Symbol( "maxint", ), ], line: 1019, }, ], [ Ident { expr: [ Symbol( "minint", ), ], line: 1019, }, ], ], ), ], line: 1019, }, ], ], ), ], line: 1018, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 1019, }, ]