00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef controls_INCLUDED
00037 #define controls_INCLUDED
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064 #ifdef _KEEP_RCS_ID
00065 static char *controls_rcs_id = "$Source$ $Revision$";
00066 #endif
00067
00068
00069 typedef enum control {
00070 CONTROL_MIN_CONTROL = 0,
00071 #define CONTROL_FIRST CONTROL_ACIR
00072 CONTROL_ACIR,
00073 CONTROL_ALIAS,
00074 CONTROL_ALNDCL,
00075 CONTROL_ALNREF,
00076 CONTROL_ALNSTD,
00077 CONTROL_ARGOVERLAP,
00078 CONTROL_C,
00079 CONTROL_CALLMOD,
00080 CONTROL_CASE,
00081 CONTROL_CHAR,
00082 CONTROL_CHKARGS,
00083 CONTROL_CHKREC,
00084 CONTROL_CHKSUB,
00085 CONTROL_CONSTP,
00086 CONTROL_COMNAME,
00087 CONTROL_COPYP,
00088 CONTROL_DEFARGOVERLAP,
00089 CONTROL_DEFFUNC,
00090 CONTROL_DEFKEEPARGS,
00091 CONTROL_DEFLIB,
00092 CONTROL_DEFNEWMEM,
00093 CONTROL_DEFREC,
00094 CONTROL_DEFSEF,
00095 CONTROL_DEFSRC,
00096 CONTROL_DEFVOL,
00097 CONTROL_DIAG,
00098 CONTROL_DLINE,
00099 CONTROL_DOMAIN,
00100 CONTROL_EXITS,
00101 CONTROL_FBLANK,
00102 CONTROL_FCM,
00103 CONTROL_FCOLS,
00104 CONTROL_FERAL,
00105 CONTROL_FLOW,
00106 CONTROL_FP,
00107 CONTROL_FTAB,
00108 CONTROL_FUNC,
00109 CONTROL_G,
00110 CONTROL_INLINE,
00111 CONTROL_KEEPARGS,
00112 CONTROL_LEAF,
00113 CONTROL_MAP,
00114 CONTROL_MEMLIMIT,
00115 CONTROL_NEWMEM,
00116 CONTROL_NOARGOVERLAP,
00117 CONTROL_NOFUNC,
00118 CONTROL_NOINLINE,
00119 CONTROL_NOKEEPARGS,
00120 CONTROL_NONEWMEM,
00121 CONTROL_NOREC,
00122 CONTROL_NOSEF,
00123 CONTROL_NOVOL,
00124 CONTROL_ONETRIP,
00125 CONTROL_OFORM,
00126 CONTROL_MOPT,
00127 CONTROL_PROF,
00128 CONTROL_PTRVOL,
00129 CONTROL_QUIT,
00130 CONTROL_REAL,
00131 CONTROL_RECURSIVE,
00132 CONTROL_REG,
00133 CONTROL_RETPTS,
00134 CONTROL_SAVE,
00135 CONTROL_SCHED,
00136 CONTROL_SEF,
00137 CONTROL_STDDIAG,
00138 CONTROL_TAME,
00139 CONTROL_TARG,
00140 CONTROL_UNROLL,
00141 CONTROL_UNROLLEXACT,
00142 CONTROL_VOLATILE,
00143 CONTROL_WHOLE,
00144 CONTROL_WILD,
00145 CONTROL_XREF,
00146 #define CONTROL_JFE_LAST (CONTROL_XREF+1)
00147
00148
00149 CONTROL_IVREP,
00150 CONTROL_XOPT,
00151
00152 CONTROL_MAX_CONTROL
00153 #define CONTROL_LAST CONTROL_MAX_CONTROL
00154 } CONTROL;
00155
00156
00157
00158
00159 #define HCO_AAVAL 1
00160 #define HCO_IMPLICIT 2
00161 #define HCO_ONCE 4
00162 #define HCO_PUSH 8
00163 #define HCO_POP 16
00164 #define HCO_PRAGMA 32
00165
00166
00167 extern void Init_Controls_Tbl ( void );
00168
00169
00170 extern void Handle_Control_Opt ( char *, BOOL );
00171
00172
00173 extern void Apply_Controls ( void );
00174
00175
00176 extern INT32 Get_Int_Ctrl_Val ( CONTROL a );
00177 extern const char *Get_Name_Ctrl_Val ( CONTROL a );
00178
00179
00180 extern void Pop_Controls ( INT32 level );
00181
00182
00183 extern void Save_Routine_Top_Ctrls ( void );
00184 extern void Restore_Routine_Top_Ctrls ( void );
00185
00186
00187 extern void Restore_Cmd_Line_Ctrls ( void );
00188
00189
00190 extern void Print_Controls ( FILE *fp, const char *tag, BOOL def );
00191
00192
00193 extern INT Process_Pragma ( char *x );
00194
00195
00196 extern INT Process_Control_Opt (const char *save_a, INT flags );
00197
00198
00199 extern void Fix_g_O(void);
00200
00201 #ifdef __cplusplus
00202 }
00203 #endif
00204 #endif