00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _H_prcdrfun
00025
00026 #define _H_prcdrfun
00027
00028 #ifndef _H_evaluatn
00029 #include "evaluatn.h"
00030 #endif
00031
00032 #ifdef LOCALE
00033 #undef LOCALE
00034 #endif
00035
00036 #ifdef _PRCDRFUN_SOURCE
00037 #define LOCALE
00038 #else
00039 #define LOCALE extern
00040 #endif
00041
00042 typedef struct loopCounterStack
00043 {
00044 long long loopCounter;
00045 struct loopCounterStack *nxt;
00046 } LOOP_COUNTER_STACK;
00047
00048 #define PRCDRFUN_DATA 13
00049
00050 struct procedureFunctionData
00051 {
00052 int ReturnFlag;
00053 int BreakFlag;
00054 LOOP_COUNTER_STACK *LoopCounterStack;
00055 struct dataObject *BindList;
00056 };
00057
00058 #define ProcedureFunctionData(theEnv) ((struct procedureFunctionData *) GetEnvironmentData(theEnv,PRCDRFUN_DATA))
00059
00060 LOCALE void ProceduralFunctionDefinitions(void *);
00061 LOCALE void WhileFunction(void *,DATA_OBJECT_PTR);
00062 LOCALE void LoopForCountFunction(void *,DATA_OBJECT_PTR);
00063 LOCALE long long GetLoopCount(void *);
00064 LOCALE void IfFunction(void *,DATA_OBJECT_PTR);
00065 LOCALE void BindFunction(void *,DATA_OBJECT_PTR);
00066 LOCALE void PrognFunction(void *,DATA_OBJECT_PTR);
00067 LOCALE void ReturnFunction(void *,DATA_OBJECT_PTR);
00068 LOCALE void BreakFunction(void *);
00069 LOCALE void SwitchFunction(void *,DATA_OBJECT_PTR);
00070 LOCALE intBool GetBoundVariable(void *,struct dataObject *,struct symbolHashNode *);
00071 LOCALE void FlushBindList(void *);
00072
00073 #endif
00074
00075
00076
00077
00078
00079