|
|
1.1 root 1: /*
2: * tree node operators
3: */
4: #define P2ERROR 1
5: #define P2NAME 2
6: #define P2STRING 3
7: #define P2ICON 4
8: #define P2FCON 5
9: #define P2PLUS 6
10: #define P2MINUS 8 /* also unary */
11: #define P2MUL 11 /* also unary */
12: #define P2AND 14 /* also unary */
13: #define P2OR 17
14: #define P2ER 19
15: #define P2QUEST 21
16: #define P2COLON 22
17: #define P2ANDAND 23
18: #define P2OROR 24
19: /*
20: * yacc operator classes, reserved words, little symbols, etc.
21: * operators 25 .. 57 not used
22: */
23: #define P2ASSIGN 58
24: #define P2COMOP 59
25: #define P2DIV 60
26: #define P2MOD 62
27: #define P2LS 64
28: #define P2RS 66
29: #define P2DOT 68
30: #define P2STREF 69
31: #define P2CALL 70 /* also unary */
32: #define P2FORTCALL 73 /* also unary */
33: #define P2NOT 76
34: #define P2COMPL 77
35: #define P2INCR 78
36: #define P2DECR 79
37: #define P2EQ 80
38: #define P2NE 81
39: #define P2LE 82
40: #define P2LT 83
41: #define P2GE 84
42: #define P2GT 85
43: #define P2ULE 86
44: #define P2ULT 87
45: #define P2UGE 88
46: #define P2UGT 89
47: #define P2SETBIT 90
48: #define P2TESTBIT 91
49: #define P2RESETBIT 92
50: #define P2ARS 93
51: #define P2REG 94
52: #define P2OREG 95
53: #define P2CCODES 96
54: #define P2FREE 97
55: #define P2STASG 98
56: #define P2STARG 99
57: #define P2STCALL 100
58:
59: /*
60: * some conversion operators
61: */
62: #define P2FLD 103
63: #define P2SCONV 104
64: #define P2PCONV 105
65: #define P2PMCONV 106
66: #define P2PVCONV 107
67:
68: /*
69: * special node operators, used for special contexts
70: */
71: #define P2FORCE 108
72: #define P2CBRANCH 109
73: #define P2INIT 110
74: #define P2CAST 111
75:
76: /*
77: * prefix unary operator modifier
78: */
79: #define P2UNARY 2+
80:
81: /*
82: * these borrowed from /usr/src/cmd/mip/fort.c
83: * to use the binary interface.
84: * only FTEXT, FEXPR, FLBRAC, FRBRAC, and FEOF are used
85: */
86: #define P2FTEXT 200
87: #define P2FEXPR 201
88: #define P2FLBRAC 203
89: #define P2FRBRAC 204
90: #define P2FEOF 205
91:
92: /*
93: * type names
94: */
95: #define P2UNDEF 0
96: #define P2FARG 1
97: #define P2CHAR 2
98: #define P2SHORT 3
99: #define P2INT 4
100: #define P2LONG 5
101: #define P2FLOAT 6
102: #define P2DOUBLE 7
103: #define P2STRTY 8
104: #define P2UNIONTY 9
105: #define P2ENUMTY 10
106: #define P2MOETY 11
107: #define P2UCHAR 12
108: #define P2USHORT 13
109: #define P2UNSIGNED 14
110: #define P2ULONG 15
111:
112: /*
113: * type modifiers
114: */
115: #define P2PTR 020
116: #define P2FTN 040
117: #define P2ARY 060
118:
119: /*
120: * the runtime framepointer register
121: */
122: #define P2FP 13
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.