xref: /csrg-svn/usr.bin/f77/libI77/format.h (revision 17978)
12510Sdlw /*
2*17978Slibs char id_format[] = "@(#)format.h	1.5";
32510Sdlw  *
42510Sdlw  * format parser definitions
52510Sdlw  */
62510Sdlw 
72510Sdlw struct syl
82510Sdlw {
917968Slibs 	short op,p1,p2,rpcnt;
102510Sdlw };
112510Sdlw 
12*17978Slibs /*	do NOT change this defines or add new ones without
13*17978Slibs  *	changing the value of the follow define for OP_TYPE_TAB
14*17978Slibs  */
15*17978Slibs 
162510Sdlw #define RET	1
172510Sdlw #define REVERT 	2
182510Sdlw #define GOTO 	3
192510Sdlw #define X 	4
202510Sdlw #define SLASH 	5
212510Sdlw #define STACK 	6
222510Sdlw #define I 	7
232510Sdlw #define ED 	8
242510Sdlw #define NED 	9
252510Sdlw #define IM 	10
262510Sdlw #define APOS 	11
272510Sdlw #define H 	12
282510Sdlw #define TL 	13
292510Sdlw #define TR 	14
302510Sdlw #define T 	15
312510Sdlw #define COLON 	16
322510Sdlw #define S 	17
332510Sdlw #define SP 	18
342510Sdlw #define SS 	19
352510Sdlw #define P 	20
3617875Sdlw #define BNZ 	21
3717875Sdlw #define B 	22
382510Sdlw #define F 	23
392510Sdlw #define E 	24
402510Sdlw #define EE 	25
412510Sdlw #define D 	26
422510Sdlw #define DE	27		/*** NOT STANDARD FORTRAN ***/
432510Sdlw #define G 	28
442510Sdlw #define GE 	29
452510Sdlw #define L 	30
462510Sdlw #define A 	31
472510Sdlw #define AW	32
482510Sdlw #define R	33		/*** NOT STANDARD FORTRAN ***/
492510Sdlw #define DOLAR	34		/*** NOT STANDARD FORTRAN ***/
502510Sdlw #define SU	35		/*** NOT STANDARD FORTRAN ***/
512510Sdlw 
52*17978Slibs #define LAST_TERM SU
53*17978Slibs 
54*17978Slibs /* OP_TYPE_TAB is used in dofio.c .
55*17978Slibs 	  Each value corresponds to a value above, and must be
56*17978Slibs 	  ED for editing terms: I,IM,F,E,EE,D,DE,G,GE,L,A,AW
57*17978Slibs 	  NED for nonediting terms which change the I/O stream:
58*17978Slibs 			X,SLASH,APOS,H,TL,TR,T
59*17978Slibs 	  and just the value of the term for all others.
60*17978Slibs 
61*17978Slibs 	  E.g. SP is defined above as 17, so the element 17 of
62*17978Slibs 	  OP_TYPE_TAB (counting from zero) is SP since SP does not
63*17978Slibs 	  read or write data;
64*17978Slibs 	  IM is defined as 10 so the element 10 of OP_TYPE_TAB
65*17978Slibs 	  is ED since IM edits data from the i/o list.
66*17978Slibs  */
67*17978Slibs #define OP_TYPE_TAB {0, RET, REVERT, GOTO, NED, NED, STACK, ED, ED, NED, \
68*17978Slibs 			ED, NED, NED, NED, NED, NED, COLON, S, SP, SS, P, \
69*17978Slibs 			BNZ, B, ED, ED, ED, ED, ED, ED, ED, ED, ED, ED, \
70*17978Slibs 			R, DOLAR, SU }
71*17978Slibs 
7216597Sralph #define	FMTUNKN	-1
732510Sdlw #define FMTOK	1
742510Sdlw #define FMTERR	0
752510Sdlw 
7617968Slibs #define FMT_COMP 0x101		/* indicates pre-compiled formats */
7717968Slibs 
7817968Slibs extern struct syl *syl_ptr;
7917968Slibs extern int parenlvl,revloc;
8017968Slibs extern short pc;
81