home *** CD-ROM | disk | FTP | other *** search
- # define IFNOTIN(b, s) if (! (s & 1 << b)) {
- # define INCL(s, b) s |= 1 << b
- # define REMOTE_SYN(i, b, c, n, t, a) (n->yyHead.i & 1 << b ? (void) 0 : c (n), n->t.a)
- # define REMOTE_INH(i, b, k, n, t, a) (n->yyHead.i & 1 << b ? (void) 0 : yyI [n->yyHead.yyOffset + k](n->yyHead.yyParent), n->t.a)
- # define DEP(a, b) a
- # define SELF yyt
- # include "Eval.h"
-
-
- static char yyb;
-
- static void yyE ARGS((register tTree yyt));
- static void yyS1 ARGS((register tTree yyt));
- static void yyS2 ARGS((register tTree yyt));
- static void yyS3 ARGS((register tTree yyt));
-
- static Tree_tProcTree yyI [1] = { 0,
- };
-
- static void yyAbort
- # if defined __STDC__ | defined __cplusplus
- (tTree yyt)
- # else
- (yyt) tTree yyt;
- # endif
- {
- (void) fprintf (stderr, "Error: module Eval, cyclic dependencies\n");
- exit (1);
- }
-
- void Eval
- # if defined __STDC__ | defined __cplusplus
- (tTree yyt)
- # else
- (yyt) tTree yyt;
- # endif
- { InitTree (yyt); yyE (yyt); }
-
- static void yyE
- # if defined __STDC__ | defined __cplusplus
- (register tTree yyt)
- # else
- (yyt) register tTree yyt;
- # endif
- {
- for (;;) {
- if (yyt == NoTree || yyt->yyHead.yyIsComp0 & 1) return;
- yyt->yyHead.yyIsComp0 |= 1;
- switch (yyt->Kind) {
- case kCOMP_UNIT:
- yyt = yyt->COMP_UNIT.COMP_ELEMENTS; break;
- case kBODY_NODE:
- yyE (yyt->BODY_NODE.DECLS);
- yyE (yyt->BODY_NODE.STATS);
- yyt = yyt->BODY_NODE.INTERNALS; break;
- case kSTRING_TYPE:
- yyt = yyt->STRING_TYPE.LENGTH; break;
- case kINDEX_TYPE:
- yyE (yyt->INDEX_TYPE.LOWER);
- yyt = yyt->INDEX_TYPE.UPPER; break;
- case kTYPE_ID:
- yyt = yyt->TYPE_ID.ID; break;
- case kARRAY_TYPE:
- yyE (yyt->ARRAY_TYPE.ARRAY_INDEX_TYPES);
- yyt = yyt->ARRAY_TYPE.ARRAY_COMP_TYPE; break;
- case kRECORD_TYPE:
- yyt = yyt->RECORD_TYPE.COMPONENTS; break;
- case kUNION_TYPE:
- yyt = yyt->UNION_TYPE.COMPONENTS; break;
- case kENUM_TYPE:
- yyt = yyt->ENUM_TYPE.COMPONENTS; break;
- case kPOINTER_TYPE:
- yyt = yyt->POINTER_TYPE.PTR_COMP; break;
- case kARRAY1_TYPE:
- yyE (yyt->ARRAY1_TYPE.SIZE);
- yyt = yyt->ARRAY1_TYPE.ARRAY1_COMP_TYPE; break;
- case kFUNCTION_TYPE:
- yyE (yyt->FUNCTION_TYPE.FORMALS);
- yyt = yyt->FUNCTION_TYPE.RESULT_TYPE; break;
- case kTYPE_LIST:
- yyE (yyt->TYPE_LIST.Elem);
- yyt = yyt->TYPE_LIST.Next; break;
- case kMODULE_DECL:
- yyt = yyt->MODULE_DECL.MODULE_BODY; break;
- case kPROGRAM_DECL:
- yyE (yyt->PROGRAM_DECL.FORMALS);
- yyt = yyt->PROGRAM_DECL.PROGRAM_BODY; break;
- case kPROC_DECL:
- yyE (yyt->PROC_DECL.FORMALS);
- yyt = yyt->PROC_DECL.PROC_BODY; break;
- case kFUNC_DECL:
- yyE (yyt->FUNC_DECL.FORMALS);
- yyE (yyt->FUNC_DECL.FUNC_BODY);
- yyt = yyt->FUNC_DECL.RESULT_TYPE; break;
- case kBLOCK_DATA_DECL:
- yyt = yyt->BLOCK_DATA_DECL.DATA_BODY; break;
- case kTYPE_DECL:
- yyt = yyt->TYPE_DECL.VAL; break;
- case kENTITY_DECL:
- yyt = yyt->ENTITY_DECL.ATTRIBUTES; break;
- case kVAR_DECL:
- yyt = yyt->VAR_DECL.VAL; break;
- case kCOMMON_DECL:
- yyt = yyt->COMMON_DECL.IDS; break;
- case kNAMELIST_DECL:
- yyt = yyt->NAMELIST_DECL.IDS; break;
- case kTEMPLATE_DECL:
- yyt = yyt->TEMPLATE_DECL.DIMENSIONS; break;
- case kPROCESSORS_DECL:
- yyt = yyt->PROCESSORS_DECL.DIMENSIONS; break;
- case kSTMT_FUNC_DECL:
- yyE (yyt->STMT_FUNC_DECL.FORMALS);
- yyE (yyt->STMT_FUNC_DECL.RESULT_TYPE);
- yyt = yyt->STMT_FUNC_DECL.FFUNC_BODY; break;
- case kINTERFACE_DECL:
- yyt = yyt->INTERFACE_DECL.ITEMS; break;
- case kEXT_PROC_DECL:
- yyt = yyt->EXT_PROC_DECL.FORMALS; break;
- case kEXT_FUNC_DECL:
- yyE (yyt->EXT_FUNC_DECL.FORMALS);
- yyt = yyt->EXT_FUNC_DECL.RESULT_TYPE; break;
- case kVAL_PARAM_DECL:
- yyt = yyt->VAL_PARAM_DECL.VAL; break;
- case kVAR_PARAM_DECL:
- yyt = yyt->VAR_PARAM_DECL.VAL; break;
- case kPROC_PARAM_DECL:
- yyt = yyt->PROC_PARAM_DECL.FORMAL; break;
- case kFUNC_PARAM_DECL:
- yyE (yyt->FUNC_PARAM_DECL.FORMAL);
- yyt = yyt->FUNC_PARAM_DECL.RESULT_TYPE; break;
- case kIMPLICIT_DECL:
- yyt = yyt->IMPLICIT_DECL.VAL; break;
- case kUSE_DECL:
- yyt = yyt->USE_DECL.RENAMINGS; break;
- case kONLY_USE_DECL:
- yyt = yyt->ONLY_USE_DECL.NAMES; break;
- case kEQV_DECL:
- yyt = yyt->EQV_DECL.VARS; break;
- case kDATA_DECL:
- yyE (yyt->DATA_DECL.VARS);
- yyt = yyt->DATA_DECL.VALS; break;
- case kDIMENSION_DECL:
- yyt = yyt->DIMENSION_DECL.INDEXES; break;
- case kINIT_DATA_DECL:
- yyt = yyt->INIT_DATA_DECL.VAL; break;
- case kTYPESPEC_DECL:
- yyt = yyt->TYPESPEC_DECL.VAL; break;
- case kPARAMETER_DECL:
- yyt = yyt->PARAMETER_DECL.VAL; break;
- case kDISTRIBUTE_DECL:
- yyt = yyt->DISTRIBUTE_DECL.DISTRIBUTION; break;
- case kALIGN_DECL:
- yyE (yyt->ALIGN_DECL.ALIGN_SOURCE);
- yyt = yyt->ALIGN_DECL.ALIGN_SPEC; break;
- case kDECL_LIST:
- yyE (yyt->DECL_LIST.Elem);
- yyt = yyt->DECL_LIST.Next; break;
- case kNODE_DISTRIBUTION:
- yyt = yyt->NODE_DISTRIBUTION.MAPPING; break;
- case kBLOCK_DISTRIBUTION:
- yyt = yyt->BLOCK_DISTRIBUTION.SIZE; break;
- case kCYCLIC_DISTRIBUTION:
- yyt = yyt->CYCLIC_DISTRIBUTION.SIZE; break;
- case kDIST_LIST:
- yyE (yyt->DIST_LIST.Elem);
- yyt = yyt->DIST_LIST.Next; break;
- case kACF_LIST:
- yyE (yyt->ACF_LIST.Elem);
- yyt = yyt->ACF_LIST.Next; break;
- case kACF_BASIC:
- yyt = yyt->ACF_BASIC.BASIC_STMT; break;
- case kACF_IF:
- yyE (yyt->ACF_IF.IF_EXP);
- yyE (yyt->ACF_IF.THEN_PART);
- yyt = yyt->ACF_IF.ELSE_PART; break;
- case kACF_WHERE:
- yyE (yyt->ACF_WHERE.WHERE_EXP);
- yyE (yyt->ACF_WHERE.TRUE_PART);
- yyt = yyt->ACF_WHERE.FALSE_PART; break;
- case kACF_SWITCH:
- yyE (yyt->ACF_SWITCH.SWITCH_EXP);
- yyt = yyt->ACF_SWITCH.SWITCH_STMT; break;
- case kACF_ALTER:
- yyE (yyt->ACF_ALTER.ALTER_EXP);
- yyt = yyt->ACF_ALTER.ALTER_STMT; break;
- case kACF_CASE:
- yyE (yyt->ACF_CASE.CASE_EXP);
- yyE (yyt->ACF_CASE.CASE_ALTS);
- yyt = yyt->ACF_CASE.CASE_OTHERWISE; break;
- case kACF_WHILE:
- yyE (yyt->ACF_WHILE.WHILE_EXP);
- yyt = yyt->ACF_WHILE.WHILE_BODY; break;
- case kACF_REPEAT:
- yyE (yyt->ACF_REPEAT.REPEAT_BODY);
- yyt = yyt->ACF_REPEAT.REPEAT_EXP; break;
- case kACF_WITH:
- yyE (yyt->ACF_WITH.WITH_VARS);
- yyt = yyt->ACF_WITH.WITH_BODY; break;
- case kACF_LOOP:
- yyt = yyt->ACF_LOOP.LOOP_BODY; break;
- case kACF_DO:
- yyE (yyt->ACF_DO.DO_ID);
- yyE (yyt->ACF_DO.DO_RANGE);
- yyt = yyt->ACF_DO.DO_BODY; break;
- case kACF_DOLOCAL:
- yyE (yyt->ACF_DOLOCAL.DOLOCAL_ID);
- yyE (yyt->ACF_DOLOCAL.DOLOCAL_RANGE);
- yyt = yyt->ACF_DOLOCAL.DOLOCAL_BODY; break;
- case kACF_DOVEC:
- yyE (yyt->ACF_DOVEC.DOVEC_ID);
- yyE (yyt->ACF_DOVEC.DOVEC_RANGE);
- yyt = yyt->ACF_DOVEC.DOVEC_BODY; break;
- case kACF_DOALL:
- yyE (yyt->ACF_DOALL.DOALL_NEW);
- yyE (yyt->ACF_DOALL.DOALL_ID);
- yyE (yyt->ACF_DOALL.DOALL_RANGE);
- yyt = yyt->ACF_DOALL.DOALL_BODY; break;
- case kACF_FORALL:
- yyE (yyt->ACF_FORALL.FORALL_ID);
- yyE (yyt->ACF_FORALL.FORALL_RANGE);
- yyt = yyt->ACF_FORALL.FORALL_BODY; break;
- case kACF_ON:
- yyE (yyt->ACF_ON.ON_VAR);
- yyt = yyt->ACF_ON.ON_STMT; break;
- case kACF_BODY:
- yyt = yyt->ACF_BODY.NEW_BODY; break;
- case kACF_FLOW_GRAPH:
- yyt = yyt->ACF_FLOW_GRAPH.FLOW_NODES; break;
- case kACF_ENTRY:
- yyt = yyt->ACF_ENTRY.ENTRY_DECL; break;
- case kSELECTED_ACF_LIST:
- yyE (yyt->SELECTED_ACF_LIST.Elem);
- yyt = yyt->SELECTED_ACF_LIST.Next; break;
- case kSELECTED_ACF_NODE:
- yyE (yyt->SELECTED_ACF_NODE.SELECT_LIST);
- yyt = yyt->SELECTED_ACF_NODE.SELECT_ACFS; break;
- case kEXP_STMT:
- yyt = yyt->EXP_STMT.STMT_EXP; break;
- case kASSIGN_STMT:
- yyE (yyt->ASSIGN_STMT.ASSIGN_VAR);
- yyt = yyt->ASSIGN_STMT.ASSIGN_EXP; break;
- case kPTR_ASSIGN_STMT:
- yyE (yyt->PTR_ASSIGN_STMT.ASSIGN_VAR);
- yyt = yyt->PTR_ASSIGN_STMT.ASSIGN_EXP; break;
- case kLABEL_ASSIGN_STMT:
- yyt = yyt->LABEL_ASSIGN_STMT.LABEL_VAR; break;
- case kCALL_STMT:
- yyE (yyt->CALL_STMT.CALL_ID);
- yyt = yyt->CALL_STMT.CALL_PARAMS; break;
- case kIO_STMT:
- yyE (yyt->IO_STMT.ID);
- yyE (yyt->IO_STMT.IO_SPECS);
- yyt = yyt->IO_STMT.IO_ITEMS; break;
- case kASS_GOTO_STMT:
- yyE (yyt->ASS_GOTO_STMT.GOTO_VAR);
- return;
- case kCOMP_GOTO_STMT:
- yyt = yyt->COMP_GOTO_STMT.GOTO_EXP; break;
- case kCOMP_IF_STMT:
- yyt = yyt->COMP_IF_STMT.IF_EXP; break;
- case kRETURN_STMT:
- yyt = yyt->RETURN_STMT.RETURN_EXP; break;
- case kSTOP_STMT:
- yyt = yyt->STOP_STMT.STOP_CONST; break;
- case kFORMAT_STMT:
- yyt = yyt->FORMAT_STMT.FORMAT_PARAMS; break;
- case kALLOCATE_STMT:
- yyE (yyt->ALLOCATE_STMT.PARAMS);
- yyt = yyt->ALLOCATE_STMT.STAT; break;
- case kDEALLOCATE_STMT:
- yyE (yyt->DEALLOCATE_STMT.PARAMS);
- yyt = yyt->DEALLOCATE_STMT.STAT; break;
- case kNULLIFY_STMT:
- yyt = yyt->NULLIFY_STMT.PARAMS; break;
- case kREDUCE_STMT:
- yyE (yyt->REDUCE_STMT.RED_FUNC);
- yyt = yyt->REDUCE_STMT.RED_PARAMS; break;
- case kGLOBAL_STMT:
- yyE (yyt->GLOBAL_STMT.ARRAY);
- yyE (yyt->GLOBAL_STMT.INDEXED_ARRAY);
- yyE (yyt->GLOBAL_STMT.INDEXES);
- yyt = yyt->GLOBAL_STMT.MASK; break;
- case kALIGN_STMT:
- yyE (yyt->ALIGN_STMT.ALIGNEE);
- yyt = yyt->ALIGN_STMT.ALIGN_SPEC; break;
- case kDISTRIBUTE_STMT:
- yyE (yyt->DISTRIBUTE_STMT.DISTRIBUTEE);
- yyt = yyt->DISTRIBUTE_STMT.DISTRIBUTION; break;
- case kOP_EXP:
- yyE (yyt->OP_EXP.OPND1);
- yyt = yyt->OP_EXP.OPND2; break;
- case kOP1_EXP:
- yyt = yyt->OP1_EXP.OPND; break;
- case kSLICE_EXP:
- yyE (yyt->SLICE_EXP.START);
- yyE (yyt->SLICE_EXP.STOP);
- yyt = yyt->SLICE_EXP.INC; break;
- case kPOSTFIX_EXP:
- yyt = yyt->POSTFIX_EXP.OPND; break;
- case kCALL_EXP:
- yyE (yyt->CALL_EXP.FUNC_ID);
- yyt = yyt->CALL_EXP.FUNC_PARAMS; break;
- case kCAST_EXP:
- yyE (yyt->CAST_EXP.ID);
- yyt = yyt->CAST_EXP.CAST; break;
- case kINDEXED_EXP:
- yyE (yyt->INDEXED_EXP.IND_EXP);
- yyt = yyt->INDEXED_EXP.INDEX; break;
- case kSELECTED_EXP:
- yyE (yyt->SELECTED_EXP.SELEC_EXP);
- yyt = yyt->SELECTED_EXP.SELECTOR; break;
- case kASSIGN_EXP:
- yyE (yyt->ASSIGN_EXP.LHS);
- yyt = yyt->ASSIGN_EXP.RHS; break;
- case kUSED_EXP:
- yyt = yyt->USED_EXP.VARNAME; break;
- case kCOND_EXP:
- yyE (yyt->COND_EXP.COND);
- yyE (yyt->COND_EXP.TRUE_EXP);
- yyt = yyt->COND_EXP.FALSE_EXP; break;
- case kVAR_EXP:
- yyt = yyt->VAR_EXP.V; break;
- case kFUNC_CALL_EXP:
- yyE (yyt->FUNC_CALL_EXP.FUNC_ID);
- yyt = yyt->FUNC_CALL_EXP.FUNC_PARAMS; break;
- case kNAMED_EXP:
- yyt = yyt->NAMED_EXP.VAL; break;
- case kDO_EXP:
- yyE (yyt->DO_EXP.DO_ID);
- yyE (yyt->DO_EXP.RANGE);
- yyt = yyt->DO_EXP.BODY; break;
- case kTYPE_EXP:
- yyE (yyt->TYPE_EXP.ID);
- yyt = yyt->TYPE_EXP.ELEMENTS; break;
- case kARRAY_EXP:
- yyt = yyt->ARRAY_EXP.ELEMENTS; break;
- case kBTE_LIST:
- yyE (yyt->BTE_LIST.Elem);
- yyt = yyt->BTE_LIST.Next; break;
- case kUSED_VAR:
- yyt = yyt->USED_VAR.VARNAME; break;
- case kINDEXED_VAR:
- yyE (yyt->INDEXED_VAR.IND_VAR);
- yyt = yyt->INDEXED_VAR.IND_EXPS; break;
- case kSUBSTRING_VAR:
- yyE (yyt->SUBSTRING_VAR.IND_VAR);
- yyt = yyt->SUBSTRING_VAR.IND_EXP; break;
- case kSELECTED_VAR:
- yyE (yyt->SELECTED_VAR.SELEC_VAR);
- yyt = yyt->SELECTED_VAR.SELECTOR; break;
- case kLOOP_VAR:
- yyt = yyt->LOOP_VAR.LOOP_VARNAME; break;
- case kADDR:
- yyt = yyt->ADDR.E; break;
- case kDO_VAR:
- yyE (yyt->DO_VAR.DO_ID);
- yyE (yyt->DO_VAR.RANGE);
- yyt = yyt->DO_VAR.BODY; break;
- case kBTV_LIST:
- yyE (yyt->BTV_LIST.Elem);
- yyt = yyt->BTV_LIST.Next; break;
- case kVAR_PARAM:
- yyt = yyt->VAR_PARAM.V; break;
- case kVALUE_PARAM:
- yyt = yyt->VALUE_PARAM.E; break;
- case kNAMED_PARAM:
- yyt = yyt->NAMED_PARAM.VAL; break;
- case kPROC_PARAM:
- yyt = yyt->PROC_PARAM.P; break;
- case kFUNC_PARAM:
- yyt = yyt->FUNC_PARAM.F; break;
- case kBTP_LIST:
- yyE (yyt->BTP_LIST.Elem);
- yyt = yyt->BTP_LIST.Next; break;
- default: return;
- }
- }
- }
-
- void BeginEval ()
- {
- }
-
- void CloseEval ()
- {
- }
-