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