--- source: src/main.rs expression: parsed input_file: test-data/lua5.4-tests/bitwise.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing bitwise operations\"", ), ], ], ), ], line: 4, }, Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "\"bwcoercion\"", ), ], ], ), ], line: 4, }, Variable { names: [ ( "numbits", false, ), ], values: [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "packsize", ), Call( [ [ Symbol( "'j'", ), ], ], ), ], line: 8, }, Operator( ( "*", true, ), ), Symbol( "8", ), ], ], line: 8, column: 11, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "~", false, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "numbits", ), ], line: 12, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 12, }, ], ), Ident { expr: [], line: 12, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 12, }, ], ], ), ], line: 10, }, Variable { names: [ ( "a", false, ), ( "b", false, ), ( "c", false, ), ( "d", false, ), ], values: [], line: 16, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 16, }, ], values: [ [ Symbol( "0xFFFFFFFFFFFFFFFF", ), ], ], line: 17, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "&", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 18, }, Operator( ( "&", true, ), ), Symbol( "35", ), Operator( ( "==", true, ), ), Symbol( "35", ), ], ], ), ], line: 17, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 18, }, ], values: [ [ Symbol( "0xF0F0F0F0F0F0F0F0", ), ], ], line: 19, column: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 20, }, Operator( ( "|", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "~", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "and", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "~", true, ), ), Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 21, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 22, }, Operator( ( ">>", true, ), ), Symbol( "4", ), Operator( ( "==", true, ), ), Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 22, }, ], ], ), ], line: 21, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 22, }, ], values: [ [ Symbol( "0xF0", ), ], ], line: 23, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 23, }, ], values: [ [ Symbol( "0xCC", ), ], ], line: 23, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 23, }, ], values: [ [ Symbol( "0xAA", ), ], ], line: 23, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 23, }, ], values: [ [ Symbol( "0xFD", ), ], ], line: 23, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 24, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 24, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 24, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "0xF4", ), ], ], ), ], line: 23, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 24, }, ], values: [ [ Symbol( "240", ), ], ], line: 26, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 26, }, ], values: [ [ Symbol( "204", ), ], ], line: 26, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 26, }, ], values: [ [ Symbol( "\"0xAA.0\"", ), ], ], line: 26, column: 12, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 26, }, ], values: [ [ Symbol( "\"0xFD.0\"", ), ], ], line: 26, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 27, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 27, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 27, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 27, }, Operator( ( "==", true, ), ), Symbol( "0xF4", ), ], ], ), ], line: 26, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 27, }, ], values: [ [ Symbol( "0xF0000000", ), ], ], line: 29, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 29, }, ], values: [ [ Symbol( "0xCC000000", ), ], ], line: 29, column: 8, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 29, }, ], values: [ [ Symbol( "0xAA000000", ), ], ], line: 30, column: 4, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 30, }, ], values: [ [ Symbol( "0xFD000000", ), ], ], line: 30, column: 7, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 31, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 31, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 31, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 31, }, Operator( ( "==", true, ), ), Symbol( "0xF4000000", ), ], ], ), ], line: 30, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "~", false, ), ), Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 32, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 32, }, Operator( ( "and", true, ), ), Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 32, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 32, }, Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "d", ), ], line: 32, }, Operator( ( "==", true, ), ), Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "d", ), ], line: 32, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 31, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 32, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 34, }, Operator( ( "<<", true, ), ), Symbol( "32", ), ], ], line: 34, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 34, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 35, }, Operator( ( "<<", true, ), ), Symbol( "32", ), ], ], line: 35, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 35, }, ], values: [ [ Ident { expr: [ Symbol( "c", ), ], line: 36, }, Operator( ( "<<", true, ), ), Symbol( "32", ), ], ], line: 36, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "d", ), ], line: 36, }, ], values: [ [ Ident { expr: [ Symbol( "d", ), ], line: 37, }, Operator( ( "<<", true, ), ), Symbol( "32", ), ], ], line: 37, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 38, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 38, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "c", ), ], line: 38, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "d", ), ], line: 38, }, Operator( ( "==", true, ), ), Symbol( "0xF4000000", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "~", false, ), ), Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 39, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 39, }, Operator( ( "and", true, ), ), Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 39, }, Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "a", ), ], line: 39, }, Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "d", ), ], line: 39, }, Operator( ( "==", true, ), ), Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "d", ), ], line: 39, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( ">>", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Expr( [ Ident { expr: [ Symbol( "numbits", ), ], line: 41, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 41, }, ], ), Ident { expr: [], line: 41, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "and", true, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), Operator( ( "==", true, ), ), Symbol( "0x80000000", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( ">>", true, ), ), Expr( [ Ident { expr: [ Symbol( "numbits", ), ], line: 42, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 42, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "numbits", ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( ">>", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "numbits", ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "numbits", ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "0", ), Operator( ( "and", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "numbits", ), ], line: 46, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "mininteger", ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 49, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "maxinteger", ), ], line: 51, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 50, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 53, }, Operator( ( "<<", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 51, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 54, }, Operator( ( ">>", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "30", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 53, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "1", ), Operator( ( ">>", true, ), ), Operator( ( "-", false, ), ), Symbol( "3", ), Operator( ( "==", true, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "3", ), Operator( ( "and", true, ), ), Symbol( "1000", ), Operator( ( ">>", true, ), ), Symbol( "5", ), Operator( ( "==", true, ), ), Symbol( "1000", ), Operator( ( "<<", true, ), ), Operator( ( "-", false, ), ), Symbol( "5", ), ], ], ), ], line: 54, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"0xffffffffffffffff\"", ), Operator( ( "|", true, ), ), Symbol( "0", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 56, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"0xfffffffffffffffe\"", ), Operator( ( "&", true, ), ), Symbol( "\"-1\"", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" \\t-0xfffffffffffffffe\\n\\t\"", ), Operator( ( "&", true, ), ), Symbol( "\"-1\"", ), Operator( ( "==", true, ), ), Symbol( "2", ), ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\" \\n -45 \\t \"", ), Operator( ( ">>", true, ), ), Symbol( "\" -2 \"", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "45", ), Operator( ( "*", true, ), ), Symbol( "4", ), ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"1234.0\"", ), Operator( ( "<<", true, ), ), Symbol( "\"5.0\"", ), Operator( ( "==", true, ), ), Symbol( "1234", ), Operator( ( "*", true, ), ), Symbol( "32", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "\"0xffff.0\"", ), Operator( ( "~", true, ), ), Symbol( "\"0xAAAA\"", ), Operator( ( "==", true, ), ), Symbol( "0x5555", ), ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "~", false, ), ), Symbol( "\"0x0.000p4\"", ), Operator( ( "==", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Expr( [ Symbol( "\"7\"", ), Operator( ( "..", true, ), ), Symbol( "3", ), ], ), Ident { expr: [], line: 68, }, Operator( ( "<<", true, ), ), Symbol( "1", ), Operator( ( "==", true, ), ), Symbol( "146", ), ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0xffffffff", ), Operator( ( ">>", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "..", true, ), ), Symbol( "\"9\"", ), ], ), Ident { expr: [], line: 69, }, Operator( ( "==", true, ), ), Symbol( "0x1fff", ), ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "10", ), Operator( ( "|", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "..", true, ), ), Symbol( "\"9\"", ), ], ), Ident { expr: [], line: 70, }, Operator( ( "==", true, ), ), Symbol( "27", ), ], ], ), ], line: 69, }, DoBlock( CodeBlock { start: 541, code: [ Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 10, code: [ Return( Some( [ [ Symbol( "4", ), Operator( ( "&", true, ), ), Symbol( "\"a\"", ), ], ], ), ), ], end: 15, }, line: 73, column: 15, }, ], ], ), ], line: 73, }, ], ], line: 73, column: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 74, }, ], [ Symbol( "\"'band'\"", ), ], ], ), ], line: 74, }, ], ], ), ], line: 73, }, Variable { names: [ ( "st", false, ), ( "msg", false, ), ], values: [ [ Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 37, code: [ Return( Some( [ [ Operator( ( "~", false, ), ), Symbol( "\"a\"", ), ], ], ), ), ], end: 41, }, line: 76, column: 14, }, ], ], ), ], line: 76, }, ], ], line: 76, column: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "string", ), Symbol( ".", ), Symbol( "find", ), Call( [ [ Ident { expr: [ Symbol( "msg", ), ], line: 77, }, ], [ Symbol( "\"'bnot'\"", ), ], ], ), ], line: 77, }, ], ], ), ], line: 76, }, ], end: 595, }, ), Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 603, code: [ Return( Some( [ [ Symbol( "\"0xffffffffffffffff.0\"", ), Operator( ( "|", true, ), ), Symbol( "0", ), ], ], ), ), ], end: 608, }, line: 82, column: 13, }, ], ], ), ], line: 82, }, ], ], ), ], line: 78, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Lambda { args: [], body: CodeBlock { start: 618, code: [ Return( Some( [ [ Symbol( "\"0xffffffffffffffff\\0\"", ), Operator( ( "|", true, ), ), Symbol( "0", ), ], ], ), ), ], end: 623, }, line: 85, column: 13, }, ], ], ), ], line: 85, }, ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'+'", ), ], ], ), ], line: 85, }, Alter { names: [ Ident { expr: [ Symbol( "package", ), Symbol( ".", ), Symbol( "preload", ), Symbol( ".", ), Symbol( "bit32", ), ], line: 87, }, ], values: [ [ Lambda { args: [], body: CodeBlock { start: 636, code: [ Variable { names: [ ( "bit", false, ), ], values: [ [ Table { data: [], line: 94, column: 5, }, ], ], line: 96, column: 0, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "bnot", ), ], args: [ "a", ], body: CodeBlock { start: 12, code: [ Return( Some( [ [ Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "a", ), ], line: 97, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 18, }, line: 98, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "band", ), ], args: [ "x", "y", "z", "...", ], body: CodeBlock { start: 31, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "z", ), ], line: 107, }, ], body: CodeBlock { start: 4, code: [ Return( Some( [ [ Expr( [ Expr( [ Ident { expr: [ Symbol( "x", ), ], line: 108, }, Operator( ( "or", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 108, }, Operator( ( "&", true, ), ), Expr( [ Ident { expr: [ Symbol( "y", ), ], line: 108, }, Operator( ( "or", true, ), ), Operator( ( "-", false, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 108, }, ], ), Ident { expr: [], line: 108, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 23, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 23, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 110, column: 6, }, ], ], line: 111, column: 0, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 111, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 111, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 111, }, ], ], line: 112, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "arg", ), ], line: 112, }, ], step: None, code: CodeBlock { start: 22, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), ], line: 112, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), ], line: 112, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 112, }, ], ), Symbol( "]", ), ], line: 112, }, ], ], line: 112, column: 8, }, ], end: 31, }, line: 112, column: 17, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), ], line: 113, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 59, }, next: None, line: 114, column: 1, }, ), line: 114, column: 1, }, ], end: 91, }, line: 115, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "bor", ), ], args: [ "x", "y", "z", "...", ], body: CodeBlock { start: 104, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "z", ), ], line: 118, }, ], body: CodeBlock { start: 4, code: [ Return( Some( [ [ Expr( [ Expr( [ Ident { expr: [ Symbol( "x", ), ], line: 119, }, Operator( ( "or", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 119, }, Operator( ( "|", true, ), ), Expr( [ Ident { expr: [ Symbol( "y", ), ], line: 119, }, Operator( ( "or", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 119, }, ], ), Ident { expr: [], line: 119, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 21, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 21, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 121, column: 6, }, ], ], line: 122, column: 0, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 122, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 122, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 122, }, ], ], line: 123, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "arg", ), ], line: 123, }, ], step: None, code: CodeBlock { start: 22, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), ], line: 123, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), ], line: 123, }, Operator( ( "|", true, ), ), Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 123, }, ], ), Symbol( "]", ), ], line: 123, }, ], ], line: 123, column: 8, }, ], end: 31, }, line: 123, column: 17, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), ], line: 124, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 57, }, next: None, line: 125, column: 1, }, ), line: 125, column: 1, }, ], end: 162, }, line: 126, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "bxor", ), ], args: [ "x", "y", "z", "...", ], body: CodeBlock { start: 175, code: [ IfStatement { condition: [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "z", ), ], line: 129, }, ], body: CodeBlock { start: 4, code: [ Return( Some( [ [ Expr( [ Expr( [ Ident { expr: [ Symbol( "x", ), ], line: 130, }, Operator( ( "or", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 130, }, Operator( ( "~", true, ), ), Expr( [ Ident { expr: [ Symbol( "y", ), ], line: 130, }, Operator( ( "or", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 130, }, ], ), Ident { expr: [], line: 130, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 21, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 21, code: [ Variable { names: [ ( "arg", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "...", ), ], ), ], line: 132, column: 6, }, ], ], line: 133, column: 0, }, Variable { names: [ ( "res", false, ), ], values: [ [ Ident { expr: [ Symbol( "x", ), ], line: 133, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 133, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "z", ), ], line: 133, }, ], ], line: 134, column: 0, }, ForLoop { iter: "i", start: [ Symbol( "1", ), ], end: [ Operator( ( "#", false, ), ), Ident { expr: [ Symbol( "arg", ), ], line: 134, }, ], step: None, code: CodeBlock { start: 22, code: [ Alter { names: [ Ident { expr: [ Symbol( "res", ), ], line: 134, }, ], values: [ [ Ident { expr: [ Symbol( "res", ), ], line: 134, }, Operator( ( "~", true, ), ), Ident { expr: [ Symbol( "arg", ), Symbol( "[", ), Expr( [ Ident { expr: [ Symbol( "i", ), ], line: 134, }, ], ), Symbol( "]", ), ], line: 134, }, ], ], line: 134, column: 8, }, ], end: 31, }, line: 134, column: 17, }, Return( Some( [ [ Ident { expr: [ Symbol( "res", ), ], line: 135, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 57, }, next: None, line: 136, column: 1, }, ), line: 136, column: 1, }, ], end: 233, }, line: 137, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "btest", ), ], args: [ "...", ], body: CodeBlock { start: 240, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "...", ), ], ], ), ], line: 140, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], ], ), ), ], end: 250, }, line: 141, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "lshift", ), ], args: [ "a", "b", ], body: CodeBlock { start: 259, code: [ Return( Some( [ [ Expr( [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 144, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ), Ident { expr: [], line: 144, }, Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 144, }, ], ), Ident { expr: [], line: 144, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 272, }, line: 145, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "rshift", ), ], args: [ "a", "b", ], body: CodeBlock { start: 281, code: [ Return( Some( [ [ Expr( [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 148, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ), Ident { expr: [], line: 148, }, Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 148, }, ], ), Ident { expr: [], line: 148, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 294, }, line: 149, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "arshift", ), ], args: [ "a", "b", ], body: CodeBlock { start: 303, code: [ Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 152, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 152, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], line: 153, column: 0, }, IfStatement { condition: [ Ident { expr: [ Symbol( "b", ), ], line: 153, }, Operator( ( "<=", true, ), ), Symbol( "0", ), Operator( ( "or", true, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 153, }, Operator( ( "&", true, ), ), Symbol( "0x80000000", ), ], ), Ident { expr: [], line: 153, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], body: CodeBlock { start: 18, code: [ Return( Some( [ [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 154, }, Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 154, }, ], ), Ident { expr: [], line: 154, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 27, }, next: Some( IfStatement { condition: [], body: CodeBlock { start: 27, code: [ Return( Some( [ [ Expr( [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 156, }, Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 156, }, ], ), Ident { expr: [], line: 156, }, Operator( ( "|", true, ), ), Operator( ( "~", false, ), ), Expr( [ Symbol( "0xFFFFFFFF", ), Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 156, }, ], ), Ident { expr: [], line: 156, }, ], ), Ident { expr: [], line: 156, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 45, }, next: None, line: 157, column: 1, }, ), line: 157, column: 1, }, ], end: 349, }, line: 158, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "lrotate", ), ], args: [ "a", "b", ], body: CodeBlock { start: 358, code: [ Alter { names: [ Ident { expr: [ Symbol( "b", ), ], line: 161, }, ], values: [ [ Ident { expr: [ Symbol( "b", ), ], line: 161, }, Operator( ( "&", true, ), ), Symbol( "31", ), ], ], line: 161, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 161, }, ], values: [ [ Ident { expr: [ Symbol( "a", ), ], line: 162, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], line: 162, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 162, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 163, }, Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 163, }, ], ), Ident { expr: [], line: 163, }, Operator( ( "|", true, ), ), Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 163, }, Operator( ( ">>", true, ), ), Expr( [ Symbol( "32", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 163, }, ], ), Ident { expr: [], line: 163, }, ], ), Ident { expr: [], line: 163, }, ], ], line: 164, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 164, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 390, }, line: 165, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "rrotate", ), ], args: [ "a", "b", ], body: CodeBlock { start: 399, code: [ Return( Some( [ [ Ident { expr: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Ident { expr: [ Symbol( "a", ), ], line: 168, }, ], [ Operator( ( "-", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 168, }, ], ], ), ], line: 168, }, ], ], ), ), ], end: 410, }, line: 169, column: 1, }, Function { local: true, name: [ Symbol( "checkfield", ), ], args: [ "f", "w", ], body: CodeBlock { start: 418, code: [ Alter { names: [ Ident { expr: [ Symbol( "w", ), ], line: 172, }, ], values: [ [ Ident { expr: [ Symbol( "w", ), ], line: 172, }, Operator( ( "or", true, ), ), Symbol( "1", ), ], ], line: 172, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 173, }, Operator( ( ">=", true, ), ), Symbol( "0", ), ], [ Symbol( "\"field cannot be negative\"", ), ], ], ), ], line: 172, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "w", ), ], line: 174, }, Operator( ( ">", true, ), ), Symbol( "0", ), ], [ Symbol( "\"width must be positive\"", ), ], ], ), ], line: 173, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 175, }, Operator( ( "+", true, ), ), Ident { expr: [ Symbol( "w", ), ], line: 175, }, Operator( ( "<=", true, ), ), Symbol( "32", ), ], [ Symbol( "\"trying to access non-existent bits\"", ), ], ], ), ], line: 174, }, Return( Some( [ [ Ident { expr: [ Symbol( "f", ), ], line: 176, }, ], [ Operator( ( "~", false, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "w", ), ], line: 176, }, ], ), Ident { expr: [], line: 176, }, ], ], ), ), ], end: 460, }, line: 177, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "extract", ), ], args: [ "a", "f", "w", ], body: CodeBlock { start: 471, code: [ Variable { names: [ ( "f", false, ), ( "mask", false, ), ], values: [ [ Ident { expr: [ Symbol( "checkfield", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 180, }, ], [ Ident { expr: [ Symbol( "w", ), ], line: 180, }, ], ], ), ], line: 180, }, ], ], line: 181, column: 0, }, Return( Some( [ [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 181, }, Operator( ( ">>", true, ), ), Ident { expr: [ Symbol( "f", ), ], line: 181, }, ], ), Ident { expr: [], line: 181, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "mask", ), ], line: 181, }, ], ], ), ), ], end: 491, }, line: 182, column: 1, }, Function { local: false, name: [ Symbol( "bit", ), Symbol( ".", ), Symbol( "replace", ), ], args: [ "a", "v", "f", "w", ], body: CodeBlock { start: 504, code: [ Variable { names: [ ( "f", false, ), ( "mask", false, ), ], values: [ [ Ident { expr: [ Symbol( "checkfield", ), Call( [ [ Ident { expr: [ Symbol( "f", ), ], line: 185, }, ], [ Ident { expr: [ Symbol( "w", ), ], line: 185, }, ], ], ), ], line: 185, }, ], ], line: 185, column: 11, }, Alter { names: [ Ident { expr: [ Symbol( "v", ), ], line: 185, }, ], values: [ [ Ident { expr: [ Symbol( "v", ), ], line: 186, }, Operator( ( "&", true, ), ), Ident { expr: [ Symbol( "mask", ), ], line: 186, }, ], ], line: 186, column: 5, }, Alter { names: [ Ident { expr: [ Symbol( "a", ), ], line: 186, }, ], values: [ [ Expr( [ Ident { expr: [ Symbol( "a", ), ], line: 187, }, Operator( ( "&", true, ), ), Operator( ( "~", false, ), ), Expr( [ Ident { expr: [ Symbol( "mask", ), ], line: 187, }, Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "f", ), ], line: 187, }, ], ), Ident { expr: [], line: 187, }, ], ), Ident { expr: [], line: 187, }, Operator( ( "|", true, ), ), Expr( [ Ident { expr: [ Symbol( "v", ), ], line: 187, }, Operator( ( "<<", true, ), ), Ident { expr: [ Symbol( "f", ), ], line: 187, }, ], ), Ident { expr: [], line: 187, }, ], ], line: 188, column: 0, }, Return( Some( [ [ Ident { expr: [ Symbol( "a", ), ], line: 188, }, Operator( ( "&", true, ), ), Symbol( "0xFFFFFFFF", ), ], ], ), ), ], end: 543, }, line: 189, column: 1, }, Return( Some( [ [ Ident { expr: [ Symbol( "bit", ), ], line: 191, }, ], ], ), ), ], end: 1182, }, line: 193, column: 1, }, ], ], line: 193, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing bitwise library\"", ), ], ], ), ], line: 193, }, Variable { names: [ ( "bit32", false, ), ], values: [ [ Ident { expr: [ Symbol( "require", ), Call( [ [ Symbol( "'bit32'", ), ], ], ), ], line: 198, }, ], ], line: 198, column: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [], ), ], line: 200, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 200, }, ], ], ), ], line: 198, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "btest", ), Call( [], ), ], line: 201, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 200, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [], ), ], line: 202, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 201, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [], ), ], line: 203, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 202, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [], ), ], line: 205, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "0xffffffff", ), ], ], ), ], line: 205, }, ], ], ), ], line: 203, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 206, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 205, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 210, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 206, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "33", ), ], ), Ident { expr: [], line: 211, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 211, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 210, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "33", ), ], ), Ident { expr: [], line: 212, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 212, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 211, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "33", ), ], ), Ident { expr: [], line: 213, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 213, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 212, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "33", ), ], ), Ident { expr: [], line: 214, }, Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 214, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 213, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "40", ), ], ), Ident { expr: [], line: 215, }, ], ], ), ], line: 215, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 214, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "40", ), ], ], ), ], line: 216, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 215, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "40", ), ], ), Ident { expr: [], line: 217, }, Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 217, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffe", ), ], ], ), ], line: 216, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "40", ), ], ), Ident { expr: [], line: 218, }, Operator( ( "-", true, ), ), Symbol( "4", ), ], ], ), ], line: 218, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffc", ), ], ], ), ], line: 217, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 220, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 218, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "7", ), ], ], ), ], line: 221, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 220, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0", ), ], ], ), ], line: 222, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), ], ], ), ], line: 221, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "32", ), ], ], ), ], line: 223, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), ], ], ), ], line: 222, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], ], ), ], line: 224, }, Operator( ( "==", true, ), ), Symbol( "0x23456781", ), ], ], ), ], line: 223, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 225, }, Operator( ( "==", true, ), ), Symbol( "0x23456781", ), ], ], ), ], line: 224, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "8", ), ], ], ), ], line: 226, }, Operator( ( "==", true, ), ), Symbol( "0x78123456", ), ], ], ), ], line: 225, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "8", ), ], ], ), ], line: 227, }, Operator( ( "==", true, ), ), Symbol( "0x78123456", ), ], ], ), ], line: 226, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0xaaaaaaaa", ), ], [ Symbol( "2", ), ], ], ), ], line: 228, }, Operator( ( "==", true, ), ), Symbol( "0xaaaaaaaa", ), ], ], ), ], line: 227, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0xaaaaaaaa", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 229, }, Operator( ( "==", true, ), ), Symbol( "0xaaaaaaaa", ), ], ], ), ], line: 228, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "50", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 1552, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x89abcdef", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 231, }, ], ], ), ], line: 231, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x89abcdef", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 231, }, Operator( ( "%", true, ), ), Symbol( "32", ), ], ], ), ], line: 231, }, ], ], ), ], line: 231, }, ], end: 1575, }, line: 232, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], ], ), ], line: 234, }, Operator( ( "==", true, ), ), Symbol( "0x23456780", ), ], ], ), ], line: 232, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "8", ), ], ], ), ], line: 235, }, Operator( ( "==", true, ), ), Symbol( "0x34567800", ), ], ], ), ], line: 234, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 236, }, Operator( ( "==", true, ), ), Symbol( "0x01234567", ), ], ], ), ], line: 235, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "8", ), ], ], ), ], line: 237, }, Operator( ( "==", true, ), ), Symbol( "0x00123456", ), ], ], ), ], line: 236, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "32", ), ], ], ), ], line: 238, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 237, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "32", ), ], ], ), ], line: 239, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 238, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], ], ), ], line: 240, }, Operator( ( "==", true, ), ), Symbol( "0x01234567", ), ], ], ), ], line: 239, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "8", ), ], ], ), ], line: 241, }, Operator( ( "==", true, ), ), Symbol( "0x00123456", ), ], ], ), ], line: 240, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "32", ), ], ], ), ], line: 242, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 241, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "32", ), ], ], ), ], line: 243, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 242, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0", ), ], ], ), ], line: 244, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), ], ], ), ], line: 243, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "1", ), ], ], ), ], line: 245, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), Operator( ( "//", true, ), ), Symbol( "2", ), ], ], ), ], line: 244, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 246, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), Operator( ( "*", true, ), ), Symbol( "2", ), ], ], ), ], line: 245, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 247, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 246, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "24", ), ], ], ), ], line: 248, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 247, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "32", ), ], ], ), ], line: 249, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 248, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 250, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "*", true, ), ), Symbol( "2", ), ], [ Symbol( "0xffffffff", ), ], ], ), ], line: 250, }, ], ], ), ], line: 249, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( "<<", true, ), ), Symbol( "4", ), Operator( ( "==", true, ), ), Symbol( "0x123456780", ), ], ], ), ], line: 250, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( "<<", true, ), ), Symbol( "8", ), Operator( ( "==", true, ), ), Symbol( "0x1234567800", ), ], ], ), ], line: 252, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( "<<", true, ), ), Operator( ( "-", false, ), ), Symbol( "4", ), Operator( ( "==", true, ), ), Symbol( "0x01234567", ), ], ], ), ], line: 253, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( "<<", true, ), ), Operator( ( "-", false, ), ), Symbol( "8", ), Operator( ( "==", true, ), ), Symbol( "0x00123456", ), ], ], ), ], line: 254, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( "<<", true, ), ), Symbol( "32", ), Operator( ( "==", true, ), ), Symbol( "0x1234567800000000", ), ], ], ), ], line: 255, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( "<<", true, ), ), Operator( ( "-", false, ), ), Symbol( "32", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 256, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( ">>", true, ), ), Symbol( "4", ), Operator( ( "==", true, ), ), Symbol( "0x01234567", ), ], ], ), ], line: 257, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( ">>", true, ), ), Symbol( "8", ), Operator( ( "==", true, ), ), Symbol( "0x00123456", ), ], ], ), ], line: 258, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( ">>", true, ), ), Symbol( "32", ), Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 259, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Symbol( "0x12345678", ), Operator( ( ">>", true, ), ), Operator( ( "-", false, ), ), Symbol( "32", ), Operator( ( "==", true, ), ), Symbol( "0x1234567800000000", ), ], ], ), ], line: 260, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"+\"", ), ], ], ), ], line: 261, }, Variable { names: [ ( "c", false, ), ], values: [ [ Table { data: [ ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "0x80000000", ), ], ), ( None, [ Symbol( "0xaaaaaaaa", ), ], ), ( None, [ Symbol( "0x55555555", ), ], ), ( None, [ Symbol( "0xffffffff", ), ], ), ( None, [ Symbol( "0x7fffffff", ), ], ), ], line: 266, column: 4, }, ], ], line: 268, column: 0, }, ForFuncLoop { iters: [ "_", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 268, }, ], ], ), ], line: 268, }, ], stop: None, initial: None, code: CodeBlock { start: 1942, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 269, }, ], ], ), ], line: 269, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 269, }, ], ], ), ], line: 269, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 270, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 270, }, ], ], ), ], line: 270, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 270, }, ], ], ), ], line: 269, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 271, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 271, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 271, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 271, }, ], ], ), ], line: 271, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 271, }, ], ], ), ], line: 270, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "btest", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 272, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 272, }, ], ], ), ], line: 272, }, Operator( ( "==", true, ), ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 272, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 272, }, ], ], ), ], line: 271, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 273, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 273, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 273, }, ], ], ), ], line: 273, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 273, }, ], ], ), ], line: 272, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 274, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 274, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 274, }, ], [ Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 274, }, ], ], ), ], line: 274, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 273, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "btest", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 275, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 275, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 275, }, ], ], ), ], line: 275, }, Operator( ( "==", true, ), ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 275, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 275, }, ], ], ), ], line: 274, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 276, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 276, }, ], ], ), ], line: 276, }, ], ], ), ], line: 276, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 275, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 277, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 277, }, ], ], ), ], line: 277, }, ], ], ), ], line: 277, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 277, }, ], ], ), ], line: 276, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 278, }, ], ], ), ], line: 278, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 278, }, ], ], ), ], line: 277, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 279, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 279, }, ], ], ), ], line: 279, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 279, }, ], ], ), ], line: 278, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 280, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 280, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 280, }, ], ], ), ], line: 280, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 280, }, ], ], ), ], line: 279, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 281, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 281, }, ], [ Symbol( "0", ), ], [ Operator( ( "~", false, ), ), Ident { expr: [ Symbol( "b", ), ], line: 281, }, ], ], ), ], line: 281, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 280, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 282, }, ], ], ), ], line: 282, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 282, }, ], ], ), ], line: 281, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 283, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 283, }, ], ], ), ], line: 283, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 282, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 284, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 284, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 284, }, ], ], ), ], line: 284, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 284, }, ], ], ), ], line: 283, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 285, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 285, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 285, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 285, }, ], ], ), ], line: 285, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 284, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 286, }, ], [ Symbol( "0", ), ], ], ), ], line: 286, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 286, }, ], ], ), ], line: 285, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 287, }, ], ], ), ], line: 287, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 287, }, ], ], ), ], line: 286, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 288, }, ], ], ), ], line: 288, }, ], ], ), ], line: 288, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 288, }, ], ], ), ], line: 287, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 289, }, ], ], ), ], line: 289, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 289, }, Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 289, }, ], ], ), ], line: 288, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 290, }, ], [ Symbol( "32", ), ], ], ), ], line: 290, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 290, }, ], ], ), ], line: 289, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rrotate", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 291, }, ], [ Symbol( "32", ), ], ], ), ], line: 291, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 291, }, ], ], ), ], line: 290, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 292, }, ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 292, }, ], [ Symbol( "4", ), ], ], ), ], line: 292, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 292, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0xf", ), ], ], ), ], line: 292, }, ], ], ), ], line: 292, }, ], ], ), ], line: 291, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 293, }, ], [ Symbol( "4", ), ], ], ), ], line: 293, }, ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 293, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 293, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0xf", ), ], ], ), ], line: 293, }, ], ], ), ], line: 293, }, ], ], ), ], line: 292, }, ], end: 2358, }, line: 294, column: 1, }, Alter { names: [ Ident { expr: [ Symbol( "c", ), ], line: 294, }, ], values: [ [ Table { data: [ ( None, [ Symbol( "0", ), ], ), ( None, [ Symbol( "1", ), ], ), ( None, [ Symbol( "2", ), ], ), ( None, [ Symbol( "3", ), ], ), ( None, [ Symbol( "10", ), ], ), ( None, [ Symbol( "0x800000", ), ], ), ( None, [ Symbol( "0xaaaaaa", ), ], ), ( None, [ Symbol( "0x555555", ), ], ), ( None, [ Symbol( "0xffffff", ), ], ), ( None, [ Symbol( "0x7fffff", ), ], ), ], line: 297, column: 23, }, ], ], line: 298, column: 0, }, ForFuncLoop { iters: [ "_", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 298, }, ], ], ), ], line: 298, }, ], stop: None, initial: None, code: CodeBlock { start: 2391, code: [ ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "40", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 8, code: [ Variable { names: [ ( "x", false, ), ], values: [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 300, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 300, }, ], ], ), ], line: 300, }, ], ], line: 301, column: 0, }, Variable { names: [ ( "y", false, ), ], values: [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 301, }, Operator( ( "*", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 301, }, ], [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], ), ], line: 301, }, ], ], ), ], line: 301, }, ], ], line: 301, column: 22, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "fmod", ), Call( [ [ Ident { expr: [ Symbol( "x", ), ], line: 302, }, Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "y", ), ], line: 302, }, ], [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], ), ], line: 302, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 301, }, ], end: 59, }, line: 303, column: 1, }, ], end: 2451, }, line: 304, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), ], line: 306, }, ], [ Table { data: [], line: 306, column: 11, }, ], ], ), ], line: 306, }, ], ], ), ], line: 304, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), ], line: 307, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 307, }, ], ], ), ], line: 306, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), ], line: 308, }, ], [ Symbol( "45", ), ], ], ), ], line: 308, }, ], ], ), ], line: 307, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), ], line: 309, }, ], [ Symbol( "45", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 309, }, ], ], ), ], line: 309, }, ], ], ), ], line: 308, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), ], line: 310, }, ], [ Symbol( "45", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 310, }, ], ], ), ], line: 310, }, ], ], ), ], line: 309, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"+\"", ), ], ], ), ], line: 310, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0", ), ], [ Symbol( "4", ), ], ], ), ], line: 317, }, Operator( ( "==", true, ), ), Symbol( "8", ), ], ], ), ], line: 312, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], [ Symbol( "4", ), ], ], ), ], line: 318, }, Operator( ( "==", true, ), ), Symbol( "7", ), ], ], ), ], line: 317, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0xa0001111", ), ], [ Symbol( "28", ), ], [ Symbol( "4", ), ], ], ), ], line: 319, }, Operator( ( "==", true, ), ), Symbol( "0xa", ), ], ], ), ], line: 318, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0xa0001111", ), ], [ Symbol( "31", ), ], [ Symbol( "1", ), ], ], ), ], line: 320, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 319, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0x50000111", ), ], [ Symbol( "31", ), ], [ Symbol( "1", ), ], ], ), ], line: 321, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 320, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0xf2345679", ), ], [ Symbol( "0", ), ], [ Symbol( "32", ), ], ], ), ], line: 322, }, Operator( ( "==", true, ), ), Symbol( "0xf2345679", ), ], ], ), ], line: 321, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 324, }, ], [ Symbol( "0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 324, }, ], ], ), ], line: 322, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 325, }, ], [ Symbol( "0", ), ], [ Symbol( "32", ), ], ], ), ], line: 325, }, ], ], ), ], line: 324, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 326, }, ], [ Symbol( "0", ), ], [ Symbol( "0", ), ], [ Symbol( "33", ), ], ], ), ], line: 326, }, ], ], ), ], line: 325, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 327, }, ], [ Symbol( "0", ), ], [ Symbol( "31", ), ], [ Symbol( "2", ), ], ], ), ], line: 327, }, ], ], ), ], line: 326, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "5", ), ], [ Symbol( "28", ), ], [ Symbol( "4", ), ], ], ), ], line: 329, }, Operator( ( "==", true, ), ), Symbol( "0x52345678", ), ], ], ), ], line: 327, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0x87654321", ), ], [ Symbol( "0", ), ], [ Symbol( "32", ), ], ], ), ], line: 330, }, Operator( ( "==", true, ), ), Symbol( "0x87654321", ), ], ], ), ], line: 329, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 331, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "2", ), ], ], ), ], line: 330, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "4", ), ], ], ), ], line: 332, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "4", ), ], ], ), ], line: 331, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "0", ), ], [ Symbol( "31", ), ], ], ), ], line: 333, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "31", ), ], ), Ident { expr: [], line: 333, }, Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 332, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 334, }, Operator( ( "==", true, ), ), Expr( [ Symbol( "1", ), Operator( ( "<<", true, ), ), Symbol( "32", ), ], ), Ident { expr: [], line: 334, }, Operator( ( "-", true, ), ), Symbol( "7", ), ], ], ), ], line: 333, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Symbol( "3.0", ), ], ], ), ], line: 339, }, Operator( ( "==", true, ), ), Symbol( "3", ), ], ], ), ], line: 334, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "4.0", ), ], ], ), ], line: 340, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffc", ), ], ], ), ], line: 339, }, IfStatement { condition: [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "50", ), Operator( ( "<", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "50", ), Operator( ( "+", true, ), ), Symbol( "1.0", ), Operator( ( "and", true, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "50", ), Operator( ( "<", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( ">>", true, ), ), Symbol( "1", ), ], ), Ident { expr: [], line: 343, }, ], body: CodeBlock { start: 2831, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "-", true, ), ), Symbol( "5.0", ), ], ], ), ], line: 344, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffb", ), ], ], ), ], line: 344, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "-", true, ), ), Symbol( "6.0", ), ], ], ), ], line: 345, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffa", ), ], ], ), ], line: 344, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "48", ), Operator( ( "-", true, ), ), Symbol( "5.0", ), ], ], ), ], line: 346, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffb", ), ], ], ), ], line: 345, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2.0", ), Operator( ( "^", true, ), ), Symbol( "48", ), Operator( ( "-", true, ), ), Symbol( "6.0", ), ], ], ), ], line: 347, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffa", ), ], ], ), ], line: 346, }, ], end: 2894, }, next: None, line: 348, column: 1, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 348, }, ]