xref: /csrg-svn/usr.bin/f77/libI77/format.h (revision 47943)
1*47943Sbostic /*-
2*47943Sbostic  * Copyright (c) 1980 The Regents of the University of California.
3*47943Sbostic  * All rights reserved.
42510Sdlw  *
5*47943Sbostic  * %sccs.include.proprietary.c%
6*47943Sbostic  *
7*47943Sbostic  *	@(#)format.h	5.2 (Berkeley) 04/12/91
823060Skre  */
923060Skre 
1023060Skre /*
112510Sdlw  * format parser definitions
122510Sdlw  */
132510Sdlw 
142510Sdlw struct syl
152510Sdlw {
1617968Slibs 	short op,p1,p2,rpcnt;
172510Sdlw };
182510Sdlw 
1917978Slibs /*	do NOT change this defines or add new ones without
2018017Slibs  *	changing the value of the following define for OP_TYPE_TAB.
2118017Slibs  *	change format.h both in the compiler and libI77 simultaneously.
2217978Slibs  */
2317978Slibs 
2418017Slibs 
252510Sdlw #define RET	1
262510Sdlw #define REVERT 	2
272510Sdlw #define GOTO 	3
282510Sdlw #define X 	4
292510Sdlw #define SLASH 	5
302510Sdlw #define STACK 	6
312510Sdlw #define I 	7
322510Sdlw #define ED 	8
332510Sdlw #define NED 	9
342510Sdlw #define IM 	10
352510Sdlw #define APOS 	11
362510Sdlw #define H 	12
372510Sdlw #define TL 	13
382510Sdlw #define TR 	14
392510Sdlw #define T 	15
402510Sdlw #define COLON 	16
412510Sdlw #define S 	17
422510Sdlw #define SP 	18
432510Sdlw #define SS 	19
442510Sdlw #define P 	20
4517875Sdlw #define BNZ 	21
4617875Sdlw #define B 	22
472510Sdlw #define F 	23
482510Sdlw #define E 	24
492510Sdlw #define EE 	25
502510Sdlw #define D 	26
512510Sdlw #define DE	27		/*** NOT STANDARD FORTRAN ***/
522510Sdlw #define G 	28
532510Sdlw #define GE 	29
542510Sdlw #define L 	30
552510Sdlw #define A 	31
562510Sdlw #define AW	32
572510Sdlw #define R	33		/*** NOT STANDARD FORTRAN ***/
582510Sdlw #define DOLAR	34		/*** NOT STANDARD FORTRAN ***/
592510Sdlw #define SU	35		/*** NOT STANDARD FORTRAN ***/
602510Sdlw 
6117978Slibs #define LAST_TERM SU
6217978Slibs 
6317978Slibs /* OP_TYPE_TAB is used in dofio.c .
6417978Slibs 	  Each value corresponds to a value above, and must be
6517978Slibs 	  ED for editing terms: I,IM,F,E,EE,D,DE,G,GE,L,A,AW
6617978Slibs 	  NED for nonediting terms which change the I/O stream:
6717978Slibs 			X,SLASH,APOS,H,TL,TR,T
6817978Slibs 	  and just the value of the term for all others.
6917978Slibs 
7017978Slibs 	  E.g. SP is defined above as 17, so the element 17 of
7117978Slibs 	  OP_TYPE_TAB (counting from zero) is SP since SP does not
7217978Slibs 	  read or write data;
7317978Slibs 	  IM is defined as 10 so the element 10 of OP_TYPE_TAB
7417978Slibs 	  is ED since IM edits data from the i/o list.
7517978Slibs  */
7617978Slibs #define OP_TYPE_TAB {0, RET, REVERT, GOTO, NED, NED, STACK, ED, ED, NED, \
7717978Slibs 			ED, NED, NED, NED, NED, NED, COLON, S, SP, SS, P, \
7817978Slibs 			BNZ, B, ED, ED, ED, ED, ED, ED, ED, ED, ED, ED, \
7917978Slibs 			R, DOLAR, SU }
8017978Slibs 
8116597Sralph #define	FMTUNKN	-1
822510Sdlw #define FMTOK	1
832510Sdlw #define FMTERR	0
842510Sdlw 
8517968Slibs #define FMT_COMP 0x101		/* indicates pre-compiled formats */
8617968Slibs 
8717968Slibs extern struct syl *syl_ptr;
8817968Slibs extern short pc;
89