mirror of
https://github.com/PDP-10/its.git
synced 2026-02-14 20:06:27 +00:00
152 lines
3.5 KiB
C
152 lines
3.5 KiB
C
/* dependencies upon host machine !! */
|
||
|
||
# define WORDMASK 077777777777 /* mask all but high 3 bits */
|
||
# define SMALLEST "-34359738368" /* smallest negative number */
|
||
|
||
/* table sizes */
|
||
|
||
# define hshsize 200 /* size of hash table for identifiers */
|
||
# define cssiz 5000 /* size of character store */
|
||
# define pssize 100 /* size of action routine stack */
|
||
# define mcdsz 200 /* manifest constant definition table size */
|
||
# define eopchsz 0300
|
||
|
||
/* various values */
|
||
|
||
# define MREAD 'r' /* read mode */
|
||
# define MWRITE 'w' /* write mode */
|
||
# define MAPPEND 'a' /* append mode */
|
||
# define TEXT "t" /* text file */
|
||
# define BINARY "b" /* binary file */
|
||
|
||
# define TRUE 1
|
||
# define FALSE 0
|
||
# define NULL 0
|
||
# define UNDEF -1
|
||
# define OPENLOSS -1
|
||
|
||
/* token types */
|
||
|
||
# define LEXEOF 0 /* internal end of file indicator */
|
||
# define TEOF 1 /* end of file */
|
||
# define _SEMI 3
|
||
# define _LPARN 4
|
||
# define _RPARN 5
|
||
# define _LBRAK 6
|
||
# define _RBRAK 7
|
||
# define _COLON 8
|
||
# define _COMMA 9
|
||
# define _OR 10
|
||
# define _NOT 11
|
||
# define T_AMOP 12 /* abstract machine operator */
|
||
# define _TYPENAMES 13
|
||
# define _ALIGN 14
|
||
# define _POINTER 15
|
||
# define _CLASS 16
|
||
# define _CONFLICT 17
|
||
# define _TYPE 18
|
||
# define _MEMNAMES 19
|
||
# define _MACROS 20
|
||
# define _SIZE 21
|
||
# define _INDIRECT 22
|
||
# define _REGNAMES 23
|
||
# define _RETURNREG 24
|
||
# define _SAVEAREASIZE 25
|
||
# define _OFFSETRANGE 26
|
||
# define _M 27
|
||
# define TIDN 28 /* identifiers */
|
||
# define TINTCON 29 /* integer constants */
|
||
# define TSTRING 30 /* string constants */
|
||
|
||
/* location expression modes */
|
||
|
||
# define l_unknown 0
|
||
# define l_register 1
|
||
# define l_memory 2
|
||
|
||
/* basic data types */
|
||
|
||
# define tchar 0 /* character */
|
||
# define tint 1 /* integer */
|
||
# define tfloat 2 /* float */
|
||
# define tdouble 3 /* double */
|
||
|
||
/* storage classes */
|
||
|
||
# define c_register 0 /* register */
|
||
# define c_temp 1 /* temporary */
|
||
# define c_auto 1 /* automatic */
|
||
# define c_extdef 2 /* external definition */
|
||
# define c_static 3 /* static */
|
||
# define c_param 4 /* parameter */
|
||
# define c_label 5 /* label */
|
||
# define c_integer 6 /* integer literal */
|
||
# define c_float 7 /* floating-point literal */
|
||
# define c_string 8 /* string literal */
|
||
# define c_indirect 9 /* indirection through reg #0 ... */
|
||
# define c_extern 50 /* external */
|
||
# define c_struct 51 /* structure type */
|
||
# define c_mos 52 /* member of structure */
|
||
# define c_dummy 53 /* dummy structure def -
|
||
for recursive definitions */
|
||
|
||
/* enodes */
|
||
|
||
# define e_iminus 0000
|
||
# define e_dminus 0001
|
||
# define e_incbi 0002
|
||
# define e_bnot 0006
|
||
# define e_not 0007
|
||
# define e_sw 0012
|
||
# define e_incbc 0013
|
||
# define e_a0 0017
|
||
# define e_a3 0022
|
||
# define e_ind 0023
|
||
# define e_jz0 0024
|
||
# define e_jz3 0027
|
||
# define e_jn0 0030
|
||
# define e_jn3 0033
|
||
# define e_addi 0100
|
||
# define e_eaddi 0101
|
||
# define e_subi 0104
|
||
# define e_esubi 0105
|
||
# define e_muli 0110
|
||
# define e_divi 0114
|
||
# define e_mod 0120
|
||
# define e_ls 0122
|
||
# define e_els 0123
|
||
# define e_rs 0124
|
||
# define e_ers 0125
|
||
# define e_band 0126
|
||
# define e_eand 0127
|
||
# define e_xor 0130
|
||
# define e_exor 0131
|
||
# define e_bor 0132
|
||
# define e_eor 0133
|
||
# define e_and 0134
|
||
# define e_or 0135
|
||
# define e_p0sub 0136
|
||
# define e_assign 0137
|
||
# define e_add0 0146
|
||
# define e_add3 0151
|
||
# define e_sub0 0152
|
||
# define e_sub3 0155
|
||
# define e_movec 0160
|
||
# define e_idn 0177
|
||
# define e_int 0176
|
||
# define e_string 0175
|
||
# define e_float 0174
|
||
# define e_call 0173
|
||
# define e_colon 0172
|
||
# define e_qmark 0171
|
||
# define e_eqi 0200
|
||
# define e_eqd 0206
|
||
# define e_eqp0 0214
|
||
# define e_gep3 0243
|
||
# define e_incb0 0260
|
||
|
||
/* STRUCTURES */
|
||
|
||
struct _token {int type,index,line;};
|
||
# define token struct _token
|
||
|