00001 struct syl 00002 { int op; 00003 int p1; 00004 union { int i[2]; char *s;} p2; 00005 }; 00006 #define RET1 1 00007 #define REVERT 2 00008 #define GOTO 3 00009 #define X 4 00010 #define SLASH 5 00011 #define STACK 6 00012 #define I 7 00013 #define ED 8 00014 #define NED 9 00015 #define IM 10 00016 #define APOS 11 00017 #define H 12 00018 #define TL 13 00019 #define TR 14 00020 #define T 15 00021 #define COLON 16 00022 #define S 17 00023 #define SP 18 00024 #define SS 19 00025 #define P 20 00026 #define BN 21 00027 #define BZ 22 00028 #define F 23 00029 #define E 24 00030 #define EE 25 00031 #define D 26 00032 #define G 27 00033 #define GE 28 00034 #define L 29 00035 #define A 30 00036 #define AW 31 00037 #define O 32 00038 #define NONL 33 00039 #define OM 34 00040 #define Z 35 00041 #define ZM 36 00042 extern int f__pc,f__parenlvl,f__revloc; 00043 typedef union 00044 { real pf; 00045 doublereal pd; 00046 } ufloat; 00047 typedef union 00048 { short is; 00049 #ifndef KR_headers 00050 signed 00051 #endif 00052 char ic; 00053 integer il; 00054 #ifdef Allow_TYQUAD 00055 longint ili; 00056 #endif 00057 } Uint; 00058 #ifdef KR_headers 00059 extern int (*f__doed)(),(*f__doned)(); 00060 extern int (*f__dorevert)(); 00061 extern int rd_ed(),rd_ned(); 00062 extern int w_ed(),w_ned(); 00063 extern int signbit_f2c(); 00064 #else 00065 #ifdef __cplusplus 00066 extern "C" { 00067 #define Cextern extern "C" 00068 #else 00069 #define Cextern extern 00070 #endif 00071 extern int (*f__doed)(struct syl*, char*, ftnlen),(*f__doned)(struct syl*); 00072 extern int (*f__dorevert)(void); 00073 extern void fmt_bg(void); 00074 extern int pars_f(char*); 00075 extern int rd_ed(struct syl*, char*, ftnlen),rd_ned(struct syl*); 00076 extern int signbit_f2c(double*); 00077 extern int w_ed(struct syl*, char*, ftnlen),w_ned(struct syl*); 00078 extern int wrt_E(ufloat*, int, int, int, ftnlen); 00079 extern int wrt_F(ufloat*, int, int, ftnlen); 00080 extern int wrt_L(Uint*, int, ftnlen); 00081 #ifdef __cplusplus 00082 } 00083 #endif 00084 #endif 00085 extern flag f__cblank,f__cplus,f__workdone, f__nonl; 00086 extern char *f__fmtbuf; 00087 extern int f__scale; 00088 #define GET(x) if((x=(*f__getn)())<0) return(x) 00089 #define VAL(x) (x!='\n'?x:' ') 00090 #define PUT(x) (*f__putn)(x) 00091 00092 #undef TYQUAD 00093 #ifndef Allow_TYQUAD 00094 #undef longint 00095 #define longint long 00096 #else 00097 #define TYQUAD 14 00098 #endif 00099 00100 #ifdef KR_headers 00101 extern char *f__icvt(); 00102 #else 00103 Cextern char *f__icvt(longint, int*, int*, int); 00104 #endif