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

📄 expr2..c

📁 c 语言编译器 源代码- c compiler
💻 C
📖 第 1 页 / 共 5 页
字号:
goto xx ; #line 177 "../../src/expr2.c"case 85 : _auto_n = ( ( ( struct name * ) ( _auto_ee ) ) ) ; #line 177 "../../src/expr2.c"#line 179 "../../src/expr2.c"xx : if ( _auto_deref || ( _auto_oper == 0 ) ) { #line 180 "../../src/expr2.c"{ _auto__result = 1 ; #line 180 "../../src/expr2.c"return _auto__result ; } } #line 182 "../../src/expr2.c"if ( ( _auto_n -> _expr__O2.__C2_tp -> _node_base == 114 ) && ( ( ( ( #line 182 "../../src/expr2.c"struct basetype * ) ( _auto_n -> _expr__O2.__C2_tp ) ) ) -> _basetype_b_bits == 0 ) ) #line 182 "../../src/expr2.c"{ #line 182 "../../src/expr2.c"#line 182 "../../src/expr2.c"#line 183 "../../src/expr2.c"errorFPC__E ( ( char * ) "%s 0-length field%n", _auto_es , _auto_n ) ; #line 184 "../../src/expr2.c"{ #line 184 "../../src/expr2.c"{ _auto__result = 0 ; #line 184 "../../src/expr2.c"return _auto__result ; } } } #line 186 "../../src/expr2.c"switch ( _auto_oper ) { #line 186 "../../src/expr2.c"case 112 : case 145 : { #line 189 "../../src/expr2.c"Pfct _auto_f ; #line 189 "../../src/expr2.c"_auto_f = ( ( ( struct fct * ) ( _auto_n -> _expr__O2.__C2_tp ) ) ) ; #line 190 "../../src/expr2.c"if ( _auto_n -> _name_n_sto == 27 ) { #line 190 "../../src/expr2.c"errorFPC__E ( ( char * ) "& register%n", _auto_n ) ; #line 190 "../../src/expr2.c"#line 192 "../../src/expr2.c"{ #line 192 "../../src/expr2.c"{ _auto__result = 0 ; #line 192 "../../src/expr2.c"return _auto__result ; } } } #line 194 "../../src/expr2.c"if ( _auto_f == 0 ) { #line 194 "../../src/expr2.c"errorFPC__E ( ( char * ) #line 194 "../../src/expr2.c""& label%n", _auto_n ) ; #line 196 "../../src/expr2.c"{ #line 196 "../../src/expr2.c"{ _auto__result = 0 ; #line 196 "../../src/expr2.c"return _auto__result ; } } } #line 198 "../../src/expr2.c"if ( _auto_n -> _name_n_stclass == 13 ) { #line 198 "../../src/expr2.c"errorFPC__E ( ( char * ) #line 198 "../../src/expr2.c""& enumerator%n", _auto_n ) ; #line 200 "../../src/expr2.c"{ #line 200 "../../src/expr2.c"{ _auto__result = 0 ; #line 200 "../../src/expr2.c"return _auto__result ; } } } #line 202 "../../src/expr2.c"if ( _auto_n -> _expr__O2.__C2_tp -> _node_base == 114 ) { #line 202 "../../src/expr2.c"errorFPC__E ( ( char * #line 202 "../../src/expr2.c") "& field%n", _auto_es , _auto_n ) ; #line 204 "../../src/expr2.c"{ #line 204 "../../src/expr2.c"{ _auto__result = 0 ; #line 204 "../../src/expr2.c"return _auto__result ; } } } #line 206 "../../src/expr2.c"_auto_n -> _name_n_used -- ; #line 207 "../../src/expr2.c"{ #line 564 "../../src/cfront.h"( ( struct name * ) _auto_n ) -> _name_n_addr_taken ++ ; } #line 208 "../../src/expr2.c"if ( ( _auto_n -> _name_n_evaluated && ( _auto_n -> _name_n_scope != 136 ) ) || ( ( #line 208 "../../src/expr2.c"_auto_f -> _node_base == 108 ) && _auto_f -> _fct_f_inline ) ) #line 209 "../../src/expr2.c"{ #line 209 "../../src/expr2.c"Pname _auto_nn ; #line 211 "../../src/expr2.c"_auto_nn = ( struct name * ) _name__ctor ( ( struct name * ) 0 , ( char #line 211 "../../src/expr2.c"* ) 0 ) ; #line 212 "../../src/expr2.c"if ( _auto_n -> _name_n_evaluated && ( _auto_n -> _name_n_scope != 136 ) ) { #line 212 "../../src/expr2.c"_auto_n -> _name_n_evaluated = 0 ; #line 212 "../../src/expr2.c"#line 214 "../../src/expr2.c"_auto_n -> _expr__O4.__C4_n_initializer = ( struct expr * ) _expr__ctor ( ( struct expr * ) 0 , 150 , #line 214 "../../src/expr2.c"( struct expr * ) ( ( ( struct expr * ) ( _auto_n -> _name_n_val ) ) #line 214 "../../src/expr2.c") , ( struct expr * ) 0 ) ; } #line 216 "../../src/expr2.c"( * _auto_nn ) = ( * _auto_n ) ; #line 217 "../../src/expr2.c"_auto_nn -> _name_n_sto = 31 ; #line 218 "../../src/expr2.c"_auto_nn -> _name_n_list = dcl_list ; #line 219 "../../src/expr2.c"dcl_list = _auto_nn ; } #line 221 "../../src/expr2.c"break ; } #line 223 "../../src/expr2.c"case 70 : _auto_n -> _name_n_used -- ; #line 225 "../../src/expr2.c"_name_assign ( ( struct name * ) _auto_n ) ; #line 226 "../../src/expr2.c"break ; #line 227 "../../src/expr2.c"default : if ( cc -> _dcl_context_tot && ( _auto_n == cc -> _dcl_context_c_this ) ) { #line 228 "../../src/expr2.c"errorFPC__E ( ( #line 228 "../../src/expr2.c"char * ) "%n%k", _auto_n , _auto_oper ) ; #line 230 "../../src/expr2.c"{ #line 230 "../../src/expr2.c"{ _auto__result = 0 ; #line 230 "../../src/expr2.c"return _auto__result ; } } } #line 232 "../../src/expr2.c"_name_assign ( ( struct name * ) _auto_n ) ; } #line 234 "../../src/expr2.c"{ #line 234 "../../src/expr2.c"{ _auto__result = 1 ; #line 234 "../../src/expr2.c"return _auto__result ; } } } } } ; #line 239 "../../src/expr2.c"Pexpr Ninit ; #line 240 "../../src/expr2.c"int Nstd = 0 ; #line 242 "../../src/expr2.c"bit gen_match ( _auto_n , _auto_arg ) struct name * _auto_n ; struct expr * _auto_arg ; #line 246 "../../src/expr2.c"{ #line 246 "../../src/expr2.c"bit _auto__result ; Pfct _auto_f ; register Pexpr _auto_e ; register Pname _auto_nn ; #line 247 "../../src/expr2.c"_auto_f = ( ( ( struct fct * ) ( _auto_n -> _expr__O2.__C2_tp ) ) ) ; #line 251 "../../src/expr2.c"for ( ( ( _auto_e = _auto_arg ) , ( _auto_nn = _auto_f -> _fct_argtype ) ) ;_auto_e ;( ( #line 251 "../../src/expr2.c"_auto_e = _auto_e -> _expr__O4.__C4_e2 ) , ( _auto_nn = _auto_nn -> _name_n_list ) ) ) #line 251 "../../src/expr2.c"{ #line 251 "../../src/expr2.c"Pexpr _auto_a ; Ptype _auto_at ; Ptype _auto_nt ; #line 252 "../../src/expr2.c"_auto_a = _auto_e -> _expr__O3.__C3_e1 ; #line 253 "../../src/expr2.c"_auto_at = _auto_a -> _expr__O2.__C2_tp ; #line 254 "../../src/expr2.c"if ( _auto_at -> _node_base == 141 ) { #line 254 "../../src/expr2.c"{ _auto__result = 0 ; #line 254 "../../src/expr2.c"return _auto__result ; } } #line 255 "../../src/expr2.c"if ( _auto_nn == 0 ) { #line 255 "../../src/expr2.c"{ _auto__result = ( _auto_f -> _fct_nargs_known == 155 ) #line 255 "../../src/expr2.c"; #line 255 "../../src/expr2.c"return _auto__result ; } } #line 257 "../../src/expr2.c"_auto_nt = _auto_nn -> _expr__O2.__C2_tp ; #line 260 "../../src/expr2.c"switch ( _auto_nt -> _node_base ) { #line 260 "../../src/expr2.c"case 158 : if ( _auto_at == ( struct type * ) #line 260 "../../src/expr2.c"zero_type ) #line 262 "../../src/expr2.c"{ #line 262 "../../src/expr2.c"{ _auto__result = 0 ; #line 262 "../../src/expr2.c"return _auto__result ; } } #line 263 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_nt , ( struct type * ) #line 263 "../../src/expr2.c"_auto_at , 78 ) ) #line 263 "../../src/expr2.c"{ #line 263 "../../src/expr2.c"Pptr _auto_pt ; struct ptr * _auto__Xthis__ctor_ptr ; #line 264 "../../src/expr2.c"_auto_pt = ( ( ( _auto__Xthis__ctor_ptr = 0 ) , ( ( _auto__Xthis__ctor_ptr = ( struct ptr * #line 264 "../../src/expr2.c") _new ( ( long ) 16) ) , ( ( Nt ++ ) , ( #line 264 "../../src/expr2.c"( _auto__Xthis__ctor_ptr -> _node_base = 125 ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_typ = ( ( struct type * ) #line 264 "../../src/expr2.c"( ( struct type * ) _auto_at ) ) ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_rdo = ( #line 264 "../../src/expr2.c"( int ) 0 ) ) , _auto__Xthis__ctor_ptr ) ) ) ) ) ) ) #line 264 "../../src/expr2.c"; #line 265 "../../src/expr2.c"_auto_nt -> _node_base = 125 ; #line 267 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_nt , ( struct type * ) _auto_pt , 78 ) #line 267 "../../src/expr2.c") #line 267 "../../src/expr2.c"{ #line 267 "../../src/expr2.c"_auto_nt -> _node_base = 158 ; #line 269 "../../src/expr2.c"_delete ( ( int * ) _auto_pt ) ; #line 270 "../../src/expr2.c"{ #line 270 "../../src/expr2.c"{ _auto__result = 0 ; #line 270 "../../src/expr2.c"return _auto__result ; } } } #line 272 "../../src/expr2.c"_auto_nt -> _node_base = 158 ; #line 273 "../../src/expr2.c"_delete ( ( int * ) _auto_pt ) ; } #line 275 "../../src/expr2.c"break ; #line 276 "../../src/expr2.c"default : if ( _type_check ( ( struct type * ) _auto_nt , ( struct type * ) #line 276 "../../src/expr2.c"_auto_at , 78 ) ) #line 277 "../../src/expr2.c"{ #line 277 "../../src/expr2.c"{ _auto__result = 0 ; #line 277 "../../src/expr2.c"return _auto__result ; } } } } #line 281 "../../src/expr2.c"if ( _auto_nn ) { #line 281 "../../src/expr2.c"Ninit = _auto_nn -> _expr__O4.__C4_n_initializer ; #line 283 "../../src/expr2.c"{ #line 283 "../../src/expr2.c"{ _auto__result = ( Ninit != 0 ) ; #line 283 "../../src/expr2.c"return _auto__result ; } } } #line 286 "../../src/expr2.c"{ #line 286 "../../src/expr2.c"{ _auto__result = 1 ; #line 286 "../../src/expr2.c"return _auto__result ; } } } ; #line 289 "../../src/expr2.c"Pname Ncoerce ; #line 291 "../../src/expr2.c"extern bit can_coerce ( _auto_t1 , _auto_t2 ) struct type * _auto_t1 ; struct type * _auto_t2 ; #line 295 "../../src/expr2.c"{ #line 295 "../../src/expr2.c"bit _auto__result ; #line 297 "../../src/expr2.c"Ncoerce = 0 ; #line 298 "../../src/expr2.c"if ( _auto_t2 -> _node_base == 141 ) { #line 298 "../../src/expr2.c"{ _auto__result = 0 ; #line 298 "../../src/expr2.c"return _auto__result ; } } #line 299 "../../src/expr2.c"switch ( _auto_t1 -> _node_base ) { #line 299 "../../src/expr2.c"case 158 : rloop : switch ( _auto_t2 -> _node_base ) #line 299 "../../src/expr2.c"#line 302 "../../src/expr2.c"{ #line 302 "../../src/expr2.c"case 97 : _auto_t2 = ( struct type * ) ( ( ( struct basetype * ) #line 302 "../../src/expr2.c"( _auto_t2 ) ) ) -> _basetype_b_name -> _expr__O2.__C2_tp ; #line 305 "../../src/expr2.c"goto rloop ; #line 310 "../../src/expr2.c"default : { #line 311 "../../src/expr2.c"Ptype _auto_tt2 ; struct ptr * _auto__Xthis__ctor_ptr ; #line 311 "../../src/expr2.c"_auto_tt2 = ( struct type * ) ( ( ( _auto__Xthis__ctor_ptr = 0 ) , ( ( #line 311 "../../src/expr2.c"_auto__Xthis__ctor_ptr = ( struct ptr * ) _new ( ( long ) 16) ) , ( ( #line 311 "../../src/expr2.c"Nt ++ ) , ( ( _auto__Xthis__ctor_ptr -> _node_base = 125 ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_typ = ( #line 311 "../../src/expr2.c"( struct type * ) ( ( struct type * ) _auto_t2 ) ) ) , ( #line 311 "../../src/expr2.c"( _auto__Xthis__ctor_ptr -> _ptr_rdo = ( ( int ) 0 ) ) , _auto__Xthis__ctor_ptr ) ) ) #line 311 "../../src/expr2.c") ) ) ) ; #line 313 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_t1 , ( struct type * ) _auto_tt2 , 78 ) #line 313 "../../src/expr2.c"== 0 ) #line 313 "../../src/expr2.c"{ #line 313 "../../src/expr2.c"{ _auto__result = 1 ; #line 313 "../../src/expr2.c"return _auto__result ; } } #line 314 "../../src/expr2.c"{ #line 314 "../../src/expr2.c"Ptype _auto_tt1 ; int _auto_i ; #line 314 "../../src/expr2.c"_auto_tt1 = ( ( ( struct ptr * ) ( _auto_t1 ) ) ) -> _ptr_typ ; #line 315 "../../src/expr2.c"_auto_i = can_coerce ( ( struct type * ) _auto_tt1 , _auto_t2 ) ; #line 316 "../../src/expr2.c"{ #line 316 "../../src/expr2.c"{ _auto__result = _auto_i ; #line 316 "../../src/expr2.c"return _auto__result ; } } } } } } #line 321 "../../src/expr2.c"{ #line 321 "../../src/expr2.c"Pname _auto_c1 ; Pname _auto_c2 ; int _auto_val ; #line 321 "../../src/expr2.c"_auto_c1 = _type_is_cl_obj ( ( struct type * ) _auto_t1 ) ; #line 322 "../../src/expr2.c"_auto_c2 = _type_is_cl_obj ( ( struct type * ) _auto_t2 ) ; #line 323 "../../src/expr2.c"_auto_val = 0 ; #line 325 "../../src/expr2.c"if ( _auto_c1 ) { #line 325 "../../src/expr2.c"Pclass _auto_cl ; #line 326 "../../src/expr2.c"_auto_cl = ( ( ( struct classdef * ) ( _auto_c1 -> _expr__O2.__C2_tp ) ) ) ; #line 327 "../../src/expr2.c"if ( _auto_c2 && ( _auto_c2 -> _expr__O2.__C2_tp == ( struct type * ) _auto_cl ) ) { #line 327 "../../src/expr2.c"{ #line 327 "../../src/expr2.c"#line 327 "../../src/expr2.c"_auto__result = 1 ; #line 327 "../../src/expr2.c"return _auto__result ; } } #line 334 "../../src/expr2.c"{ #line 334 "../../src/expr2.c"Pname _auto_ctor ; #line 334 "../../src/expr2.c"_auto_ctor = ( _table_look ( ( struct table * ) ( ( struct classdef * ) _auto_cl ) -> #line 334 "../../src/expr2.c"_classdef_memtbl , ( char * ) "_ctor", ( int ) 0 ) ) ; #line 335 "../../src/expr2.c"if ( _auto_ctor == 0 ) goto oper_coerce ; #line 336 "../../src/expr2.c"{ #line 336 "../../src/expr2.c"register Pfct _auto_f ; #line 336 "../../src/expr2.c"_auto_f = ( ( ( struct fct * ) ( _auto_ctor -> _expr__O2.__C2_tp ) ) ) ; #line 338 "../../src/expr2.c"switch ( _auto_f -> _node_base ) { #line 338 "../../src/expr2.c"case 108 : switch ( _auto_f -> _fct_nargs ) { #line 340 "../../src/expr2.c"case 1 : #line 340 "../../src/expr2.c"#line 342 "../../src/expr2.c"one : { #line 343 "../../src/expr2.c"Ptype _auto_tt ; #line 343 "../../src/expr2.c"_auto_tt = _auto_f -> _fct_argtype -> _expr__O2.__C2_tp ; #line 345 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_tt , _auto_t2 , 78 ) == 0 ) _auto_val = #line 345 "../../src/expr2.c"1 ; #line 346 "../../src/expr2.c"if ( _auto_tt -> _node_base == 158 ) { #line 346 "../../src/expr2.c"Pptr _auto_pt ; struct ptr * _auto__Xthis__ctor_ptr ; #line 347 "../../src/expr2.c"_auto_pt = ( ( ( _auto__Xthis__ctor_ptr = 0 ) , ( ( _auto__Xthis__ctor_ptr = ( struct ptr * #line 347 "../../src/expr2.c") _new ( ( long ) 16) ) , ( ( Nt ++ ) , ( #line 347 "../../src/expr2.c"( _auto__Xthis__ctor_ptr -> _node_base = 125 ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_typ = ( ( struct type * ) #line 347 "../../src/expr2.c"( ( struct type * ) _auto_t2 ) ) ) , ( ( _auto__Xthis__ctor_ptr -> _ptr_rdo = ( #line 347 "../../src/expr2.c"( int ) 0 ) ) , _auto__Xthis__ctor_ptr ) ) ) ) ) ) ) #line 347 "../../src/expr2.c"; #line 348 "../../src/expr2.c"_auto_tt -> _node_base = 125 ; #line 349 "../../src/expr2.c"if ( _type_check ( ( struct type * ) _auto_tt , ( struct type * ) _auto_pt , 78 ) #line 349 "../../src/expr2.c"== 0 ) #line 349 "../../src/expr2.c"_auto_val = 1 ; #line 350 "../../src/expr2.c"_auto_tt -> _node_base = 158 ; #line 351 "../../src/expr2.c"_delete ( ( int * ) _auto_pt ) ; } #line 353 "../../src/expr2.c"goto oper_coerce ; } #line 355 "../../src/expr2.c"default : if ( _auto_f -> _fct_argtype -> _name_n_list -> _expr__O4.__C4_n_initializer ) goto one ; #line 357 "../../src/expr2.c"case 0 : goto oper_coerce ; } #line 360 "../../src/expr2.c"case 76 : { #line 361 "../../src/expr2.c"register Plist _auto_gl ; #line 363 "../../src/expr2.c"for ( _auto_gl = ( ( ( struct gen * ) ( _auto_f ) ) ) -> #line 363 "../../src/expr2.c"

⌨️ 快捷键说明

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