📄 expr2..c
字号:
_gen_fct_list ;_auto_gl ;( _auto_gl = _auto_gl -> _name_list_l ) ) #line 363 "../../src/expr2.c"{ #line 363 "../../src/expr2.c"Pname _auto_nn ; Pfct _auto_ff ; #line 364 "../../src/expr2.c"_auto_nn = _auto_gl -> _name_list_f ; #line 365 "../../src/expr2.c"_auto_ff = ( ( ( struct fct * ) ( _auto_nn -> _expr__O2.__C2_tp ) ) ) ; #line 366 "../../src/expr2.c"switch ( _auto_ff -> _fct_nargs ) { #line 366 "../../src/expr2.c"case 0 : break ; #line 369 "../../src/expr2.c"case 1 : over_one : { #line 371 "../../src/expr2.c"Ptype _auto_tt ; #line 371 "../../src/expr2.c"_auto_tt = _auto_ff -> _fct_argtype -> _expr__O2.__C2_tp ; #line 373 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_tt , _auto_t2 , 78 ) == 0 ) _auto_val = #line 373 "../../src/expr2.c"1 ; #line 374 "../../src/expr2.c"if ( _auto_tt -> _node_base == 158 ) { #line 374 "../../src/expr2.c"Pptr _auto_pt ; struct ptr * _auto__Xthis__ctor_ptr ; #line 375 "../../src/expr2.c"_auto_pt = ( ( ( _auto__Xthis__ctor_ptr = 0 ) , ( ( _auto__Xthis__ctor_ptr = ( struct ptr * #line 375 "../../src/expr2.c") _new ( ( long ) 16) ) , ( ( Nt ++ ) , ( #line 375 "../../src/expr2.c"( _auto__Xthis__ctor_ptr -> _node_base = 125 ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_typ = ( ( struct type * ) #line 375 "../../src/expr2.c"( ( struct type * ) _auto_t2 ) ) ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_rdo = ( #line 375 "../../src/expr2.c"( int ) 0 ) ) , _auto__Xthis__ctor_ptr ) ) ) ) ) ) ) #line 375 "../../src/expr2.c"; #line 376 "../../src/expr2.c"_auto_tt -> _node_base = 125 ; #line 377 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_tt , ( struct type * ) _auto_pt , 78 ) #line 377 "../../src/expr2.c"== 0 ) #line 377 "../../src/expr2.c"{ #line 377 "../../src/expr2.c"_auto_tt -> _node_base = 158 ; #line 379 "../../src/expr2.c"_delete ( ( int * ) _auto_pt ) ; #line 380 "../../src/expr2.c"_auto_val = 1 ; #line 381 "../../src/expr2.c"goto oper_coerce ; } #line 383 "../../src/expr2.c"_auto_tt -> _node_base = 158 ; #line 384 "../../src/expr2.c"_delete ( ( int * ) _auto_pt ) ; } #line 386 "../../src/expr2.c"break ; } #line 388 "../../src/expr2.c"default : if ( _auto_ff -> _fct_argtype -> _name_n_list -> _expr__O4.__C4_n_initializer ) goto over_one ; } } #line 392 "../../src/expr2.c"goto oper_coerce ; } #line 394 "../../src/expr2.c"default : errorFI_PC__E ( ( int ) 'i' , ( char * ) "cannot_coerce(%k)\n", _auto_f -> #line 394 "../../src/expr2.c"_node_base ) ; } } } } #line 398 "../../src/expr2.c"oper_coerce : if ( _auto_c2 ) { #line 399 "../../src/expr2.c"Pclass _auto_cl ; int _auto_std ; #line 400 "../../src/expr2.c"_auto_cl = ( ( ( struct classdef * ) ( _auto_c2 -> _expr__O2.__C2_tp ) ) ) ; #line 401 "../../src/expr2.c"_auto_std = 0 ; #line 402 "../../src/expr2.c"{ #line 402 "../../src/expr2.c"register Pname _auto_on ; #line 402 "../../src/expr2.c"_auto_on = _auto_cl -> _classdef_conv ; #line 402 "../../src/expr2.c"for ( ;_auto_on ;( _auto_on = _auto_on -> _name_n_list ) ) { #line 402 "../../src/expr2.c"Pfct _auto_f ; #line 404 "../../src/expr2.c"_auto_f = ( ( ( struct fct * ) ( _auto_on -> _expr__O2.__C2_tp ) ) ) ; #line 405 "../../src/expr2.c"Nstd = 0 ; #line 406 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_t1 , ( struct type * ) _auto_f -> _fct_returns , #line 406 "../../src/expr2.c"78 ) == 0 ) #line 406 "../../src/expr2.c"{ #line 406 "../../src/expr2.c"if ( Nstd == 0 ) { #line 408 "../../src/expr2.c"if ( _auto_std ) #line 408 "../../src/expr2.c"#line 409 "../../src/expr2.c"{ #line 409 "../../src/expr2.c"_auto_val = 1 ; #line 411 "../../src/expr2.c"_auto_std = 0 ; } else #line 414 "../../src/expr2.c"_auto_val ++ ; #line 415 "../../src/expr2.c"Ncoerce = _auto_on ; } else #line 417 "../../src/expr2.c"{ #line 417 "../../src/expr2.c"if ( ( _auto_val == 0 ) || _auto_std ) { #line 418 "../../src/expr2.c"Ncoerce = _auto_on ; #line 418 "../../src/expr2.c"#line 420 "../../src/expr2.c"_auto_val ++ ; #line 421 "../../src/expr2.c"_auto_std = 1 ; } } } } } } #line 428 "../../src/expr2.c"if ( _auto_val ) { #line 428 "../../src/expr2.c"{ _auto__result = _auto_val ; #line 428 "../../src/expr2.c"return _auto__result ; } } #line 429 "../../src/expr2.c"if ( _auto_c1 && ( ( ( struct classdef * ) ( ( ( #line 429 "../../src/expr2.c"struct classdef * ) ( _auto_c1 -> _expr__O2.__C2_tp ) ) ) ) -> _classdef_itor ) ) #line 429 "../../src/expr2.c"{ #line 429 "../../src/expr2.c"{ #line 429 "../../src/expr2.c"#line 429 "../../src/expr2.c"_auto__result = 0 ; #line 429 "../../src/expr2.c"return _auto__result ; } } #line 430 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_t1 , _auto_t2 , 78 ) ) { #line 430 "../../src/expr2.c"#line 430 "../../src/expr2.c"#line 430 "../../src/expr2.c"{ _auto__result = 0 ; #line 430 "../../src/expr2.c"return _auto__result ; } } #line 431 "../../src/expr2.c"{ #line 431 "../../src/expr2.c"{ _auto__result = 1 ; #line 431 "../../src/expr2.c"return _auto__result ; } } } } ; #line 434 "../../src/expr2.c"int gen_coerce ( _auto_n , _auto_arg ) struct name * _auto_n ; struct expr * _auto_arg ; #line 440 "../../src/expr2.c"{ #line 440 "../../src/expr2.c"int _auto__result ; Pfct _auto_f ; register Pexpr _auto_e ; register Pname _auto_nn ; #line 441 "../../src/expr2.c"_auto_f = ( ( ( struct fct * ) ( _auto_n -> _expr__O2.__C2_tp ) ) ) ; #line 445 "../../src/expr2.c"for ( ( ( _auto_e = _auto_arg ) , ( _auto_nn = _auto_f -> _fct_argtype ) ) ;_auto_e ;( ( #line 445 "../../src/expr2.c"_auto_e = _auto_e -> _expr__O4.__C4_e2 ) , ( _auto_nn = _auto_nn -> _name_n_list ) ) ) #line 445 "../../src/expr2.c"{ #line 445 "../../src/expr2.c"if ( _auto_nn == #line 445 "../../src/expr2.c"0 ) #line 446 "../../src/expr2.c"{ #line 446 "../../src/expr2.c"{ _auto__result = ( _auto_f -> _fct_nargs_known == 155 ) ; #line 446 "../../src/expr2.c"return _auto__result ; } } #line 447 "../../src/expr2.c"{ #line 447 "../../src/expr2.c"Pexpr _auto_a ; Ptype _auto_at ; int _auto_i ; #line 447 "../../src/expr2.c"_auto_a = _auto_e -> _expr__O3.__C3_e1 ; #line 448 "../../src/expr2.c"_auto_at = _auto_a -> _expr__O2.__C2_tp ; #line 449 "../../src/expr2.c"_auto_i = can_coerce ( ( struct type * ) _auto_nn -> _expr__O2.__C2_tp , ( struct type * ) _auto_at ) ; #line 449 "../../src/expr2.c"#line 451 "../../src/expr2.c"if ( _auto_i != 1 ) { #line 451 "../../src/expr2.c"{ _auto__result = 0 ; #line 451 "../../src/expr2.c"return _auto__result ; } } } } #line 453 "../../src/expr2.c"if ( _auto_nn && ( _auto_nn -> _expr__O4.__C4_n_initializer == 0 ) ) { #line 453 "../../src/expr2.c"#line 453 "../../src/expr2.c"#line 453 "../../src/expr2.c"{ _auto__result = 0 ; #line 453 "../../src/expr2.c"return _auto__result ; } } #line 454 "../../src/expr2.c"{ #line 454 "../../src/expr2.c"{ _auto__result = 1 ; #line 454 "../../src/expr2.c"return _auto__result ; } } } ; #line 458 "../../src/expr2.c"Pname Nover ; #line 459 "../../src/expr2.c"int Nover_coerce = 0 ; #line 461 "../../src/expr2.c"extern int over_call ( _auto_n , _auto_arg ) struct name * _auto_n ; struct expr * _auto_arg ; #line 468 "../../src/expr2.c"{ #line 468 "../../src/expr2.c"int _auto__result ; register Plist _auto_gl ; Pgen _auto_g ; Pname _auto_exact ; int _auto_no_exact ; #line 470 "../../src/expr2.c"_auto_g = ( ( ( struct gen * ) ( _auto_n -> _expr__O2.__C2_tp ) ) ) ; #line 471 "../../src/expr2.c"if ( _auto_arg && ( _auto_arg -> _node_base != 140 ) ) errorFI_PC__E ( ( int ) 'i' , ( #line 471 "../../src/expr2.c"char * ) "ALX") ; #line 473 "../../src/expr2.c"Nover_coerce = 0 ; #line 474 "../../src/expr2.c"switch ( _auto_g -> _node_base ) { #line 474 "../../src/expr2.c"default : errorFI_PC__E ( ( int ) 'i' , ( char #line 474 "../../src/expr2.c"* ) "over_call(%t)\n", _auto_g ) ; #line 476 "../../src/expr2.c"case 76 : break ; #line 477 "../../src/expr2.c"case 108 : Nover = _auto_n ; #line 479 "../../src/expr2.c"Ninit = 0 ; #line 480 "../../src/expr2.c"if ( gen_match ( _auto_n , _auto_arg ) && ( Ninit == 0 ) ) { #line 480 "../../src/expr2.c"{ _auto__result = #line 480 "../../src/expr2.c"2 ; #line 480 "../../src/expr2.c"return _auto__result ; } } #line 481 "../../src/expr2.c"if ( gen_coerce ( _auto_n , _auto_arg ) ) { #line 481 "../../src/expr2.c"{ _auto__result = 1 ; #line 481 "../../src/expr2.c"return _auto__result ; } } #line 482 "../../src/expr2.c"{ #line 482 "../../src/expr2.c"{ _auto__result = 0 ; #line 482 "../../src/expr2.c"return _auto__result ; } } } #line 485 "../../src/expr2.c"_auto_exact = 0 ; #line 485 "../../src/expr2.c"_auto_no_exact = 0 ; #line 487 "../../src/expr2.c"for ( _auto_gl = _auto_g -> _gen_fct_list ;_auto_gl ;( _auto_gl = _auto_gl -> _name_list_l ) ) { #line 487 "../../src/expr2.c"Nover = _auto_gl -> _name_list_f ; #line 489 "../../src/expr2.c"Ninit = 0 ; #line 490 "../../src/expr2.c"Nstd = 0 ; #line 492 "../../src/expr2.c"if ( gen_match ( ( struct name * ) Nover , _auto_arg ) && ( Ninit == 0 ) #line 492 "../../src/expr2.c") #line 492 "../../src/expr2.c"{ #line 492 "../../src/expr2.c"if ( Nstd == 0 ) { #line 494 "../../src/expr2.c"{ _auto__result = 2 ; #line 494 "../../src/expr2.c"return _auto__result ; } } #line 495 "../../src/expr2.c"if ( _auto_exact ) _auto_no_exact ++ ; else #line 498 "../../src/expr2.c"_auto_exact = Nover ; } } #line 503 "../../src/expr2.c"if ( _auto_exact ) { #line 503 "../../src/expr2.c"if ( _auto_no_exact ) errorFI_PC__E ( ( int ) 'w' , #line 503 "../../src/expr2.c"( char * ) "more than one standard conversion possible for%n", _auto_n ) ; #line 506 "../../src/expr2.c"Nover = _auto_exact ; #line 507 "../../src/expr2.c"{ #line 507 "../../src/expr2.c"{ _auto__result = 2 ; #line 507 "../../src/expr2.c"return _auto__result ; } } } #line 510 "../../src/expr2.c"Nover = 0 ; #line 511 "../../src/expr2.c"for ( _auto_gl = _auto_g -> _gen_fct_list ;_auto_gl ;( _auto_gl = _auto_gl -> _name_list_l ) ) { #line 511 "../../src/expr2.c"Pname _auto_nn ; #line 512 "../../src/expr2.c"_auto_nn = _auto_gl -> _name_list_f ; #line 514 "../../src/expr2.c"if ( gen_coerce ( ( struct name * ) _auto_nn , _auto_arg ) ) { #line 514 "../../src/expr2.c"if ( Nover ) #line 514 "../../src/expr2.c"#line 515 "../../src/expr2.c"{ #line 515 "../../src/expr2.c"Nover_coerce = 2 ; #line 517 "../../src/expr2.c"{ #line 517 "../../src/expr2.c"{ _auto__result = 0 ; #line 517 "../../src/expr2.c"return _auto__result ; } } } #line 519 "../../src/expr2.c"Nover = _auto_nn ; } } #line 523 "../../src/expr2.c"{ #line 523 "../../src/expr2.c"{ _auto__result = ( Nover ? 1 : 0) ; #line 523 "../../src/expr2.c"return _auto__result ; } } } ; #line 527 "../../src/expr2.c"Ptype _expr_fct_call ( _auto_this , _auto_tbl ) register struct expr * _auto_this ; struct table * _auto_tbl ; #line 533 "../../src/expr2.c"{ #line 533 "../../src/expr2.c"Ptype _auto__result ; Pfct _auto_f ; Pname _auto_fn ; int _auto_x ; int _auto_k ; Pname _auto_nn ; Pexpr _auto_e ; Ptype _auto_t ; Pexpr _auto_arg ; Ptype _auto_t1 ; int _auto_argno ; Pexpr _auto_etail ; Pname _auto_no_virt ; #line 541 "../../src/expr2.c"_auto_arg = _auto_this -> _expr__O4.__C4_e2 ; #line 544 "../../src/expr2.c"_auto_etail = 0 ; #line 547 "../../src/expr2.c"switch ( _auto_this -> _node_base ) { #line 547 "../../src/expr2.c"case 109 : case 146 : break ; #line 550 "../../src/expr2.c"default : errorFI_PC__E ( ( int ) 'i' , ( char * ) "fct_call(%k)", _auto_this -> _node_base ) #line 550 "../../src/expr2.c"; } #line 553 "../../src/expr2.c"if ( ( _auto_this -> _expr__O3.__C3_e1 == 0 ) || ( ( _auto_t1 = _auto_this -> _expr__O3.__C3_e1 -> #line 553 "../../src/expr2.c"_expr__O2.__C2_tp ) == 0 ) ) #line 553 "../../src/expr2.c"errorFI_PC__E ( ( int ) 'i' , ( char * ) #line 553 "../../src/expr2.c""fct_call(e1=%d,e1->tp=%t)", _auto_this -> _expr__O3.__C3_e1 , _auto_t1 ) ; #line 554 "../../src/expr2.c"if ( _auto_arg && ( _auto_arg -> _node_base != 140 ) ) errorFI_PC__E ( ( int ) 'i' , ( #line 554 "../../src/expr2.c"char * ) "badAL%d%k", _auto_arg , _auto_arg -> _node_base ) ; #line 556 "../../src/expr2.c"switch ( _auto_this -> _expr__O3.__C3_e1 -> _node_base ) { #line 556 "../../src/expr2.c"case 85 : _auto_fn = ( ( ( struct name * #line 556 "../../src/expr2.c") ( _auto_this -> _expr__O3.__C3_e1 ) ) ) ; #line 559 "../../src/expr2.c"_auto_no_virt = _auto_fn -> _name__O6.__C6_n_qualifier ; #line 560 "../../src/expr2.c"break ; #line 561 "../../src/expr2.c"case 44 : case 45 : _auto_fn = _auto_this -> _expr__O3.__C3_e1 -> _expr__O5.__C5_mem ; #line 564 "../../src/expr2.c"_auto_no_virt = _auto_fn -> _name__O6.__C6_n_qualifier ; #line 565 "../../src/expr2.c"break ; #line 566 "../../src/expr2.c"default : _auto_fn = 0 ; #line 568 "../../src/expr2.c"_auto_no_virt = 0 ; } #line 569 "../../src/expr2.c"; #line 571 "../../src/expr2.c"lll : switch ( _auto_t1 -> _node_base ) { #line 572 "../../src/expr2.c"case 97 : _auto_t1 = ( ( ( struct basetype * #line 572 "../../src/expr2.c") ( _auto_t1 ) ) ) -> _basetype_b_name -> _expr__O2.__C2_tp ; #line 575 "../../src/expr2.c"goto lll ; #line 577 "../../src/expr2.c"case 125 : if ( ( ( ( struct ptr * ) ( _auto_t1 ) ) ) #line 577 "../../src/expr2.c"-> _ptr_typ -> _node_base == 108 ) #line 578 "../../src/expr2.c"{ #line 578 "../../src/expr2.c"_auto_t1 = ( ( ( struct ptr * ) ( _auto_t1 ) #line 578 "../../src/expr2.c") ) -> _ptr_typ ; #line 580 "../../src/expr2.c"_auto_fn = 0 ; #line 581 "../../src/expr2.c"goto case_fct ; } #line 584 "../../src/expr2.c"default : errorFPC__E ( ( char * ) "call of%n;%n is a%t", _auto_fn , _auto_fn , _auto_this -> _expr__O3.__C3_e1 -> _expr__O2.__C2_tp ) #line 584 "../../src/expr2.c"; #line
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -