xref: /original-bsd/usr.bin/f77/libI77/format.h (revision a9c19d04)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)format.h	5.1 (Berkeley) 06/07/85
7  */
8 
9 /*
10  * format parser definitions
11  */
12 
13 struct syl
14 {
15 	short op,p1,p2,rpcnt;
16 };
17 
18 /*	do NOT change this defines or add new ones without
19  *	changing the value of the following define for OP_TYPE_TAB.
20  *	change format.h both in the compiler and libI77 simultaneously.
21  */
22 
23 
24 #define RET	1
25 #define REVERT 	2
26 #define GOTO 	3
27 #define X 	4
28 #define SLASH 	5
29 #define STACK 	6
30 #define I 	7
31 #define ED 	8
32 #define NED 	9
33 #define IM 	10
34 #define APOS 	11
35 #define H 	12
36 #define TL 	13
37 #define TR 	14
38 #define T 	15
39 #define COLON 	16
40 #define S 	17
41 #define SP 	18
42 #define SS 	19
43 #define P 	20
44 #define BNZ 	21
45 #define B 	22
46 #define F 	23
47 #define E 	24
48 #define EE 	25
49 #define D 	26
50 #define DE	27		/*** NOT STANDARD FORTRAN ***/
51 #define G 	28
52 #define GE 	29
53 #define L 	30
54 #define A 	31
55 #define AW	32
56 #define R	33		/*** NOT STANDARD FORTRAN ***/
57 #define DOLAR	34		/*** NOT STANDARD FORTRAN ***/
58 #define SU	35		/*** NOT STANDARD FORTRAN ***/
59 
60 #define LAST_TERM SU
61 
62 /* OP_TYPE_TAB is used in dofio.c .
63 	  Each value corresponds to a value above, and must be
64 	  ED for editing terms: I,IM,F,E,EE,D,DE,G,GE,L,A,AW
65 	  NED for nonediting terms which change the I/O stream:
66 			X,SLASH,APOS,H,TL,TR,T
67 	  and just the value of the term for all others.
68 
69 	  E.g. SP is defined above as 17, so the element 17 of
70 	  OP_TYPE_TAB (counting from zero) is SP since SP does not
71 	  read or write data;
72 	  IM is defined as 10 so the element 10 of OP_TYPE_TAB
73 	  is ED since IM edits data from the i/o list.
74  */
75 #define OP_TYPE_TAB {0, RET, REVERT, GOTO, NED, NED, STACK, ED, ED, NED, \
76 			ED, NED, NED, NED, NED, NED, COLON, S, SP, SS, P, \
77 			BNZ, B, ED, ED, ED, ED, ED, ED, ED, ED, ED, ED, \
78 			R, DOLAR, SU }
79 
80 #define	FMTUNKN	-1
81 #define FMTOK	1
82 #define FMTERR	0
83 
84 #define FMT_COMP 0x101		/* indicates pre-compiled formats */
85 
86 extern struct syl *syl_ptr;
87 extern short pc;
88