public void TestParseToken2()
        {
            Token[] expectedTokens =
            {
                T.Token(TokenType.ValInt,     "12345678",   1, 1),
                T.Token(TokenType.ValInt,     "0x1234ABCD", 2, 1),
                T.Token(TokenType.ValInt,     "0xABCDEFGH", 3, 1),
                T.Token(TokenType.ValInt,     "0x123.456",  4, 1),
                T.I64(6,                                1),
                T.Token(TokenType.Identifier, "a",          6, 5),
                T.Assign(6,                             7),
                T.Token(TokenType.ValInt,     "0xcdcdcdcd", 6, 9),
                T.F64(7,                                1),
                T.Token(TokenType.Identifier, "b",          7, 5),
                T.Assign(7,                             7),
                T.Token(TokenType.ValFloat,   ".0",         7, 8),
                T.F64(8,                                1),
                T.Token(TokenType.Identifier, "c",          8, 5),
                T.Assign(8,                             6),
                T.Token(TokenType.Unknown,    "1.",         8, 8),
                T.Token(TokenType.Identifier, "abcdefg",    9, 1)
            };
            using var source = new FileStream("TestCode/TestLex2.rbl", FileMode.Open);
            var lexer = new RbLexer(source);

            TestCodeHelper.ParseTokenCode(expectedTokens, lexer);
        }
        public void TestParseToken1()
        {
            Token[] expectedTokens =
            {
                T.Void(3,                                     1),
                T.Token(TokenType.Identifier, "modPlus",           3,  6),
                T.LeftParenthesis(3,                         13),
                T.I64(3,                                     13),
                T.Token(TokenType.Identifier, "a",                 3, 18),
                T.Comma(3,                                   19),
                T.I64(3,                                     21),
                T.Token(TokenType.Identifier, "m",                 3, 25),
                T.RightParenthesis(3,                        26),
                T.LeftBrace(3,                               18),
                T.If(4,                                       1),
                T.LeftParenthesis(4,                          4),
                T.Token(TokenType.Identifier, "a",                 4,  5),
                T.Eq(4,                                       7),
                T.Token(TokenType.ValInt,     "1",                 4, 10),
                T.RightParenthesis(4,                        11),
                T.Return(4,                                  12),
                T.Token(TokenType.Identifier, "a",                 4, 19),
                T.Semi(4,                                    20),
                T.Return(5,                                   5),
                T.Token(TokenType.Identifier, "a",                 5, 12),
                T.Mod(5,                                     13),
                T.Token(TokenType.Identifier, "m",                 5, 15),
                T.Semi(5,                                    16),
                T.RightBrace(6,                               1),
                T.Token(TokenType.Attr,       "@import",           8,  1),
                T.Func(8,                                    11),
                T.I64(8,                                     16),
                T.Token(TokenType.Identifier, "veryNBFunction",    8, 20),
                T.LeftParenthesis(8,                         36),
                T.I64(8,                                     37),
                T.Token(TokenType.Identifier, "a",                 8, 41),
                T.Comma(8,                                   42),
                T.F64(8,                                     43),
                T.Token(TokenType.Identifier, "b",                 8, 47),
                T.Comma(8,                                   48),
                T.Str(8,                                     49),
                T.Token(TokenType.Identifier, "c",                 8, 53),
                T.RightParenthesis(8,                        56),
                T.Semi(8,                                    57),
                T.Token(TokenType.Attr,       "@entry",           10,  1),
                T.Func(11,                                    1),
                T.I64(11,                                     6),
                T.Token(TokenType.Identifier, "main",             11, 10),
                T.LeftParenthesis(11,                        14),
                T.I64(11,                                    15),
                T.Token(TokenType.Identifier, "argc",             11, 19),
                T.Comma(11,                                  23),
                T.Str(11,                                    25),
                T.LeftBracket(11,                            28),
                T.RightBracket(11,                           29),
                T.Token(TokenType.Identifier, "argv",             11, 31),
                T.RightParenthesis(11,                       35),
                T.LeftBrace(11,                              37),
                T.Token(TokenType.Identifier, "veryNBFunction",   12,  5),
                T.LeftParenthesis(12,                        19),
                T.Token(TokenType.Identifier, "a",                12, 20),
                T.Comma(12,                                  21),
                T.Token(TokenType.ValFloat,   "114.514",          12, 22),
                T.Comma(12,                                  29),
                T.Token(TokenType.ValStr,     "\"heng-aaaaaaa\"", 12, 31),
                T.RightParenthesis(12,                       45),
                T.Semi(12,                                   46),
                T.Return(13,                                  5),
                T.Token(TokenType.ValInt,     "0",                13, 12),
                T.Semi(13,                                   13),
                T.RightBrace(13, 14)
            };
            using var source = new FileStream("TestCode/TestLex1.rbl", FileMode.Open);
            var lexer = new RbLexer(source);

            TestCodeHelper.ParseTokenCode(expectedTokens, lexer);
        }