📄 table..c
字号:
if ( _auto_this == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 53 "../../src/table.c""0->look(%s)", _auto_s ) ; #line 54 "../../src/table.c"if ( _auto_this -> _node_base != 142 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 54 "../../src/table.c""(%d,%d)->look(%s)", _auto_this , _auto_this -> _node_base , _auto_s ) ; #line 58 "../../src/table.c"_auto_p = _auto_s ; #line 59 "../../src/table.c"_auto_i = 0 ; #line 60 "../../src/table.c"while ( * _auto_p ) _auto_i += ( _auto_i + ( * ( _auto_p ++ ) ) ) #line 60 "../../src/table.c"; #line 61 "../../src/table.c"_auto_rr = ( ( 0 <= _auto_i ) ? _auto_i : ( - _auto_i ) ) ; #line 63 "../../src/table.c"for ( _auto_t = ( struct table * ) _auto_this ;_auto_t ;( _auto_t = _auto_t -> _table_next ) ) { #line 63 "../../src/table.c"Pname * #line 63 "../../src/table.c"_auto_np ; int _auto_mx ; short * _auto_hash ; int _auto_firsti ; #line 65 "../../src/table.c"_auto_np = _auto_t -> _table_entries ; #line 66 "../../src/table.c"_auto_mx = _auto_t -> _table_hashsize ; #line 67 "../../src/table.c"_auto_hash = _auto_t -> _table_hashtbl ; #line 68 "../../src/table.c"_auto_firsti = ( _auto_i = ( _auto_rr % _auto_mx ) ) ; #line 70 "../../src/table.c"do { #line 70 "../../src/table.c"if ( ( _auto_hash [ _auto_i ] ) == 0 ) goto not_found ; #line 72 "../../src/table.c"_auto_n = ( _auto_np [ _auto_hash [ _auto_i ] ] ) ; #line 73 "../../src/table.c"if ( _auto_n == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 73 "../../src/table.c""hashed lookup") ; #line 74 "../../src/table.c"_auto_p = _auto_n -> _expr__O3.__C3_string ; #line 75 "../../src/table.c"_auto_q = _auto_s ; #line 76 "../../src/table.c"while ( ( * _auto_p ) && ( * _auto_q ) ) if ( ( * #line 76 "../../src/table.c"( _auto_p ++ ) ) != ( * ( _auto_q ++ ) ) ) #line 77 "../../src/table.c"goto nxt ; #line 77 "../../src/table.c"#line 78 "../../src/table.c"if ( ( * _auto_p ) == ( * _auto_q ) ) goto found ; #line 79 "../../src/table.c"nxt : if ( _auto_mx <= ( ++ _auto_i ) ) _auto_i = 0 ; } while ( _auto_i != _auto_firsti ) ; #line 83 "../../src/table.c"found : for ( ;_auto_n ;( _auto_n = _auto_n -> _name_n_tbl_list ) ) { #line 84 "../../src/table.c"if ( _auto_n -> _node_n_key == _auto_k ) #line 84 "../../src/table.c"#line 85 "../../src/table.c"{ #line 85 "../../src/table.c"{ _auto__result = _auto_n ; #line 85 "../../src/table.c"return _auto__result ; } } } #line 88 "../../src/table.c"not_found : ; } #line 91 "../../src/table.c"{ #line 91 "../../src/table.c"{ _auto__result = 0 ; #line 91 "../../src/table.c"return _auto__result ; } } } ; #line 94 "../../src/table.c"bit Nold ; #line 96 "../../src/table.c"Pname _table_insert ( _auto_this , _auto_nx , _auto_k ) register struct table * _auto_this ; struct name * _auto_nx ; int _auto_k ; #line 102 "../../src/table.c"{ #line 102 "../../src/table.c"Pname _auto__result ; register char * _auto_p ; register int _auto_i ; Pname _auto_n ; Pname * _auto_np ; Pname * _auto_link ; int _auto_firsti ; int _auto_mx ; short * _auto_hash ; char * _auto_s ; #line 106 "../../src/table.c"_auto_np = _auto_this -> _table_entries ; #line 109 "../../src/table.c"_auto_mx = _auto_this -> _table_hashsize ; #line 110 "../../src/table.c"_auto_hash = _auto_this -> _table_hashtbl ; #line 111 "../../src/table.c"_auto_s = _auto_nx -> _expr__O3.__C3_string ; #line 113 "../../src/table.c"if ( _auto_s == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 113 "../../src/table.c""%d->insert(0,%d)", _auto_this , _auto_k ) ; #line 114 "../../src/table.c"_auto_nx -> _node_n_key = _auto_k ; #line 115 "../../src/table.c"if ( _auto_nx -> _name_n_tbl_list || _auto_nx -> _expr__O5.__C5_n_table ) errorFI_PC__E ( ( int ) 'i' , ( char * #line 115 "../../src/table.c") "%n in two tables", _auto_nx ) ; #line 118 "../../src/table.c"_auto_p = _auto_s ; #line 119 "../../src/table.c"_auto_i = 0 ; #line 120 "../../src/table.c"while ( * _auto_p ) _auto_i += ( _auto_i + ( * ( _auto_p ++ ) ) ) #line 120 "../../src/table.c"; #line 121 "../../src/table.c"if ( _auto_i < 0 ) _auto_i = ( - _auto_i ) ; #line 122 "../../src/table.c"_auto_firsti = ( _auto_i = ( _auto_i % _auto_mx ) ) ; #line 124 "../../src/table.c"do { #line 124 "../../src/table.c"if ( ( _auto_hash [ _auto_i ] ) == 0 ) { #line 125 "../../src/table.c"( _auto_hash [ #line 125 "../../src/table.c"_auto_i ] ) = _auto_this -> _table_free_slot ; #line 127 "../../src/table.c"goto add_np ; } #line 129 "../../src/table.c"_auto_n = ( _auto_np [ _auto_hash [ _auto_i ] ] ) ; #line 130 "../../src/table.c"if ( _auto_n == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 130 "../../src/table.c""hashed lookup") ; #line 131 "../../src/table.c"if ( strcmp ( _auto_n -> _expr__O3.__C3_string , _auto_s ) == 0 ) goto found ; #line 139 "../../src/table.c"if ( _auto_mx <= ( ++ _auto_i ) ) _auto_i = 0 ; } while ( _auto_i != _auto_firsti ) ; #line 142 "../../src/table.c"errorFPC__E ( ( char * ) "N table full") ; #line 144 "../../src/table.c"found : for ( ;;) { #line 147 "../../src/table.c"if ( _auto_n -> _node_n_key == _auto_k ) { #line 148 "../../src/table.c"Nold = 1 ; #line 148 "../../src/table.c"{ #line 148 "../../src/table.c"{ _auto__result = _auto_n ; #line 148 "../../src/table.c"return _auto__result ; } } } #line 150 "../../src/table.c"if ( _auto_n -> _name_n_tbl_list ) _auto_n = _auto_n -> _name_n_tbl_list ; else #line 152 "../../src/table.c"{ #line 152 "../../src/table.c"_auto_link = ( & _auto_n -> _name_n_tbl_list ) ; #line 154 "../../src/table.c"goto re_allocate ; } } #line 158 "../../src/table.c"add_np : if ( _auto_this -> _table_size <= _auto_this -> _table_free_slot ) { #line 159 "../../src/table.c"_table_grow ( _auto_this , 2 * _auto_this -> #line 159 "../../src/table.c"_table_size ) ; #line 161 "../../src/table.c"{ #line 161 "../../src/table.c"{ _auto__result = _table_insert ( _auto_this , _auto_nx , _auto_k ) ; #line 161 "../../src/table.c"return _auto__result ; } } } #line 164 "../../src/table.c"_auto_link = ( & ( _auto_np [ _auto_this -> _table_free_slot ++ ] ) ) ; #line 164 "../../src/table.c"#line 166 "../../src/table.c"re_allocate : { #line 167 "../../src/table.c"Pname _auto_nw ; #line 168 "../../src/table.c"_auto_nw = ( struct name * ) _name__ctor ( ( struct name * ) 0 , ( char #line 168 "../../src/table.c"* ) 0 ) ; #line 169 "../../src/table.c"( * _auto_nw ) = ( * _auto_nx ) ; #line 171 "../../src/table.c"{ #line 171 "../../src/table.c"int _auto_ll ; char * _auto_ps ; #line 172 "../../src/table.c"_auto_ll = ( strlen ( _auto_s ) + 1 ) ; #line 173 "../../src/table.c"_auto_ps = ( ( ( char * ) ( _new ( ( long ) _auto_ll ) ) #line 173 "../../src/table.c") ) ; #line 175 "../../src/table.c"strcpy ( _auto_ps , _auto_s ) ; #line 176 "../../src/table.c"Nstr ++ ; #line 177 "../../src/table.c"_auto_nw -> _expr__O3.__C3_string = _auto_ps ; } #line 180 "../../src/table.c"_auto_nw -> _expr__O5.__C5_n_table = ( struct table * ) _auto_this ; #line 181 "../../src/table.c"( * _auto_link ) = _auto_nw ; #line 182 "../../src/table.c"Nold = 0 ; #line 183 "../../src/table.c"Nname ++ ; #line 184 "../../src/table.c"{ #line 184 "../../src/table.c"{ _auto__result = _auto_nw ; #line 184 "../../src/table.c"return _auto__result ; } } } } ; #line 188 "../../src/table.c"int _table_grow ( _auto_this , _auto_g ) register struct table * _auto_this ; int _auto_g ; #line 189 "../../src/table.c"{ #line 189 "../../src/table.c"short * _auto_hash ; register int _auto_j ; int _auto_mx ; register Pname * _auto_np ; Pname _auto_n ; #line 196 "../../src/table.c"if ( _auto_g <= _auto_this -> _table_free_slot ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 196 "../../src/table.c""table.grow(%d,%d)", _auto_g , _auto_this -> _table_free_slot ) ; #line 197 "../../src/table.c"if ( _auto_g <= _auto_this -> _table_size ) { #line 197 "../../src/table.c"return ; } #line 199 "../../src/table.c"_auto_this -> _table_size = ( _auto_mx = ( _auto_g + 1 ) ) ; #line 201 "../../src/table.c"_auto_np = ( ( ( struct name * * ) ( _new ( ( long ) ( #line 201 "../../src/table.c"4* _auto_mx ) ) ) ) ) ; #line 202 "../../src/table.c"for ( _auto_j = 0 ;( _auto_j < _auto_this -> _table_free_slot ) ;( _auto_j ++ ) ) ( _auto_np [ #line 202 "../../src/table.c"_auto_j ] ) = ( _auto_this -> _table_entries [ _auto_j ] ) ; #line 203 "../../src/table.c"_delete ( ( int * ) _auto_this -> _table_entries ) ; #line 204 "../../src/table.c"_auto_this -> _table_entries = _auto_np ; #line 206 "../../src/table.c"_delete ( ( int * ) _auto_this -> _table_hashtbl ) ; #line 207 "../../src/table.c"_auto_this -> _table_hashsize = ( _auto_mx = ( ( _auto_g * 3 ) / 2 ) ) ; #line 207 "../../src/table.c"; #line 208 "../../src/table.c"_auto_hash = ( _auto_this -> _table_hashtbl = ( ( ( short * ) ( _new ( ( long #line 208 "../../src/table.c") ( 2* _auto_mx ) ) ) ) ) ) ; #line 210 "../../src/table.c"for ( _auto_j = 1 ;( _auto_j < _auto_this -> _table_free_slot ) ;( _auto_j ++ ) ) { #line 210 "../../src/table.c"char * #line 210 "../../src/table.c"_auto_s ; register char * _auto_p ; char * _auto_q ; register int _auto_i ; int _auto_firsti ; #line 211 "../../src/table.c"_auto_s = ( _auto_np [ _auto_j ] ) -> _expr__O3.__C3_string ; #line 217 "../../src/table.c"_auto_p = _auto_s ; #line 218 "../../src/table.c"_auto_i = 0 ; #line 219 "../../src/table.c"while ( * _auto_p ) _auto_i += ( _auto_i + ( * ( _auto_p ++ ) ) ) #line 219 "../../src/table.c"; #line 220 "../../src/table.c"if ( _auto_i < 0 ) _auto_i = ( - _auto_i ) ; #line 221 "../../src/table.c"_auto_firsti = ( _auto_i = ( _auto_i % _auto_mx ) ) ; #line 223 "../../src/table.c"do { #line 223 "../../src/table.c"if ( ( _auto_hash [ _auto_i ] ) == 0 ) { #line 224 "../../src/table.c"( _auto_hash [ #line 224 "../../src/table.c"_auto_i ] ) = _auto_j ; #line 226 "../../src/table.c"goto add_np ; } #line 228 "../../src/table.c"_auto_n = ( _auto_np [ _auto_hash [ _auto_i ] ] ) ; #line 229 "../../src/table.c"if ( _auto_n == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 229 "../../src/table.c""hashed lookup") ; #line 230 "../../src/table.c"_auto_p = _auto_n -> _expr__O3.__C3_string ; #line 231 "../../src/table.c"_auto_q = _auto_s ; #line 232 "../../src/table.c"while ( ( * _auto_p ) && ( * _auto_q ) ) if ( ( * #line 232 "../../src/table.c"( _auto_p ++ ) ) != ( * ( _auto_q ++ ) ) ) #line 232 "../../src/table.c"goto nxt ; #line 232 "../../src/table.c"#line 233 "../../src/table.c"if ( ( * _auto_p ) == ( * _auto_q ) ) goto found ; #line 234 "../../src/table.c"nxt : if ( _auto_mx <= ( ++ _auto_i ) ) _auto_i = 0 ; } while ( _auto_i != _auto_firsti ) ; #line 238 "../../src/table.c"errorFI_PC__E ( ( int ) 'i' , ( char * ) "rehash??") ; #line 240 "../../src/table.c"found : errorFI_PC__E ( ( int ) 'i' , ( char * ) "rehash failed") ; #line 243 "../../src/table.c"add_np : ; } } ; #line 247 "../../src/table.c"Pclass Ebase ; #line 248 "../../src/table.c"Pclass Epriv ; #line 250 "../../src/table.c"Pname _table_lookc ( _auto_this , _auto_s , _auto__A10 ) register struct table * _auto_this ; char * _auto_s ; int _auto__A10 ; #line 257 "../../src/table.c"{ #line 257 "../../src/table.c"Pname _auto__result ; Ptable _auto_t ; register char * _auto_p ; register char * _auto_q ; register int _auto_i ; Pname _auto_n ; int _auto_rr ; #line 265 "../../src/table.c"if ( _auto_s == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 265 "../../src/table.c""%d->look(0)", _auto_this ) ; #line 266 "../../src/table.c"if ( _auto_this == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 266 "../../src/table.c""0->look(%s)", _auto_s ) ; #line 267 "../../src/table.c"if ( _auto_this -> _node_base != 142 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 267 "../../src/table.c""(%d,%d)->look(%s)", _auto_this , _auto_this -> _node_base , _auto_s ) ; #line 269 "../../src/table.c"Ebase = 0 ; #line 270 "../../src/table.c"Epriv = 0 ; #line 274 "../../src/table.c"_auto_p = _auto_s ; #line 275 "../../src/table.c"_auto_i = 0 ; #line 276 "../../src/table.c"while ( * _auto_p ) _auto_i += ( _auto_i + ( * ( _auto_p ++ ) ) ) #line 276 "../../src/table.c"; #line 277 "../../src/table.c"_auto_rr = ( ( 0 <= _auto_i ) ? _auto_i : ( - _auto_i ) ) ; #line 279 "../../src/table.c"for ( _auto_t = ( struct table * ) _auto_this ;_auto_t ;( _auto_t = _auto_t -> _table_next ) ) { #line 279 "../../src/table.c"Pname * #line 279 "../../src/table.c"_auto_np ; int _auto_mx ; short * _auto_hash ; int _auto_firsti ; Pname _auto_tname ; #line 281 "../../src/table.c"_auto_np = _auto_t -> _table_entries ; #line 282 "../../src/table.c"_auto_mx = _auto_t -> _table_hashsize ; #line 283 "../../src/table.c"_auto_hash = _auto_t -> _table_hashtbl ; #line 284 "../../src/table.c"_auto_firsti = ( _auto_i = ( _auto_rr % _auto_mx ) ) ; #line 285 "../../src/table.c"_auto_tname = _auto_t -> _table_t_name ; #line 287 "../../src/table.c"do { #line 287 "../../src/table.c"if ( ( _auto_hash [ _auto_i ] ) == 0 ) goto not_found ; #line 289 "../../src/table.c"_auto_n = ( _auto_np [ _auto_hash [ _auto_i ] ] ) ; #line 290 "../../src/table.c"if ( _auto_n == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 290 "../../src/table.c""hashed lookup") ; #line 291 "../../src/table.c"_auto_p = _auto_n -> _expr__O3.__C3_string ; #line 292 "../../src/table.c"_auto_q = _auto_s ; #line 293 "../../src/table.c"while ( ( * _auto_p ) && ( * _auto_q ) ) if ( ( * #line 293 "../../src/table.c"( _auto_p ++ ) ) != ( * ( _auto_q ++ ) ) ) #line 294 "../../src/table.c"goto nxt ; #line 294 "../../src/table.c"#line 295 "../../src/table.c"if ( ( * _auto_p ) == ( * _auto_q ) ) goto found ; #line 296 "../../src/table.c"nxt : if ( _auto_mx <= ( ++ _auto_i ) ) _auto_i = 0 ; } while ( _auto_i != _auto_firsti ) ; #line 300 "../../src/table.c"found : do { #line 301 "../../src/table.c"if ( _auto_n -> _node_n_key == 0 ) { #line 302 "../../src/table.c"if ( _auto_tname ) { #line 302 "../../src/table.c"#line 303 "../../src/table.c"#line 304 "../../src/table.c"if ( _auto_n -> _node_base == 25 ) _auto_n = _auto_n -> _name__O6.__C6_n_qualifier ; else #line 306 "../../src/table.c"if ( _auto_n -> _name_n_scope == 0 ) Epriv = ( ( ( struct classdef * ) #line 306 "../../src/table.c"( _auto_tname -> _expr__O2.__C2_tp ) ) ) ; } #line 309 "../../src/table.c"{ #line 309 "../../src/table.c"{ _auto__result = _auto_n ; #line 309 "../../src/table.c"return _auto__result ; } } } } while ( _auto_n = _auto_n -> _name_n_tbl_list ) ; #line 314 "../../src/table.c"not_found : if ( _auto_tname ) { #line 315 "../../src/table.c"Pclass _auto_cl ; #line 316 "../../src/table.c"_auto_cl = ( ( ( struct classdef * ) ( _auto_tname -> _expr__O2.__C2_tp ) ) ) ; #line 317 "../../src/table.c"if ( ( _auto_cl && _auto_cl -> _classdef_clbase ) && ( _auto_cl -> _classdef_pubbase == 0 ) ) Ebase = #line 317 "../../src/table.c"( ( ( struct classdef * ) ( _auto_cl -> _classdef_clbase -> _expr__O2.__C2_tp ) ) ) ; } } #line 321 "../../src/table.c"Ebase = ( Epriv = 0 ) ; #line 322 "../../src/table.c"{ #line 322 "../../src/table.c"{ _auto__result = 0 ; #line 322 "../../src/table.c"return _auto__result ; } } } ; #line 326 "../../src/table.c"Pname _table_get_mem ( _auto_this , _auto_i ) register struct table * _auto_this ; int _auto_i ; #line 330 "../../src/table.c"{ #line 330 "../../src/table.c"Pname _auto__result ; #line 331 "../../src/table.c"{ #line 331 "../../src/table.c"{ _auto__result = ( ( ( _auto_i <= 0 ) || ( _auto_this -> _table_free_slot <= _auto_i ) #line 331 "../../src/table.c") ? ( ( ( struct name * ) ( 0 ) ) ) : #line 331 "../../src/table.c"( _auto_this -> _table_entries [ _auto_i ] ) ) ; #line 331 "../../src/table.c"return _auto__result ; } } } ; #line 334 "../../src/table.c"extern int new_key ( _auto_s , _auto_toknum , _auto_yyclass ) char * _auto_s ; int _auto_toknum ; int _auto_yyclass ; #line 340 "../../src/table.c"{ #line 340 "../../src/table.c"Pname _auto_n ; Pname _auto_nn ; #line 341 "../../src/table.c"_auto_n = ( struct name * ) _name__ctor ( ( struct name * ) 0 , _auto_s ) ; #line 341 "../../src/table.c"#line 342 "../../src/table.c"_auto_nn = _table_insert ( ( struct table * ) ktbl , ( struct name * ) _auto_n , ( int #line 342 "../../src/table.c") 0 ) ; #line 343 "../../src/table.c"if ( Nold ) errorFPC__E ( ( char * ) "keyword %sD twice", _auto_s ) ; #line 344 "../../src/table.c"_auto_nn -> _node_base = _auto_toknum ; #line 345 "../../src/table.c"_auto_nn -> _expr__O2.__C2_syn_class = ( _auto_yyclass ? _auto_yyclass : _auto_toknum ) ; #line 346 "../../src/table.c"( keys [ ( _auto_toknum == 143 ) ? _auto_yyclass : _auto_toknum ] ) = _auto_s ; #line 347 "../../src/table.c"_name__dtor ( ( struct name * ) _auto_n , 1) ; } ; /* the end */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -