예제 #1
0
        public static keyword make_keyword( byte[] name )
        {
            lock( table ) {
            int hash_number = foreign.get_hash_power_number( name, 12 );
            keybucket _keybucket = table[hash_number];

            if (_keybucket == null) {
               keyword symbol = new keyword( nil._nil, name );

               table[hash_number] = new keybucket( symbol, null );
               return symbol;
            }

            for (keybucket run = _keybucket ; (run != null) ; run = run.next)
               if (foreign.bigloo_strcmp( run.symb.pname, name ))
              return run.symb;

            keyword result = new keyword( nil._nil, name );

            table[hash_number] = new keybucket( result, _keybucket );

            return result;
             }
        }
예제 #2
0
 public keybucket( keyword symb, keybucket next )
 {
     this.symb = symb;
     this.next = next;
 }