--- source: src/main.rs expression: parsed input_file: test-data/lua5.2-tests/bitwise.lua --- [ Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"testing bitwise operations\"", ), ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [], ), ], line: 3, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 3, }, ], ], ), ], line: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "btest", ), Call( [], ), ], line: 4, }, Operator( ( "==", true, ), ), Symbol( "true", ), ], ], ), ], line: 3, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [], ), ], line: 5, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 4, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [], ), ], line: 6, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 5, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [], ), ], line: 8, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "0xffffffff", ), ], ], ), ], line: 8, }, ], ], ), ], line: 6, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 9, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 8, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 13, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 9, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "33", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 14, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 13, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "33", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 15, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 14, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "33", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 16, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 15, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "33", ), Operator( ( "+", true, ), ), Symbol( "1", ), ], ], ), ], line: 17, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 16, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), ], ], ), ], line: 18, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 17, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), ], ], ), ], line: 19, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 18, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), Operator( ( "-", true, ), ), Symbol( "2", ), ], ], ), ], line: 20, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffe", ), ], ], ), ], line: 19, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "40", ), Operator( ( "-", true, ), ), Symbol( "4", ), ], ], ), ], line: 21, }, Operator( ( "==", true, ), ), Symbol( "0xfffffffc", ), ], ], ), ], line: 20, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 23, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 21, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "7", ), ], ], ), ], line: 24, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 23, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], ], ), ], line: 25, }, Operator( ( "==", true, ), ), Symbol( "0x23456781", ), ], ], ), ], line: 24, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 26, }, Operator( ( "==", true, ), ), Symbol( "0x23456781", ), ], ], ), ], line: 25, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "8", ), ], ], ), ], line: 27, }, Operator( ( "==", true, ), ), Symbol( "0x78123456", ), ], ], ), ], line: 26, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rrotate", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "8", ), ], ], ), ], line: 28, }, Operator( ( "==", true, ), ), Symbol( "0x78123456", ), ], ], ), ], line: 27, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0xaaaaaaaa", ), ], [ Symbol( "2", ), ], ], ), ], line: 29, }, Operator( ( "==", true, ), ), Symbol( "0xaaaaaaaa", ), ], ], ), ], line: 28, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0xaaaaaaaa", ), ], [ Operator( ( "-", false, ), ), Symbol( "2", ), ], ], ), ], line: 30, }, Operator( ( "==", true, ), ), Symbol( "0xaaaaaaaa", ), ], ], ), ], line: 29, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "50", ), ], end: [ Symbol( "50", ), ], step: None, code: CodeBlock { start: 325, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x89abcdef", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 32, }, ], ], ), ], line: 32, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Symbol( "0x89abcdef", ), ], [ Ident { expr: [ Symbol( "i", ), ], line: 32, }, Operator( ( "%", true, ), ), Symbol( "32", ), ], ], ), ], line: 32, }, ], ], ), ], line: 32, }, ], end: 348, }, line: 33, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], ], ), ], line: 35, }, Operator( ( "==", true, ), ), Symbol( "0x23456780", ), ], ], ), ], line: 33, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "8", ), ], ], ), ], line: 36, }, Operator( ( "==", true, ), ), Symbol( "0x34567800", ), ], ], ), ], line: 35, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 37, }, Operator( ( "==", true, ), ), Symbol( "0x01234567", ), ], ], ), ], line: 36, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "8", ), ], ], ), ], line: 38, }, Operator( ( "==", true, ), ), Symbol( "0x00123456", ), ], ], ), ], line: 37, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "32", ), ], ], ), ], line: 39, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 38, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "32", ), ], ], ), ], line: 40, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 39, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], ], ), ], line: 41, }, Operator( ( "==", true, ), ), Symbol( "0x01234567", ), ], ], ), ], line: 40, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "8", ), ], ], ), ], line: 42, }, Operator( ( "==", true, ), ), Symbol( "0x00123456", ), ], ], ), ], line: 41, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "32", ), ], ], ), ], line: 43, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 42, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "32", ), ], ], ), ], line: 44, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 43, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0", ), ], ], ), ], line: 45, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), ], ], ), ], line: 44, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "1", ), ], ], ), ], line: 46, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), Operator( ( "/", true, ), ), Symbol( "2", ), ], ], ), ], line: 45, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Symbol( "0x12345678", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 47, }, Operator( ( "==", true, ), ), Symbol( "0x12345678", ), Operator( ( "*", true, ), ), Symbol( "2", ), ], ], ), ], line: 46, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "1", ), ], ], ), ], line: 48, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 47, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "24", ), ], ], ), ], line: 49, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 48, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "32", ), ], ], ), ], line: 50, }, Operator( ( "==", true, ), ), Symbol( "0xffffffff", ), ], ], ), ], line: 49, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "arshift", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 51, }, Operator( ( "==", true, ), ), Expr( [ Operator( ( "-", false, ), ), Symbol( "1", ), Operator( ( "*", true, ), ), Symbol( "2", ), ], ), Ident { expr: [], line: 51, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], ), ], line: 50, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"+\"", ), ], ], ), ], line: 51, }, 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: 56, column: 4, }, ], ], line: 58, column: 0, }, ForFuncLoop { iters: [ "_", "b", ], expr: [ Ident { expr: [ Symbol( "pairs", ), Call( [ [ Ident { expr: [ Symbol( "c", ), ], line: 58, }, ], ], ), ], line: 58, }, ], stop: None, initial: None, code: CodeBlock { start: 630, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 59, }, ], ], ), ], line: 59, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 59, }, ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 60, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 60, }, ], ], ), ], line: 60, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 60, }, ], ], ), ], line: 59, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "btest", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 61, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 61, }, ], ], ), ], line: 61, }, Operator( ( "==", true, ), ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 61, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 61, }, ], ], ), ], line: 60, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 62, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 62, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 62, }, ], ], ), ], line: 62, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 62, }, ], ], ), ], line: 61, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "btest", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 63, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 63, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 63, }, ], ], ), ], line: 63, }, Operator( ( "==", true, ), ), Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 63, }, Operator( ( "~=", true, ), ), Symbol( "0", ), ], ), Ident { expr: [], line: 63, }, ], ], ), ], line: 62, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 64, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 64, }, ], ], ), ], line: 64, }, ], ], ), ], line: 64, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 63, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 65, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 65, }, ], ], ), ], line: 65, }, ], ], ), ], line: 65, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0", ), ], ], ), ], line: 65, }, ], ], ), ], line: 64, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 66, }, ], ], ), ], line: 66, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 66, }, ], ], ), ], line: 65, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 67, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 67, }, ], ], ), ], line: 67, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 67, }, ], ], ), ], line: 66, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 68, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 68, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 68, }, ], ], ), ], line: 68, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 68, }, ], ], ), ], line: 67, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 69, }, ], ], ), ], line: 69, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 69, }, ], ], ), ], line: 68, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 70, }, ], [ Ident { expr: [ Symbol( "b", ), ], line: 70, }, ], ], ), ], line: 70, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 69, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bxor", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 71, }, ], [ Symbol( "0", ), ], ], ), ], line: 71, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 71, }, ], ], ), ], line: 70, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 72, }, ], ], ), ], line: 72, }, Operator( ( "~=", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 72, }, ], ], ), ], line: 71, }, 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: 73, }, ], ], ), ], line: 73, }, ], ], ), ], line: 73, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 73, }, ], ], ), ], line: 72, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 74, }, ], ], ), ], line: 74, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "-", true, ), ), Symbol( "1", ), Operator( ( "-", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 74, }, ], ], ), ], line: 73, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lrotate", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 75, }, ], [ Symbol( "32", ), ], ], ), ], line: 75, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 75, }, ], ], ), ], line: 74, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rrotate", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 76, }, ], [ Symbol( "32", ), ], ], ), ], line: 76, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "b", ), ], line: 76, }, ], ], ), ], line: 75, }, 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: 77, }, ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 77, }, ], [ Symbol( "4", ), ], ], ), ], line: 77, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 77, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0xf", ), ], ], ), ], line: 77, }, ], ], ), ], line: 77, }, ], ], ), ], line: 76, }, 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: 78, }, ], [ Symbol( "4", ), ], ], ), ], line: 78, }, ], [ Operator( ( "-", false, ), ), Symbol( "4", ), ], ], ), ], line: 78, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 78, }, ], [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), Call( [ [ Symbol( "0xf", ), ], ], ), ], line: 78, }, ], ], ), ], line: 78, }, ], ], ), ], line: 77, }, ForLoop { iter: "i", start: [ Operator( ( "-", false, ), ), Symbol( "40", ), ], end: [ Symbol( "40", ), ], step: None, code: CodeBlock { start: 336, code: [ Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), Call( [ [ Ident { expr: [ Symbol( "b", ), ], line: 80, }, ], [ Ident { expr: [ Symbol( "i", ), ], line: 80, }, ], ], ), ], line: 80, }, Operator( ( "==", true, ), ), Ident { expr: [ Symbol( "math", ), Symbol( ".", ), Symbol( "floor", ), Call( [ [ Expr( [ Ident { expr: [ Symbol( "b", ), ], line: 80, }, Operator( ( "*", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Ident { expr: [ Symbol( "i", ), ], line: 80, }, ], ), Ident { expr: [], line: 80, }, Operator( ( "%", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), ], ], ), ], line: 80, }, ], ], ), ], line: 80, }, ], end: 365, }, line: 81, column: 1, }, ], end: 996, }, line: 82, column: 1, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "band", ), ], line: 84, }, ], [ Table { data: [], line: 84, column: 11, }, ], ], ), ], line: 84, }, ], ], ), ], line: 82, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "bnot", ), ], line: 85, }, ], [ Symbol( "\"a\"", ), ], ], ), ], line: 85, }, ], ], ), ], line: 84, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), ], line: 86, }, ], [ Symbol( "45", ), ], ], ), ], line: 86, }, ], ], ), ], line: 85, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "lshift", ), ], line: 87, }, ], [ Symbol( "45", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 87, }, ], ], ), ], line: 87, }, ], ], ), ], line: 86, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "rshift", ), ], line: 88, }, ], [ Symbol( "45", ), ], [ Ident { expr: [ Symbol( "print", ), ], line: 88, }, ], ], ), ], line: 88, }, ], ], ), ], line: 87, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "\"+\"", ), ], ], ), ], line: 88, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0", ), ], [ Symbol( "4", ), ], ], ), ], line: 95, }, Operator( ( "==", true, ), ), Symbol( "8", ), ], ], ), ], line: 90, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "4", ), ], [ Symbol( "4", ), ], ], ), ], line: 96, }, Operator( ( "==", true, ), ), Symbol( "7", ), ], ], ), ], line: 95, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0xa0001111", ), ], [ Symbol( "28", ), ], [ Symbol( "4", ), ], ], ), ], line: 97, }, Operator( ( "==", true, ), ), Symbol( "0xa", ), ], ], ), ], line: 96, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0xa0001111", ), ], [ Symbol( "31", ), ], [ Symbol( "1", ), ], ], ), ], line: 98, }, Operator( ( "==", true, ), ), Symbol( "1", ), ], ], ), ], line: 97, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0x50000111", ), ], [ Symbol( "31", ), ], [ Symbol( "1", ), ], ], ), ], line: 99, }, Operator( ( "==", true, ), ), Symbol( "0", ), ], ], ), ], line: 98, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), Call( [ [ Symbol( "0xf2345679", ), ], [ Symbol( "0", ), ], [ Symbol( "32", ), ], ], ), ], line: 100, }, Operator( ( "==", true, ), ), Symbol( "0xf2345679", ), ], ], ), ], line: 99, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 102, }, ], [ Symbol( "0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], ], ), ], line: 102, }, ], ], ), ], line: 100, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 103, }, ], [ Symbol( "0", ), ], [ Symbol( "32", ), ], ], ), ], line: 103, }, ], ], ), ], line: 102, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 104, }, ], [ Symbol( "0", ), ], [ Symbol( "0", ), ], [ Symbol( "33", ), ], ], ), ], line: 104, }, ], ], ), ], line: 103, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Operator( ( "not", false, ), ), Ident { expr: [ Symbol( "pcall", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "extract", ), ], line: 105, }, ], [ Symbol( "0", ), ], [ Symbol( "31", ), ], [ Symbol( "2", ), ], ], ), ], line: 105, }, ], ], ), ], line: 104, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "5", ), ], [ Symbol( "28", ), ], [ Symbol( "4", ), ], ], ), ], line: 107, }, Operator( ( "==", true, ), ), Symbol( "0x52345678", ), ], ], ), ], line: 105, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0x12345678", ), ], [ Symbol( "0x87654321", ), ], [ Symbol( "0", ), ], [ Symbol( "32", ), ], ], ), ], line: 108, }, Operator( ( "==", true, ), ), Symbol( "0x87654321", ), ], ], ), ], line: 107, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0", ), ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 109, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "2", ), ], ], ), ], line: 108, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Symbol( "0", ), ], [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "4", ), ], ], ), ], line: 110, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "4", ), ], ], ), ], line: 109, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "0", ), ], [ Symbol( "31", ), ], ], ), ], line: 111, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "31", ), Operator( ( "-", true, ), ), Symbol( "1", ), ], ], ), ], line: 110, }, Ident { expr: [ Symbol( "assert", ), Call( [ [ Ident { expr: [ Symbol( "bit32", ), Symbol( ".", ), Symbol( "replace", ), Call( [ [ Operator( ( "-", false, ), ), Symbol( "1", ), ], [ Symbol( "0", ), ], [ Symbol( "1", ), ], [ Symbol( "2", ), ], ], ), ], line: 112, }, Operator( ( "==", true, ), ), Symbol( "2", ), Operator( ( "^", true, ), ), Symbol( "32", ), Operator( ( "-", true, ), ), Symbol( "7", ), ], ], ), ], line: 111, }, Ident { expr: [ Symbol( "print", ), Call( [ [ Symbol( "'OK'", ), ], ], ), ], line: 112, }, ]