1998-02-01 09:37:08 +08:00
|
|
|
struct syl
|
2002-06-01 20:38:32 +08:00
|
|
|
{
|
|
|
|
int op;
|
|
|
|
int p1;
|
|
|
|
union
|
|
|
|
{
|
|
|
|
int i[2];
|
|
|
|
char *s;
|
|
|
|
}
|
|
|
|
p2;
|
|
|
|
};
|
1998-02-01 09:37:08 +08:00
|
|
|
#define RET1 1
|
|
|
|
#define REVERT 2
|
|
|
|
#define GOTO 3
|
|
|
|
#define X 4
|
|
|
|
#define SLASH 5
|
|
|
|
#define STACK 6
|
|
|
|
#define I 7
|
|
|
|
#define ED 8
|
|
|
|
#define NED 9
|
|
|
|
#define IM 10
|
|
|
|
#define APOS 11
|
|
|
|
#define H 12
|
|
|
|
#define TL 13
|
|
|
|
#define TR 14
|
|
|
|
#define T 15
|
|
|
|
#define COLON 16
|
|
|
|
#define S 17
|
|
|
|
#define SP 18
|
|
|
|
#define SS 19
|
|
|
|
#define P 20
|
|
|
|
#define BN 21
|
|
|
|
#define BZ 22
|
|
|
|
#define F 23
|
|
|
|
#define E 24
|
|
|
|
#define EE 25
|
|
|
|
#define D 26
|
|
|
|
#define G 27
|
|
|
|
#define GE 28
|
|
|
|
#define L 29
|
|
|
|
#define A 30
|
|
|
|
#define AW 31
|
|
|
|
#define O 32
|
|
|
|
#define NONL 33
|
|
|
|
#define OM 34
|
|
|
|
#define Z 35
|
|
|
|
#define ZM 36
|
2002-06-01 20:38:32 +08:00
|
|
|
extern int f__pc, f__parenlvl, f__revloc;
|
1998-02-01 09:37:08 +08:00
|
|
|
typedef union
|
2002-06-01 20:38:32 +08:00
|
|
|
{
|
|
|
|
real pf;
|
|
|
|
doublereal pd;
|
|
|
|
}
|
|
|
|
ufloat;
|
1998-02-01 09:37:08 +08:00
|
|
|
typedef union
|
2002-06-01 20:38:32 +08:00
|
|
|
{
|
|
|
|
short is;
|
|
|
|
signed char ic;
|
|
|
|
integer il;
|
1998-02-01 09:37:08 +08:00
|
|
|
#ifdef Allow_TYQUAD
|
2002-06-01 20:38:32 +08:00
|
|
|
longint ili;
|
1998-02-01 09:37:08 +08:00
|
|
|
#endif
|
2002-06-01 20:38:32 +08:00
|
|
|
}
|
|
|
|
Uint;
|
|
|
|
extern int (*f__doed) (struct syl *, char *, ftnlen),
|
|
|
|
(*f__doned) (struct syl *);
|
|
|
|
extern int (*f__dorevert) (void);
|
|
|
|
extern void fmt_bg (void);
|
|
|
|
extern int pars_f (char *);
|
|
|
|
extern int rd_ed (struct syl *, char *, ftnlen), rd_ned (struct syl *);
|
|
|
|
extern int w_ed (struct syl *, char *, ftnlen), w_ned (struct syl *);
|
|
|
|
extern int wrt_E (ufloat *, int, int, int, ftnlen);
|
|
|
|
extern int wrt_F (ufloat *, int, int, ftnlen);
|
|
|
|
extern int wrt_L (Uint *, int, ftnlen);
|
|
|
|
extern flag f__cblank, f__cplus, f__workdone, f__nonl;
|
1998-02-01 09:37:08 +08:00
|
|
|
extern char *f__fmtbuf;
|
|
|
|
extern int f__fmtlen;
|
|
|
|
extern int f__scale;
|
|
|
|
#define GET(x) if((x=(*f__getn)())<0) return(x)
|
|
|
|
#define VAL(x) (x!='\n'?x:' ')
|
|
|
|
#define PUT(x) (*f__putn)(x)
|
|
|
|
extern int f__cursor;
|
|
|
|
|
|
|
|
#undef TYQUAD
|
|
|
|
#ifndef Allow_TYQUAD
|
|
|
|
#undef longint
|
|
|
|
#define longint long
|
|
|
|
#else
|
|
|
|
#define TYQUAD 14
|
|
|
|
#endif
|
|
|
|
|
2002-06-01 20:38:32 +08:00
|
|
|
extern char *f__icvt (longint, int *, int *, int);
|