1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-14 20:06:27 +00:00
Files
PDP-10.its/src/c/gt.h
2018-10-25 18:31:55 +02:00

152 lines
3.5 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* 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