00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #define PREFIX \
00051 \
00052 NODEKIND(kind) \
00053 VLINENO(vlineno) \
00054 INT(pre_num) \
00055 INT(post_num)
00056
00057 @ifndef STREEDEFS
00058 @ define SZSTANDARDPREFIX 4
00059
00060 @endif
00061
00062
00063
00064
00065
00066
00067 TOP
00068
00069 START(LISTHEADER,ListHeader)
00070 PREFIX
00071 CNSTAR(lh_first)
00072 CNSTAR(lh_last)
00073 FINISH
00074
00075 START(DECLARATION,Declaration)
00076 PREFIX
00077 NODESTAR(decl_id)
00078 NODESTAR(decl_denotation)
00079 INT(displacement)
00080 INT(level)
00081 SIG(decl_signature)
00082 INT(decl_sig_done)
00083 INT(decl_sig_transp)
00084
00085 BACKREF(decl_innermost_id)
00086
00087
00088
00089
00090
00091
00092 BACKREF(decl_previous_definition)
00093 BACKREF(decl_scope)
00094
00095 INT(decl_can_be_refd)
00096
00097
00098
00099 INT(decl_special)
00100
00101 @ ifndef STREEDEFS
00102 @ define VAR_ON_STACK 7
00103 @ define SIMPLE_VAR_ON_STACK 1
00104 @ define PTR_VAR_ON_STACK 2
00105 @ define INIT_VAR_ON_STACK 4
00106 @ define ARRAY_CONTIG 8
00107 @ define ID_IMPORTED 16
00108 @ define VAR_NONTR_REF 32
00109
00110
00111
00112 @ define ID_IN_REG 64
00113 @ define SIMPLE_VAR_IN_REG 128
00114 @ define PTR_VAR_IN_REG 256
00115 @ define INIT_VAR_IN_REG 512
00116 @ define VAR_IN_REG 896
00117
00118 @ define DECL_CONST 1024
00119 @ define NOT_DECL_CONST 2048
00120 @ endif
00121 INT(decl_sel_index)
00122 INT(decl_needed)
00123 INT(decl_const_val)
00124 FINISH
00125
00126 START(PARAMETER,Parameter)
00127 PREFIX
00128 NODESTAR(par_id)
00129 NODESTAR(par_signature)
00130 INT(displacement)
00131 INT(level)
00132 BACKREF(par_previous_definition)
00133 BACKREF(par_scope)
00134 BACKREF(par_only_def)
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144 @ define MULTIPLE_DEFS ((NODE *) 1)
00145 @ define MULTIPLE_TP_DEFS ((NODE *) 2)
00146 @ define is_real_def(x) (((unsigned) (x)) > 2)
00147 FINISH
00148
00149 START(RECORDELEMENT,RElement)
00150
00151 PREFIX
00152 NODESTAR(re_id)
00153 NODESTAR(re_denotation)
00154 INT(re_New_index)
00155 INT(re_ValueOf_index)
00156 INT(re_assign_index)
00157 FINISH
00158
00159 START(VARSIGNATURE,VarSignature)
00160 PREFIX
00161 HSIG(signature)
00162 INT(sig_done)
00163 NODESTAR(var_denotation)
00164 FINISH
00165
00166 START(VALSIGNATURE,ValSignature)
00167 PREFIX
00168 HSIG(signature)
00169 INT(sig_done)
00170 NODESTAR(val_denotation)
00171 FINISH
00172
00173 START(FUNCSIGNATURE,FSignature)
00174 PREFIX
00175 HSIG(signature)
00176 INT(sig_done)
00177 BACKREF(fsig_construction)
00178
00179 INT(fsig_special)
00180 INT(fsig_slink_known)
00181
00182
00183 STRPTR(fsig_inline_code)
00184 LISTPTR(fsig_param_list)
00185 NODESTAR(fsig_result_sig)
00186 FINISH
00187
00188 START(TYPESIGNATURE,TSignature)
00189 PREFIX
00190 HSIG(signature)
00191 INT(sig_done)
00192 INT(ts_simple_type)
00193
00194 NODESTAR(ts_local_type_id)
00195 LISTPTR(ts_clist)
00196 BACKREF(ts_previous_definition)
00197 STRPTR(ts_const_code)
00198 STRPTR(ts_string_code)
00199 STRPTR(ts_element_code)
00200 INT(ts_string_max)
00201
00202 STRPTR(ts_meta_concat)
00203
00204 FINISH
00205
00206 START(TSCOMPONENT,TSComponent)
00207 PREFIX
00208 NODESTAR(tsc_id)
00209 NODESTAR(tsc_signature)
00210 FINISH
00211
00212 START(DEFCHARSIGS,DefCharSigs)
00213
00214
00215
00216
00217 PREFIX
00218 BITVECTOR(dcs_0)
00219 BITVECTOR(dcs_1)
00220 BITVECTOR(dcs_2)
00221 BITVECTOR(dcs_3)
00222 @ ifndef STREEDEFS
00223 @ define NVECTORS 4
00224 @ endif
00225 HLISTPTR(dcs_exceptions)
00226
00227
00228 FINISH
00229
00230 START(SIGNATURESIG, SignatureSig)
00231
00232 PREFIX
00233 HSIG(signature)
00234 INT(sig_done)
00235 FINISH
00236
00237 START(BLOCKDENOTATION,BlDenotation)
00238 PREFIX
00239 HSIG(signature)
00240 INT(sig_done)
00241
00242
00243 INT(ar_size)
00244 BACKREF(ar_static_link)
00245 INT(ar_static_level)
00246 LISTPTR(bld_declaration_list)
00247 LISTPTR(bld_den_seq)
00248 INT(bld_precedence)
00249 INT(bld_flags)
00250 @ define INSIDE_LOOP 1
00251
00252
00253
00254
00255
00256
00257 @ define CONTAINS_CLOSURE 2
00258
00259 @ define CALLCC_CALL 4
00260
00261 @ define REQUIRES_AR 8
00262
00263
00264
00265
00266
00267
00268 @ define NO_SURR_LOOP 16
00269
00270
00271
00272
00273
00274 FINISH
00275
00276
00277 START(USELIST,UseList)
00278 PREFIX
00279 HSIG(signature)
00280 INT(sig_done)
00281 LISTPTR(usl_type_list)
00282 LISTPTR(usl_den_seq)
00283 BACKREF(usl_previous_list)
00284 INT(usl_precedence)
00285 FINISH
00286
00287 START(APPLICATION,Application)
00288 PREFIX
00289 HSIG(signature)
00290 INT(sig_done)
00291 NODESTAR(ap_operator)
00292 LISTPTR(ap_args)
00293 BACKREF(ap_void_decl)
00294 FINISH
00295
00296 START(ENUMERATION,Enumeration)
00297 PREFIX
00298 HSIG(signature)
00299 INT(sig_done)
00300 LISTPTR(enum_id_list)
00301 FINISH
00302
00303 START(EXTENSION,Extension)
00304 PREFIX
00305 HSIG(signature)
00306 INT(sig_done)
00307 NODESTAR(ext_denotation)
00308 INT(In_index)
00309 INT(Out_index)
00310 FINISH
00311
00312 START(PRODCONSTRUCTION,Product)
00313 PREFIX
00314 HSIG(signature)
00315 INT(sig_done)
00316 NODESTAR(prod_local_type_id)
00317 LISTPTR(prod_components)
00318 BACKREF(prod_previous_definition)
00319 FINISH
00320
00321 START(RECORDCONSTRUCTION,Record)
00322 PREFIX
00323 HSIG(signature)
00324 INT(sig_done)
00325 LISTPTR(rec_component_list)
00326 BACKREF(rec_previous_definition)
00327 FINISH
00328
00329 START(UNIONCONSTRUCTION,Union)
00330 PREFIX
00331 HSIG(signature)
00332 INT(sig_done)
00333 NODESTAR(prod_local_type_id)
00334 LISTPTR(prod_components)
00335 BACKREF(prod_previous_definition)
00336 FINISH
00337
00338 START(WITHLIST,WithList)
00339 PREFIX
00340 NODESTAR(wl_local_type_id)
00341 LISTPTR(wl_component_list)
00342 BACKREF(wl_previous_definition)
00343 FINISH
00344
00345 START(MODPRIMARY,MPrimary)
00346 PREFIX
00347 HSIG(signature)
00348 INT(sig_done)
00349 INT(displacement)
00350 INT(level)
00351 NODESTAR(mp_primary)
00352 NODESTAR(mp_type_modifier)
00353 STRPTR(mp_delete_v)
00354
00355 INT(mp_orig_length)
00356
00357 INT(mp_needed)
00358 INT(mp_no_surr_loop)
00359 FINISH
00360
00361 START(EXPORTLIST,Elist)
00362 PREFIX
00363 NODESTAR(el_local_type_id)
00364 LISTPTR(el_export_element_list)
00365 BACKREF(el_previous_definition)
00366 FINISH
00367
00368 START(HIDELIST,Hlist)
00369 PREFIX
00370 NODESTAR(el_local_type_id)
00371 LISTPTR(el_export_element_list)
00372 BACKREF(el_previous_definition)
00373 FINISH
00374
00375 START(EXPORTELEMENT,EElement)
00376 PREFIX
00377 NODESTAR(ee_id)
00378 NODESTAR(ee_signature)
00379 NODESTAR(ee_export_list)
00380 FINISH
00381
00382 START(ALLCONSTANTS,ConstsKeyWord)
00383 PREFIX
00384 FINISH
00385
00386 START(WORDELSE,ElseKeyWord)
00387 PREFIX
00388 HSIG(signature)
00389 INT(sig_done)
00390 FINISH
00391
00392 START(WORDCAND,CandKeyWord)
00393 PREFIX
00394 FINISH
00395
00396 START(WORDCOR,CorKeyWord)
00397 PREFIX
00398 FINISH
00399
00400 START(GUARDEDLIST,GList)
00401 PREFIX
00402 HSIG(signature)
00403 INT(sig_done)
00404 LISTPTR(gl_list)
00405 FINISH
00406
00407 START(LOOPDENOTATION,LDenotation)
00408 PREFIX
00409 HSIG(signature)
00410 INT(sig_done)
00411 LISTPTR(gl_list)
00412 FINISH
00413
00414 START(GUARDEDELEMENT,GElement)
00415 PREFIX
00416 NODESTAR(ge_guard)
00417 NODESTAR(ge_element)
00418 FINISH
00419
00420 START(OPRID,OpId)
00421 PREFIX
00422 HSIG(signature)
00423 INT(sig_done)
00424 HNODESTAR(sel_type)
00425
00426 STTINDX(id_str_table_index)
00427
00428
00429
00430
00431 BACKREF(id_use_list)
00432 BACKREF(id_last_definition)
00433 INT(id_def_found)
00434
00435
00436
00437 INT(sel_index)
00438 BACKREF(id_appl)
00439 INT(id_forward_ref)
00440 FINISH
00441
00442 START(LETTERID,LetterId)
00443 PREFIX
00444 HSIG(signature)
00445 INT(sig_done)
00446 HNODESTAR(sel_type)
00447 STTINDX(id_str_table_index)
00448 BACKREF(id_use_list)
00449 BACKREF(id_last_definition)
00450 INT(id_def_found)
00451 INT(sel_index)
00452 HNODESTAR(id_appl)
00453
00454 INT(id_forward_ref)
00455 FINISH
00456
00457 START(QSTR,QStr)
00458
00459 PREFIX
00460 HSIG(signature)
00461 INT(sig_done)
00462 HNODESTAR(sel_type)
00463 STRPTR(str_string)
00464 BACKREF(str_use_list)
00465 HNODESTAR(str_expansion)
00466 FINISH
00467
00468 START(UQSTR,UQStr)
00469
00470 PREFIX
00471 HSIG(signature)
00472 INT(sig_done)
00473 HNODESTAR(sel_type)
00474 STRPTR(str_string)
00475 BACKREF(str_use_list)
00476 HNODESTAR(str_expansion)
00477 FINISH
00478
00479 START(FUNCCONSTR,FConstruction)
00480 PREFIX
00481 NODESTAR(signature)
00482
00483 INT(sig_done)
00484
00485
00486 INT(ar_size)
00487 BACKREF(ar_static_link)
00488 INT(ar_static_level)
00489
00490 NODESTAR(fc_body)
00491 INT(fc_complexity)
00492
00493 @ ifndef STREEDEFS
00494 @ define COMPLICATED 0
00495 @ define NO_SL 1
00496
00497
00498 @ define NO_PUT 2
00499 @ define NO_CALLCC 4
00500
00501
00502
00503 @ define NO_CONSTR 8
00504
00505
00506
00507
00508 @ define NEED_CL 16
00509 @ define CP_GLOBALS 32
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519 @ define NO_AR_REFS 64
00520
00521
00522
00523
00524 @ define DIR_REC 128
00525
00526 @ define DIR_CALL 256
00527
00528
00529 @ define SL_ACC 512
00530
00531
00532
00533 @ define NESTED_AR_BLOCK 1024
00534
00535
00536 @ endif
00537 HSTRPTR(fc_code_label)
00538
00539 LBACKREF(fc_free_vars)
00540
00541
00542
00543
00544
00545
00546
00547
00548
00549 INT(fc_body_needed)
00550 FINISH
00551
00552 START(FREEVARNODE,FreeVarNode)
00553
00554 PREFIX
00555
00556 BACKREF(fv_last_definition)
00557 INT(fv_surr_class)
00558 INT(fv_surr_index)
00559 INT(fv_index)
00560 FINISH
00561
00562 START(EXTERNDEF,ExternDef)
00563
00564
00565 PREFIX
00566 STRPTR(ext_name)
00567 FINISH
00568
00569 START(REXTERNDEF,RExternDef)
00570
00571
00572 PREFIX
00573 SIG(signature)
00574 INT(sig_done)
00575 STRPTR(r_ext_name)
00576 FINISH
00577
00578 START(DCSEXCEPTION, DCSException)
00579
00580
00581 PREFIX
00582 INT(dcse_char)
00583 HSTRPTR(dcse_inline)
00584 INT(dcse_special)
00585 BACKREF(dcse_construction)
00586
00587 FINISH
00588
00589 BOTTOM
00590
00591 @define STREEDEFS