Subject: TAG to replace that attached with last mail

From: Cheng Xu <[email-masked]>
Date: Mon, 20 Nov 1995 22:11:04 +0800 (EAT)

Sorry, the TAG file attached with last mail is the old tag.h used in
Sage. Now, I send our extended TAG to you!

Regards

Cheng Xu

/******************* variant tags for bif nodes **********************/

#define GLOBAL			100
#define PROG_HEDR		101
#define PROC_HEDR		102
#define BASIC_BLOCK		103
#define CONTROL_END		104
#define IF_NODE			105
#define LOOP_NODE		106
#define FOR_NODE		107
#define FORALL_NODE		108
#define WHILE_NODE		109
#define EXIT_NODE		110
#define ASSIGN_STAT		111
#define M_ASSIGN_STAT		112
#define PROC_STAT		113
#define SUM_ACC			114	/* accumulation statements */
#define MULT_ACC		115
#define MAX_ACC			116
#define MIN_ACC			117
#define CAT_ACC			118
#define OR_ACC			119
#define AND_ACC			120
#define READ_STAT		121
#define WRITE_STAT		122
#define OTHERIO_STAT		123
#define CDOALL_NODE		124
#define SDOALL_NODE		125
#define DOACROSS_NODE		126
#define CDOACROSS_NODE		127
#define FUNC_HEDR		130
#define WHERE_NODE		131
#define ALLDO_NODE		132
#define IDENTIFY		133
#define FORMAT_STAT		134
#define STOP_STAT		135
#define RETURN_STAT		136
#define ELSEIF_NODE		137
#define ARITHIF_NODE		138
#define GOTO_NODE		139
#define ASSGOTO_NODE		140
#define COMGOTO_NODE		141
#define PAUSE_NODE		142
#define STOP_NODE		143
#define LOGIF_NODE		145
#define ASSLAB_STAT		146
#define BLOB			150
#define SIZES			151
#define COMMENT_STAT		152
#define CONT_STAT		153
#define VAR_DECL		154
#define PARAM_DECL		155
#define COMM_STAT		156
#define EQUI_STAT		157
#define IMPL_DECL		158
#define DATA_DECL		159
#define SAVE_DECL		160
#define ENTRY_STAT		162
#define STMTFN_STAT		163
#define DIM_STAT		164
#define BLOCK_DATA		165
#define EXTERN_STAT		166
#define INTRIN_STAT		167
#define ENUM_DECL		168	/* New added for VPC */
#define CLASS_DECL		169	/* New added for VPC */
#define UNION_DECL		170	/* New added for VPC */
#define STRUCT_DECL		171	/* New added for VPC */
#define DERIVED_CLASS_DECL	172	/* New added for VPC */
#define EXPR_STMT_NODE		173	/* New added for VPC */
#define DO_WHILE_NODE		174	/* New added for VPC */
#define SWITCH_NODE		175	/* New added for VPC */
#define CASE_NODE		176	/* New added for VPC */
#define DEFAULT_NODE		177	/* New added for VPC */
#define BREAK_NODE		178	/* New added for VPC */
#define CONTINUE_NODE		179	/* New added for VPC */
#define RETURN_NODE		180	/* New added for VPC */
#define ASM_NODE		181	/* New added for VPC */
#define SPAWN_NODE		182	/* New added for CC++ */
#define PARFOR_NODE		183	/* New added for CC++ */
#define PAR_NODE		184	/* New added for CC++ */
#define LABEL_STAT		185	/* New added for VPC */
#define PROS_COMM		186	/* Fortran M */
#define ATTR_DECL		187	/* attribute declaration */
#define NAMELIST_STAT		188
#define FUTURE_STMT		189	/* NEW added for VPC */
#define COLLECTION_DECL		190	/* NEW added for PC++ */
#define TEMPLATE_DECL		191     /* added by dbg for templates */
#define TEMPLATE_FUNDECL	192     /* added by dbg for template function*/
#define TECLASS_DECL		193     /* added for pC++ */
#define PRINT_STAT		200
#define BACKSPACE_STAT		201
#define REWIND_STAT		202
#define ENDFILE_STAT		203
#define INQUIRE_STAT		204
#define OPEN_STAT		205
#define CLOSE_STAT		206
#define EXTERN_C_STAT		207	/* Added by PHB for 'extern "C" {}' */
#define INCLUDE_STAT		208
#define TRY_STAT		209     /* added by dbg for C++ exceptions  */
#define CATCH_STAT		210     /* moreexcpt handling (part of try) */
#define PARDO_NODE		225     /* Following added for PCF Fortran */
#define PARSECTIONS_NODE	226
#define SECTION_NODE		227
#define GUARDS_NODE		228
#define LOCK_NODE		229
#define UNLOCK_NODE		230
#define CRITSECTION_NODE	231
#define POST_NODE		232
#define WAIT_NODE		233
#define CLEAR_NODE		234
#define POSTSEQ_NODE		235
#define WAITSEQ_NODE		236
#define SETSEQ_NODE		237
#define ASSIGN_NODE		238
#define RELEASE_NODE		239
#define PRIVATE_NODE		240
#define SCOMMON_NODE		241
#define PARREGION_NODE		242
#define PDO_NODE		243
#define PSECTIONS_NODE		244
#define SINGLEPROCESS_NODE	245
#define SKIPPASTEOF_NODE	246
#define INTENT_STMT             250        /* Added for Fortran 90 */
#define OPTIONAL_STMT           251
#define PUBLIC_STMT             252
#define PRIVATE_STMT            253
#define ALLOCATABLE_STMT        254
#define POINTER_STMT            255
#define TARGET_STMT             256
#define ALLOCATE_STMT           257
#define NULLIFY_STMT            258
#define DEALLOCATE_STMT         259
#define SEQUENCE_STMT	        260
#define CYCLE_STMT	        261
#define EXIT_STMT	        262
#define CONTAINS_STMT           263
#define WHERE_BLOCK_STMT 	264
#define MODULE_STMT	        265
#define USE_STMT	        266
#define INTERFACE_STMT	        267
#define MODULE_PROC_STMT	268
#define OVERLOADED_ASSIGN_STAT  269
#define POINTER_ASSIGN_STAT     270
#define OVERLOADED_PROC_STAT	271
#define DECOMPOSITION_STMT	275
#define ALIGN_STMT		276
#define DISTRIBUTE_STMT	 	277
#define REDUCE_STMT		278
#define PROS_HEDR		279  /* Fortran M */
#define PROS_STAT		280  /* Fortran M */
#define PROS_STAT_LCTN		281  /* Fortran M */
#define PROS_STAT_SUBM		282  /* Fortran M */
#define PROCESSES_STAT		283  /* Fortran M */
#define PROCESSES_END		284  /* Fortran M */
#define PROCESS_DO_STAT         285  /* Fortran M */
#define PROCESSORS_STAT		286  /* Fortran M */
#define CHANNEL_STAT		287  /* Fortran M */
#define MERGER_STAT		288  /* Fortran M */
#define MOVE_PORT		289  /* Fortran M */
#define SEND_STAT		290  /* Fortran M */
#define RECEIVE_STAT		291  /* Fortran M */
#define ENDCHANNEL_STAT		292  /* Fortran M */
#define PROBE_STAT		293  /* Fortran M */
#define INPORT_DECL     	294  /* Fortran M */
#define OUTPORT_DECL		295  /* Fortran M */

/**********************************/
/* the following is added for HPF */
/**********************************/

#define PARAMETER_STMT		800 
#define COMBINED_DIRECTIVED_DECL	801
#define DISTRIBUTE_DECL			802
#define INHERIT_DECL		803
#define DYNAMIC_DECL		804
#define ALIGN_DECL		805
#define FORALL_STMT		806
#define FORALL_CONSTRUCT_STMT 	807
#define INDEPENDENT_STMT	808

 /*****************variant tags for low level nodes ********************/

#define INT_VAL			300
#define FLOAT_VAL		301
#define DOUBLE_VAL		302
#define BOOL_VAL		303
#define CHAR_VAL		304
#define STRING_VAL		305
#define CONST_REF		306
#define VAR_REF			307
#define ARRAY_REF		308
#define RECORD_REF		309   /* diff struct between Blaze and VPC++ */
#define ENUM_REF		310
#define VAR_LIST		311
#define EXPR_LIST		312
#define RANGE_LIST		313
#define CASE_CHOICE		314
#define DEF_CHOICE		315
#define VARIANT_CHOICE		316
#define COMPLEX_VAL		317
#define LABEL_REF		318
#define KEYWORD_VAL		319   /* Strings to be printed with quotes */
#define DDOT			324
#define RANGE_OP		325
#define UPPER_OP		326
#define LOWER_OP		327
#define EQ_OP			328
#define LT_OP			329
#define GT_OP			330
#define NOTEQL_OP		331
#define LTEQL_OP		332
#define GTEQL_OP		333
#define ADD_OP			334
#define SUBT_OP			335
#define OR_OP			336
#define MULT_OP			337
#define DIV_OP			338
#define MOD_OP			339
#define AND_OP			340
#define EXP_OP			341
#define ARRAY_MULT		342
#define CONCAT_OP		343	/* cancatenation of strings */
#define XOR_OP			344	/* .XOR. in fortran */
#define EQV_OP			345	/* .EQV. in fortran */
#define NEQV_OP			346	/* .NEQV. in fortran */
#define MINUS_OP		350	/* unary operations */
#define NOT_OP			351
#define ASSGN_OP		352	/* New ADDED For VPC */
#define DEREF_OP		353	/* New ADDED For VPC */
#define POINTST_OP		354	/* New ADDED For VPC */	/* ptr->x  */
#define FUNCTION_OP		355	/* New ADDED For VPC */	/* (*DD)() */
#define MINUSMINUS_OP		356	/* New ADDED For VPC */
#define PLUSPLUS_OP		357	/* New ADDED For VPC */
#define BITAND_OP		358	/* New ADDED For VPC */
#define BITOR_OP		359	/* New ADDED For VPC */
#define STAR_RANGE		360	/* operations with no operands 360.. */
#define PROC_CALL		370
#define FUNC_CALL		371
#define CONSTRUCTOR_REF 	380
#define ACCESS_REF		381
#define CONS			382
#define ACCESS			383
#define IOACCESS		384
#define CONTROL_LIST		385
#define SEQ			386
#define SPEC_PAIR		387
#define COMM_LIST		388
#define STMT_STR		389
#define EQUI_LIST		390
#define IMPL_TYPE		391
#define STMTFN_DECL		392
#define BIT_COMPLEMENT_OP     	393
#define EXPR_IF			394
#define EXPR_IF_BODY		395
#define FUNCTION_REF		396
#define LSHIFT_OP		397
#define RSHIFT_OP		398
#define UNARY_ADD_OP		399
#define SIZE_OP			400
#define INTEGER_DIV_OP		401
#define SUB_OP			402
#define LE_OP			403	/* New added for VPC */
#define GE_OP			404	/* New added for VPC */
#define NE_OP			405	/* New added for VPC */
#define CLASSINIT_OP		406	/* New added for VPC */
#define CAST_OP			407	/* New added for VPC */
#define ADDRESS_OP		408	/* New added for VPC */
#define POINSTAT_OP		409	/* New added for VPC */    
#define COPY_NODE		410	/* New added for VPC */    
#define INIT_LIST		411	/* New added for VPC */    
#define VECTOR_CONST		412	/* New added for VPC */    
#define BIT_NUMBER		413	/* New added for VPC */    
#define ARITH_ASSGN_OP		414	/* New added for VPC */    
#define ARRAY_OP		415	/* New added for VPC */    
#define NEW_OP			416	/* New added for VPC */
#define DELETE_OP		417	/* New added for VPC */
#define NAMELIST_LIST		418
#define THIS_NODE		419	/* New added for VPC */    
#define SCOPE_OP		420	/* New added for VPC */    
#define PLUS_ASSGN_OP		421	/* New added for VPC */    
#define MINUS_ASSGN_OP		422	/* New added for VPC */    
#define AND_ASSGN_OP		423	/* New added for VPC */    
#define IOR_ASSGN_OP		424	/* New added for VPC */    
#define MULT_ASSGN_OP		425	/* New added for VPC */    
#define DIV_ASSGN_OP		426	/* New added for VPC */    
#define MOD_ASSGN_OP		427	/* New added for VPC */    
#define XOR_ASSGN_OP		428	/* New added for VPC */    
#define LSHIFT_ASSGN_OP 	429	/* New added for VPC */    
#define RSHIFT_ASSGN_OP 	430	/* New added for VPC */    
#define ORDERED_OP		431     /* Following added for PCF FORTRAN */
#define EXTEND_OP		432
#define MAXPARALLEL_OP		433
#define SAMETYPE_OP             434
#define TYPE_REF                450     /* Added for FORTRAN 90 */
#define STRUCTURE_CONSTRUCTOR   451
#define ARRAY_CONSTRUCTOR       452
#define SECTION_REF             453
#define VECTOR_SUBSCRIPT        454
#define SECTION_OPERANDS        455
#define KEYWORD_ARG   	        456
#define OVERLOADED_CALL	        457
#define INTERFACE_REF           458
#define RENAME_NODE	        459
#define TYPE_NODE	        460
#define PAREN_OP	        461
#define PARAMETER_OP	        462
#define PUBLIC_OP	        463
#define PRIVATE_OP	        464
#define ALLOCATABLE_OP	        465
#define DIMENSION_OP	        466
#define EXTERNAL_OP	        467
#define IN_OP	                468
#define OUT_OP	        	469
#define INOUT_OP	        470
#define INTRINSIC_OP	        471
#define POINTER_OP	        472
#define OPTIONAL_OP	        473
#define SAVE_OP	        	474
#define TARGET_OP	        475
#define ONLY_NODE        	476
#define LEN_OP	        	477
#define TYPE_OP 	        479
#define DOTSTAR_OP         	480	/* C++ .* operator */
#define ARROWSTAR_OP		481	/* C++ ->* operator */
#define FORDECL_OP		482	/* C++ for(int i; needs a new op */
#define THROW_OP		483	/* C++ throw operator */
#define PROCESSORS_REF		484	/* Fortran M */
#define PORT_TYPE_OP		485	/* Fortran M */
#define INPORT_TYPE_OP		486	/* Fortran M */
#define OUTPORT_TYPE_OP		487	/* Fortran M */
#define INPORT_NAME		488	/* Fortran M */
#define OUTPORT_NAME		489	/* Fortran M */
#define FROMPORT_NAME		490	/* Fortran M */
#define TOPORT_NAME		491	/* Fortran M */
#define IOSTAT_STORE		492	/* Fortran M */
#define EMPTY_STORE		493	/* Fortran M */
#define ERR_LABEL		494	/* Fortran M */
#define END_LABEL		495	/* Fortran M */
#define PROS_CALL		496	/* Fortran M */
#define DATA_IMPL_DO            700     /* Fortran M */
#define DATA_ELT                701     /* Fortran M */
#define DATA_SUBS               702     /* Fortran M */
#define DATA_RANGE              703     /* Fortran M */
#define ICON_EXPR               704     /* Fortran M */

/*********************************/
/* the following is added for HPF*/
/*********************************/

#define BINARY_VAL              810 
#define OCTN_VAL                811
#define HEX_VAL                 812
#define KIND_VAL                813
#define KIND_OP                 814
#define NON_KIND_OP             815
#define NON_LEN_OP              816
#define IMPLIED_DO              817
#define DATA_STMT_SET           818
#define DATA_VALUE              819
#define LABEL_LIST              820
#define PROCEDURE_REF           821

#define DISTRIBUTE_OP            822
#define DIST_FORAMT_OP          823
#define DIST_TAGGET_OP          824
#define BLOCK_OP                825
#define CYCLIC_OP               826
#define ALIGN_OP                827
#define ALIGN_WITH_OP           828
#define REALIGN_OP              829
#define FORALL_HEADER_OP           830
#define INDEX_OP                831

/***************** variant tags for symbol table entries ********************/

#define CONST_NAME		500	/* constant types */
#define ENUM_NAME		501
#define FIELD_NAME		502   
#define VARIABLE_NAME		503 
#define TYPE_NAME		504
#define PROGRAM_NAME		505
#define PROCEDURE_NAME		506
#define VAR_FIELD		507
#define LABEL_VAR		508	/* dest of assigned goto stmt */
#define FUNCTION_NAME		509
#define MEMBER_FUNC		510	/* new added for VPC */
#define CLASS_NAME		511	/* new added for VPC */
#define UNION_NAME		512	/* new added for VPC */
#define STRUCT_NAME		513	/* new added for VPC */
#define LABEL_NAME		514	/* new added for VPC */
#define COLLECTION_NAME		515	/* new added for VPC */
#define ROUTINE_NAME		516	/*added for external statement*/
#define CONSTRUCT_NAME          517
#define INTERFACE_NAME	        518
#define MODULE_NAME	        519
#define TEMPLATE_CL_NAME	520
#define TEMPLATE_FN_NAME	521
#define TECLASS_NAME		522

#define DEFAULT			550
#define T_INT			551	/* scalar types */
#define T_FLOAT			552
#define T_DOUBLE		553
#define T_CHAR			554
#define T_BOOL			555
#define T_STRING		556
#define T_ENUM			557
#define T_SUBRANGE		558
#define T_LIST			559
#define T_ARRAY			560
#define T_RECORD		561
#define T_ENUM_FIELD		562
#define T_UNKNOWN		563
#define T_COMPLEX		564
#define T_VOID			565	/* New one for VPC */
#define T_DESCRIPT		566	/* New one for VPC */
#define T_FUNCTION		567	/* New one for VPC */
#define T_POINTER		568	/* New one for VPC */
#define T_UNION			569	/* New one for VPC */
#define T_STRUCT		570	/* New one for VPC */
#define T_CLASS			571	/* New one for VPC */
#define T_DERIVED_CLASS 	572	/* New one for VPC */
#define T_DERIVED_TYPE		573	/* New one for VPC */
#define T_COLLECTION		574	/* New one for PC++*/
#define T_DERIVED_COLLECTION	575	/* New one for PC++*/
#define T_REFERENCE		576	/* New one for PC++*/
#define T_DERIVED_TEMPLATE      577     /* template type T<A,3,4> */
#define T_MEMBER_POINTER        578     /* need for C::* (ptr to memb ) */ 
#define T_TECLASS		579	/* new one for pC++*/
#define T_GATE			580     /* added for PCF FORTRAN */
#define T_EVENT			581
#define T_SEQUENCE		582
#define T_DCOMPLEX		583
#define LOCAL			600	/* variable type */
#define INPUT			601
#define OUTPUT			602
#define IO			603
#define PROCESS_NAME		604     /* Fortran M */