finalyze moving

This commit is contained in:
2025-03-12 14:28:04 +03:00
committed by Dudarenko
parent de4690513b
commit 189374274e
776 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
CC = gcc
CC = cc
CXX = g++
CXX = DCC
LINKER = $(CC)
all: tag.h
tag.h: head tag
( cat head; \
sed < tag \
'/#defin/s/\([^ ]*\) \([^ ]*\)\(.*\)/ tag \[ \2 \] = \"\2\";/')\
> tag.h

View File

@@ -0,0 +1,453 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/************************************************************************
* *
* BIF NODES *
* *
************************************************************************/
struct bfnd {
int variant, id; /* variant and identification tags */
int index; /* used in the strongly con. comp. routines */
int g_line, l_line; /* global & local line numbers */
int decl_specs; /* declaration specifiers stored with
bif nodes: static, extern, friend, and inline */
PTR_LABEL label;
PTR_BFND thread;
PTR_FNAME filename; /* point to the source filename */
PTR_BFND control_parent; /* current bif node in on the control blob list
of control_parent */
PTR_PLNK prop_list; /* property list */
union bfnd_union {
struct {
PTR_BFND bf_ptr1; /* used by the parser and should */
PTR_CMNT cmnt_ptr; /* to attach comments */
PTR_SYMB symbol; /* a symbol table entry */
PTR_LLND ll_ptr1; /* an L-value expr tree */
PTR_LLND ll_ptr2; /* an R-value expr tree */
PTR_LLND ll_ptr3; /* a spare expr tree (see below) */
PTR_LABEL lbl_ptr; /* used by do */
PTR_BLOB bl_ptr1; /* a list of control dep subnodes */
PTR_BLOB bl_ptr2; /* another such list (for if stmt) */
PTR_DEP dep_ptr1; /* a list of dependences nodes */
PTR_DEP dep_ptr2; /* another list of dep nodes */
PTR_SETS sets; /* a list of sets like GEN, KILL etc */
} Template;
struct {
PTR_BFND proc_list; /* a list of procedures in this file */
PTR_CMNT cmnt_ptr;
PTR_SYMB list; /* list of global const and type */
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB control; /* used for list of procedures */
PTR_BLOB null_6;
PTR_DEP null_7;
PTR_DEP null_8;
PTR_SETS null_9;
} Global;
struct {
PTR_BFND next_prog;
PTR_CMNT cmnt_ptr;
PTR_SYMB prog_symb;
PTR_LLND null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control;
PTR_BLOB format_group;
PTR_DEP null_5;
PTR_DEP null_6;
PTR_SETS null_7;
} program;
struct {
PTR_BFND next_proc;
PTR_CMNT cmnt_ptr;
PTR_SYMB proc_symb;
PTR_LLND null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control;
PTR_BLOB format_group;
PTR_DEP null_5;
PTR_DEP null_6;
PTR_SETS null_7;
} procedure;
struct {
PTR_BFND next_func;
PTR_CMNT cmnt_ptr;
PTR_SYMB func_symb;
PTR_LLND ftype;
PTR_LLND null_1;
PTR_LLND null_2;
PTR_LABEL null_3;
PTR_BLOB control;
PTR_BLOB format_group;
PTR_DEP null_4;
PTR_DEP null_5;
PTR_SETS null_6;
} function;
struct {
PTR_BFND next_bif;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB control;
PTR_BLOB null_6;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} basic_block;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB null_6;
PTR_BLOB null_7;
PTR_DEP null_8;
PTR_DEP null_9;
PTR_SETS sets;
} control_end;
struct {
PTR_BFND true_branch;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control_true;
PTR_BLOB control_false;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} if_node;
struct {
PTR_BFND true_branch;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control_true;
PTR_BLOB control_false;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} where_node;
struct {
PTR_BFND loop_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB control;
PTR_BLOB null_6;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} loop_node;
struct {
PTR_BFND for_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB control_var;
PTR_LLND range;
PTR_LLND increment;
PTR_LLND where_cond;
PTR_LABEL doend;
PTR_BLOB control;
PTR_BLOB null_1;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} for_node;
struct {
PTR_BFND forall_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB control_var;
PTR_LLND range;
PTR_LLND increment;
PTR_LLND where_cond;
PTR_LABEL null_1;
PTR_BLOB control;
PTR_BLOB null_2;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} forall_nd;
struct {
PTR_BFND alldo_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB control_var;
PTR_LLND range;
PTR_LLND increment;
PTR_LLND null_0;
PTR_LABEL null_1;
PTR_BLOB control;
PTR_BLOB null_2;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} alldo_nd;
struct {
PTR_BFND while_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control;
PTR_BLOB null_5;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} while_node;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control_true;
PTR_BLOB control_false;
PTR_DEP null_5;
PTR_DEP null_6;
PTR_SETS sets;
} exit_node;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND l_value;
PTR_LLND r_value;
PTR_LLND null_2;
PTR_LABEL null_3;
PTR_BLOB null_4;
PTR_BLOB null_5;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} assign;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND l_value;
PTR_LLND r_value;
PTR_LLND null_2;
PTR_LABEL null_3;
PTR_BLOB null_4;
PTR_BLOB null_5;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} identify;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND spec_string;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB null_5;
PTR_BLOB null_6;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} format;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND format; /* used by blaze only */
PTR_LLND expr_list;
PTR_LLND control_list; /* used by cedar fortan only */
PTR_LABEL null_2;
PTR_BLOB null_3;
PTR_BLOB null_4;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} write_stat;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND format; /* used by blaze only */
PTR_LLND var_list;
PTR_LLND control_list; /* used by cedar fortran */
PTR_LABEL null_2;
PTR_BLOB null_3;
PTR_BLOB null_4;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} read_stat;
} entry;
};
#define __BIF_DEF__

View File

@@ -0,0 +1,77 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Simple compatibility module for pC++/Sage (phb) */
/* include it only once... */
#ifndef COMPATIBLE_H
#define COMPATIBLE_H
#include "sage.h"
#ifndef _NEEDALLOCAH_
# if (defined(__ksr__) || (defined(SAGE_solaris2) && !defined(__GNUC__)))
# define _NEEDALLOCAH_
# endif
#endif
#ifdef __hpux
# ifndef SYS5
# define SYS5 1
# endif
#endif
#ifdef _SEQUENT_
# define NO_u_short
# ifndef SYS5
# define SYS5 1
# endif
#endif
#ifdef sparc
# if (defined(__svr4__) || defined(SAGE_solaris2)) /* Solaris 2!!! YUK! */
# ifndef SYS5
# define SYS5 1
# endif
# endif
#endif
#ifndef SYS5
# define BSD 1
#endif
#ifdef _NEEDCALLOC_
# ifdef CALLOC_DEF
# undef CALLOC_DEF
# endif
# ifndef CALLOC_DEF
# ifdef __GNUC__
extern void *calloc();
# define CALLOC_DEF
# endif
# endif
# ifndef CALLOC_DEF
# ifdef __ksr__
extern void *calloc();
# define CALLOC_DEF
# endif
# endif
# ifndef CALLOC_DEF
# ifdef cray
# include "fixcray.h"
# endif
# endif
# ifndef CALLOC_DEF
extern char *calloc();
# endif
#endif
#endif

View File

@@ -0,0 +1,187 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* db.h -- contains all definitions needed by the data base *
* management routines *
* *
****************************************************************/
#ifndef CallSiteE
#ifndef FILE
# include <stdio.h>
#endif
#ifndef DEP_DIR
# include "defs.h"
#endif
#ifndef __BIF_DEF__
# include "bif.h"
#endif
#ifndef __LL_DEF__
# include "ll.h"
#endif
#ifndef __SYMB_DEF__
# include "symb.h"
#endif
#ifndef MAX_LP_DEPTH
# include "sets.h"
#endif
/*
* Definitions for inquiring the information about variables
*/
#define Use 1 /* for inquiring USE info */
#define Mod 2 /* for inquiring MOD info */
#define UseMod 3 /* for inquiring both USE and MOD info */
#define Alias 4 /* for inquiring ALIAS information */
/*
* Definitions for inquiring the information about procedures
* This previous four definitions are shared here
*/
#define ProcDef 5 /* procedure's definition */
#define CallSite 6 /* list of the call sites of this procedure */
#define CallSiteE 7 /* the call sites extended with loop info */
#define ExternProc 8 /* list of external procedures references */
/*
* Definitions for inquiring the information about files
*/
#define IncludeFile 1 /* list of files included by this file */
#define GlobalVarRef 2 /* list of global variables referenced */
#define ExternProcRef 3 /* list of external procedure referenced */
/*
* Definitions for inquiring the information about project
*/
#define ProjFiles 1 /* get a list of .dep files make up the project */
#define ProjNames 2 /* list of all procedures in the project */
#define UnsolvRef 3 /* list of unsolved global references */
#define ProjGlobals 4 /* list of all global declarations */
#define ProjSrc 5 /* list of source files (e.g. .h, .c and .f) */
/*
* Definition for blobl tree
*/
#define IsLnk 0 /* this blob1 node is only a link */
#define IsObj 1 /* this blob1 node is a real object */
/*****************************
* Some data structures used *
******************************/
typedef struct proj_obj *PTR_PROJ;
typedef struct file_obj *PTR_FILE;
typedef struct blob1 *PTR_BLOB1;
typedef struct obj_info *PTR_INFO;
typedef char *(*PCF)();
/*
* structure for the whole project
*/
struct proj_obj {
char *proj_name; /* project filename */
PTR_BLOB file_chain; /* list of all opened files in the project */
PTR_BLOB *hash_tbl; /* hash table of procedures declared */
PTR_PROJ next; /* point to next project */
};
/*
* Structure for each files in the project
*/
struct file_obj {
char *filename; /* filename of the .dep file */
FILE *fid; /* its file id */
int lang; /* type of language */
PTR_HASH *hash_tbl; /* hash table for this file obj */
PTR_BFND global_bfnd; /* global BIF node for this file */
PTR_BFND head_bfnd, /* head of BIF node for this file */
cur_bfnd;
PTR_LLND head_llnd, /* head of low level node */
cur_llnd;
PTR_SYMB head_symb, /* head of symbol node */
cur_symb;
PTR_TYPE head_type, /* head of type node */
cur_type;
PTR_BLOB head_blob, /* head of blob node */
cur_blob;
PTR_DEP head_dep, /* head of dependence node */
cur_dep;
PTR_LABEL head_lab, /* head of label node */
cur_lab;
PTR_CMNT head_cmnt, /* head of comment node */
cur_cmnt;
PTR_FNAME head_file;
int num_blobs, /* no. of blob nodes */
num_bfnds, /* no. of bif nodes */
num_llnds, /* no. of ll nodes */
num_symbs, /* no. of symb nodes */
num_label, /* no. of label nodes */
num_types, /* no. of type nodes */
num_files, /* no. of filename nodes */
num_dep, /* no. of dependence nodes */
num_cmnt; /* no. of comment nodes */
};
/*
* A cons obj structure
*/
struct blob1{
char tag; /* type of this blob node */
char *ref; /* pointer to the objects of interest */
PTR_BLOB1 next;/* point to next cons obj */
};
/*
* Structure for information objects
*/
struct obj_info {
char *filename; /* filename of the reference */
int g_line; /* absolute line number in the file */
int l_line; /* relative line number to the object */
char *source; /* source line */
};
/*
* Structure for property list
*/
struct prop_link {
char *prop_name; /* property name */
char *prop_val; /* property value */
PTR_PLNK next; /* point to the next property list */
};
/*
* declaration of data base routines
*/
PTR_PROJ OpenProj();
PTR_PROJ SelectProj();
PTR_BLOB1 GetProjInfo();
PTR_BLOB1 GetProcInfo();
PTR_BLOB1 GetTypeInfo();
PTR_BLOB1 GetTypeDef ();
PTR_BLOB1 GetVarInfo ();
PTR_BLOB1 GetDepInfo ();
int AddToProj();
int DelFromProj();
#endif /* CallSiteE */

View File

@@ -0,0 +1,190 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* db.h -- contains all definitions needed by the data base *
* management routines *
* *
****************************************************************/
#ifndef CallSiteE
#ifndef FILE
# include <stdio.h>
#endif
#ifndef DEP_DIR
# include "defs.h"
#endif
#ifndef __BIF_DEF__
# include "bif.h"
#endif
#ifndef __LL_DEF__
# include "ll.h"
#endif
#ifndef __SYMB_DEF__
# include "symb.h"
#endif
#ifndef MAX_LP_DEPTH
# include "sets.h"
#endif
/*
* Definitions for inquiring the information about variables
*/
#define Use 1 /* for inquiring USE info */
#define Mod 2 /* for inquiring MOD info */
#define UseMod 3 /* for inquiring both USE and MOD info */
#define Alias 4 /* for inquiring ALIAS information */
/*
* Definitions for inquiring the information about procedures
* This previous four definitions are shared here
*/
#define ProcDef 5 /* procedure's definition */
#define CallSite 6 /* list of the call sites of this procedure */
#define CallSiteE 7 /* the call sites extended with loop info */
#define ExternProc 8 /* list of external procedures references */
/*
* Definitions for inquiring the information about files
*/
#define IncludeFile 1 /* list of files included by this file */
#define GlobalVarRef 2 /* list of global variables referenced */
#define ExternProcRef 3 /* list of external procedure referenced */
/*
* Definitions for inquiring the information about project
*/
#define ProjFiles 1 /* get a list of .dep files make up the project */
#define ProjNames 2 /* list of all procedures in the project */
#define UnsolvRef 3 /* list of unsolved global references */
#define ProjGlobals 4 /* list of all global declarations */
#define ProjSrc 5 /* list of source files (e.g. .h, .c and .f) */
/*
* Definition for blobl tree
*/
#define IsLnk 0 /* this blob1 node is only a link */
#define IsObj 1 /* this blob1 node is a real object */
/*****************************
* Some data structures used *
******************************/
typedef struct proj_obj *PTR_PROJ;
typedef struct file_obj *PTR_FILE;
typedef struct blob1 *PTR_BLOB1;
typedef struct obj_info *PTR_INFO;
/*
* structure for the whole project
*/
struct proj_obj {
char *proj_name; /* project filename */
PTR_BLOB file_chain; /* list of all opened files in the project */
PTR_BLOB *hash_tbl; /* hash table of procedures declared */
PTR_PROJ next; /* point to next project */
};
/*
* Structure for each files in the project
*/
struct file_obj {
char *filename; /* filename of the .dep file */
FILE *fid; /* its file id */
int lang; /* type of language */
PTR_HASH *hash_tbl; /* hash table for this file obj */
PTR_BFND global_bfnd; /* global BIF node for this file */
PTR_BFND head_bfnd, /* head of BIF node for this file */
cur_bfnd;
PTR_LLND head_llnd, /* head of low level node */
cur_llnd;
PTR_SYMB head_symb, /* head of symbol node */
cur_symb;
PTR_TYPE head_type, /* head of type node */
cur_type;
PTR_BLOB head_blob, /* head of blob node */
cur_blob;
PTR_DEP head_dep, /* head of dependence node */
cur_dep;
PTR_LABEL head_lab, /* head of label node */
cur_lab;
PTR_CMNT head_cmnt, /* head of comment node */
cur_cmnt;
PTR_FNAME head_file;
int num_blobs, /* no. of blob nodes */
num_bfnds, /* no. of bif nodes */
num_llnds, /* no. of ll nodes */
num_symbs, /* no. of symb nodes */
num_label, /* no. of label nodes */
num_types, /* no. of type nodes */
num_files, /* no. of filename nodes */
num_dep, /* no. of dependence nodes */
num_cmnt; /* no. of comment nodes */
};
/*
* A cons obj structure
*/
struct blob1{
char tag; /* type of this blob node */
char *ref; /* pointer to the objects of interest */
PTR_BLOB1 next;/* point to next cons obj */
};
/*
* Structure for information objects
*/
struct obj_info {
char *filename; /* filename of the reference */
int g_line; /* absolute line number in the file */
int l_line; /* relative line number to the object */
char *source; /* source line */
};
/*
* Structure for property list
*/
struct prop_link {
char *prop_name; /* property name */
char *prop_val; /* property value */
PTR_PLNK next; /* point to the next property list */
};
/*
* declaration of data base routines
*/
typedef char *(*PCF)();
extern PCF UnparseBfnd[];
extern PCF UnparseLlnd[];
extern PCF UnparseSymb[];
extern PCF UnparseType[];
PTR_PROJ OpenProj();
PTR_BLOB1 GetProjInfo();
PTR_BLOB1 GetProcInfo();
PTR_BLOB1 GetTypeInfo();
PTR_BLOB1 GetTypeDef ();
PTR_BLOB1 GetVarInfo ();
PTR_BLOB1 GetDepInfo ();
#endif CallSiteE

View File

@@ -0,0 +1,56 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* label type codes */
#define LABUNKNOWN 0
#define LABEXEC 1
#define LABFORMAT 2
#define LABOTHER 3
/* parser states */
#define OUTSIDE 0
#define INSIDE 1
#define INDCL 2
#define INDATA 3
#define INEXEC 4
/* nesting states */
#define IN_OUTSIDE 4
#define IN_MODULE 3
#define IN_PROC 2
#define IN_INTERNAL_PROC 1
/* Control stack type */
#define CTLIF 0
#define CTLELSEIF 1
#define CTLELSE 2
#define CTLDO 3
#define CTLALLDO 4
/* name classes -- vclass values */
#define CLUNKNOWN 0
#define CLPARAM 1
#define CLVAR 2
#define CLENTRY 3
#define CLMAIN 4
#define CLBLOCK 5
#define CLPROC 6
#define CLNAMELIST 7
/* These are tobe used in decl_stat field of symbol */
#define SOFT 0 /* Canbe Redeclared */
#define HARD 1 /* Not allowed to redeclre */
/* Attributes (used in attr) */
#define ATT_CLUSTER 0
#define ATT_GLOBAL 1
#define SECTION_SUBSCRIPT 1

View File

@@ -0,0 +1,131 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#include "tag"
#define hashMax 1007 /*max hash table size */
/**************** variant tags for dependence nodes *********************/
#define DEP_DIR 0200 /* direction vector information only */
#define DEP_DIST 0000 /* direction and distance vector */
#define NO_ALL_ST_DEP 0010 /* no all statiionary dir for this pair of statements */
#define DEP_CROSS 0100 /* dependence MUST wrap around loop */
#define DEP_UNCROSS 0000 /* dependence MAY not wrap around loop */
#define DEP_FLOW 0
#define DEP_ANTI 1
#define DEP_OUTPUT 2
/************************************************************************/
typedef struct bfnd *PTR_BFND;
typedef struct llnd *PTR_LLND;
typedef struct blob *PTR_BLOB;
//typedef struct string *PTR_STRING;
typedef struct symb *PTR_SYMB;
typedef struct hash_entry *PTR_HASH;
typedef struct data_type *PTR_TYPE;
typedef struct dep *PTR_DEP;
typedef struct sets *PTR_SETS;
typedef struct def *PTR_DEF;
typedef struct deflst *PTR_DEFLST;
typedef struct Label *PTR_LABEL;
typedef struct cmnt *PTR_CMNT;
typedef struct file_name *PTR_FNAME;
typedef struct prop_link *PTR_PLNK;
struct blob {
PTR_BFND ref;
PTR_BLOB next;
};
struct Label {
int id; /* identification tag */
PTR_BFND scope; /* level at which ident is declared */
PTR_BLOB ud_chain; /* use-definition chain */
unsigned labused :1; /* if it's been referenced */
unsigned labinacc:1; /* illegal use of this label */
unsigned labdefined:1; /* if this label been defined */
unsigned labtype:2; /* UNKNOWN, EXEC, FORMAT, and OTHER */
long stateno; /* statement label */
PTR_LABEL next; /* point to next label entry */
PTR_BFND statbody; /* point to body of statement */
PTR_SYMB label_name; /* label name for VPC++ */
/* The variant will be LABEL_NAME */
};
struct Ctlframe {
int ctltype; /* type of control frame */
int level; /* block level */
int dolabel; /* DO loop's end label */
PTR_SYMB donamep; /* DO loop's control variable name */
PTR_SYMB block_list; /* start of local decl */
PTR_SYMB block_end; /* end of local decl */
PTR_BFND loop_hedr; /* save the current loop header */
PTR_BFND header; /* header of the block */
PTR_BFND topif; /* keep track of if header */
struct Ctlframe *next; /* thread */
};
struct cmnt {
int id;
int type;
int counter; /* New Added for VPC++ */
char* string;
struct cmnt *next;
struct cmnt *thread;
};
struct file_name { /* for keep source filenames in the project */
int id;
char *name;
PTR_FNAME next;
};
#define NO 0
#define YES 1
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
# define TRUE 1
#endif
#define BOOL int
#define EOL -1
#define SAME_GROUP 0
#define NEW_GROUP1 1
#define NEW_GROUP2 2
#define FULL 0
#define HALF 1
#define DEFINITE 1
#define DEFINITE_SAME 7
#define DEFINITE_DIFFER 0
#define FIRST_LARGER 2
#define SECOND_LARGER 4
/*
* Tags for various languages
*/
#define ForSrc 0 /* This is a Fortran program */
#define CSrc 1 /* This is a C program */
#define BlaSrc 2 /* This is a Blaze program */
#define BFNULL (PTR_BFND) 0
#define LLNULL (PTR_LLND) 0
#define BLNULL (PTR_BLOB) 0
#define SMNULL (PTR_SYMB) 0
#define HSNULL (PTR_HASH) 0
#define TYNULL (PTR_TYPE) 0
#define LBNULL (PTR_LABEL)0
#define CMNULL (PTR_CMNT)0

View File

@@ -0,0 +1,39 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/************************************************************************/
/* */
/* DEPENDENCE NODES */
/* */
/************************************************************************/
# define MAX_LP_DEPTH 10
# define MAX_DEP (MAX_LP_DEPTH+1)
struct ref { /* reference of a variable */
PTR_BFND stmt; /* statement containing reference */
PTR_LLND refer; /* pointer to the actual reference */
} ;
struct dep { /* data dependencies */
int id; /* identification for reading/writing */
PTR_DEP thread;
char type; /* flow-, output-, or anti-dependence */
char direct[MAX_DEP]; /* direction/distance vector */
PTR_SYMB symbol; /* symbol table entry */
struct ref from; /* tail of dependence */
struct ref to; /* head of dependence */
PTR_BFND from_hook, to_hook; /* bifs where dep is hooked in */
PTR_DEP from_fwd, from_back; /* list of dependencies going to tail */
PTR_DEP to_fwd, to_back; /* list of dependencies going to head */
} ;

View File

@@ -0,0 +1,173 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* Structure of the dep files generated by parsers *
* *
****************************************************************/
/*#include <sys/types.h>
*/
#ifndef MAX_DEP
#include dep.h
#endif
#include "compatible.h"
/*#ifdef NO_u_short
*#ifndef DEF_USHORT
*#define DEF_USHORT 1
*/
typedef unsigned int u_shrt;
/*#endif
#endif
*/
#define D_MAGIC 0420
struct preamble { /* structure of preamble of dep file */
u_shrt ptrsize; /* bit length of pointers (32 or 64) phb */
u_shrt language; /* source language type */
u_shrt num_blobs; /* number of blob nodes */
u_shrt num_bfnds; /* number of bif nodes */
u_shrt num_llnds; /* number of low level nodes */
u_shrt num_symbs; /* number of symbol nodes */
u_shrt num_types; /* number of type nodes */
u_shrt num_label; /* number of label nodes */
u_shrt num_dep; /* number of dep nodes */
u_shrt num_cmnts; /* number of comment nodes */
u_shrt num_files; /* number of filename nodes */
u_shrt global_bfnd; /* id of the global bif node */
};
struct locs {
long llnd; /* offset of llnd in the dep file */
long symb; /* symbol nodes */
long type; /* type nodes */
long labs; /* label nodes */
long cmnt; /* comment nodes */
long file; /* filename nodes */
long deps; /* dep nodes */
long strs; /* string tables */
};
struct bf_nd { /* structure of bif node in dep file */
u_shrt id; /* id of this bif node */
u_shrt variant; /* type of this bif node */
u_shrt cp; /* control parent of this node */
u_shrt bf_ptr1;
u_shrt cmnt_ptr;
u_shrt symbol;
u_shrt ll_ptr1;
u_shrt ll_ptr2;
u_shrt ll_ptr3;
u_shrt dep_ptr1;
u_shrt dep_ptr2;
u_shrt label;
u_shrt lbl_ptr;
u_shrt g_line;
u_shrt l_line;
u_shrt decl_specs;
u_shrt filename;
};
struct ll_nd {
u_shrt id;
u_shrt variant;
u_shrt type;
};
struct sym_nd {
u_shrt id;
u_shrt variant;
u_shrt type;
u_shrt attr;
u_shrt next;
u_shrt scope;
u_shrt ident;
};
struct typ_nd {
u_shrt id;
u_shrt variant;
u_shrt name;
};
struct lab_nd {
u_shrt id;
u_shrt labtype;
u_shrt body;
u_shrt name;
long stat_no;
};
struct fil_nd {
u_shrt id;
u_shrt name;
};
struct cmt_nd {
u_shrt id;
u_shrt type;
u_shrt next;
u_shrt str;
};
struct dep_nd {
u_shrt id;
u_shrt type;
u_shrt sym;
u_shrt from_stmt;
u_shrt from_ref;
u_shrt to_stmt;
u_shrt to_ref;
u_shrt from_hook;
u_shrt to_hook;
u_shrt from_fwd;
u_shrt from_back;
u_shrt to_fwd;
u_shrt to_back;
u_shrt dire[MAX_DEP];
};

View File

@@ -0,0 +1,147 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* Structure of the dep files generated by parsers *
* *
****************************************************************/
/*#include <sys/types.h>
*/
#ifndef MAX_DEP
#include dep.h
#endif
#include "compatible.h"
/*#ifdef NO_u_short
*#ifndef DEF_USHORT
*#define DEF_USHORT 1
*/
/*typedef unsigned int u_short;*/
/*#endif
#endif
*/
#define D_MAGIC 0420
struct preamble { /* structure of preamble of dep file */
u_short ptrsize; /* bit length of pointers (32 or 64) phb */
u_short language; /* source language type */
u_short num_blobs; /* number of blob nodes */
u_short num_bfnds; /* number of bif nodes */
u_short num_llnds; /* number of low level nodes */
u_short num_symbs; /* number of symbol nodes */
u_short num_types; /* number of type nodes */
u_short num_label; /* number of label nodes */
u_short num_dep; /* number of dep nodes */
u_short num_cmnts; /* number of comment nodes */
u_short num_files; /* number of filename nodes */
u_short global_bfnd; /* id of the global bif node */
};
struct locs {
long llnd; /* offset of llnd in the dep file */
long symb; /* symbol nodes */
long type; /* type nodes */
long labs; /* label nodes */
long cmnt; /* comment nodes */
long file; /* filename nodes */
long deps; /* dep nodes */
long strs; /* string tables */
};
struct bf_nd { /* structure of bif node in dep file */
u_short id; /* id of this bif node */
u_short variant; /* type of this bif node */
u_short cp; /* control parent of this node */
u_short bf_ptr1;
u_short cmnt_ptr;
u_short symbol;
u_short ll_ptr1;
u_short ll_ptr2;
u_short ll_ptr3;
u_short dep_ptr1;
u_short dep_ptr2;
u_short label;
u_short lbl_ptr;
u_short g_line;
u_short l_line;
u_short decl_specs;
u_short filename;
};
struct ll_nd {
u_short id;
u_short variant;
u_short type;
};
struct sym_nd {
u_short id;
u_short variant;
u_short type;
u_short attr;
u_short next;
u_short scope;
u_short ident;
};
struct typ_nd {
u_short id;
u_short variant;
u_short name;
};
struct lab_nd {
u_short id;
u_short labtype;
u_short body;
u_short name;
long stat_no;
};
struct fil_nd {
u_short id;
u_short name;
};
struct cmt_nd {
u_short id;
u_short type;
u_short next;
u_short str;
};
struct dep_nd {
u_short id;
u_short type;
u_short sym;
u_short from_stmt;
u_short from_ref;
u_short to_stmt;
u_short to_ref;
u_short from_hook;
u_short to_hook;
u_short from_fwd;
u_short from_back;
u_short to_fwd;
u_short to_back;
u_short dire[MAX_DEP];
};

View File

@@ -0,0 +1,79 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
struct ELIST_rec
{
int type; /* 0 for int, 1 for string, 2 for ELIST */
char * car;
struct ELIST_rec * cdr;
};
#define TEINT 0
#define TESTRING 1
#define TELIST 2
typedef struct ELIST_rec * ELIST;
/*
the following two defines are pretty bad. But have been done so as to
avoid globals which look like global variables. For these to go away
libdb.a has to change.
*/
#define currentFile cur_file
#define currentProject cur_proj
extern PTR_FILE currentFile; /* actually cur_file */
extern PTR_PROJ currentProject; /* actually cur_proj */
#ifndef TRUE
# define TRUE 1
#endif
#ifndef FALSE
# define FALSE 0
#endif
/* functions that are used within the cbaselib */
ELIST ENew( /* etype */ );
void EFree( /* e */ );
ELIST ECopy( /* e */ );
ELIST ECpCar( /* e */ );
ELIST ECpCdr( /* e */ );
ELIST EAppend( /* e1, e2 */ );
ELIST EString( /* s */ );
ELIST ENumber( /* n */ );
ELIST ECons( /* e1, e2 */ );
int ENumP(/*e*/);
int EStringP(/*e*/);
int EListP(/*e*/);
#define ECar(x) ((x)->car)
#define ECdr(x) ((x)->cdr)
#define ECaar(x) (ECar((ELIST)ECar(x)))
#define ECdar(x) (ECdr((ELIST)ECar(x)))
#define ECadr(x) (ECar(ECdr(x)))
#define ECddr(x) (ECdr(ECdr(x)))
#define ECaaar(x) (ECar((ELIST)ECaar(x)))
#define ECdaar(x) (ECdr((ELIST)ECaar(x)))
#define ECadar(x) (ECar(ECdar(x)))
#define ECaadr(x) (ECar((ELIST)ECadr(x)))
#define ECaddr(x) (ECar(ECddr(x)))
#define ECddar(x) (ECdr(ECdar(x)))
#define ECdadr(x) (ECdr((ELIST)ECadr(x)))
#define ECdddr(x) (ECdr(ECddr(x)))
char *Allocate(/* size */);
PTR_BFND FindCurrBifNode( /* id */ );
PTR_LLND FindLLNode( /* id */ );
PTR_LABEL FindLabNode(/* id */);
PTR_SYMB FindSymbolNode(/* id */);
PTR_TYPE FindTypeNode(/* id */);
PTR_FILE FindFileObj(/* filename */);
PTR_DEP FindDepNode(/* id */);
PTR_BFND MakeDeclStmt(/* s */);
int VarId(/* id */);

View File

@@ -0,0 +1,27 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* The following 16 different options are used to
declare variables are as follows:
( stored in symptr->attr ) */
#define ALLOCATABLE_BIT 1
#define DIMENSION_BIT 2
#define EXTERNAL_BIT 8
#define IN_BIT 16
#define INOUT_BIT 32
#define INTRINSIC_BIT 64
#define OPTIONAL_BIT 128
#define OUT_BIT 256
#define PARAMETER_BIT 512
#define POINTER_BIT 1024
#define PRIVATE_BIT 2048
#define PUBLIC_BIT 4096
#define SAVE_BIT 8192
#define SEQUENCE_BIT 16384
#define RECURSIVE_BIT 32768
#define TARGET_BIT 65536
#define PROCESSORS_BIT 131072

View File

@@ -0,0 +1,10 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
# ifdef CRAY-C90
extern void *calloc();
# define CALLOC_DEF
# endif

View File

@@ -0,0 +1,10 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* FORTRAN M additions */
#define PLAIN 0
#define LCTN 1
#define SUBM 2

View File

@@ -0,0 +1,2 @@
/* don't modify this file directly, it is made by a clever 'sed'
script using "tag". Run make tag.h to regenerate this file */

View File

@@ -0,0 +1,18 @@
#pragma once
#ifdef _WIN32
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#ifndef DBG_NEW
#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#define new DBG_NEW
#endif
#endif
#endif
#endif

View File

@@ -0,0 +1,34 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#define BIFNDE 0
#define DEPNDE 1
#define LLNDE 2
#define SYMNDE 3
#define LISNDE 4
#define BIFLISNDE 5
#define UNUSED -1
#define NUMLIS 100
#define DEPARC 1
#define MAXGRNODE 50
typedef struct lis_node *LIST;
struct lis_node {
int variant; /* one of BIFNDE, BIFLISNDE, DEPNDE, LLNDE, SYMNDE, LISNDE */
union list_union {
PTR_BFND bfnd;
PTR_BLOB biflis;
PTR_DEP dep;
PTR_LLND llnd;
PTR_SYMB symb;
LIST lisp;
} entry;
LIST next;
} ;

View File

@@ -0,0 +1,163 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/************************************************************************/
/* */
/* low level nodes */
/* */
/************************************************************************/
struct llnd {
int variant, id; /* variant and identification tags */
PTR_LLND thread; /* connects nodes together by allocation order */
PTR_TYPE type; /* to be modified */
union llnd_union {
char *string_val;/* for integers floats doubles and strings*/
int ival;
double dval; /* for floats and doubles */
char cval;
int bval; /* for booleans */
struct { /* for range, upper, and lower */
PTR_SYMB symbol;
int dim;
} array_op;
struct {
PTR_SYMB symbol;
PTR_LLND ll_ptr1;
PTR_LLND ll_ptr2;
} Template;
struct { /* for complexes and double complexes */
PTR_SYMB null;
PTR_LLND real_part;
PTR_LLND imag_part;
} complex;
struct {
PTR_LABEL lab_ptr;
PTR_LLND null_1;
PTR_LLND next;
} label_list;
struct {
PTR_SYMB null_1;
PTR_LLND item;
PTR_LLND next;
} list;
struct {
PTR_SYMB null_1;
PTR_LLND size;
PTR_LLND list;
} cons;
struct {
PTR_SYMB control_var;
PTR_LLND array;
PTR_LLND range;
} access;
struct {
PTR_SYMB control_var;
PTR_LLND array;
PTR_LLND range;
} ioaccess;
struct {
PTR_SYMB symbol;
PTR_LLND null_1;
PTR_LLND null_2;
} const_ref;
struct {
PTR_SYMB symbol;
PTR_LLND null_1;
PTR_LLND null_2;
} var_ref;
struct {
PTR_SYMB symbol;
PTR_LLND index;
PTR_LLND array_elt;
} array_ref;
struct {
PTR_SYMB null_1;
PTR_LLND access;
PTR_LLND index;
} access_ref;
struct {
PTR_SYMB null_1;
PTR_LLND cons;
PTR_LLND index;
} cons_ref;
struct {
PTR_SYMB symbol;
PTR_LLND null_1;
PTR_LLND rec_field; /* for record fields */
} record_ref;
struct {
PTR_SYMB symbol;
PTR_LLND param_list;
PTR_LLND next_call;
} proc;
struct {
PTR_SYMB null_1;
PTR_LLND operand;
PTR_LLND null_2;
} unary_op;
struct {
PTR_SYMB null_1;
PTR_LLND l_operand;
PTR_LLND r_operand;
} binary_op;
struct {
PTR_SYMB null_1;
PTR_LLND ddot;
PTR_LLND stride;
} seq;
struct {
PTR_SYMB null_1;
PTR_LLND sp_label;
PTR_LLND sp_value;
} spec_pair;
} entry;
};
#define __LL_DEF__

View File

@@ -0,0 +1,24 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* Definitions for the property list *
* *
****************************************************************/
#ifndef __PROP__
typedef struct prop_link *PTR_PLNK;
struct prop_link {
char *prop_name; /* property name */
char *prop_val; /* property value */
PTR_PLNK next; /* point to the next property list */
};
#define __PROP__
#endif

View File

@@ -0,0 +1,21 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Standard include file for all sage products (phb) */
/* include it only once... */
#ifndef SAGE_H
#define SAGE_H
#include "version.h"
#include "sageroot.h"
#include "sagearch.h"
#define SAGE_INFO "'finger sage@cica.indiana.edu' for more information.\n \
Send bug reports to sage-bugs@cica.indiana.edu\n"
#endif

View File

@@ -0,0 +1,2 @@
#define SAGE_iris4d
#define SAGE_ARCH iris4d

View File

@@ -0,0 +1 @@
#define SAGEROOT "/usr/people/podd/sage"

View File

@@ -0,0 +1,86 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
# define MAX_LP_DEPTH 10
# define MAX_DEP 11
struct ref { /* reference of a variable */
PTR_BFND stmt; /* statement containing reference */
PTR_LLND refer; /* pointer to the actual reference */
} ;
struct refl {
PTR_SYMB id;
struct ref * node;
struct refl * next;
};
typedef struct refl * PTR_REFL;
/* Added by Mannho from here */
struct aref {
PTR_SYMB id;
PTR_LLND decl_ranges;
PTR_LLND use_bnd0; /* undecidable list because index with variables */
PTR_LLND mod_bnd0;
PTR_LLND use_bnd1; /* decidable with induction variables */
PTR_LLND mod_bnd1;
PTR_LLND use_bnd2; /* decidable with only constants */
PTR_LLND mod_bnd2;
struct aref *next;
};
typedef struct aref *PTR_AREF;
/* Added by Mannho to here */
struct sets {
PTR_REFL gen; /* local attribute */
PTR_REFL in_def; /* inhereted attrib */
PTR_REFL use; /* local attribute */
PTR_REFL in_use; /* inherited attrib */
PTR_REFL out_def; /* synth. attrib */
PTR_REFL out_use; /* synth. attrib */
PTR_AREF arefl; /* array reference */
};
struct dep { /* data dependencies */
int id; /* identification for reading/writing */
PTR_DEP thread;
char type; /* flow-, output-, or anti-dependence */
char direct[MAX_DEP]; /* direction/distance vector */
PTR_SYMB symbol; /* symbol table entry */
struct ref from; /* tail of dependence */
struct ref to; /* head of dependence */
PTR_DEP from_fwd, from_back; /* list of dependencies going to tail */
PTR_DEP to_fwd, to_back; /* list of dependencies going to head */
} ;
#define AR_DIM_MAX 5
#define MAX_NEST_DEPTH 10
struct subscript{
int decidable; /* if 1 then analysis is ok. if 2 then vector range */
/* if it is 0 it is not analizable. */
PTR_LLND parm_exp; /* this is a symbolic expression involving */
/* procedure parameters or common variables. */
int offset; /* This is the constant term in a linear form */
PTR_LLND vector; /* pointer to ddot for vector range */
int coefs[MAX_NEST_DEPTH]; /* if coef[2] = 3 then the second */
/* level nesting induction var has*/
/* coef 3 in this position. */
PTR_LLND coefs_symb[MAX_NEST_DEPTH];
/* if coefs[2] is not null then this is the*/
/* pointer to a symbolic coef. in terms of */
/* procedure parameters, globals or commons*/
};

View File

@@ -0,0 +1,225 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* VPC Version modified by Jenq-Kuen Lee Nov 15 , 1987 */
/* Original Filename : symb.h */
/* New filename : vsymb.h */
/************************************************************************
* *
* hash and symbol table entries *
* *
************************************************************************/
struct hash_entry
{
char *ident;
struct hash_entry *next_entry;
PTR_SYMB id_attr;
};
struct symb {
int variant;
int id;
char *ident;
struct hash_entry *parent;
PTR_SYMB outer; /* pointer to symbol in enclosing block */
PTR_SYMB next_symb; /* pointer to next symbol in same block */
PTR_SYMB id_list; /* used for making lists of ids */
PTR_SYMB thread; /* list of all allocated symbol pointers */
PTR_TYPE type; /* data type of this identifier */
PTR_BFND scope; /* level at which ident is declared */
PTR_BLOB ud_chain; /* use_definition chain */
int attr; /* attributes of the variable */
int dovar; /* set if used as loop's control variable */
int decl; /* field that the parser use in keeping track
of declarations */
union symb_union {
PTR_LLND const_value; /* for constants */
struct { /* for enum-field and record field */
int tag;
int offset;
PTR_SYMB declared_name ; /* used for friend construct */
PTR_SYMB next;
PTR_SYMB base_name; /* name of record or enumerated type */
PTR_LLND restricted_bit ; /* Used by VPC++ for restricted bit number */
} field;
struct { /* for variant fields */
int tag;
int offset;
PTR_SYMB next;
PTR_SYMB base_name;
PTR_LLND variant_list;
} variant_field;
struct { /* for program */
PTR_SYMB symb_list;
PTR_LABEL label_list;
PTR_BFND prog_hedr;
} prog_decl;
struct { /* for PROC */
int seen;
int num_input, num_output, num_io;
PTR_SYMB in_list;
PTR_SYMB out_list;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list;
PTR_BFND proc_hedr;
PTR_LLND call_list;
} proc_decl;
struct { /* for FUNC */
int seen;
int num_input, num_output, num_io;
PTR_SYMB in_list;
PTR_SYMB out_list;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list;
PTR_BFND func_hedr;
PTR_LLND call_list;
} func_decl;
struct { /* for variable declaration */
int local; /* local or input or output or both param*/
int num1, num2, num3 ; /*24.02.03*/
PTR_SYMB next_out; /* for list of output parameters*//*perestanovka c next_out *24.02.03*/
PTR_SYMB next_in; /* for list of input parameters*/
int offset;
int dovar; /* set if being used as DO control var */
} var_decl;
struct {
int seen ;
int num_input, num_output, num_io ;
PTR_SYMB in_list ;
PTR_SYMB out_list ;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list ;
PTR_BFND func_hedr ;
PTR_LLND call_list ;
/* the following information for field */
int tag ;
int offset ;
PTR_SYMB declared_name; /* used for friend construct */
PTR_SYMB next ;
PTR_SYMB base_name ;
/* the following is newly added */
} member_func ; /* New one for VPC */
/* an attempt to unify the data structure */
struct {
int seen ;
int num_input, num_output, num_io ;
PTR_SYMB in_list ;
PTR_SYMB out_list ;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list ;
PTR_BFND func_hedr ;
PTR_LLND call_list ;
/* the following information for field */
int tag ;
int offset ;
PTR_SYMB declared_name; /* used for friend construct */
PTR_SYMB next ;
PTR_SYMB base_name ;
/* the following is newly added */
} Template ; /* New one for VPC */
} entry;
};
struct data_type {
int variant;
int id;
int length;
PTR_TYPE thread; /* list of all allocated symbol pointers */
PTR_SYMB name; /* type name */
PTR_BLOB ud_chain; /* use_definition chain */
union type_union {
/* no entry needed for T_INT, T_CHAR, T_FLOAT, T_DOUBLE, T_VOID T_BOOL */
struct { /* for T_SUBRANGE */
PTR_TYPE base_type; /* = to T_INT, T_CHAR, T_FLOAT */
PTR_LLND lower, upper;
} subrange;
struct { /* for T_ARRAY */
PTR_TYPE base_type; /* New order */
int num_dimensions;
PTR_LLND ranges;
} ar_decl;
struct {
PTR_TYPE base_type ;
int dummy1;
PTR_LLND ranges ;
PTR_LLND kind_len ;
int dummy3;
int dummy4;
int dummy5;
} Template ; /* for T_DESCRIPT,T_ARRAY,T_FUNCTION,T_POINTER */
PTR_TYPE base_type; /* for T_LIST */
struct { /* for T_RECORD or T_ENUM */
int num_fields;
int record_size;
PTR_SYMB first;
} re_decl;
/* the following is added fro VPC */
struct {
PTR_SYMB symbol;
PTR_SYMB scope_symbol;
} derived_type ; /* for type name deriving type */
struct { /* for class T_CLASS T_UNION T_STRUCT */
int num_fields;
int record_size;
PTR_SYMB first;
PTR_BFND original_class ;
PTR_TYPE base_type; /* base type or inherited collection */
} derived_class ;
struct { /* for class T_DERIVED_TEMPLATE */
PTR_SYMB templ_name;
PTR_LLND args; /* argument list for templ */
} templ_decl ;
/* for T_MEMBER_POINTER and */
struct { /* for class T_DERIVED_COLLECTION */
PTR_SYMB collection_name;
PTR_TYPE base_type; /* base type or inherited collection */
} col_decl ;
struct { /* for T_DESCRIPT */
PTR_TYPE base_type ;
int signed_flag ;
PTR_LLND ranges ;
int long_short_flag ;
int mod_flag ;
int storage_flag;
int access_flag;
} descriptive ;
} entry;
};
#define __SYMB_DEF__

View File

@@ -0,0 +1,17 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
typedef struct sblob *PTR_SBLOB;
struct sblob { PTR_SYMB symb;
PTR_SBLOB next;
};
struct sblob syms[100];

View File

@@ -0,0 +1,628 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/******************* 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 DVM_INTERVAL_DIR 128 /* DVM-F */
#define DVM_ENDINTERVAL_DIR 129 /* DVM-F */
#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 ASSLAB_STAT 144
#define LOGIF_NODE 145
#define DVM_DEBUG_DIR 146 /* DVM-F */
#define DVM_ENDDEBUG_DIR 147 /* DVM-F */
#define DVM_TRACEON_DIR 148 /* DVM-F */
#define DVM_TRACEOFF_DIR 149 /* DVM-F */
#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 ELSEWH_NODE 194 /*F95*/
#define STATIC_STMT 195 /*F95*/
#define INCLUDE_LINE 196 /*F95*/
#define PREPROCESSOR_DIR 197 /*C,C++*/
#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 DVM_PARALLEL_ON_DIR 211 /* DVM-F */
#define DVM_SHADOW_START_DIR 212 /* DVM-F */
#define DVM_SHADOW_GROUP_DIR 213 /* DVM-F */
#define DVM_SHADOW_WAIT_DIR 214 /* DVM-F */
#define DVM_REDUCTION_START_DIR 215 /* DVM-F */
#define DVM_REDUCTION_GROUP_DIR 216 /* DVM-F */
#define DVM_REDUCTION_WAIT_DIR 217 /* DVM-F */
#define DVM_DYNAMIC_DIR 218 /* DVM-F */
#define DVM_ALIGN_DIR 219 /* DVM-F */
#define DVM_REALIGN_DIR 220 /* DVM-F */
#define DVM_REALIGN_NEW_DIR 221 /* DVM-F */
#define DVM_REMOTE_ACCESS_DIR 222 /* DVM-F */
#define HPF_INDEPENDENT_DIR 223 /* HPF */
#define DVM_SHADOW_DIR 224 /* DVM-F */
#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 DVM_NEW_VALUE_DIR 247 /* DVM-F */
#define DVM_VAR_DECL 248 /* DVM-F */
#define DVM_POINTER_DIR 249 /* DVM-F */
#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 DVM_DISTRIBUTE_DIR 277 /* DVM-F */
#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 */
#define HPF_TEMPLATE_STAT 296 /* HPF */
#define HPF_ALIGN_STAT 297 /* HPF */
#define HPF_PROCESSORS_STAT 298 /* HPF */
#define DVM_REDISTRIBUTE_DIR 299 /* DVM-F */
#define DVM_TASK_REGION_DIR 605 /* DVM-F */
#define DVM_END_TASK_REGION_DIR 606 /* DVM-F */
#define DVM_ON_DIR 607 /* DVM-F */
#define DVM_END_ON_DIR 608 /* DVM-F */
#define DVM_TASK_DIR 609 /* DVM-F */
#define DVM_MAP_DIR 610 /* DVM-F */
#define DVM_PARALLEL_TASK_DIR 611 /* DVM-F */
#define DVM_INHERIT_DIR 612 /* DVM-F */
#define DVM_INDIRECT_GROUP_DIR 613 /* DVM-F */
#define DVM_INDIRECT_ACCESS_DIR 614 /* DVM-F */
#define DVM_REMOTE_GROUP_DIR 615 /* DVM-F */
#define DVM_RESET_DIR 616 /* DVM-F */
#define DVM_PREFETCH_DIR 617 /* DVM-F */
#define DVM_OWN_DIR 618 /* DVM-F */
#define DVM_HEAP_DIR 619 /* DVM-F */
#define DVM_ASYNCID_DIR 620 /* DVM-F */
#define DVM_ASYNCHRONOUS_DIR 621 /* DVM-F */
#define DVM_ENDASYNCHRONOUS_DIR 622 /* DVM-F */
#define DVM_ASYNCWAIT_DIR 623 /* DVM-F */
#define DVM_F90_DIR 624 /* DVM-F */
#define DVM_BARRIER_DIR 625 /* DVM-F */
#define FORALL_STAT 626 /* F95 */
#define DVM_CONSISTENT_GROUP_DIR 627 /* DVM-F */
#define DVM_CONSISTENT_START_DIR 628 /* DVM-F */
#define DVM_CONSISTENT_WAIT_DIR 629 /* DVM-F */
#define DVM_CONSISTENT_DIR 630 /* DVM-F */
#define DVM_CHECK_DIR 631 /* DVM-F */
#define DVM_IO_MODE_DIR 632 /* DVM-F */
#define DVM_LOCALIZE_DIR 633 /* DVM-F */
#define DVM_SHADOW_ADD_DIR 634 /* DVM-F */
#define DVM_CP_CREATE_DIR 635 /* DVM-F */
#define DVM_CP_LOAD_DIR 636 /* DVM-F */
#define DVM_CP_SAVE_DIR 637 /* DVM-F */
#define DVM_CP_WAIT_DIR 638 /* DVM-F */
#define DVM_EXIT_INTERVAL_DIR 639 /* DVM-F */
#define DVM_TEMPLATE_CREATE_DIR 640 /* DVM-F */
#define DVM_TEMPLATE_DELETE_DIR 641 /* DVM-F */
#define PRIVATE_AR_DECL 642 /* DVM-F */
/***************** 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 STATIC_OP 497 /* F95*/
#define LABEL_ARG 498
#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 */
#define BLOCK_OP 705 /* DVM-F */
#define NEW_SPEC_OP 706 /* DVM-F */
#define REDUCTION_OP 707 /* DVM-F */
#define SHADOW_RENEW_OP 708 /* DVM-F */
#define SHADOW_START_OP 709 /* DVM-F */
#define SHADOW_WAIT_OP 710 /* DVM-F */
#define DIAG_OP 711 /* DVM-F */
#define REMOTE_ACCESS_OP 712 /* DVM-F */
#define TEMPLATE_OP 713 /* DVM-F */
#define PROCESSORS_OP 714 /* DVM-F */
#define DYNAMIC_OP 715 /* DVM-F */
#define ALIGN_OP 716 /* DVM-F */
#define DISTRIBUTE_OP 717 /* DVM-F */
#define SHADOW_OP 718 /* DVM-F */
#define INDIRECT_ACCESS_OP 719 /* DVM-F */
#define ACROSS_OP 720 /* DVM-F */
#define NEW_VALUE_OP 721 /* DVM-F */
#define SHADOW_COMP_OP 722 /* DVM-F */
#define STAGE_OP 723 /* DVM-F */
#define FORALL_OP 724 /* F95 */
#define CONSISTENT_OP 725 /* DVM-F */
#define INTERFACE_OPERATOR 726 /* F95 */
#define INTERFACE_ASSIGNMENT 727 /* F95 */
#define VAR_DECL_90 728 /* F95 */
#define ASSIGNMENT_OP 729 /* F95 */
#define OPERATOR_OP 730 /* F95 */
#define KIND_OP 731 /* F95 */
#define LENGTH_OP 732 /* F95 */
#define RECURSIVE_OP 733 /* F95 */
#define ELEMENTAL_OP 734 /* F95 */
#define PURE_OP 735 /* F95 */
#define DEFINED_OP 736 /* F95 */
#define PARALLEL_OP 737 /*DVM-F */
#define INDIRECT_OP 738 /*DVM-F */
#define DERIVED_OP 739 /*DVM-F */
#define DUMMY_REF 740 /*DVM-F */
#define COMMON_OP 741 /*DVM-F */
#define SHADOW_NAMES_OP 742 /*DVM-F */
/***************** 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 SHADOW_GROUP_NAME 523 /* DVM_F */
#define REDUCTION_GROUP_NAME 524 /* DVM_F */
#define REF_GROUP_NAME 525 /* DVM_F */
#define ASYNC_ID 526 /* DVM_F */
#define CONSISTENT_GROUP_NAME 527 /* DVM_F */
#define NAMELIST_NAME 528
#define COMMON_NAME 529 /* name of a common block (add Kataev N.A., 02.04.2014)*/
#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 T_LONG 584
#define BY_USE 599 /* Fortran 90 */
#define LOCAL 600 /* variable type */
#define INPUT 601
#define OUTPUT 602
#define IO 603
#define PROCESS_NAME 604 /* Fortran M */
#define OMP_PRIVATE 801 /* OpenMP Fortran */
#define OMP_SHARED 802 /* OpenMP Fortran */
#define OMP_FIRSTPRIVATE 803 /* OpenMP Fortran */
#define OMP_LASTPRIVATE 804 /* OpenMP Fortran */
#define OMP_THREADPRIVATE 805 /* OpenMP Fortran */
#define OMP_COPYIN 806 /* OpenMP Fortran */
#define OMP_COPYPRIVATE 807 /* OpenMP Fortran */
#define OMP_DEFAULT 808 /* OpenMP Fortran */
#define OMP_ORDERED 809 /* OpenMP Fortran */
#define OMP_SCHEDULE 810 /* OpenMP Fortran */
#define OMP_REDUCTION 811 /* OpenMP Fortran */
#define OMP_IF 812 /* OpenMP Fortran */
#define OMP_NUM_THREADS 813 /* OpenMP Fortran */
#define OMP_NOWAIT 814 /* OpenMP Fortran */
#define OMP_PARALLEL_DIR 820 /* OpenMP Fortran */
#define OMP_END_PARALLEL_DIR 821 /* OpenMP Fortran */
#define OMP_DO_DIR 822 /* OpenMP Fortran */
#define OMP_END_DO_DIR 823 /* OpenMP Fortran */
#define OMP_SECTIONS_DIR 824 /* OpenMP Fortran */
#define OMP_END_SECTIONS_DIR 825 /* OpenMP Fortran */
#define OMP_SECTION_DIR 826 /* OpenMP Fortran */
#define OMP_SINGLE_DIR 827 /* OpenMP Fortran */
#define OMP_END_SINGLE_DIR 828 /* OpenMP Fortran */
#define OMP_WORKSHARE_DIR 829 /* OpenMP Fortran */
#define OMP_END_WORKSHARE_DIR 830 /* OpenMP Fortran */
#define OMP_PARALLEL_DO_DIR 831 /* OpenMP Fortran */
#define OMP_END_PARALLEL_DO_DIR 832 /* OpenMP Fortran */
#define OMP_PARALLEL_SECTIONS_DIR 833 /* OpenMP Fortran */
#define OMP_END_PARALLEL_SECTIONS_DIR 834 /* OpenMP Fortran */
#define OMP_PARALLEL_WORKSHARE_DIR 835 /* OpenMP Fortran */
#define OMP_END_PARALLEL_WORKSHARE_DIR 836 /* OpenMP Fortran */
#define OMP_MASTER_DIR 837 /* OpenMP Fortran */
#define OMP_END_MASTER_DIR 838 /* OpenMP Fortran */
#define OMP_CRITICAL_DIR 839 /* OpenMP Fortran */
#define OMP_END_CRITICAL_DIR 840 /* OpenMP Fortran */
#define OMP_BARRIER_DIR 841 /* OpenMP Fortran */
#define OMP_ATOMIC_DIR 842 /* OpenMP Fortran */
#define OMP_FLUSH_DIR 843 /* OpenMP Fortran */
#define OMP_ORDERED_DIR 844 /* OpenMP Fortran */
#define OMP_END_ORDERED_DIR 845 /* OpenMP Fortran */
#define RECORD_DECL 846 /* OpenMP Fortran */
#define FUNC_STAT 847 /* OpenMP Fortran */
#define OMP_ONETHREAD_DIR 848 /* OpenMP Fortran */
#define OMP_THREADPRIVATE_DIR 849 /* OpenMP Fortran */
#define OMP_DEFAULT_SECTION_DIR 850 /* OpenMP Fortran */
#define OMP_COLLAPSE 851 /* OpenMP Fortran */
#define ACC_REGION_DIR 900 /* ACC Fortran */
#define ACC_END_REGION_DIR 901 /* ACC Fortran */
#define ACC_CALL_STMT 907 /* ACC Fortran */
#define ACC_KERNEL_HEDR 908 /* ACC Fortran */
#define ACC_GET_ACTUAL_DIR 909 /* ACC Fortran */
#define ACC_ACTUAL_DIR 910 /* ACC Fortran */
#define ACC_CHECKSECTION_DIR 911 /* ACC Fortran */
#define ACC_END_CHECKSECTION_DIR 912 /* ACC Fortran */
#define ACC_ROUTINE_DIR 913 /* ACC Fortran */
#define ACC_DECLARE_DIR 914 /* ACC Fortran */
#define ACC_TIE_OP 930 /* ACC Fortran */
#define ACC_INLOCAL_OP 931 /* ACC Fortran */
#define ACC_INOUT_OP 932 /* ACC Fortran */
#define ACC_IN_OP 933 /* ACC Fortran */
#define ACC_OUT_OP 934 /* ACC Fortran */
#define ACC_LOCAL_OP 935 /* ACC Fortran */
#define ACC_PRIVATE_OP 936 /* ACC Fortran */
#define ACC_DEVICE_OP 937 /* ACC Fortran */
#define ACC_CUDA_OP 938 /* ACC Fortran */
#define ACC_HOST_OP 939 /* ACC Fortran */
#define ACC_GLOBAL_OP 940 /* ACC Fortran */
#define ACC_ATTRIBUTES_OP 941 /* ACC Fortran */
#define ACC_VALUE_OP 942 /* ACC Fortran */
#define ACC_SHARED_OP 943 /* ACC Fortran */
#define ACC_CONSTANT_OP 944 /* ACC Fortran */
#define ACC_USES_OP 945 /* ACC Fortran */
#define ACC_CALL_OP 946 /* ACC Fortran */
#define ACC_CUDA_BLOCK_OP 947 /* ACC Fortran */
#define ACC_TARGETS_OP 948 /* ACC Fortran */
#define ACC_ASYNC_OP 949 /* ACC Fortran */
#define SPF_ANALYSIS_DIR 950 /* SAPFOR */
#define SPF_PARALLEL_DIR 951 /* SAPFOR */
#define SPF_TRANSFORM_DIR 952 /* SAPFOR */
#define SPF_NOINLINE_OP 953 /* SAPFOR */
#define SPF_PARALLEL_REG_DIR 954 /* SAPFOR */
#define SPF_END_PARALLEL_REG_DIR 955 /* SAPFOR */
#define SPF_REGION_NAME 956 /* SAPFOR */
#define SPF_EXPAND_OP 957 /* SAPFOR */
#define SPF_FISSION_OP 958 /* SAPFOR */
#define SPF_SHRINK_OP 959 /* SAPFOR */
#define SPF_CHECKPOINT_DIR 960 /* SAPFOR */
#define SPF_TYPE_OP 961 /* SAPFOR */
#define SPF_VARLIST_OP 962 /* SAPFOR */
#define SPF_EXCEPT_OP 963 /* SAPFOR */
#define SPF_FILES_COUNT_OP 964 /* SAPFOR */
#define SPF_INTERVAL_OP 965 /* SAPFOR */
#define SPF_TIME_OP 966 /* SAPFOR */
#define SPF_ITER_OP 967 /* SAPFOR */
#define SPF_FLEXIBLE_OP 968 /* SAPFOR */
#define SPF_PARAMETER_OP 969 /* SAPFOR */
#define SPF_CODE_COVERAGE_OP 970 /* SAPFOR */
#define SPF_UNROLL_OP 971 /* SAPFOR */
#define SPF_COVER_OP 972 /* SAPFOR */
#define SPF_MERGE_OP 973 /* SAPFOR */
#define SPF_PROCESS_PRIVATE_OP 974 /* SAPFOR */
#define SPF_WEIGHT_OP 975 /* SAPFOR */

View File

@@ -0,0 +1,274 @@
/************************************************************************
* *
* This file contains the documentation of the tags used in various *
* structures of the Sigma database *
* *
************************************************************************/
/******************* variant tags for bif nodes **********************/
#define GLOBAL 100 /* pseudo root node */
#define PROG_HEDR 101 /* main program node */
#define PROC_HEDR 102 /* procedure/function node */
#define BASIC_BLOCK 103 /* start node of a basic block */
#define CONTROL_END 104 /* end of a block */
#define IF_NODE 105 /* an IF statement */
#define ARITHIF_NODE 138 /* an arithmatic IF statement */
#define LOGIF_NODE 145 /* a logical IF statement */
#define LOOP_NODE 106 /* a loop statement */
#define FOR_NODE 107 /* a DO (in fortran) or a for (in C) statement */
#define FORALL_NODE 108 /* a forall (Blaze??) statement */
#define WHILE_NODE 109 /* a while statement */
#define CDOALL_NODE 124 /* a CDOALL statement */
#define SDOALL_NODE 125 /* a SDOALL statement */
#define DOACROSS_NODE 126 /* a DOACROSS statement */
#define CDOACROSS_NODE 127 /* a CDOACROSS statement */
#define EXIT_NODE 110 /* an EXIT statement */
#define GOTO_NODE 139 /* a GOTO statement */
#define ASSGOTO_NODE 140 /* an ASSIGN GOTO statement */
#define COMGOTO_NODE 141 /* a COMPUTED GOGO statement */
#define PAUSE_NODE 142 /* a PAUSE statement */
#define STOP_NODE 143 /* a STOP statement */
#define ASSIGN_STAT 111 /* an assignment statement */
#define M_ASSIGN_STAT 112 /* a multiple assignment statement (Blaze??) */
#define PROC_STAT 113 /* */
#define ASSLAB_STAT 146
#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 BLOB 150
#define SIZES 151
#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
/* NO_OP nodes */
#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 COBREAK_NODE 182 /* New added for VPC */
#define COLOOP_NODE 183 /* New added for VPC */
#define COEXEC_NODE 184 /* New added for VPC */
#define LABEL_STAT 185 /* New added for VPC */
#define PROC_COM 186 /* process common */
#define ATTR_DECL 187 /* attribute declaration */
#define NAMELIST_STAT 188
#define FUTURE_STMT 189 /* NEW added for VPC */
/***************** 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 COMPLEX_VAL 317
#define CONST_REF 306
#define VAR_REF 307
#define ARRAY_REF 308
#define RECORD_REF 309 /* different structure between Blaze and VPC++ */
#define ENUM_REF 310
#define LABEL_REF 318
#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 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 */
/***************** 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 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_COMPLEX 564
#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_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 LOCAL 600 /* variable type */
#define INPUT 601
#define OUTPUT 602
#define IO 603

View File

@@ -0,0 +1,630 @@
/* don't modify this file directly, it is made by a clever 'sed'
script using "tag". Run make tag.h to regenerate this file */
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/******************* variant tags for bif nodes **********************/
tag [ GLOBAL ] = "GLOBAL";
tag [ PROG_HEDR ] = "PROG_HEDR";
tag [ PROC_HEDR ] = "PROC_HEDR";
tag [ BASIC_BLOCK ] = "BASIC_BLOCK";
tag [ CONTROL_END ] = "CONTROL_END";
tag [ IF_NODE ] = "IF_NODE";
tag [ LOOP_NODE ] = "LOOP_NODE";
tag [ FOR_NODE ] = "FOR_NODE";
tag [ FORALL_NODE ] = "FORALL_NODE";
tag [ WHILE_NODE ] = "WHILE_NODE";
tag [ EXIT_NODE ] = "EXIT_NODE";
tag [ ASSIGN_STAT ] = "ASSIGN_STAT";
tag [ M_ASSIGN_STAT ] = "M_ASSIGN_STAT";
tag [ PROC_STAT ] = "PROC_STAT";
tag [ SUM_ACC ] = "SUM_ACC";
tag [ MULT_ACC ] = "MULT_ACC";
tag [ MAX_ACC ] = "MAX_ACC";
tag [ MIN_ACC ] = "MIN_ACC";
tag [ CAT_ACC ] = "CAT_ACC";
tag [ OR_ACC ] = "OR_ACC";
tag [ AND_ACC ] = "AND_ACC";
tag [ READ_STAT ] = "READ_STAT";
tag [ WRITE_STAT ] = "WRITE_STAT";
tag [ OTHERIO_STAT ] = "OTHERIO_STAT";
tag [ CDOALL_NODE ] = "CDOALL_NODE";
tag [ SDOALL_NODE ] = "SDOALL_NODE";
tag [ DOACROSS_NODE ] = "DOACROSS_NODE";
tag [ CDOACROSS_NODE ] = "CDOACROSS_NODE";
tag [ DVM_INTERVAL_DIR ] = "DVM_INTERVAL_DIR";
tag [ DVM_ENDINTERVAL_DIR ] = "DVM_ENDINTERVAL_DIR";
tag [ FUNC_HEDR ] = "FUNC_HEDR";
tag [ WHERE_NODE ] = "WHERE_NODE";
tag [ ALLDO_NODE ] = "ALLDO_NODE";
tag [ IDENTIFY ] = "IDENTIFY";
tag [ FORMAT_STAT ] = "FORMAT_STAT";
tag [ STOP_STAT ] = "STOP_STAT";
tag [ RETURN_STAT ] = "RETURN_STAT";
tag [ ELSEIF_NODE ] = "ELSEIF_NODE";
tag [ ARITHIF_NODE ] = "ARITHIF_NODE";
tag [ GOTO_NODE ] = "GOTO_NODE";
tag [ ASSGOTO_NODE ] = "ASSGOTO_NODE";
tag [ COMGOTO_NODE ] = "COMGOTO_NODE";
tag [ PAUSE_NODE ] = "PAUSE_NODE";
tag [ STOP_NODE ] = "STOP_NODE";
tag [ ASSLAB_STAT ] = "ASSLAB_STAT";
tag [ LOGIF_NODE ] = "LOGIF_NODE";
tag [ DVM_DEBUG_DIR ] = "DVM_DEBUG_DIR";
tag [ DVM_ENDDEBUG_DIR ] = "DVM_ENDDEBUG_DIR";
tag [ DVM_TRACEON_DIR ] = "DVM_TRACEON_DIR";
tag [ DVM_TRACEOFF_DIR ] = "DVM_TRACEOFF_DIR";
tag [ BLOB ] = "BLOB";
tag [ SIZES ] = "SIZES";
tag [ COMMENT_STAT ] = "COMMENT_STAT";
tag [ CONT_STAT ] = "CONT_STAT";
tag [ VAR_DECL ] = "VAR_DECL";
tag [ PARAM_DECL ] = "PARAM_DECL";
tag [ COMM_STAT ] = "COMM_STAT";
tag [ EQUI_STAT ] = "EQUI_STAT";
tag [ IMPL_DECL ] = "IMPL_DECL";
tag [ DATA_DECL ] = "DATA_DECL";
tag [ SAVE_DECL ] = "SAVE_DECL";
tag [ ENTRY_STAT ] = "ENTRY_STAT";
tag [ STMTFN_STAT ] = "STMTFN_STAT";
tag [ DIM_STAT ] = "DIM_STAT";
tag [ BLOCK_DATA ] = "BLOCK_DATA";
tag [ EXTERN_STAT ] = "EXTERN_STAT";
tag [ INTRIN_STAT ] = "INTRIN_STAT";
tag [ ENUM_DECL ] = "ENUM_DECL";
tag [ CLASS_DECL ] = "CLASS_DECL";
tag [ UNION_DECL ] = "UNION_DECL";
tag [ STRUCT_DECL ] = "STRUCT_DECL";
tag [ DERIVED_CLASS_DECL ] = "DERIVED_CLASS_DECL";
tag [ EXPR_STMT_NODE ] = "EXPR_STMT_NODE";
tag [ DO_WHILE_NODE ] = "DO_WHILE_NODE";
tag [ SWITCH_NODE ] = "SWITCH_NODE";
tag [ CASE_NODE ] = "CASE_NODE";
tag [ DEFAULT_NODE ] = "DEFAULT_NODE";
tag [ BREAK_NODE ] = "BREAK_NODE";
tag [ CONTINUE_NODE ] = "CONTINUE_NODE";
tag [ RETURN_NODE ] = "RETURN_NODE";
tag [ ASM_NODE ] = "ASM_NODE";
tag [ SPAWN_NODE ] = "SPAWN_NODE";
tag [ PARFOR_NODE ] = "PARFOR_NODE";
tag [ PAR_NODE ] = "PAR_NODE";
tag [ LABEL_STAT ] = "LABEL_STAT";
tag [ PROS_COMM ] = "PROS_COMM";
tag [ ATTR_DECL ] = "ATTR_DECL";
tag [ NAMELIST_STAT ] = "NAMELIST_STAT";
tag [ FUTURE_STMT ] = "FUTURE_STMT";
tag [ COLLECTION_DECL ] = "COLLECTION_DECL";
tag [ TEMPLATE_DECL ] = "TEMPLATE_DECL";
tag [ TEMPLATE_FUNDECL ] = "TEMPLATE_FUNDECL";
tag [ TECLASS_DECL ] = "TECLASS_DECL";
tag [ ELSEWH_NODE ] = "ELSEWH_NODE";
tag [ STATIC_STMT ] = "STATIC_STMT";
tag [ INCLUDE_LINE ] = "INCLUDE_LINE";
tag [ PREPROCESSOR_DIR ] = "PREPROCESSOR_DIR";
tag [ PRINT_STAT ] = "PRINT_STAT";
tag [ BACKSPACE_STAT ] = "BACKSPACE_STAT";
tag [ REWIND_STAT ] = "REWIND_STAT";
tag [ ENDFILE_STAT ] = "ENDFILE_STAT";
tag [ INQUIRE_STAT ] = "INQUIRE_STAT";
tag [ OPEN_STAT ] = "OPEN_STAT";
tag [ CLOSE_STAT ] = "CLOSE_STAT";
tag [ EXTERN_C_STAT ] = "EXTERN_C_STAT";
tag [ INCLUDE_STAT ] = "INCLUDE_STAT";
tag [ TRY_STAT ] = "TRY_STAT";
tag [ CATCH_STAT ] = "CATCH_STAT";
tag [ DVM_PARALLEL_ON_DIR ] = "DVM_PARALLEL_ON_DIR";
tag [ DVM_SHADOW_START_DIR ] = "DVM_SHADOW_START_DIR";
tag [ DVM_SHADOW_GROUP_DIR ] = "DVM_SHADOW_GROUP_DIR";
tag [ DVM_SHADOW_WAIT_DIR ] = "DVM_SHADOW_WAIT_DIR";
tag [ DVM_REDUCTION_START_DIR ] = "DVM_REDUCTION_START_DIR";
tag [ DVM_REDUCTION_GROUP_DIR ] = "DVM_REDUCTION_GROUP_DIR";
tag [ DVM_REDUCTION_WAIT_DIR ] = "DVM_REDUCTION_WAIT_DIR";
tag [ DVM_DYNAMIC_DIR ] = "DVM_DYNAMIC_DIR";
tag [ DVM_ALIGN_DIR ] = "DVM_ALIGN_DIR";
tag [ DVM_REALIGN_DIR ] = "DVM_REALIGN_DIR";
tag [ DVM_REALIGN_NEW_DIR ] = "DVM_REALIGN_NEW_DIR";
tag [ DVM_REMOTE_ACCESS_DIR ] = "DVM_REMOTE_ACCESS_DIR";
tag [ HPF_INDEPENDENT_DIR ] = "HPF_INDEPENDENT_DIR";
tag [ DVM_SHADOW_DIR ] = "DVM_SHADOW_DIR";
tag [ PARDO_NODE ] = "PARDO_NODE";
tag [ PARSECTIONS_NODE ] = "PARSECTIONS_NODE";
tag [ SECTION_NODE ] = "SECTION_NODE";
tag [ GUARDS_NODE ] = "GUARDS_NODE";
tag [ LOCK_NODE ] = "LOCK_NODE";
tag [ UNLOCK_NODE ] = "UNLOCK_NODE";
tag [ CRITSECTION_NODE ] = "CRITSECTION_NODE";
tag [ POST_NODE ] = "POST_NODE";
tag [ WAIT_NODE ] = "WAIT_NODE";
tag [ CLEAR_NODE ] = "CLEAR_NODE";
tag [ POSTSEQ_NODE ] = "POSTSEQ_NODE";
tag [ WAITSEQ_NODE ] = "WAITSEQ_NODE";
tag [ SETSEQ_NODE ] = "SETSEQ_NODE";
tag [ ASSIGN_NODE ] = "ASSIGN_NODE";
tag [ RELEASE_NODE ] = "RELEASE_NODE";
tag [ PRIVATE_NODE ] = "PRIVATE_NODE";
tag [ SCOMMON_NODE ] = "SCOMMON_NODE";
tag [ PARREGION_NODE ] = "PARREGION_NODE";
tag [ PDO_NODE ] = "PDO_NODE";
tag [ PSECTIONS_NODE ] = "PSECTIONS_NODE";
tag [ SINGLEPROCESS_NODE ] = "SINGLEPROCESS_NODE";
tag [ SKIPPASTEOF_NODE ] = "SKIPPASTEOF_NODE";
tag [ DVM_NEW_VALUE_DIR ] = "DVM_NEW_VALUE_DIR";
tag [ DVM_VAR_DECL ] = "DVM_VAR_DECL";
tag [ DVM_POINTER_DIR ] = "DVM_POINTER_DIR";
tag [ INTENT_STMT ] = "INTENT_STMT";
tag [ OPTIONAL_STMT ] = "OPTIONAL_STMT";
tag [ PUBLIC_STMT ] = "PUBLIC_STMT";
tag [ PRIVATE_STMT ] = "PRIVATE_STMT";
tag [ ALLOCATABLE_STMT ] = "ALLOCATABLE_STMT";
tag [ POINTER_STMT ] = "POINTER_STMT";
tag [ TARGET_STMT ] = "TARGET_STMT";
tag [ ALLOCATE_STMT ] = "ALLOCATE_STMT";
tag [ NULLIFY_STMT ] = "NULLIFY_STMT";
tag [ DEALLOCATE_STMT ] = "DEALLOCATE_STMT";
tag [ SEQUENCE_STMT ] = "SEQUENCE_STMT";
tag [ CYCLE_STMT ] = "CYCLE_STMT";
tag [ EXIT_STMT ] = "EXIT_STMT";
tag [ CONTAINS_STMT ] = "CONTAINS_STMT";
tag [ WHERE_BLOCK_STMT ] = "WHERE_BLOCK_STMT";
tag [ MODULE_STMT ] = "MODULE_STMT";
tag [ USE_STMT ] = "USE_STMT";
tag [ INTERFACE_STMT ] = "INTERFACE_STMT";
tag [ MODULE_PROC_STMT ] = "MODULE_PROC_STMT";
tag [ OVERLOADED_ASSIGN_STAT ] = "OVERLOADED_ASSIGN_STAT";
tag [ POINTER_ASSIGN_STAT ] = "POINTER_ASSIGN_STAT";
tag [ OVERLOADED_PROC_STAT ] = "OVERLOADED_PROC_STAT";
tag [ DECOMPOSITION_STMT ] = "DECOMPOSITION_STMT";
tag [ ALIGN_STMT ] = "ALIGN_STMT";
tag [ DVM_DISTRIBUTE_DIR ] = "DVM_DISTRIBUTE_DIR";
tag [ REDUCE_STMT ] = "REDUCE_STMT";
tag [ PROS_HEDR ] = "PROS_HEDR";
tag [ PROS_STAT ] = "PROS_STAT";
tag [ PROS_STAT_LCTN ] = "PROS_STAT_LCTN";
tag [ PROS_STAT_SUBM ] = "PROS_STAT_SUBM";
tag [ PROCESSES_STAT ] = "PROCESSES_STAT";
tag [ PROCESSES_END ] = "PROCESSES_END";
tag [ PROCESS_DO_STAT ] = "PROCESS_DO_STAT";
tag [ PROCESSORS_STAT ] = "PROCESSORS_STAT";
tag [ CHANNEL_STAT ] = "CHANNEL_STAT";
tag [ MERGER_STAT ] = "MERGER_STAT";
tag [ MOVE_PORT ] = "MOVE_PORT";
tag [ SEND_STAT ] = "SEND_STAT";
tag [ RECEIVE_STAT ] = "RECEIVE_STAT";
tag [ ENDCHANNEL_STAT ] = "ENDCHANNEL_STAT";
tag [ PROBE_STAT ] = "PROBE_STAT";
tag [ INPORT_DECL ] = "INPORT_DECL";
tag [ OUTPORT_DECL ] = "OUTPORT_DECL";
tag [ HPF_TEMPLATE_STAT ] = "HPF_TEMPLATE_STAT";
tag [ HPF_ALIGN_STAT ] = "HPF_ALIGN_STAT";
tag [ HPF_PROCESSORS_STAT ] = "HPF_PROCESSORS_STAT";
tag [ DVM_REDISTRIBUTE_DIR ] = "DVM_REDISTRIBUTE_DIR";
tag [ DVM_TASK_REGION_DIR ] = "DVM_TASK_REGION_DIR";
tag [ DVM_END_TASK_REGION_DIR ] = "DVM_END_TASK_REGION_DIR";
tag [ DVM_ON_DIR ] = "DVM_ON_DIR";
tag [ DVM_END_ON_DIR ] = "DVM_END_ON_DIR";
tag [ DVM_TASK_DIR ] = "DVM_TASK_DIR";
tag [ DVM_MAP_DIR ] = "DVM_MAP_DIR";
tag [ DVM_PARALLEL_TASK_DIR ] = "DVM_PARALLEL_TASK_DIR";
tag [ DVM_INHERIT_DIR ] = "DVM_INHERIT_DIR";
tag [ DVM_INDIRECT_GROUP_DIR ] = "DVM_INDIRECT_GROUP_DIR";
tag [ DVM_INDIRECT_ACCESS_DIR ] = "DVM_INDIRECT_ACCESS_DIR";
tag [ DVM_REMOTE_GROUP_DIR ] = "DVM_REMOTE_GROUP_DIR";
tag [ DVM_RESET_DIR ] = "DVM_RESET_DIR";
tag [ DVM_PREFETCH_DIR ] = "DVM_PREFETCH_DIR";
tag [ DVM_OWN_DIR ] = "DVM_OWN_DIR";
tag [ DVM_HEAP_DIR ] = "DVM_HEAP_DIR";
tag [ DVM_ASYNCID_DIR ] = "DVM_ASYNCID_DIR";
tag [ DVM_ASYNCHRONOUS_DIR ] = "DVM_ASYNCHRONOUS_DIR";
tag [ DVM_ENDASYNCHRONOUS_DIR ] = "DVM_ENDASYNCHRONOUS_DIR";
tag [ DVM_ASYNCWAIT_DIR ] = "DVM_ASYNCWAIT_DIR";
tag [ DVM_F90_DIR ] = "DVM_F90_DIR";
tag [ DVM_BARRIER_DIR ] = "DVM_BARRIER_DIR";
tag [ FORALL_STAT ] = "FORALL_STAT";
tag [ DVM_CONSISTENT_GROUP_DIR ] = "DVM_CONSISTENT_GROUP_DIR";
tag [ DVM_CONSISTENT_START_DIR ] = "DVM_CONSISTENT_START_DIR";
tag [ DVM_CONSISTENT_WAIT_DIR ] = "DVM_CONSISTENT_WAIT_DIR";
tag [ DVM_CONSISTENT_DIR ] = "DVM_CONSISTENT_DIR";
tag [ DVM_CHECK_DIR ] = "DVM_CHECK_DIR";
tag [ DVM_IO_MODE_DIR ] = "DVM_IO_MODE_DIR";
tag [ DVM_LOCALIZE_DIR ] = "DVM_LOCALIZE_DIR";
tag [ DVM_SHADOW_ADD_DIR ] = "DVM_SHADOW_ADD_DIR";
tag [ DVM_CP_CREATE_DIR ] = "DVM_CP_CREATE_DIR";
tag [ DVM_CP_LOAD_DIR ] = "DVM_CP_LOAD_DIR";
tag [ DVM_CP_SAVE_DIR ] = "DVM_CP_SAVE_DIR";
tag [ DVM_CP_WAIT_DIR ] = "DVM_CP_WAIT_DIR";
tag [ DVM_EXIT_INTERVAL_DIR ] = "DVM_EXIT_INTERVAL_DIR";
tag [ DVM_TEMPLATE_CREATE_DIR ] = "DVM_TEMPLATE_CREATE_DIR";
tag [ DVM_TEMPLATE_DELETE_DIR ] = "DVM_TEMPLATE_DELETE_DIR";
tag [ PRIVATE_AR_DECL ] = "PRIVATE_AR_DECL";
/***************** variant tags for low level nodes ********************/
tag [ INT_VAL ] = "INT_VAL";
tag [ FLOAT_VAL ] = "FLOAT_VAL";
tag [ DOUBLE_VAL ] = "DOUBLE_VAL";
tag [ BOOL_VAL ] = "BOOL_VAL";
tag [ CHAR_VAL ] = "CHAR_VAL";
tag [ STRING_VAL ] = "STRING_VAL";
tag [ CONST_REF ] = "CONST_REF";
tag [ VAR_REF ] = "VAR_REF";
tag [ ARRAY_REF ] = "ARRAY_REF";
tag [ RECORD_REF ] = "RECORD_REF";
tag [ ENUM_REF ] = "ENUM_REF";
tag [ VAR_LIST ] = "VAR_LIST";
tag [ EXPR_LIST ] = "EXPR_LIST";
tag [ RANGE_LIST ] = "RANGE_LIST";
tag [ CASE_CHOICE ] = "CASE_CHOICE";
tag [ DEF_CHOICE ] = "DEF_CHOICE";
tag [ VARIANT_CHOICE ] = "VARIANT_CHOICE";
tag [ COMPLEX_VAL ] = "COMPLEX_VAL";
tag [ LABEL_REF ] = "LABEL_REF";
tag [ KEYWORD_VAL ] = "KEYWORD_VAL";
tag [ DDOT ] = "DDOT";
tag [ RANGE_OP ] = "RANGE_OP";
tag [ UPPER_OP ] = "UPPER_OP";
tag [ LOWER_OP ] = "LOWER_OP";
tag [ EQ_OP ] = "EQ_OP";
tag [ LT_OP ] = "LT_OP";
tag [ GT_OP ] = "GT_OP";
tag [ NOTEQL_OP ] = "NOTEQL_OP";
tag [ LTEQL_OP ] = "LTEQL_OP";
tag [ GTEQL_OP ] = "GTEQL_OP";
tag [ ADD_OP ] = "ADD_OP";
tag [ SUBT_OP ] = "SUBT_OP";
tag [ OR_OP ] = "OR_OP";
tag [ MULT_OP ] = "MULT_OP";
tag [ DIV_OP ] = "DIV_OP";
tag [ MOD_OP ] = "MOD_OP";
tag [ AND_OP ] = "AND_OP";
tag [ EXP_OP ] = "EXP_OP";
tag [ ARRAY_MULT ] = "ARRAY_MULT";
tag [ CONCAT_OP ] = "CONCAT_OP";
tag [ XOR_OP ] = "XOR_OP";
tag [ EQV_OP ] = "EQV_OP";
tag [ NEQV_OP ] = "NEQV_OP";
tag [ MINUS_OP ] = "MINUS_OP";
tag [ NOT_OP ] = "NOT_OP";
tag [ ASSGN_OP ] = "ASSGN_OP";
tag [ DEREF_OP ] = "DEREF_OP";
tag [ POINTST_OP ] = "POINTST_OP";
tag [ FUNCTION_OP ] = "FUNCTION_OP";
tag [ MINUSMINUS_OP ] = "MINUSMINUS_OP";
tag [ PLUSPLUS_OP ] = "PLUSPLUS_OP";
tag [ BITAND_OP ] = "BITAND_OP";
tag [ BITOR_OP ] = "BITOR_OP";
tag [ STAR_RANGE ] = "STAR_RANGE";
tag [ PROC_CALL ] = "PROC_CALL";
tag [ FUNC_CALL ] = "FUNC_CALL";
tag [ CONSTRUCTOR_REF ] = "CONSTRUCTOR_REF";
tag [ ACCESS_REF ] = "ACCESS_REF";
tag [ CONS ] = "CONS";
tag [ ACCESS ] = "ACCESS";
tag [ IOACCESS ] = "IOACCESS";
tag [ CONTROL_LIST ] = "CONTROL_LIST";
tag [ SEQ ] = "SEQ";
tag [ SPEC_PAIR ] = "SPEC_PAIR";
tag [ COMM_LIST ] = "COMM_LIST";
tag [ STMT_STR ] = "STMT_STR";
tag [ EQUI_LIST ] = "EQUI_LIST";
tag [ IMPL_TYPE ] = "IMPL_TYPE";
tag [ STMTFN_DECL ] = "STMTFN_DECL";
tag [ BIT_COMPLEMENT_OP ] = "BIT_COMPLEMENT_OP";
tag [ EXPR_IF ] = "EXPR_IF";
tag [ EXPR_IF_BODY ] = "EXPR_IF_BODY";
tag [ FUNCTION_REF ] = "FUNCTION_REF";
tag [ LSHIFT_OP ] = "LSHIFT_OP";
tag [ RSHIFT_OP ] = "RSHIFT_OP";
tag [ UNARY_ADD_OP ] = "UNARY_ADD_OP";
tag [ SIZE_OP ] = "SIZE_OP";
tag [ INTEGER_DIV_OP ] = "INTEGER_DIV_OP";
tag [ SUB_OP ] = "SUB_OP";
tag [ LE_OP ] = "LE_OP";
tag [ GE_OP ] = "GE_OP";
tag [ NE_OP ] = "NE_OP";
tag [ CLASSINIT_OP ] = "CLASSINIT_OP";
tag [ CAST_OP ] = "CAST_OP";
tag [ ADDRESS_OP ] = "ADDRESS_OP";
tag [ POINSTAT_OP ] = "POINSTAT_OP";
tag [ COPY_NODE ] = "COPY_NODE";
tag [ INIT_LIST ] = "INIT_LIST";
tag [ VECTOR_CONST ] = "VECTOR_CONST";
tag [ BIT_NUMBER ] = "BIT_NUMBER";
tag [ ARITH_ASSGN_OP ] = "ARITH_ASSGN_OP";
tag [ ARRAY_OP ] = "ARRAY_OP";
tag [ NEW_OP ] = "NEW_OP";
tag [ DELETE_OP ] = "DELETE_OP";
tag [ NAMELIST_LIST ] = "NAMELIST_LIST";
tag [ THIS_NODE ] = "THIS_NODE";
tag [ SCOPE_OP ] = "SCOPE_OP";
tag [ PLUS_ASSGN_OP ] = "PLUS_ASSGN_OP";
tag [ MINUS_ASSGN_OP ] = "MINUS_ASSGN_OP";
tag [ AND_ASSGN_OP ] = "AND_ASSGN_OP";
tag [ IOR_ASSGN_OP ] = "IOR_ASSGN_OP";
tag [ MULT_ASSGN_OP ] = "MULT_ASSGN_OP";
tag [ DIV_ASSGN_OP ] = "DIV_ASSGN_OP";
tag [ MOD_ASSGN_OP ] = "MOD_ASSGN_OP";
tag [ XOR_ASSGN_OP ] = "XOR_ASSGN_OP";
tag [ LSHIFT_ASSGN_OP ] = "LSHIFT_ASSGN_OP";
tag [ RSHIFT_ASSGN_OP ] = "RSHIFT_ASSGN_OP";
tag [ ORDERED_OP ] = "ORDERED_OP";
tag [ EXTEND_OP ] = "EXTEND_OP";
tag [ MAXPARALLEL_OP ] = "MAXPARALLEL_OP";
tag [ SAMETYPE_OP ] = "SAMETYPE_OP";
tag [ TYPE_REF ] = "TYPE_REF";
tag [ STRUCTURE_CONSTRUCTOR ] = "STRUCTURE_CONSTRUCTOR";
tag [ ARRAY_CONSTRUCTOR ] = "ARRAY_CONSTRUCTOR";
tag [ SECTION_REF ] = "SECTION_REF";
tag [ VECTOR_SUBSCRIPT ] = "VECTOR_SUBSCRIPT";
tag [ SECTION_OPERANDS ] = "SECTION_OPERANDS";
tag [ KEYWORD_ARG ] = "KEYWORD_ARG";
tag [ OVERLOADED_CALL ] = "OVERLOADED_CALL";
tag [ INTERFACE_REF ] = "INTERFACE_REF";
tag [ RENAME_NODE ] = "RENAME_NODE";
tag [ TYPE_NODE ] = "TYPE_NODE";
tag [ PAREN_OP ] = "PAREN_OP";
tag [ PARAMETER_OP ] = "PARAMETER_OP";
tag [ PUBLIC_OP ] = "PUBLIC_OP";
tag [ PRIVATE_OP ] = "PRIVATE_OP";
tag [ ALLOCATABLE_OP ] = "ALLOCATABLE_OP";
tag [ DIMENSION_OP ] = "DIMENSION_OP";
tag [ EXTERNAL_OP ] = "EXTERNAL_OP";
tag [ IN_OP ] = "IN_OP";
tag [ OUT_OP ] = "OUT_OP";
tag [ INOUT_OP ] = "INOUT_OP";
tag [ INTRINSIC_OP ] = "INTRINSIC_OP";
tag [ POINTER_OP ] = "POINTER_OP";
tag [ OPTIONAL_OP ] = "OPTIONAL_OP";
tag [ SAVE_OP ] = "SAVE_OP";
tag [ TARGET_OP ] = "TARGET_OP";
tag [ ONLY_NODE ] = "ONLY_NODE";
tag [ LEN_OP ] = "LEN_OP";
tag [ TYPE_OP ] = "TYPE_OP";
tag [ DOTSTAR_OP ] = "DOTSTAR_OP";
tag [ ARROWSTAR_OP ] = "ARROWSTAR_OP";
tag [ FORDECL_OP ] = "FORDECL_OP";
tag [ THROW_OP ] = "THROW_OP";
tag [ PROCESSORS_REF ] = "PROCESSORS_REF";
tag [ PORT_TYPE_OP ] = "PORT_TYPE_OP";
tag [ INPORT_TYPE_OP ] = "INPORT_TYPE_OP";
tag [ OUTPORT_TYPE_OP ] = "OUTPORT_TYPE_OP";
tag [ INPORT_NAME ] = "INPORT_NAME";
tag [ OUTPORT_NAME ] = "OUTPORT_NAME";
tag [ FROMPORT_NAME ] = "FROMPORT_NAME";
tag [ TOPORT_NAME ] = "TOPORT_NAME";
tag [ IOSTAT_STORE ] = "IOSTAT_STORE";
tag [ EMPTY_STORE ] = "EMPTY_STORE";
tag [ ERR_LABEL ] = "ERR_LABEL";
tag [ END_LABEL ] = "END_LABEL";
tag [ PROS_CALL ] = "PROS_CALL";
tag [ STATIC_OP ] = "STATIC_OP";
tag [ LABEL_ARG ] = "LABEL_ARG";
tag [ DATA_IMPL_DO ] = "DATA_IMPL_DO";
tag [ DATA_ELT ] = "DATA_ELT";
tag [ DATA_SUBS ] = "DATA_SUBS";
tag [ DATA_RANGE ] = "DATA_RANGE";
tag [ ICON_EXPR ] = "ICON_EXPR";
tag [ BLOCK_OP ] = "BLOCK_OP";
tag [ NEW_SPEC_OP ] = "NEW_SPEC_OP";
tag [ REDUCTION_OP ] = "REDUCTION_OP";
tag [ SHADOW_RENEW_OP ] = "SHADOW_RENEW_OP";
tag [ SHADOW_START_OP ] = "SHADOW_START_OP";
tag [ SHADOW_WAIT_OP ] = "SHADOW_WAIT_OP";
tag [ DIAG_OP ] = "DIAG_OP";
tag [ REMOTE_ACCESS_OP ] = "REMOTE_ACCESS_OP";
tag [ TEMPLATE_OP ] = "TEMPLATE_OP";
tag [ PROCESSORS_OP ] = "PROCESSORS_OP";
tag [ DYNAMIC_OP ] = "DYNAMIC_OP";
tag [ ALIGN_OP ] = "ALIGN_OP";
tag [ DISTRIBUTE_OP ] = "DISTRIBUTE_OP";
tag [ SHADOW_OP ] = "SHADOW_OP";
tag [ INDIRECT_ACCESS_OP ] = "INDIRECT_ACCESS_OP";
tag [ ACROSS_OP ] = "ACROSS_OP";
tag [ NEW_VALUE_OP ] = "NEW_VALUE_OP";
tag [ SHADOW_COMP_OP ] = "SHADOW_COMP_OP";
tag [ STAGE_OP ] = "STAGE_OP";
tag [ FORALL_OP ] = "FORALL_OP";
tag [ CONSISTENT_OP ] = "CONSISTENT_OP";
tag [ INTERFACE_OPERATOR ] = "INTERFACE_OPERATOR";
tag [ INTERFACE_ASSIGNMENT ] = "INTERFACE_ASSIGNMENT";
tag [ VAR_DECL_90 ] = "VAR_DECL_90";
tag [ ASSIGNMENT_OP ] = "ASSIGNMENT_OP";
tag [ OPERATOR_OP ] = "OPERATOR_OP";
tag [ KIND_OP ] = "KIND_OP";
tag [ LENGTH_OP ] = "LENGTH_OP";
tag [ RECURSIVE_OP ] = "RECURSIVE_OP";
tag [ ELEMENTAL_OP ] = "ELEMENTAL_OP";
tag [ PURE_OP ] = "PURE_OP";
tag [ DEFINED_OP ] = "DEFINED_OP";
tag [ PARALLEL_OP ] = "PARALLEL_OP";
tag [ INDIRECT_OP ] = "INDIRECT_OP";
tag [ DERIVED_OP ] = "DERIVED_OP";
tag [ DUMMY_REF ] = "DUMMY_REF";
tag [ COMMON_OP ] = "COMMON_OP";
tag [ SHADOW_NAMES_OP ] = "SHADOW_NAMES_OP";
/***************** variant tags for symbol table entries ********************/
tag [ CONST_NAME ] = "CONST_NAME";
tag [ ENUM_NAME ] = "ENUM_NAME";
tag [ FIELD_NAME ] = "FIELD_NAME";
tag [ VARIABLE_NAME ] = "VARIABLE_NAME";
tag [ TYPE_NAME ] = "TYPE_NAME";
tag [ PROGRAM_NAME ] = "PROGRAM_NAME";
tag [ PROCEDURE_NAME ] = "PROCEDURE_NAME";
tag [ VAR_FIELD ] = "VAR_FIELD";
tag [ LABEL_VAR ] = "LABEL_VAR";
tag [ FUNCTION_NAME ] = "FUNCTION_NAME";
tag [ MEMBER_FUNC ] = "MEMBER_FUNC";
tag [ CLASS_NAME ] = "CLASS_NAME";
tag [ UNION_NAME ] = "UNION_NAME";
tag [ STRUCT_NAME ] = "STRUCT_NAME";
tag [ LABEL_NAME ] = "LABEL_NAME";
tag [ COLLECTION_NAME ] = "COLLECTION_NAME";
tag [ ROUTINE_NAME ] = "ROUTINE_NAME";
tag [ CONSTRUCT_NAME ] = "CONSTRUCT_NAME";
tag [ INTERFACE_NAME ] = "INTERFACE_NAME";
tag [ MODULE_NAME ] = "MODULE_NAME";
tag [ TEMPLATE_CL_NAME ] = "TEMPLATE_CL_NAME";
tag [ TEMPLATE_FN_NAME ] = "TEMPLATE_FN_NAME";
tag [ TECLASS_NAME ] = "TECLASS_NAME";
tag [ SHADOW_GROUP_NAME ] = "SHADOW_GROUP_NAME";
tag [ REDUCTION_GROUP_NAME ] = "REDUCTION_GROUP_NAME";
tag [ REF_GROUP_NAME ] = "REF_GROUP_NAME";
tag [ ASYNC_ID ] = "ASYNC_ID";
tag [ CONSISTENT_GROUP_NAME ] = "CONSISTENT_GROUP_NAME";
tag [ NAMELIST_NAME ] = "NAMELIST_NAME";
tag [ COMMON_NAME ] = "COMMON_NAME";
tag [ DEFAULT ] = "DEFAULT";
tag [ T_INT ] = "T_INT";
tag [ T_FLOAT ] = "T_FLOAT";
tag [ T_DOUBLE ] = "T_DOUBLE";
tag [ T_CHAR ] = "T_CHAR";
tag [ T_BOOL ] = "T_BOOL";
tag [ T_STRING ] = "T_STRING";
tag [ T_ENUM ] = "T_ENUM";
tag [ T_SUBRANGE ] = "T_SUBRANGE";
tag [ T_LIST ] = "T_LIST";
tag [ T_ARRAY ] = "T_ARRAY";
tag [ T_RECORD ] = "T_RECORD";
tag [ T_ENUM_FIELD ] = "T_ENUM_FIELD";
tag [ T_UNKNOWN ] = "T_UNKNOWN";
tag [ T_COMPLEX ] = "T_COMPLEX";
tag [ T_VOID ] = "T_VOID";
tag [ T_DESCRIPT ] = "T_DESCRIPT";
tag [ T_FUNCTION ] = "T_FUNCTION";
tag [ T_POINTER ] = "T_POINTER";
tag [ T_UNION ] = "T_UNION";
tag [ T_STRUCT ] = "T_STRUCT";
tag [ T_CLASS ] = "T_CLASS";
tag [ T_DERIVED_CLASS ] = "T_DERIVED_CLASS";
tag [ T_DERIVED_TYPE ] = "T_DERIVED_TYPE";
tag [ T_COLLECTION ] = "T_COLLECTION";
tag [ T_DERIVED_COLLECTION ] = "T_DERIVED_COLLECTION";
tag [ T_REFERENCE ] = "T_REFERENCE";
tag [ T_DERIVED_TEMPLATE ] = "T_DERIVED_TEMPLATE";
tag [ T_MEMBER_POINTER ] = "T_MEMBER_POINTER";
tag [ T_TECLASS ] = "T_TECLASS";
tag [ T_GATE ] = "T_GATE";
tag [ T_EVENT ] = "T_EVENT";
tag [ T_SEQUENCE ] = "T_SEQUENCE";
tag [ T_DCOMPLEX ] = "T_DCOMPLEX";
tag [ T_LONG ] = "T_LONG";
tag [ BY_USE ] = "BY_USE";
tag [ LOCAL ] = "LOCAL";
tag [ INPUT ] = "INPUT";
tag [ OUTPUT ] = "OUTPUT";
tag [ IO ] = "IO";
tag [ PROCESS_NAME ] = "PROCESS_NAME";
tag [ OMP_PRIVATE ] = "OMP_PRIVATE";
tag [ OMP_SHARED ] = "OMP_SHARED";
tag [ OMP_FIRSTPRIVATE ] = "OMP_FIRSTPRIVATE";
tag [ OMP_LASTPRIVATE ] = "OMP_LASTPRIVATE";
tag [ OMP_THREADPRIVATE ] = "OMP_THREADPRIVATE";
tag [ OMP_COPYIN ] = "OMP_COPYIN";
tag [ OMP_COPYPRIVATE ] = "OMP_COPYPRIVATE";
tag [ OMP_DEFAULT ] = "OMP_DEFAULT";
tag [ OMP_ORDERED ] = "OMP_ORDERED";
tag [ OMP_SCHEDULE ] = "OMP_SCHEDULE";
tag [ OMP_REDUCTION ] = "OMP_REDUCTION";
tag [ OMP_IF ] = "OMP_IF";
tag [ OMP_NUM_THREADS ] = "OMP_NUM_THREADS";
tag [ OMP_NOWAIT ] = "OMP_NOWAIT";
tag [ OMP_PARALLEL_DIR ] = "OMP_PARALLEL_DIR";
tag [ OMP_END_PARALLEL_DIR ] = "OMP_END_PARALLEL_DIR";
tag [ OMP_DO_DIR ] = "OMP_DO_DIR";
tag [ OMP_END_DO_DIR ] = "OMP_END_DO_DIR";
tag [ OMP_SECTIONS_DIR ] = "OMP_SECTIONS_DIR";
tag [ OMP_END_SECTIONS_DIR ] = "OMP_END_SECTIONS_DIR";
tag [ OMP_SECTION_DIR ] = "OMP_SECTION_DIR";
tag [ OMP_SINGLE_DIR ] = "OMP_SINGLE_DIR";
tag [ OMP_END_SINGLE_DIR ] = "OMP_END_SINGLE_DIR";
tag [ OMP_WORKSHARE_DIR ] = "OMP_WORKSHARE_DIR";
tag [ OMP_END_WORKSHARE_DIR ] = "OMP_END_WORKSHARE_DIR";
tag [ OMP_PARALLEL_DO_DIR ] = "OMP_PARALLEL_DO_DIR";
tag [ OMP_END_PARALLEL_DO_DIR ] = "OMP_END_PARALLEL_DO_DIR";
tag [ OMP_PARALLEL_SECTIONS_DIR ] = "OMP_PARALLEL_SECTIONS_DIR";
tag [ OMP_END_PARALLEL_SECTIONS_DIR ] = "OMP_END_PARALLEL_SECTIONS_DIR";
tag [ OMP_PARALLEL_WORKSHARE_DIR ] = "OMP_PARALLEL_WORKSHARE_DIR";
tag [ OMP_END_PARALLEL_WORKSHARE_DIR ] = "OMP_END_PARALLEL_WORKSHARE_DIR";
tag [ OMP_MASTER_DIR ] = "OMP_MASTER_DIR";
tag [ OMP_END_MASTER_DIR ] = "OMP_END_MASTER_DIR";
tag [ OMP_CRITICAL_DIR ] = "OMP_CRITICAL_DIR";
tag [ OMP_END_CRITICAL_DIR ] = "OMP_END_CRITICAL_DIR";
tag [ OMP_BARRIER_DIR ] = "OMP_BARRIER_DIR";
tag [ OMP_ATOMIC_DIR ] = "OMP_ATOMIC_DIR";
tag [ OMP_FLUSH_DIR ] = "OMP_FLUSH_DIR";
tag [ OMP_ORDERED_DIR ] = "OMP_ORDERED_DIR";
tag [ OMP_END_ORDERED_DIR ] = "OMP_END_ORDERED_DIR";
tag [ RECORD_DECL ] = "RECORD_DECL";
tag [ FUNC_STAT ] = "FUNC_STAT";
tag [ OMP_ONETHREAD_DIR ] = "OMP_ONETHREAD_DIR";
tag [ OMP_THREADPRIVATE_DIR ] = "OMP_THREADPRIVATE_DIR";
tag [ OMP_DEFAULT_SECTION_DIR ] = "OMP_DEFAULT_SECTION_DIR";
tag [ OMP_COLLAPSE ] = "OMP_COLLAPSE";
tag [ ACC_REGION_DIR ] = "ACC_REGION_DIR";
tag [ ACC_END_REGION_DIR ] = "ACC_END_REGION_DIR";
tag [ ACC_CALL_STMT ] = "ACC_CALL_STMT";
tag [ ACC_KERNEL_HEDR ] = "ACC_KERNEL_HEDR";
tag [ ACC_GET_ACTUAL_DIR ] = "ACC_GET_ACTUAL_DIR";
tag [ ACC_ACTUAL_DIR ] = "ACC_ACTUAL_DIR";
tag [ ACC_CHECKSECTION_DIR ] = "ACC_CHECKSECTION_DIR";
tag [ ACC_END_CHECKSECTION_DIR ] = "ACC_END_CHECKSECTION_DIR";
tag [ ACC_ROUTINE_DIR ] = "ACC_ROUTINE_DIR";
tag [ ACC_DECLARE_DIR ] = "ACC_DECLARE_DIR";
tag [ ACC_TIE_OP ] = "ACC_TIE_OP";
tag [ ACC_INLOCAL_OP ] = "ACC_INLOCAL_OP";
tag [ ACC_INOUT_OP ] = "ACC_INOUT_OP";
tag [ ACC_IN_OP ] = "ACC_IN_OP";
tag [ ACC_OUT_OP ] = "ACC_OUT_OP";
tag [ ACC_LOCAL_OP ] = "ACC_LOCAL_OP";
tag [ ACC_PRIVATE_OP ] = "ACC_PRIVATE_OP";
tag [ ACC_DEVICE_OP ] = "ACC_DEVICE_OP";
tag [ ACC_CUDA_OP ] = "ACC_CUDA_OP";
tag [ ACC_HOST_OP ] = "ACC_HOST_OP";
tag [ ACC_GLOBAL_OP ] = "ACC_GLOBAL_OP";
tag [ ACC_ATTRIBUTES_OP ] = "ACC_ATTRIBUTES_OP";
tag [ ACC_VALUE_OP ] = "ACC_VALUE_OP";
tag [ ACC_SHARED_OP ] = "ACC_SHARED_OP";
tag [ ACC_CONSTANT_OP ] = "ACC_CONSTANT_OP";
tag [ ACC_USES_OP ] = "ACC_USES_OP";
tag [ ACC_CALL_OP ] = "ACC_CALL_OP";
tag [ ACC_CUDA_BLOCK_OP ] = "ACC_CUDA_BLOCK_OP";
tag [ ACC_TARGETS_OP ] = "ACC_TARGETS_OP";
tag [ ACC_ASYNC_OP ] = "ACC_ASYNC_OP";
tag [ SPF_ANALYSIS_DIR ] = "SPF_ANALYSIS_DIR";
tag [ SPF_PARALLEL_DIR ] = "SPF_PARALLEL_DIR";
tag [ SPF_TRANSFORM_DIR ] = "SPF_TRANSFORM_DIR";
tag [ SPF_NOINLINE_OP ] = "SPF_NOINLINE_OP";
tag [ SPF_PARALLEL_REG_DIR ] = "SPF_PARALLEL_REG_DIR";
tag [ SPF_END_PARALLEL_REG_DIR ] = "SPF_END_PARALLEL_REG_DIR";
tag [ SPF_REGION_NAME ] = "SPF_REGION_NAME";
tag [ SPF_EXPAND_OP ] = "SPF_EXPAND_OP";
tag [ SPF_FISSION_OP ] = "SPF_FISSION_OP";
tag [ SPF_SHRINK_OP ] = "SPF_SHRINK_OP";
tag [ SPF_CHECKPOINT_DIR ] = "SPF_CHECKPOINT_DIR";
tag [ SPF_TYPE_OP ] = "SPF_TYPE_OP";
tag [ SPF_VARLIST_OP ] = "SPF_VARLIST_OP";
tag [ SPF_EXCEPT_OP ] = "SPF_EXCEPT_OP";
tag [ SPF_FILES_COUNT_OP ] = "SPF_FILES_COUNT_OP";
tag [ SPF_INTERVAL_OP ] = "SPF_INTERVAL_OP";
tag [ SPF_TIME_OP ] = "SPF_TIME_OP";
tag [ SPF_ITER_OP ] = "SPF_ITER_OP";
tag [ SPF_FLEXIBLE_OP ] = "SPF_FLEXIBLE_OP";
tag [ SPF_PARAMETER_OP ] = "SPF_PARAMETER_OP";
tag [ SPF_CODE_COVERAGE_OP ] = "SPF_CODE_COVERAGE_OP";
tag [ SPF_UNROLL_OP ] = "SPF_UNROLL_OP";
tag [ SPF_COVER_OP ] = "SPF_COVER_OP";
tag [ SPF_MERGE_OP ] = "SPF_MERGE_OP";
tag [ SPF_PROCESS_PRIVATE_OP ] = "SPF_PROCESS_PRIVATE_OP";
tag [ SPF_WEIGHT_OP ] = "SPF_WEIGHT_OP";

View File

@@ -0,0 +1,7 @@
all: tag.h
tag.h: head tag
( cat head; \
sed < tag \
'/#defin/s/\([^ ]*\) \([^ ]*\)\(.*\)/ tag \[ \2 \] = \"\2\";/')\
> tag.h

View File

@@ -0,0 +1,2 @@
#define VERSION_NUMBER "6.9"
#define VERSION_NUMBER_INT "69"

View File

@@ -0,0 +1,167 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Modified By Jenq-Kuen Lee Nov 20, 1987 */
extern int NoWarnings; /* Used by newer code pC++2dep (phb) */
extern int nowarnflag; /* Used by older obsolete code c2dep, f2dep */
/* The following variable used by verrors.c */
extern int yylineno;
extern char *infname;
extern int nwarn;
extern int errcnt;
extern int errline;
extern int wait_first_include_name;
extern char *first_line_name;
/* leave it out */
/*
extern char yytext[];
extern int yyleng;
extern int lineno;
extern int needkwd;
extern int inioctl;
extern int shiftcase;
extern int parstate;
extern int blklevel;
extern int procclass;
extern long procleng;
extern int nentry;
extern int blklevel;
extern int undeftype;
extern int dorange;
extern char intonly;
*/
extern int num_bfnds; /* total # of bif nodes */
extern int num_llnds; /* total # of low level nodes */
extern int num_symbs; /* total # of symbol nodes */
extern int num_types; /* total # of types nodes */
extern int num_blobs; /* total # of blob nodes */
extern int num_sets; /* total # of set nodes */
extern int num_cmnt;
extern int num_def; /* total # of dependncy nodes */
extern int num_dep;
extern int num_deflst;
extern int num_label; /* total # of label nodes */
extern int num_files;
extern int cur_level; /* current block level */
extern int next_level;
extern char *tag[610];
extern PTR_SYMB global_list;
extern PTR_BFND head_bfnd, /* start of bfnd chain */
cur_bfnd, /* poextern int to current bfnd */
pred_bfnd, /* used in finding the predecessor */
last_bfnd;
extern PTR_LLND head_llnd, cur_llnd;
extern PTR_SYMB head_symb, cur_symb;
extern PTR_TYPE head_type, cur_type;
extern PTR_LABEL head_label, cur_label, thislabel;
extern PTR_FNAME head_file,cur_thread_file;
extern PTR_BLOB head_blob, cur_blob;
extern PTR_SETS head_sets, cur_sets;
extern PTR_DEF head_def, cur_def;
extern PTR_DEFLST head_deflst, cur_deflst;
extern PTR_DEP head_dep, cur_dep, pre_dep;
/*************************************************************************/
/* DECLARE is defined to be null (nothing) so that the variable is declared,
or it is defined to be "extern". (phb) */
#ifndef DECLARE
#define DECLARE extern
#endif
DECLARE PTR_CMNT head_cmnt, cur_cmnt;
DECLARE PTR_BLOB global_blob ;
DECLARE PTR_BFND global_bfnd;
DECLARE PTR_SYMB star_symb;
DECLARE PTR_TYPE vartype;
DECLARE PTR_CMNT comments;
#undef DECLARE
/*************************************************************************/
extern PTR_CMNT cur_comment;
/* struct Ctlframe *ctlsp = (struct Ctlframe *)NULL; */
extern PTR_TYPE make_type();
extern PTR_SYMB make_symb();
extern PTR_BFND make_bfnd();
extern PTR_BFND make_bfndnt(); /* non-threaded ver. (lib/oldsrc/make_nodes.c */
extern PTR_BFND get_bfnd();
extern PTR_BLOB make_blob();
extern PTR_LLND make_llnd();
extern void init_hash();
extern PTR_TYPE global_int, global_float, global_double, global_char, global_string,global_void;
extern PTR_TYPE global_bool, global_complex, global_default, global_string_2;
extern char *ckalloc();
extern char *copyn(), *copys();
#define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
#define INLOOP(x) ((LOOP_NODE <= x) && (x <= WHILE_NODE))
/* Used By pC++2dep */
extern int ExternLangDecl; /* PHB */
extern int mod_offset ;
extern int old_line ;
extern int branch_flag;
extern int main_type_flag ;
extern int primary_flag;
extern int function_flag ;
extern int friend_flag ;
extern int cur_flag ;
extern int exception_flag ;
extern PTR_SYMB first_symbol,right_symbol ;
extern PTR_BFND passed_bfnd;
extern PTR_BFND new_cur_bfnd ;
extern PTR_LLND new_cur_llnd ;
extern PTR_TYPE new_cur_type ;
extern PTR_SYMB new_cur_symb;
extern char *new_cur_fname;
extern char *line_pos_fname;
extern PTR_HASH cur_id_entry ;
extern PTR_CMNT new_cur_comment;
extern int yydebug ;
extern int TRACEON ;
extern int declare_flag ;
extern int not_fetch_yet ; /* for comments */
extern int recursive_yylex; /* for comments */
extern int line_pos_1 ;
extern PTR_FILE fi;
PTR_TYPE get_type();
PTR_LABEL get_label();
extern PTR_SYMB elementtype_symb;

View File

@@ -0,0 +1,126 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Modified By Jenq-Kuen Lee Sep 30, 1987 */
/* Define constants for communication with parse.y. */
/* Copyright (C) 1987 Free Software Foundation, Inc. */
#include <stdio.h>
enum rid
{
RID_UNUSED,
RID_INT,
RID_CHAR,
RID_FLOAT,
RID_DOUBLE,
RID_VOID,
RID_UNUSED1,
RID_UNSIGNED,
RID_SHORT,
RID_LONG,
RID_AUTO,
RID_STATIC,
RID_EXTERN,
RID_REGISTER,
RID_TYPEDEF,
RID_SIGNED,
RID_CONST,
RID_VOLATILE,
RID_PRIVATE,
RID_FUTURE,
RID_VIRTUAL,
RID_INLINE,
RID_FRIEND,
RID_PUBLIC,
RID_PROTECTED,
RID_SYNC,
RID_GLOBL,
RID_ATOMIC,
RID_KSRPRIVATE,
RID_RESTRICT,
RID_MAX,
RID_CUDA_GLOBAL,
RID_CUDA_SHARED,
RID_CUDA_DEVICE,
LONG_UNSIGNED_TYPE_CONST, /* For numerical constant */
LONG_INTEGER_TYPE_CONST,
UNSIGNED_TYPE_CONST,
INTEGER_TYPE_CONST,
FLOAT_TYPE_CONST,
LONG_DOUBLE_TYPE_CONST,
DOUBLE_TYPE_CONST,
/* For char constant */
UNSIGNED_CHAR_TYPE_CONST,
CHAR_TYPE_CONST,
CHAR_ARRAY_TYPE_CONST,
PLUS_EXPR , /* Statement code */
MINUS_EXPR,
BIT_AND_EXPR,
BIT_IOR_EXPR,
MULT_EXPR,
TRUNC_DIV_EXPR,
TRUNC_MOD_EXPR,
BIT_XOR_EXPR,
LSHIFT_EXPR ,
RSHIFT_EXPR,
LT_EXPR,
GT_EXPR,
LE_EXPR,
GE_EXPR,
NE_EXPR,
EQ_EXPR
};
/* #define RID_FIRST_MODIFIER RID_UNSIGNED */
#define NEXT_FULL 10 /*for comments type, FULL, HALF, NEXT_FULL */
/* for access_flag */
#define BIT_PROTECTED 1 /* note: also see PROTECTED_FIELD */
#define BIT_PUBLIC 2 /* note: also see PUBLIC_FIELD */
#define BIT_PRIVATE 4 /* note: also see PRIVATE_FIELD */
#define BIT_FUTURE 8
#define BIT_VIRTUAL 16
#define BIT_INLINE 32
/*for signed_flag */
#define BIT_UNSIGNED 64
#define BIT_SIGNED 128
/* for long_short_flag */
#define BIT_SHORT 256
#define BIT_LONG 512
/* for mod_flag */
#define BIT_VOLATILE 1024
#define BIT_CONST 1024*2
#define BIT_GLOBL 1024*128*2
#define BIT_SYNC 1024*128*4
#define BIT_ATOMIC 1024*128*8
#define BIT_KSRPRIVATE 1024*128*16
#define BIT_RESTRICT 1024*128*32
/* for storage flag */
#define BIT_TYPEDEF 1024*4
#define BIT_EXTERN 1024*8
#define BIT_AUTO 1024*128 /* swapped values for AUTO and FRIEND */
#define BIT_STATIC 1024*32
#define BIT_REGISTER 1024*64
#define BIT_FRIEND 1024*16 /* so that friend would fit in u_short BW*/
#define MAX_BIT 1024*128*64
#define STORAGE_FLAG 1024*(4+8+16+32+64+128)
#define BIT_OPENMP 1024*128*128 /* OpenMP Fortran */
#define BIT_CUDA_GLOBAL 1024*128*256 /* Cuda */
#define BIT_CUDA_SHARED 1024*128*512 /* Cuda */
#define BIT_CUDA_DEVICE 1024*128*1024 /* Cuda */

View File

@@ -0,0 +1,182 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* TAG : pC++2dep used Created by Jenq_kuen Lee Nov 28, 1987 */
/* definitions of Some Key_echo */
/* Define results of standard character escape sequences. */
#define TARGET_BELL 007
#define TARGET_BS 010
#define TARGET_TAB 011
#define TARGET_NEWLINE 012
#define TARGET_VT 013
#define TARGET_FF 014
#define TARGET_CR 015
#define BITS_PER_UNIT 8
#define pedantic 1
/* Debugging flag */
/* switch used for parser */
#define UP_TO_CLASS 6
#define UP_ONE_LEVEL 5
#define UP_TO_NODECL 4
#define UP_TO_FUNC_HEDR 3
#define OTHER 2
#define ON 1
#define OFF 0
/* switch used for parser */
#define ONE 1
#define TWO 2
#define THREE 3
#define DONOT_CARE 0
#define TYPE_CLEAN 0
#define TYPE_ONE 1
#define TYPE_TWO 2
#define TYPE_THREE 3
#define TYPE_FOUR 4
#define TYPE_FIVE 5
#define BRANCH_OFF 0
#define BRANCH_ON 1
/* flag for declarator rule */
/* information kept in cur_flag */
#define RULE_PARAM 1
#define RULE_ID 2
#define RULE_MULTIPLE_ID 4
#define RULE_LR 8
#define RULE_DEREF 16
#define RULE_ARRAY 32
#define RULE_ARRAY_E 64
#define RULE_CLASSINIT 128
#define RULE_ERROR 256
#define LAZY_INSTALL 512
#define CLEAN 0
/* flag for primary_flag */
#define ID_ONLY 1
#define RANGE_APPEAR 2
#define EXCEPTION_ON 4
#define EXPR_LR 8
#define VECTOR_CONST_APPEAR 16
#define ARRAY_OP_NEED 32
/* flag for access_class for parameter_flag */
#define XDECL 4096
/* automata state for comments.c */
#define ZERO 0
#define STATE_1 1
#define STATE_2 2
#define STATE_3 3
#define STATE_4 4
#define STATE_5 5
#define STATE_6 6
#define STATE_7 7
#define STATE_8 8
#define STATE_9 9
#define STATE_10 10
#define STATE_11 11
#define STATE_12 12
#define STATE_13 13
#define STATE_14 14
#define STATE_15 15
#define STATE_16 16
#define STATE_17 17
#define STATE_18 18
#define STATE_19 19
#define STATE_20 20
#define IF_STATE 30
#define IF_STATE_2 32
#define IF_STATE_3 33
#define IF_STATE_4 34
#define ELSE_EXPECTED_STATE 35
#define BLOCK_STATE 40
#define BLOCK_STATE_2 42
#define WHILE_STATE 50
#define WHILE_STATE_2 52
#define FOR_STATE 55
#define FOR_STATE_2 56
#define CASE_STATE 57
#define COEXEC_STATE 58
#define COEXEC_STATE_2 59
#define COLOOP_STATE 60
#define COLOOP_STATE_2 61
#define DO_STATE 62
#define DO_STATE_1 63
#define DO_STATE_2 64
#define DO_STATE_3 65
#define DO_STATE_4 66
#define DO_STATE_5 67
#define DO_STATE_6 68
#define RETURN_STATE 70
#define RETURN_STATE_2 71
#define RETURN_STATE_3 72
#define GOTO_STATE 75
#define GOTO_STATE_2 76
#define SWITCH_STATE 80
#define SWITCH_STATE_2 81
#define STATE_ARG 82
#define BLOCK_STATE_WAITSEMI 83
#define TEMPLATE_STATE 84
#define TEMPLATE_STATE_2 85
#define CONSTR_STATE 86
/* for comments.c */
#define MAX_NESTED_SIZE 800
/* parameter for function body and struct declaration body */
#define NOT_SEEN 1
#define BEEN_SEEN 0
#define FUNCTION_BODY_APPEAR 700
/* parameter for find_type_symbol */
#define TYPE_ONLY 1 /* TYPE_NAME */
#define STRUCT_ONLY 2
#define VAR_ONLY 4
#define FIELD_ONLY 8
#define FUNCTION_NAME_ONLY 16
#define MEMBER_FUNC_ONLY 32
/*flag for the error message of lazy_install */
/* No More symbol, Alliant C compiler's symbol table is full */
/* #define NOW 1 */
/* #define DELAY 2 */
/* For symbptr->attr */
#define ATT_CLUSTER 0
#define ATT_GLOBAL 1
#define PURE 8
#define PRIVATE_FIELD 16
#define PROTECTED_FIELD 32
#define PUBLIC_FIELD 64
#define ELEMENT_FIELD 128
#define COLLECTION_FIELD 256
#define CONSTRUCTOR 512
#define DESTRUCTOR 1024
#define PCPLUSPLUS_DOSUBSET 2048
#define INVALID 4096
#define SUBCOLLECTION 4096*2
/* #define OVOPERATOR 4096*4 (defined in macro.h) (phb) */
#define VIRTUAL_DESTRUCTOR 4096*8 /* added by BW */
/* For find_type_symbol() */
/* for check_field_decl_3 */
#define ALL_FIELDS 1
#define CLASS_ONLY 2
#define COLLECTION_ONLY 3
#define ELEMENT_ONLY 4
#define FUNCTION_ONLY 5
/* for collection nested dimension */
#define MAX_NESTED_DIM 5

View File

@@ -0,0 +1,71 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#define MAX_WINDOW 256
#define MAX_ARRAYREF 256
#define MAX_STEP 10000
#define NO_STEP 10000
struct WINDOW
{
int dimension;
int Array_Id[MAX_ARRAYREF];
int level;
int level_update;
char name[64];
char gain[128];
int coeff[MAXTILE][MAXTILE];
int inf[MAXTILE];
int sup[MAXTILE];
int nb_ref;
PTR_SYMB symb;
PTR_SYMB array_symbol;
PTR_SYMB pt;
int lambda[MAXTILE];
int delta[MAXTILE];
int size[MAXTILE];
int cst[MAXTILE];
};
struct WINDOWS
{
int nb_windows;
int nb_loop;
int tile_order[MAXTILE];
int tile_sup[MAXTILE];
int tile_inf[MAXTILE];
int tile_bounds[MAXTILE];
struct WINDOW thewindow[MAX_WINDOW];
PTR_SYMB index[MAXTILE];
};
#define WINDS_NB(NODE) ((NODE).nb_windows)
#define WINDS_INDEX(NODE) ((NODE).index)
#define WINDS_NB_LOOP(NODE) ((NODE).nb_loop)
#define WINDS_TILE_INF(NODE) ((NODE).tile_inf)
#define WINDS_TILE_SUP(NODE) ((NODE).tile_sup)
#define WINDS_TILE_ORDER(NODE) ((NODE).tile_order)
#define WINDS_TILE_BOUNDS(NODE) ((NODE).tile_bounds)
#define WINDS_WINDOWS(NODE,NUM) (&((NODE).thewindow[NUM]))
#define WIND_DIM(NODE) ((NODE)->dimension)
#define WIND_ARRAY(NODE) ((NODE)->Array_Id)
#define WIND_LEVEL(NODE) ((NODE)->level)
#define WIND_LEVEL_UPDATE(NODE) ((NODE)->level_update)
#define WIND_NB_REF(NODE) ((NODE)->nb_ref)
#define WIND_SYMBOL(NODE) ((NODE)->symb)
#define WIND_POINTER(NODE) ((NODE)->pt)
#define WIND_NAME(NODE) ((NODE)->name)
#define WIND_GAIN(NODE) ((NODE)->gain)
#define WIND_COEFF(NODE) ((NODE)->coeff)
#define WIND_INF(NODE) ((NODE)->inf)
#define WIND_SUP(NODE) ((NODE)->sup)
#define WIND_LAMBDA(NODE) ((NODE)->lambda)
#define WIND_DELTA(NODE) ((NODE)->delta)
#define WIND_SIZE_DIM(NODE) ((NODE)->size)
#define WIND_DIM_CST(NODE) ((NODE)->cst)
#define WIND_ARRAY_SYMBOL(NODE) ((NODE)->array_symbol)