⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 expand..c

📁 CFront1.0的源代码,第一代C++编译器的思想...
💻 C
📖 第 1 页 / 共 5 页
字号:
} } #line 307 "../../src/expand.c"case 169 : if ( curr_icall ) { #line 308 "../../src/expand.c"Pname _auto_n ; int _auto_argno ; Pin _auto_il ; #line 309 "../../src/expand.c"_auto_n = ( ( ( struct name * ) ( _auto_this ) ) ) ; #line 310 "../../src/expand.c"_auto_argno = _auto_n -> _name_n_val ; #line 312 "../../src/expand.c"for ( _auto_il = curr_icall ;_auto_il ;( _auto_il = _auto_il -> _iline_i_next ) ) if ( _auto_n -> _expr__O5.__C5_n_table == _auto_il -> _iline_i_table ) #line 312 "../../src/expand.c"#line 313 "../../src/expand.c"goto aok ; #line 314 "../../src/expand.c"goto bok ; #line 315 "../../src/expand.c"aok : { #line 316 "../../src/expand.c"{ _auto__result = ( ( _auto_il -> _iline_local [ _auto_argno ] ) ? 0: ( ( #line 316 "../../src/expand.c"( int ) ( _expr_not_simple ( ( struct expr * ) ( _auto_il -> _iline_arg [ _auto_argno ] ) #line 316 "../../src/expand.c") ) ) ) ) ; #line 316 "../../src/expand.c"return _auto__result ; } } } #line 318 "../../src/expand.c"bok : errorFI_PC__E ( ( int ) 'i' , ( char * ) "expand aname%n", #line 318 "../../src/expand.c"_auto_this ) ; #line 319 "../../src/expand.c"case 157 : case 23 : case 109 : case 146 : case 168 : case 70 : case 48 : #line 319 "../../src/expand.c"#line 326 "../../src/expand.c"case 49 : case 126 : case 127 : case 128 : case 129 : case 130 : case 131 : #line 326 "../../src/expand.c"#line 333 "../../src/expand.c"case 132 : case 133 : case 134 : case 135 : { #line 337 "../../src/expand.c"{ _auto__result = 2 ; #line 337 "../../src/expand.c"return _auto__result ; } } } } ; #line 342 "../../src/expand.c"Pexpr _fct_expand ( _auto_this , _auto_fn , _auto_scope , _auto_ll ) register struct fct * _auto_this ; struct name * _auto_fn ; struct table * _auto_scope ; struct expr * _auto_ll ; #line 350 "../../src/expand.c"{ #line 350 "../../src/expand.c"Pexpr _auto__result ; Pin _auto_il ; Pexpr _auto_ic ; Pname _auto_n ; Pname _auto_at ; int _auto_i ; int _auto_not_simple ; Pexpr _auto_ee ; int _auto_s ; struct texpr * _auto__Xthis__ctor_texpr ; #line 352 "../../src/expand.c"if ( ( ( ( ( ( _auto_this -> _fct_body == 0 ) && ( _auto_this -> #line 352 "../../src/expand.c"_fct_f_expr == 0 ) ) || ( ( _auto_this -> _type_defined & 02 ) == 0 ) ) #line 352 "../../src/expand.c"|| ( ( ( ( struct fct * ) ( _auto_fn -> _expr__O2.__C2_tp ) ) ) -> #line 352 "../../src/expand.c"_fct_body -> _stmt_memtbl == _auto_scope ) ) || ( _auto_this -> _fct_f_inline == 2 ) ) || ( _auto_this -> _fct_last_expanded && #line 352 "../../src/expand.c"( _auto_this -> _fct_last_expanded == curr_expr ) ) ) #line 357 "../../src/expand.c"{ #line 357 "../../src/expand.c"{ #line 564 "../../src/cfront.h"( ( struct name * ) _auto_fn ) #line 564 "../../src/cfront.h"-> _name_n_addr_taken ++ ; } #line 359 "../../src/expand.c"if ( _auto_fn -> _name_n_addr_taken == 1 ) { #line 359 "../../src/expand.c"Pname _auto_nn ; #line 360 "../../src/expand.c"_auto_nn = ( struct name * ) _name__ctor ( ( struct name * ) 0 , ( char #line 360 "../../src/expand.c"* ) 0 ) ; #line 361 "../../src/expand.c"( * _auto_nn ) = ( * _auto_fn ) ; #line 362 "../../src/expand.c"_auto_nn -> _name_n_list = dcl_list ; #line 363 "../../src/expand.c"_auto_nn -> _name_n_sto = 31 ; #line 364 "../../src/expand.c"dcl_list = _auto_nn ; } #line 366 "../../src/expand.c"{ #line 366 "../../src/expand.c"{ _auto__result = 0 ; #line 366 "../../src/expand.c"return _auto__result ; } } } #line 369 "../../src/expand.c"_auto_this -> _fct_f_inline = 2 ; #line 371 "../../src/expand.c"_auto_il = ( ( ( struct iline * ) ( _new ( ( long ) 108) ) #line 371 "../../src/expand.c") ) ; #line 371 "../../src/expand.c"_auto_ic = ( struct expr * ) ( ( _auto__Xthis__ctor_texpr = 0 ) , ( ( ( #line 371 "../../src/expand.c"_auto__Xthis__ctor_texpr = 0 ) , ( _auto__Xthis__ctor_texpr = ( struct texpr * ) _expr__ctor ( ( ( struct #line 371 "../../src/expand.c"expr * ) ( _auto__Xthis__ctor_texpr ) ) , 168 , ( ( struct expr * ) 0 ) #line 371 "../../src/expand.c", ( struct expr * ) 0 ) ) ) , ( ( _auto__Xthis__ctor_texpr -> _expr__O5.__C5_tp2 = #line 371 "../../src/expand.c"( ( struct type * ) 0 ) ) , _auto__Xthis__ctor_texpr ) ) ) ; #line 373 "../../src/expand.c"_auto_il -> _iline_fct_name = _auto_fn ; #line 374 "../../src/expand.c"_auto_ic -> _expr__O5.__C5_il = _auto_il ; #line 375 "../../src/expand.c"_auto_ic -> _expr__O2.__C2_tp = _auto_this -> _fct_returns ; #line 376 "../../src/expand.c"; #line 376 "../../src/expand.c"_auto_at = ( _auto_this -> _fct_f_this ? _auto_this -> _fct_f_this : _auto_this -> _fct_argtype ) ; #line 378 "../../src/expand.c"if ( _auto_at ) _auto_il -> _iline_i_table = _auto_at -> _expr__O5.__C5_n_table ; #line 379 "../../src/expand.c"_auto_i = 0 ; #line 379 "../../src/expand.c"_auto_not_simple = 0 ; #line 382 "../../src/expand.c"for ( _auto_n = _auto_at ;_auto_n ;( ( _auto_n = _auto_n -> _name_n_list ) , ( _auto_i ++ ) ) ) #line 382 "../../src/expand.c"#line 382 "../../src/expand.c"{ #line 382 "../../src/expand.c"if ( _auto_ll == 0 ) errorFI_PC__E ( ( int ) 'i' , ( char * #line 382 "../../src/expand.c") "simpl.call:AX for %n", _auto_fn ) ; #line 387 "../../src/expand.c"; #line 389 "../../src/expand.c"if ( _auto_ll -> _node_base == 140 ) { #line 389 "../../src/expand.c"_auto_ee = _auto_ll -> _expr__O3.__C3_e1 ; #line 391 "../../src/expand.c"_auto_ll = ( struct expr * ) _auto_ll -> _expr__O4.__C4_e2 ; } else #line 393 "../../src/expand.c"{ #line 393 "../../src/expand.c"_auto_ee = _auto_ll ; #line 395 "../../src/expand.c"_auto_ll = 0 ; } #line 398 "../../src/expand.c"; #line 401 "../../src/expand.c"if ( _auto_n -> _name_n_assigned_to == 111 ) { #line 401 "../../src/expand.c"if ( ( _auto_ee != zero ) && ( _expr_not_simple ( #line 401 "../../src/expand.c"( struct expr * ) _auto_ee ) == 0 ) ) #line 402 "../../src/expand.c"{ #line 402 "../../src/expand.c"( _auto_il -> _iline_local [ _auto_i ] #line 402 "../../src/expand.c") = 0 ; #line 407 "../../src/expand.c"goto zxc ; } } #line 411 "../../src/expand.c"if ( _auto_n -> _name_n_addr_taken || _auto_n -> _name_n_assigned_to ) { #line 412 "../../src/expand.c"Pname _auto_nn ; #line 413 "../../src/expand.c"_auto_nn = dcl_local ( _auto_scope , ( struct name * ) _auto_n , _auto_fn ) ; #line 414 "../../src/expand.c"_auto_nn -> _node_base = 85 ; #line 415 "../../src/expand.c"( _auto_il -> _iline_local [ _auto_i ] ) = _auto_nn ; #line 416 "../../src/expand.c"++ _auto_not_simple ; } else #line 418 "../../src/expand.c"if ( ( _auto_n -> _name_n_used && ( _auto_s = _expr_not_simple ( ( struct expr * ) #line 418 "../../src/expand.c"_auto_ee ) ) ) && ( ( 1 < _auto_s ) || ( 1 < _auto_n -> _name_n_used ) ) #line 418 "../../src/expand.c") #line 420 "../../src/expand.c"{ #line 420 "../../src/expand.c"Pname _auto_nn ; #line 421 "../../src/expand.c"_auto_nn = dcl_local ( _auto_scope , ( struct name * ) _auto_n , _auto_fn ) ; #line 422 "../../src/expand.c"_auto_nn -> _node_base = 85 ; #line 423 "../../src/expand.c"( _auto_il -> _iline_local [ _auto_i ] ) = _auto_nn ; #line 424 "../../src/expand.c"++ _auto_not_simple ; } else #line 427 "../../src/expand.c"( _auto_il -> _iline_local [ _auto_i ] ) = 0 ; #line 428 "../../src/expand.c"zxc : ( _auto_il -> _iline_arg [ _auto_i ] ) = _auto_ee ; #line 430 "../../src/expand.c"( _auto_il -> _iline_tp [ _auto_i ] ) = _auto_n -> _expr__O2.__C2_tp ; } #line 433 "../../src/expand.c"{ #line 433 "../../src/expand.c"Ptable _auto_tbl ; Pstmt _auto_ss ; #line 433 "../../src/expand.c"_auto_tbl = _auto_this -> _fct_body -> _stmt_memtbl ; #line 434 "../../src/expand.c"if ( _auto_this -> _fct_f_expr ) { #line 434 "../../src/expand.c"char _auto_loc_var ; Pexpr _auto_ex ; #line 435 "../../src/expand.c"_auto_loc_var = 0 ; #line 438 "../../src/expand.c"for ( _auto_n = _table_get_mem ( ( struct table * ) _auto_tbl , _auto_i = 1 ) ;_auto_n ;( _auto_n = _table_get_mem ( #line 438 "../../src/expand.c"( struct table * ) _auto_tbl , ++ _auto_i ) ) ) #line 438 "../../src/expand.c"{ #line 438 "../../src/expand.c"if ( ( _auto_n -> #line 438 "../../src/expand.c"_node_base == 85 ) && ( ( _auto_n -> _name_n_used || _auto_n -> _name_n_assigned_to ) || _auto_n -> _name_n_addr_taken ) ) #line 441 "../../src/expand.c"{ #line 441 "../../src/expand.c"#line 441 "../../src/expand.c"Pname _auto_nn ; #line 442 "../../src/expand.c"_auto_nn = dcl_local ( _auto_scope , ( struct name * ) _auto_n , _auto_fn ) ; #line 443 "../../src/expand.c"_auto_nn -> _node_base = 85 ; #line 444 "../../src/expand.c"_auto_n -> _expr__O3.__C3_string = _auto_nn -> _expr__O3.__C3_string ; #line 445 "../../src/expand.c"_auto_loc_var ++ ; } } #line 449 "../../src/expand.c"if ( _auto_not_simple || _auto_loc_var ) _auto_this -> _fct_last_expanded = curr_expr ; #line 451 "../../src/expand.c"; #line 452 "../../src/expand.c"if ( _auto_not_simple ) { #line 452 "../../src/expand.c"Pexpr _auto_etail ; #line 453 "../../src/expand.c"_auto_etail = ( _auto_ex = ( struct expr * ) _expr__ctor ( ( struct expr * ) 0 , #line 453 "../../src/expand.c"71 , ( struct expr * ) 0 , ( struct expr * ) 0 ) ) #line 453 "../../src/expand.c"; #line 454 "../../src/expand.c"for ( _auto_i = 0 ;( _auto_i < 8) ;( _auto_i ++ ) ) { #line 454 "../../src/expand.c"Pname _auto_n ; #line 455 "../../src/expand.c"_auto_n = ( _auto_il -> _iline_local [ _auto_i ] ) ; #line 456 "../../src/expand.c"if ( _auto_n == 0 ) continue ; #line 457 "../../src/expand.c"{ #line 457 "../../src/expand.c"Pexpr _auto_e ; #line 457 "../../src/expand.c"_auto_e = ( _auto_il -> _iline_arg [ _auto_i ] ) ; #line 458 "../../src/expand.c"_auto_etail -> _expr__O3.__C3_e1 = ( struct expr * ) _expr__ctor ( ( struct expr * ) 0 , 70 , #line 458 "../../src/expand.c"( struct expr * ) _auto_n , ( struct expr * ) _auto_e ) ; #line 460 "../../src/expand.c"if ( -- _auto_not_simple ) _auto_etail = ( _auto_etail -> _expr__O4.__C4_e2 = ( struct expr * ) _expr__ctor ( ( #line 460 "../../src/expand.c"struct expr * ) 0 , 71 , ( struct expr * ) 0 , ( struct #line 460 "../../src/expand.c"expr * ) 0 ) ) ; else #line 463 "../../src/expand.c"break ; } } #line 465 "../../src/expand.c"_auto_etail -> _expr__O4.__C4_e2 = _auto_this -> _fct_f_expr ; } else #line 467 "../../src/expand.c"{ #line 467 "../../src/expand.c"_auto_ex = _auto_this -> _fct_f_expr ; } #line 470 "../../src/expand.c"_auto_ic -> _expr__O3.__C3_e1 = _auto_ex ; } else #line 472 "../../src/expand.c"{ #line 472 "../../src/expand.c"for ( _auto_n = _table_get_mem ( ( struct table * ) _auto_tbl , _auto_i = 1 ) #line 472 "../../src/expand.c";_auto_n ;( _auto_n = _table_get_mem ( ( struct table * ) _auto_tbl , ++ _auto_i ) ) ) #line 473 "../../src/expand.c"{ #line 473 "../../src/expand.c"if #line 473 "../../src/expand.c"( ( _auto_n -> _node_base == 85 ) && ( ( _auto_n -> _name_n_used || _auto_n -> _name_n_assigned_to ) || _auto_n -> #line 473 "../../src/expand.c"_name_n_addr_taken ) ) #line 477 "../../src/expand.c"{ #line 477 "../../src/expand.c"Pname _auto_cn ; #line 478 "../../src/expand.c"_auto_cn = _auto_fn -> _expr__O5.__C5_n_table -> _table_t_name ; #line 479 "../../src/expand.c"_auto_n -> _expr__O3.__C3_string = temp ( _auto_n -> _expr__O3.__C3_string , _auto_fn -> _expr__O3.__C3_string , _auto_cn ? _auto_cn -> _expr__O3.__C3_string : ( ( ( char #line 479 "../../src/expand.c"* ) ( 0 ) ) ) ) ; } } #line 482 "../../src/expand.c"; #line 483 "../../src/expand.c"if ( _auto_not_simple ) { #line 483 "../../src/expand.c"_auto_this -> _fct_last_expanded = curr_expr ; #line 485 "../../src/expand.c"{ #line 485 "../../src/expand.c"Pstmt _auto_st ; Pstmt _auto_stail ; struct block * _auto__Xthis__ctor_block ; struct estmt * _auto__Xthis__ctor_estmt ; #line 485 "../../src/expand.c"_auto_st = ( struct stmt * ) ( ( _auto__Xthis__ctor_estmt = 0 ) , ( ( ( #line 485 "../../src/expand.c"_auto__Xthis__ctor_estmt = 0 ) , ( _auto__Xthis__ctor_estmt = ( struct estmt * ) _stmt__ctor ( ( ( struct #line 485 "../../src/expand.c"stmt * ) ( _auto__Xthis__ctor_estmt ) ) , 72 , curloc , ( ( struct stmt * ) 0 #line 485 "../../src/expand.c") ) ) ) , ( ( _auto__Xthis__ctor_estmt -> _stmt__O8.__C8_e = ( ( struct expr * ) #line 485 "../../src/expand.c"0 ) ) , _auto__Xthis__ctor_estmt ) ) ) ; #line 486 "../../src/expand.c"_auto_stail = _auto_st ; #line 487 "../../src/expand.c"for ( _auto_i = 0 ;( _auto_i < 8) ;( _auto_i ++ ) ) { #line 487 "../../src/expand.c"Pname _auto_n ; #line 488 "../../src/expand.c"_auto_n = ( _auto_il -> _iline_local [ _auto_i ] ) ; #line 489 "../../src/expand.c"if ( _auto_n == 0 ) continue ; #line 490 "../../src/expand.c"{ #line 490 "../../src/expand.c"Pexpr _auto_e ; struct estmt * _auto__Xthis__ctor_estmt ; #line 490 "../../src/expand.c"_auto_e = ( _auto_il -> _iline_arg [ _auto_i ] ) ; #line 491 "../../src/expand.c"_auto_stail -> _stmt__O8.__C8_e = ( struct expr * ) _expr__ctor ( ( struct expr * ) 0 , 70 , #line 491 "../../src/expand.c"( struct expr * ) _auto_n , ( struct expr * ) _auto_e ) ; #line 492 "../../src/expand.c"if ( -- _auto_not_simple ) _auto_stail = ( _auto_stail -> _stmt_s_list = ( struct stmt * ) ( ( #line 492 "../../src/expand.c"_auto__Xthis__ctor_estmt = 0 ) , ( ( ( _auto__Xthis__ctor_estmt = 0 ) , ( _auto__Xthis__ctor_estmt = ( #line 492 "../../src/expand.c"struct estmt * ) _stmt__ctor ( ( ( struct stmt * ) ( _auto__Xthis__ctor_estmt ) ) , 72 , #line 492 "../../src/expand.c"curloc , ( ( struct stmt * ) 0 ) ) ) ) , ( ( #line 492 "../../src/expand.c"_auto__Xthis__ctor_estmt -> _stmt__O8.__C8_e = ( ( struct expr * ) 0 ) ) , _auto__Xthis__ctor_estmt ) ) ) #line 492 "../../src/expand.c") ; else #line 495 "../../src/expand.c"break ; } } #line 497 "../../src/expand.c"_auto_stail -> _stmt_s_list = ( struct stmt * ) _auto_this -> _fct_body ; #line 498 "../../src/expand.c"_auto_ss = ( struct stmt * ) ( ( _auto__Xthis__ctor_block = 0 ) , ( ( ( #line 498 "../../src/expand.c"_auto__Xthis__ctor_block = 0 ) , ( _auto__Xthis__ctor_block = ( struct block * ) _stmt__ctor ( ( ( struct #line 498 "../../src/expand.c"stmt * ) ( _auto__Xthis__ctor_block ) ) , 116 , curloc , ( ( struct stmt * ) _auto_st ) #line 498 "../../src/expand.c") ) ) , ( ( _auto__Xthis__ctor_block -> _stmt__O7.__C7_d = ( ( struct name * ) 0 #line 498 "../../src/expand.c") ) , _auto__Xthis__ctor_block ) ) ) ; } } else #line 500 "../../src/expand.c"{ #line 500 "../../src/expand.c"_auto_ss = ( struct stmt * ) _auto_this -> _fct_body ; } #line 503 "../../src/expand.c"_auto_ic -> _expr__O4.__C4_e2 = ( ( ( struct expr * ) ( _auto_ss ) ) ) ; #line 503 "../../src/expand.c"} #line 506 "../../src/expand.c"_auto_this -> _fct_f_inline = 1 ; #line 507 "../../src/expand.c"{ #line 507 "../../src/expand.c"{ _auto__result = _auto_ic ; #line 507 "../../src/expand.c"return _auto__result ; } } } } ; /* the end */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -