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