📄 dcl..c
字号:
#line 419 "../../src/dcl.c"_auto_this -> _name_n_scope = 14 ; } else #line 422 "../../src/dcl.c"_auto_this -> _name_n_stclass = 2 ; #line 423 "../../src/dcl.c"break ; #line 424 "../../src/dcl.c"case 136 : _auto_this -> _name_n_stclass = 2 ; #line 426 "../../src/dcl.c"break ; #line 427 "../../src/dcl.c"case 0 : case 25 : _auto_this -> _name_n_stclass = 0 ; #line 430 "../../src/dcl.c"break ; } } #line 442 "../../src/dcl.c"switch ( _auto_this -> _expr__O2.__C2_tp -> _node_base ) { #line 442 "../../src/dcl.c"case 1 : { #line 444 "../../src/dcl.c"Pbase _auto_b ; Pname _auto_n ; #line 444 "../../src/dcl.c"_auto_b = ( ( ( struct basetype * ) ( _auto_this -> _expr__O2.__C2_tp ) ) ) ; #line 445 "../../src/dcl.c"_auto_n = _table_insert ( ( struct table * ) _auto_tbl , ( struct name * ) _auto_this , ( int #line 445 "../../src/dcl.c") 0 ) ; #line 446 "../../src/dcl.c"_name_assign ( ( struct name * ) _auto_n ) ; #line 447 "../../src/dcl.c"{ #line 561 "../../src/cfront.h"( ( struct name * ) _auto_n ) -> _name_n_used ++ ; } #line 448 "../../src/dcl.c"{ #line 448 "../../src/dcl.c"{ _auto__result = ( struct name * ) _auto_this ; #line 448 "../../src/dcl.c"return _auto__result ; } } } #line 451 "../../src/dcl.c"case 6 : { #line 452 "../../src/dcl.c"Pclass _auto_cl ; Pbase _auto_bt ; Pname _auto_bn ; Pname _auto_nx ; #line 456 "../../src/dcl.c"_auto_nx = _table_look ( ( struct table * ) ktbl , _auto_this -> _expr__O3.__C3_string , ( int ) 0 ) #line 456 "../../src/dcl.c"; #line 458 "../../src/dcl.c"if ( _auto_nx == 0 ) { #line 458 "../../src/dcl.c"int _auto_tn ; #line 463 "../../src/dcl.c"_auto_tn = 0 ; #line 464 "../../src/dcl.c"for ( _auto_nx = _table_look ( ( struct table * ) ktbl , _auto_this -> _expr__O3.__C3_string , 159 ) ;_auto_nx ;( _auto_nx = #line 464 "../../src/dcl.c"_auto_nx -> _name_n_tbl_list ) ) #line 464 "../../src/dcl.c"{ #line 464 "../../src/dcl.c"if ( _auto_nx -> _node_n_key != 159 ) continue ; #line 467 "../../src/dcl.c"if ( _auto_nx -> _expr__O2.__C2_tp -> _node_base != 119 ) { #line 467 "../../src/dcl.c"_auto_tn = 1 ; #line 469 "../../src/dcl.c"continue ; } #line 471 "../../src/dcl.c"_auto_bt = ( ( ( struct basetype * ) ( _auto_nx -> _expr__O2.__C2_tp ) ) ) ; #line 471 "../../src/dcl.c"#line 472 "../../src/dcl.c"_auto_bn = _auto_bt -> _basetype_b_name ; #line 473 "../../src/dcl.c"_auto_cl = ( ( ( struct classdef * ) ( _auto_bn -> _expr__O2.__C2_tp ) ) ) ; #line 474 "../../src/dcl.c"if ( _auto_cl == 0 ) continue ; #line 480 "../../src/dcl.c"goto bbb ; } #line 482 "../../src/dcl.c"if ( _auto_tn ) errorFPC__E ( ( char * ) "%n redefined using typedef") ; else #line 485 "../../src/dcl.c"errorFI_PC__E ( ( int ) 'i' , ( char * ) "%n is not aCN", _auto_this ) ; } else #line 487 "../../src/dcl.c"{ #line 487 "../../src/dcl.c"if ( _auto_tbl != ( struct table * ) gtbl ) { #line 488 "../../src/dcl.c"if ( #line 488 "../../src/dcl.c"_auto_nx -> _name_lex_level == 0 ) #line 491 "../../src/dcl.c"errorFI_PC__E ( ( int ) 's' , ( char * ) "localC%n and globalC%n", #line 491 "../../src/dcl.c"_auto_this , _auto_nx ) ; } #line 493 "../../src/dcl.c"_auto_bt = ( ( ( struct basetype * ) ( _auto_nx -> _expr__O2.__C2_tp ) ) ) ; #line 493 "../../src/dcl.c"#line 494 "../../src/dcl.c"_auto_bn = _auto_bt -> _basetype_b_name ; } #line 497 "../../src/dcl.c"bbb : { #line 499 "../../src/dcl.c"Pname _auto_ln ; #line 499 "../../src/dcl.c"_auto_ln = _table_look ( ( struct table * ) _auto_tbl , _auto_bn -> _expr__O3.__C3_string , ( int ) 0 ) #line 499 "../../src/dcl.c"; #line 501 "../../src/dcl.c"if ( _auto_ln && ( _auto_ln -> _expr__O5.__C5_n_table == _auto_tbl ) ) errorFI_PC__E ( ( int ) 'w' , ( #line 501 "../../src/dcl.c"char * ) "%n redefined", _auto_ln ) ; #line 502 "../../src/dcl.c"_auto_bn -> _name_where = _auto_nx -> _name_where ; #line 503 "../../src/dcl.c"{ #line 503 "../../src/dcl.c"Pname _auto_bnn ; #line 503 "../../src/dcl.c"_auto_bnn = _table_insert ( ( struct table * ) _auto_tbl , ( struct name * ) _auto_bn , 6 ) ; #line 503 "../../src/dcl.c"#line 504 "../../src/dcl.c"_auto_cl = ( ( ( struct classdef * ) ( _auto_bn -> _expr__O2.__C2_tp ) ) ) ; #line 507 "../../src/dcl.c"if ( _auto_cl -> _type_defined & 3) errorFPC__E ( ( char * ) "C%n defined twice", _auto_this ) ; else #line 509 "../../src/dcl.c"{ #line 509 "../../src/dcl.c"if ( _auto_bn -> _name_n_scope == 136 ) _auto_bn -> _name_n_scope = 139 ; #line 511 "../../src/dcl.c"_classdef_dcl ( ( struct classdef * ) _auto_cl , ( struct name * ) _auto_bn , _auto_tbl ) ; } #line 523 "../../src/dcl.c"_auto_this -> _expr__O2.__C2_tp = ( struct type * ) _auto_cl ; #line 524 "../../src/dcl.c"Cdcl = _auto_odcl ; #line 525 "../../src/dcl.c"{ #line 525 "../../src/dcl.c"{ _auto__result = _auto_bnn ; #line 525 "../../src/dcl.c"return _auto__result ; } } } } } #line 528 "../../src/dcl.c"case 13 : { #line 529 "../../src/dcl.c"Pname _auto_nx ; #line 529 "../../src/dcl.c"_auto_nx = _table_look ( ( struct table * ) ktbl , _auto_this -> _expr__O3.__C3_string , ( int ) 0 ) #line 529 "../../src/dcl.c"; #line 530 "../../src/dcl.c"if ( _auto_nx == 0 ) { #line 530 "../../src/dcl.c"_auto_nx = _table_look ( ( struct table * ) ktbl , _auto_this -> #line 530 "../../src/dcl.c"_expr__O3.__C3_string , 159 ) ; } #line 533 "../../src/dcl.c"{ #line 533 "../../src/dcl.c"Pbase _auto_bt ; Pname _auto_bn ; Pname _auto_bnn ; Penum _auto_en ; #line 533 "../../src/dcl.c"_auto_bt = ( ( ( struct basetype * ) ( _auto_nx -> _expr__O2.__C2_tp ) ) ) ; #line 534 "../../src/dcl.c"_auto_bn = _auto_bt -> _basetype_b_name ; #line 535 "../../src/dcl.c"_auto_bnn = _table_insert ( ( struct table * ) _auto_tbl , ( struct name * ) _auto_bn , 6 ) ; #line 535 "../../src/dcl.c"#line 536 "../../src/dcl.c"_auto_en = ( ( ( struct enumdef * ) ( _auto_bn -> _expr__O2.__C2_tp ) ) ) ; #line 537 "../../src/dcl.c"if ( _auto_en -> _type_defined & 3) errorFPC__E ( ( char * ) "enum%n defined twice", _auto_this ) ; else #line 539 "../../src/dcl.c"{ #line 539 "../../src/dcl.c"if ( _auto_bn -> _name_n_scope == 136 ) _auto_bn -> _name_n_scope = 139 ; #line 541 "../../src/dcl.c"_enumdef_dcl ( ( struct enumdef * ) _auto_en , ( struct name * ) _auto_bn , _auto_tbl ) ; } #line 543 "../../src/dcl.c"_auto_this -> _expr__O2.__C2_tp = ( struct type * ) _auto_en ; #line 544 "../../src/dcl.c"Cdcl = _auto_odcl ; #line 545 "../../src/dcl.c"{ #line 545 "../../src/dcl.c"{ _auto__result = _auto_bnn ; #line 545 "../../src/dcl.c"return _auto__result ; } } } } #line 548 "../../src/dcl.c"case 108 : { #line 549 "../../src/dcl.c"Pfct _auto_f ; Pname _auto_class_name ; Ptable _auto_etbl ; int _auto_can_overload ; int _auto_in_class_dcl ; int _auto_just_made ; #line 549 "../../src/dcl.c"_auto_f = ( ( ( struct fct * ) ( _auto_this -> _expr__O2.__C2_tp ) ) ) ; #line 553 "../../src/dcl.c"_auto_in_class_dcl = ( ( ( int ) ( cc -> _dcl_context_not ) ) ) ; #line 554 "../../src/dcl.c"_auto_just_made = 0 ; #line 556 "../../src/dcl.c"if ( _auto_f -> _fct_f_inline ) _auto_this -> _name_n_sto = 31 ; #line 558 "../../src/dcl.c"if ( _auto_f -> _fct_argtype ) { #line 558 "../../src/dcl.c"Pname _auto_a ; int _auto_oo ; #line 560 "../../src/dcl.c"_auto_oo = const_save ; #line 561 "../../src/dcl.c"const_save = 1 ; #line 562 "../../src/dcl.c"for ( _auto_a = _auto_f -> _fct_argtype ;_auto_a ;( _auto_a = _auto_a -> _name_n_list ) ) { #line 562 "../../src/dcl.c"Pexpr _auto_init ; #line 564 "../../src/dcl.c"if ( _auto_init = _auto_a -> _expr__O4.__C4_n_initializer ) { #line 564 "../../src/dcl.c"Pname _auto_cln ; #line 567 "../../src/dcl.c"if ( _auto_cln = _type_is_cl_obj ( ( struct type * ) _auto_a -> _expr__O2.__C2_tp ) ) { #line 567 "../../src/dcl.c"if ( #line 567 "../../src/dcl.c"_auto_init -> _node_base == 157 ) #line 569 "../../src/dcl.c"{ #line 569 "../../src/dcl.c"switch ( _auto_init -> _expr__O5.__C5_tp2 -> _node_base ) { #line 570 "../../src/dcl.c"case 6 : if ( #line 570 "../../src/dcl.c"( ( ( struct classdef * ) ( _auto_init -> _expr__O5.__C5_tp2 ) ) ) != ( ( #line 570 "../../src/dcl.c"( struct classdef * ) ( _auto_cln -> _expr__O2.__C2_tp ) ) ) ) #line 572 "../../src/dcl.c"goto inin2 ; #line 573 "../../src/dcl.c"break ; #line 574 "../../src/dcl.c"default : { #line 575 "../../src/dcl.c"Pname _auto_n2 ; #line 575 "../../src/dcl.c"_auto_n2 = _type_is_cl_obj ( ( struct type * ) _auto_init -> _expr__O5.__C5_tp2 ) ; #line 576 "../../src/dcl.c"if ( ( _auto_n2 == 0 ) || ( ( ( ( struct classdef * ) #line 576 "../../src/dcl.c"( _auto_n2 -> _expr__O2.__C2_tp ) ) ) != ( ( ( struct classdef * ) ( _auto_cln -> #line 576 "../../src/dcl.c"_expr__O2.__C2_tp ) ) ) ) ) #line 576 "../../src/dcl.c"goto inin2 ; } } #line 578 "../../src/dcl.c"_auto_init -> _expr__O4.__C4_e2 = ( struct expr * ) _auto_a ; #line 579 "../../src/dcl.c"_auto_init = _expr_typ ( ( struct expr * ) _auto_init , _auto_tbl ) ; #line 580 "../../src/dcl.c"_expr_simpl ( ( struct expr * ) _auto_init ) ; #line 581 "../../src/dcl.c"_auto_init -> _node_permanent = 2 ; #line 582 "../../src/dcl.c"_auto_a -> _expr__O4.__C4_n_initializer = _auto_init ; #line 583 "../../src/dcl.c"errorFI_PC__E ( ( int ) 's' , ( char * ) "constructor as defaultA") ; } else #line 585 "../../src/dcl.c"{ #line 585 "../../src/dcl.c"inin2 : if ( _auto_init -> _node_base == 124 ) errorFI_PC__E ( ( int ) 's' , #line 585 "../../src/dcl.c"( char * ) "list as AIr") ; #line 589 "../../src/dcl.c"{ #line 589 "../../src/dcl.c"Pexpr _auto_i ; #line 589 "../../src/dcl.c"_auto_i = _expr_typ ( ( struct expr * ) _auto_init , _auto_tbl ) ; #line 590 "../../src/dcl.c"_auto_init = class_init ( ( struct expr * ) _auto_a , ( struct type * ) _auto_a -> _expr__O2.__C2_tp , ( #line 590 "../../src/dcl.c"struct expr * ) _auto_i , _auto_tbl ) ; #line 591 "../../src/dcl.c"if ( ( _auto_i != _auto_init ) && ( _auto_init -> _node_base == 111 ) ) errorFI_PC__E ( ( int #line 591 "../../src/dcl.c") 's' , ( char * ) "constructor needed forAIr") ; #line 592 "../../src/dcl.c"_expr_simpl ( ( struct expr * ) _auto_init ) ; #line 593 "../../src/dcl.c"_auto_init -> _node_permanent = 2 ; #line 594 "../../src/dcl.c"_auto_a -> _expr__O4.__C4_n_initializer = _auto_init ; } } } else #line 597 "../../src/dcl.c"if ( _type_is_ref ( ( struct type * ) _auto_a -> _expr__O2.__C2_tp ) ) #line 597 "../../src/dcl.c"#line 597 "../../src/dcl.c"{ #line 597 "../../src/dcl.c"_auto_init = _expr_typ ( ( struct expr * ) _auto_init , _auto_tbl ) ; #line 600 "../../src/dcl.c"{ #line 600 "../../src/dcl.c"int _auto_tcount ; #line 600 "../../src/dcl.c"_auto_tcount = stcount ; #line 601 "../../src/dcl.c"_auto_init = ref_init ( ( ( struct ptr * ) ( _auto_a -> _expr__O2.__C2_tp ) ) , ( struct #line 601 "../../src/dcl.c"expr * ) _auto_init , _auto_tbl ) ; #line 602 "../../src/dcl.c"if ( _auto_tcount != stcount ) errorFI_PC__E ( ( int ) 's' , ( char * ) "needs temporaryV to evaluateAIr") #line 602 "../../src/dcl.c"; #line 603 "../../src/dcl.c"_expr_simpl ( ( struct expr * ) _auto_init ) ; #line 604 "../../src/dcl.c"_auto_init -> _node_permanent = 2 ; #line 605 "../../src/dcl.c"_auto_a -> _expr__O4.__C4_n_initializer = _auto_init ; } } else #line 608 "../../src/dcl.c"{ #line 608 "../../src/dcl.c"int _auto_i ; #line 609 "../../src/dcl.c"_auto_i = 0 ; #line 610 "../../src/dcl.c"_auto_init = _expr_typ ( ( struct expr * ) _auto_init , _auto_tbl ) ; #line 611 "../../src/dcl.c"if ( ( _type_check ( ( struct type * ) _auto_a -> _expr__O2.__C2_tp , ( struct type * ) #line 611 "../../src/dcl.c"_auto_init -> _expr__O2.__C2_tp , 136 ) == 0 ) || ( _auto_i = can_coerce ( ( struct type * ) #line 611 "../../src/dcl.c"_auto_a -> _expr__O2.__C2_tp , ( struct type * ) _auto_init -> _expr__O2.__C2_tp ) ) ) #line 612 "../../src/dcl.c"{ #line 612 "../../src/dcl.c"if ( 1 < #line 612 "../../src/dcl.c"_auto_i ) #line 613 "../../src/dcl.c"errorFPC__E ( ( char * ) "%d possible conversions for defaultA", _auto_i ) ; #line 614 "../../src/dcl.c"if ( Ncoerce ) { #line 614 "../../src/dcl.c"Pname _auto_cn ; Pclass _auto_cl ; Pref _auto_r ; struct ref * _auto__Xthis__ctor_ref ; #line 615 "../../src/dcl.c"_auto_cn = _type_is_cl_obj ( ( struct type * ) _auto_init -> _expr__O2.__C2_tp ) ; #line 616 "../../src/dcl.c"_auto_cl = ( ( ( struct classdef * ) ( _auto_cn -> _expr__O2.__C2_tp ) ) ) ; #line 617 "../../src/dcl.c"_auto_r = ( struct ref * ) ( ( _auto__Xthis__ctor_ref = 0 ) , ( ( ( #line 617 "../../src/dcl.c"_auto__Xthis__ctor_ref = 0 ) , ( _auto__Xthis__ctor_ref = ( struct ref * ) _expr__ctor ( ( ( struct #line 617 "../../src/dcl.c"expr * ) ( _auto__Xthis__ctor_ref ) ) , 45 , ( ( struct expr * ) _auto_init ) , #line 617 "../../src/dcl.c"( struct expr * ) 0 ) ) ) , ( ( _auto__Xthis__ctor_ref -> _expr__O5.__C5_mem = ( #line 617 "../../src/dcl.c"( struct name * ) Ncoerce ) ) , _auto__Xthis__ctor_ref ) ) ) ; #line 618 "../../src/dcl.c"_auto_init = ( struct expr * ) _expr__ctor ( ( struct expr * ) 0 , 146 , ( #line 618 "../../src/dcl.c"struct expr * ) _auto_r , ( struct expr * ) 0 ) ; #line 619 "../../src/dcl.c"_auto_init -> _expr__O5.__C5_fct_name = Ncoerce ; #line 620 "../../src/dcl.c"_auto_init -> _expr__O2.__C2_tp = _auto_a -> _expr__O2.__C2_tp ; } #line 622 "../../src/dcl.c"_expr_simpl ( ( struct expr * ) _auto_init ) ; #line 623 "../../src/dcl.c"_auto_init -> _node_permanent = 2 ; #line 624 "../../src/dcl.c"_auto_a -> _expr__O4.__C4_n_initializer = _auto_init ; #line 625 "../../src/dcl.c"Neval = 0 ; #line 626 "../../src/dcl.c"{ #line 626 "../../src/dcl.c"int _auto_i ; #line 626 "../../src/dcl.c"_auto_i = _expr_eval ( ( struct expr * ) _auto_init ) ; #line 627 "../../src/dcl.c"if ( Neval == 0 ) { #line 627 "../../src/dcl.c"_auto_a -> _name_n_evaluated = 1 ; #line 629 "../../src/dcl.c"_auto_a -> _name_n_val = _auto_i ; } } } else #line 632 "../../src/dcl.c"{ #line 632 "../../src/dcl.c"errorFPC__E ( ( char * ) "badIrT%t forA%n", _auto_init -> _expr__O2.__C2_tp , _auto_a ) #line 632 "../../src/dcl.c"; #line 634 "../../src/dcl.c"if ( _auto_init && ( _auto_init -> _node_permanent == 0 ) ) _expr_del ( ( struct expr * ) #line 634 "../../src/dcl.c"_auto_init ) ; #line 635 "../../src/dcl.c"_auto_a -> _expr__O4.__C4_n_initializer = 0 ; } } } #line 639 "../../src/dcl.c"flatten1 : switch ( _auto_a -> _expr__O2.__C2_tp -> _node_base ) { #line 640 "../../src/dcl.c"case 97 : _auto_a -> _expr__O2.__C2_tp = #line 640 "../../src/dcl.c"( ( ( struct basetype * ) ( _auto_a -> _expr__O2.__C2_tp ) ) ) -> _basetype_b_name -> _expr__O2.__C2_tp ; #line 640 "../../src/dcl.c"#line 643 "../../src/dcl.c"goto flatten1 ; #line 644 "../../src/dcl.c"case 5 : case 29 : _auto_a -> _expr__O2.__C2_tp = ( struct type * ) int_type ; #line 648 "../../src/dcl.c"break ; #line 649 "../../src/dcl.c"case 15 : _auto_a -> _expr__O2.__C2_tp = ( struct type * ) double_type ; #line 652 "
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -