Changeset 2079 for trunk


Ignore:
Timestamp:
May 8, 2012, 12:05:43 PM (7 years ago)
Author:
ksherdy
Message:

Add.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/symbol_table/src/symbol_table.hpp

    r2069 r2079  
    2727static void print_symbol_debug(gid_type gid, const uint8_t buffer [], const int32_t spos, const uint32_t epos, const uint32_t lgth) {
    2828        cout << "{Symbol:{";
    29         cout << "GID:" << gid;
    30         cout << ",Length:" << lgth;
    31         cout << ",Value:'" << string((char *)&(buffer[spos]), lgth) << "'";
    32         cout << ",Start:" << spos;
    33         cout << ",End:" << epos;
     29        cout << "GID:'" << gid;
     30        cout << "',Length:" << lgth;
     31        cout << "',Value:'" << string((char *)&(buffer[spos]), lgth) << "'";
     32        cout << "',Start':" << spos;
     33        cout << "',End:" << epos;
    3434        cout << "}}" << endl;
    3535}
     
    127127                        // Byte Space Hash (Fixed Length)
    128128                        ///////////////////////////////////////////////////////////////////////////////
    129                         #define BYTE_HASH_FIXED(GROUP_STRATEGY, LGTH, CMP_STRATEGY, HASH_STRATEGY) \
     129                        #define BYTE_HASH_FIXED(GROUP_STRATEGY, LGTH) \
    130130                                if(bitblock::any(groups.ends_##LGTH)) { \
    131                                         do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, CMP_STRATEGY, HASH_STRATEGY, ALLOCATOR> > \
     131                                        do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, GROUP_STRATEGY, ALLOCATOR> > \
    132132                                                (blk_offset, \
    133133                                                 hash_table_##LGTH, \
     
    141141                        // Byte Space Variable Lengths (groups contain variable lengths)
    142142                        ///////////////////////////////////////////////////////////////////////////////
    143                         #define BYTE_HASH_VARIABLE(GROUP_STRATEGY, LGTH, CMP_STRATEGY, HASH_STRATEGY) \
     143                        #define BYTE_HASH_VARIABLE(GROUP_STRATEGY, LGTH) \
    144144                                if(bitblock::any(groups.ends_##LGTH)) { \
    145                                         do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, CMP_STRATEGY, HASH_STRATEGY, ALLOCATOR> > \
     145                                        do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, GROUP_STRATEGY, ALLOCATOR> > \
    146146                                                (blk_offset, \
    147147                                                 hash_table_##LGTH, \
     
    157157                        // Bit Space Hash (Fixed Length)
    158158                        ///////////////////////////////////////////////////////////////////////////////
    159                         #define BIT_HASH_FIXED(GROUP_STRATEGY, LGTH, CMP_STRATEGY, HASH_STRATEGY) \
     159                        #define BIT_HASH_FIXED(GROUP_STRATEGY, LGTH) \
    160160                                if(bitblock::any(groups.ends_##LGTH)) { \
    161                                         do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, CMP_STRATEGY, HASH_STRATEGY, ALLOCATOR> > \
     161                                        do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, GROUP_STRATEGY, ALLOCATOR> > \
    162162                                                (blk_offset, \
    163163                                                 hash_table_##LGTH, \
     
    171171                        // Byte Space Variable Lengths (groups contain variable lengths)
    172172                        ///////////////////////////////////////////////////////////////////////////////
    173                         #define BIT_HASH_VARIABLE(GROUP_STRATEGY, LGTH, CMP_STRATEGY, HASH_STRATEGY) \
     173                        #define BIT_HASH_VARIABLE(GROUP_STRATEGY, LGTH) \
    174174                                if(bitblock::any(groups.ends_##LGTH)) { \
    175                                         do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, CMP_STRATEGY, HASH_STRATEGY, ALLOCATOR> > \
     175                                        do_block<GIDS, GROUP_STRATEGY##_hash_table <LGTH, GROUP_STRATEGY, ALLOCATOR> > \
    176176                                                (blk_offset, \
    177177                                                 hash_table_##LGTH, \
     
    185185                        ///////////////////////////////////////////////////////////////////////////////
    186186                        // WARNING: BYTE_HASH max 8 bytes under the shift XOR hash approach of hash.hpp
    187                         //     ---> (id,7),(div2,6),(log2,4)
     187                        //     ---> (id,7),(div2,6),(logbase2,4)
    188188                        ///////////////////////////////////////////////////////////////////////////////
    189189                        #ifdef ID_STRATEGY
    190                             BYTE_HASH_FIXED(id,1,compare_strategy_t<1>,hash_strategy_t<1>);
    191                             BYTE_HASH_FIXED(id,2,compare_strategy_t<2>,hash_strategy_t<2>);
    192                             BYTE_HASH_FIXED(id,3,compare_strategy_t<3>,hash_strategy_t<3>);
    193                             BYTE_HASH_FIXED(id,4,compare_strategy_t<4>,hash_strategy_t<4>);
    194                             BYTE_HASH_FIXED(id,5,compare_strategy_t<5>,hash_strategy_t<5>);
    195                             BYTE_HASH_FIXED(id,6,compare_strategy_t<6>,hash_strategy_t<6>);
    196                             BYTE_HASH_FIXED(id,7,compare_strategy_t<7>,hash_strategy_t<7>);
    197                             BIT_HASH_FIXED(id,8,compare_strategy_t<8>,hash_strategy_t<8>);
    198                             BIT_HASH_FIXED(id,9,compare_strategy_t<9>,hash_strategy_t<9>);
    199                             BIT_HASH_FIXED(id,10,compare_strategy_t<10>,hash_strategy_t<10>);
    200                             BIT_HASH_FIXED(id,11,compare_strategy_t<11>,hash_strategy_t<11>);
    201                             BIT_HASH_FIXED(id,12,compare_strategy_t<12>,hash_strategy_t<12>);
    202                             BIT_HASH_FIXED(id,13,compare_strategy_t<13>,hash_strategy_t<13>);
    203                             BIT_HASH_FIXED(id,14,compare_strategy_t<14>,hash_strategy_t<14>);
    204                             BIT_HASH_FIXED(id,15,compare_strategy_t<15>,hash_strategy_t<15>);
    205                             BIT_HASH_FIXED(id,16,compare_strategy_t<16>,hash_strategy_t<16>);
     190                            BYTE_HASH_FIXED(id,1);
     191                            BYTE_HASH_FIXED(id,2);
     192                            BYTE_HASH_FIXED(id,3);
     193                            BYTE_HASH_FIXED(id,4);
     194                            BYTE_HASH_FIXED(id,5);
     195                            BYTE_HASH_FIXED(id,6);
     196                            BYTE_HASH_FIXED(id,7);
     197                            BIT_HASH_FIXED(id,8);
     198                            BIT_HASH_FIXED(id,9);
     199                            BIT_HASH_FIXED(id,10);
     200                            BIT_HASH_FIXED(id,11);
     201                            BIT_HASH_FIXED(id,12);
     202                            BIT_HASH_FIXED(id,13);
     203                            BIT_HASH_FIXED(id,14);
     204                            BIT_HASH_FIXED(id,15);
     205                            BIT_HASH_FIXED(id,16);
    206206                        #elif DIV2_STRATEGY
    207                             BYTE_HASH_FIXED(div2,2,compare_strategy_t<2>,hash_strategy_t<2>);
    208                             BYTE_HASH_FIXED(div2,4,compare_strategy_t<4>,hash_strategy_t<4>);
    209                             BYTE_HASH_FIXED(div2,6,compare_strategy_t<6>,hash_strategy_t<6>);
    210                             BIT_HASH_FIXED(div2,8,compare_strategy_t<8>,hash_strategy_t<8>);
    211                             BIT_HASH_FIXED(div2,10,compare_strategy_t<10>,hash_strategy_t<10>);
    212                             BIT_HASH_FIXED(div2,12,compare_strategy_t<12>,hash_strategy_t<12>);
    213                             BIT_HASH_FIXED(div2,14,compare_strategy_t<14>,hash_strategy_t<14>);
    214                             BIT_HASH_FIXED(div2,16,compare_strategy_t<16>,hash_strategy_t<16>);
     207                            BYTE_HASH_FIXED(div2,2);
     208                            BYTE_HASH_FIXED(div2,4);
     209                            BYTE_HASH_FIXED(div2,6);
     210                            BIT_HASH_FIXED(div2,8);
     211                            BIT_HASH_FIXED(div2,10);
     212                            BIT_HASH_FIXED(div2,12);
     213                            BIT_HASH_FIXED(div2,14);
     214                            BIT_HASH_FIXED(div2,16);
    215215                        #elif LOG2_STRATEGY
    216                             BYTE_HASH_VARIABLE(log2,1,compare_strategy_t<0>,log_hash_strategy_t<1>);
    217                             BYTE_HASH_VARIABLE(log2,2,compare_strategy_t<0>,log_hash_strategy_t<2>);
    218                             BYTE_HASH_VARIABLE(log2,4,compare_strategy_t<0>,log_hash_strategy_t<4>);
    219                             BIT_HASH_VARIABLE(log2,8,compare_strategy_t<0>,log_hash_strategy_t<8>);
    220                             BIT_HASH_VARIABLE(log2,16,compare_strategy_t<0>,log_hash_strategy_t<16>);
     216                            BYTE_HASH_VARIABLE(logbase2,1);
     217                            BYTE_HASH_VARIABLE(logbase2,2);
     218                            BYTE_HASH_VARIABLE(logbase2,4);
     219                            BIT_HASH_VARIABLE(logbase2,8);
     220                            BIT_HASH_VARIABLE(logbase2,16);
    221221                        #endif
    222222
     
    227227
    228228                        if(bitblock::any(groups.ends_gte_17)) {
    229                             do_block<GIDS, id_hash_table<0, compare_strategy_t<0>, hash_strategy_t<0>, ALLOCATOR> >
     229                            do_block<GIDS, id_hash_table<0, id, ALLOCATOR> >
    230230                                                (blk_offset,
    231231                                                 hash_table_gte_17,
     
    241241
    242242private:
    243 
    244243        GIDFactory gid_factory;
    245244        GIDData gid_data;
     
    249248        ///////////////////////////////////////////////////////////////////////////////
    250249        #ifdef ID_STRATEGY
    251             id_hash_table<1, compare_strategy_t<1>, hash_strategy_t<1>, ALLOCATOR> hash_table_1;
    252             id_hash_table<2, compare_strategy_t<2>, hash_strategy_t<2>, ALLOCATOR> hash_table_2;
    253             id_hash_table<3, compare_strategy_t<3>, hash_strategy_t<3>, ALLOCATOR> hash_table_3;
    254             id_hash_table<4, compare_strategy_t<4>, hash_strategy_t<4>, ALLOCATOR> hash_table_4;
    255             id_hash_table<5, compare_strategy_t<5>, hash_strategy_t<5>, ALLOCATOR> hash_table_5;
    256             id_hash_table<6, compare_strategy_t<6>, hash_strategy_t<6>, ALLOCATOR> hash_table_6;
    257             id_hash_table<7, compare_strategy_t<7>, hash_strategy_t<7>, ALLOCATOR> hash_table_7;
    258             id_hash_table<8, compare_strategy_t<8>, hash_strategy_t<8>, ALLOCATOR> hash_table_8;
    259             id_hash_table<9, compare_strategy_t<9>, hash_strategy_t<9>, ALLOCATOR> hash_table_9;
    260             id_hash_table<10, compare_strategy_t<10>, hash_strategy_t<10>, ALLOCATOR> hash_table_10;
    261             id_hash_table<11, compare_strategy_t<11>, hash_strategy_t<11>, ALLOCATOR> hash_table_11;
    262             id_hash_table<12, compare_strategy_t<12>, hash_strategy_t<12>, ALLOCATOR> hash_table_12;
    263             id_hash_table<13, compare_strategy_t<13>, hash_strategy_t<13>, ALLOCATOR> hash_table_13;
    264             id_hash_table<14, compare_strategy_t<14>, hash_strategy_t<14>, ALLOCATOR> hash_table_14;
    265             id_hash_table<15, compare_strategy_t<15>, hash_strategy_t<15>, ALLOCATOR> hash_table_15;
    266             id_hash_table<16, compare_strategy_t<16>, hash_strategy_t<16>, ALLOCATOR> hash_table_16;
     250            id_hash_table<1, id, ALLOCATOR> hash_table_1;
     251            id_hash_table<2, id, ALLOCATOR> hash_table_2;
     252            id_hash_table<3, id, ALLOCATOR> hash_table_3;
     253            id_hash_table<4, id, ALLOCATOR> hash_table_4;
     254            id_hash_table<5, id, ALLOCATOR> hash_table_5;
     255            id_hash_table<6, id, ALLOCATOR> hash_table_6;
     256            id_hash_table<7, id, ALLOCATOR> hash_table_7;
     257            id_hash_table<8, id, ALLOCATOR> hash_table_8;
     258            id_hash_table<9, id, ALLOCATOR> hash_table_9;
     259            id_hash_table<10, id, ALLOCATOR> hash_table_10;
     260            id_hash_table<11, id, ALLOCATOR> hash_table_11;
     261            id_hash_table<12, id, ALLOCATOR> hash_table_12;
     262            id_hash_table<13, id, ALLOCATOR> hash_table_13;
     263            id_hash_table<14, id, ALLOCATOR> hash_table_14;
     264            id_hash_table<15, id, ALLOCATOR> hash_table_15;
     265            id_hash_table<16, id, ALLOCATOR> hash_table_16;
    267266        #elif DIV2_STRATEGY
    268             div2_hash_table<2, compare_strategy_t<2>, hash_strategy_t<2>, ALLOCATOR> hash_table_2;
    269             div2_hash_table<4, compare_strategy_t<4>, hash_strategy_t<4>, ALLOCATOR> hash_table_4;
    270             div2_hash_table<6, compare_strategy_t<6>, hash_strategy_t<6>, ALLOCATOR> hash_table_6;
    271             div2_hash_table<8, compare_strategy_t<8>, hash_strategy_t<8>, ALLOCATOR> hash_table_8;
    272             div2_hash_table<10, compare_strategy_t<10>, hash_strategy_t<10>, ALLOCATOR> hash_table_10;
    273             div2_hash_table<12, compare_strategy_t<12>, hash_strategy_t<12>, ALLOCATOR> hash_table_12;
    274             div2_hash_table<14, compare_strategy_t<14>, hash_strategy_t<14>, ALLOCATOR> hash_table_14;
    275             div2_hash_table<16, compare_strategy_t<16>, hash_strategy_t<16>, ALLOCATOR> hash_table_16;
     267            div2_hash_table<2, div2, ALLOCATOR> hash_table_2;
     268            div2_hash_table<4, div2, ALLOCATOR> hash_table_4;
     269            div2_hash_table<6, div2, ALLOCATOR> hash_table_6;
     270            div2_hash_table<8, div2, ALLOCATOR> hash_table_8;
     271            div2_hash_table<10, div2, ALLOCATOR> hash_table_10;
     272            div2_hash_table<12, div2, ALLOCATOR> hash_table_12;
     273            div2_hash_table<14, div2, ALLOCATOR> hash_table_14;
     274            div2_hash_table<16, div2, ALLOCATOR> hash_table_16;
    276275        #elif LOG2_STRATEGY
    277             log2_hash_table<1, compare_strategy_t<0>, log_hash_strategy_t<1>, ALLOCATOR> hash_table_1;
    278             log2_hash_table<2, compare_strategy_t<0>, log_hash_strategy_t<2>, ALLOCATOR> hash_table_2;
    279             log2_hash_table<4, compare_strategy_t<0>, log_hash_strategy_t<4>, ALLOCATOR> hash_table_4;
    280             log2_hash_table<8, compare_strategy_t<0>, log_hash_strategy_t<8>, ALLOCATOR> hash_table_8;
    281             log2_hash_table<16, compare_strategy_t<0>, log_hash_strategy_t<16>, ALLOCATOR> hash_table_16;
     276            logbase2_hash_table<1, logbase2, ALLOCATOR> hash_table_1;
     277            logbase2_hash_table<2, logbase2, ALLOCATOR> hash_table_2;
     278            logbase2_hash_table<4, logbase2, ALLOCATOR> hash_table_4;
     279            logbase2_hash_table<8, logbase2, ALLOCATOR> hash_table_8;
     280            logbase2_hash_table<16, logbase2, ALLOCATOR> hash_table_16;
    282281        #else
    283282            #error "Length group strategy not specified. #define {ID_STRATEGY,DIV2_STRATEGY,LOG2_STRATEGY}."
    284283        #endif
    285284
    286         id_hash_table<0, compare_strategy_t<0>, hash_strategy_t<0>, ALLOCATOR> hash_table_gte_17;
     285        id_hash_table<0, id, ALLOCATOR> hash_table_gte_17;
    287286};
    288287
Note: See TracChangeset for help on using the changeset viewer.