Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v102/c168/tabl.lis
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

122 lines
5.7 KiB
Plaintext

1File: TABL.C Page 1
1 /*
2 Copyright 1982
3 Alcyon Corporation
4 8716 Production Ave.
5 San Diego, Ca. 92121
6 */
7
8 #include "cgen.h"
9 #define ASGOP OPRAS|OPASSIGN|OPLVAL|OPBIN
10
11 /*info on operators:*/
12 /*000077-- OPPRI - priority*/
13 /*000100-- OPBIN - binary operator*/
14 /*000200-- OPLVAL - left operand must be lvalue*/
15 /*000400-- OPREL - relational operator*/
16 /*001000-- OPASSIGN - assignment operator*/
17 /*002000-- OPLWORD - int required on left*/
18 /*004000-- OPRWORD - int required on right*/
19 /*010000-- OPCOM commutative*/
20 /*020000-- OPRAS - right associative*/
21 /*040000-- OPTERM - termination node*/
22 /*100000 - OPCONVS - conversion operator*/
23 int opinfo[] {
24 TRMPRI, /*EOF*/
25 ADDPRI|OPCOM|OPBIN, /*ADD - expr + expr*/
26 ADDPRI|OPBIN, /*SUB - expr - expr*/
27 MULPRI|OPCOM|OPBIN, /*MULT - expr * expr*/
28 MULPRI|OPBIN, /*DIV - expr / expr*/
29 MULPRI|OPBIN, /*MOD - expr % expr*/
30 SHFPRI|OPLWORD|OPRWORD|OPBIN, /*RSH - expr >> expr*/
31 SHFPRI|OPLWORD|OPRWORD|OPBIN, /*LSH - expr << expr*/
32 ANDPRI|OPCOM|OPLWORD|OPRWORD|OPBIN, /*AND - expr & expr*/
33 ORPRI|OPCOM|OPLWORD|OPRWORD|OPBIN, /*OR - expr | expr*/
34 ORPRI|OPCOM|OPLWORD|OPRWORD|OPBIN, /*XOR - expr ^ expr*/
35 UNOPRI|OPRAS|OPLWORD, /*NOT - ! expr*/
36 UNOPRI|OPRAS, /*UMINUS - - expr*/
37 UNOPRI|OPRAS|OPLWORD, /*COMPL - ~ expr*/
38 UNOPRI|OPRAS|OPLVAL|OPBIN, /*PREDEC - --lvalue*/
39 UNOPRI|OPRAS|OPLVAL|OPBIN, /*PREINC - ++lvalue*/
40 UNOPRI|OPRAS|OPLVAL|OPBIN, /*POSTDEC - lvalue--*/
41 UNOPRI|OPRAS|OPLVAL|OPBIN, /*POSTINC - lvalue++*/
42 ASGPRI|ASGOP, /*ASSIGN - lvalue = expr*/
43 ASGPRI|ASGOP, /*EQADD - lvalue += expr*/
44 ASGPRI|ASGOP, /*EQSUB - lvalue -= expr*/
45 ASGPRI|ASGOP, /*EQMULT - lvalue *= expr*/
46 ASGPRI|ASGOP, /*EQDIV - lvalue /= expr*/
47 ASGPRI|ASGOP, /*EQMOD - lvalue %= expr*/
48 ASGPRI|ASGOP|OPLWORD|OPRWORD, /*EQRSH - lvalue >>= expr*/
49 ASGPRI|ASGOP|OPLWORD|OPRWORD, /*EQLSH - lvalue <<= expr*/
50 ASGPRI|ASGOP|OPLWORD|OPRWORD, /*EQAND - lvalue &= expr*/
51 ASGPRI|ASGOP|OPLWORD|OPRWORD, /*EQOR - lvalue |= expr*/
52 ASGPRI|ASGOP|OPLWORD|OPRWORD, /*EQXOR - lvalue ^= expr*/
53 TRMPRI, /*FJSR - generate function jsr*/
54 EQLPRI|OPREL|OPBIN, /*EQUALS - expr == expr*/
55 EQLPRI|OPREL|OPBIN, /*NEQUALS - expr != expr*/
56 RELPRI|OPREL|OPBIN, /*GREAT - expr > expr*/
57 RELPRI|OPREL|OPBIN, /*GREATEQ - expr >= expr*/
58 RELPRI|OPREL|OPBIN, /*LESS - expr < expr*/
59 RELPRI|OPREL|OPBIN, /*LESSEQ - expr <= expr*/
1File: TABL.C Page 2
60 TRMPRI|OPCONVS, /*INT2L*/
61 TRMPRI|OPCONVS, /*LONG2I*/
62 TRMPRI|OPBIN, /*BTST*/
63 TRMPRI, /*LOAD*/
64 TRMPRI|OPBIN, /*LMULT*/
65 TRMPRI|OPBIN, /*LDIV*/
66 TRMPRI|OPBIN, /*LMOD*/
67 TRMPRI|OPBIN, /*LEQMULT*/
68 TRMPRI|OPBIN, /*LEQDIV*/
69 TRMPRI|OPBIN, /*LEQMOD*/
70 TRMPRI|ASGOP, /*EQADDR*/
71 TRMPRI, /*EQNOT*/
72 TRMPRI, /*EQNEG*/
73 TRMPRI|OPBIN, /*DOCAST*/
74 ASGPRI|ASGOP, /*STASSIGN [vlh]*/
75 TRMPRI|OPCONVS, /*LONG2F [vlh] 3.4*/
76 TRMPRI|OPCONVS, /*FLOAT2L [vlh] 3.4*/
77 TRMPRI|OPCONVS, /*INT2F [vlh] 3.4*/
78 TRMPRI|OPCONVS, /*FLOAT2I [vlh] 3.4*/
79 UNOPRI|OPRAS, /*TOCHAR [vlh] 4.0*/
80 TRMPRI, /*unused - 56*/
81 TRMPRI, /*unused - 57*/
82 TRMPRI, /*unused - 58*/
83 TRMPRI, /*unused - 59*/
84 UNOPRI|OPRAS|OPLVAL, /*ADDR - & expr*/
85 UNOPRI|OPRAS|OPLWORD, /*INDR - * expr*/
86 LNDPRI|OPBIN, /*LAND - expr && expr*/
87 LORPRI|OPBIN, /*LOR - expr || expr*/
88 QMKPRI|OPRAS|OPBIN, /*QMARK - expr ? expr : expr*/
89 QMKPRI|OPRAS|OPBIN, /*COLON*/
90 COMPRI|OPBIN, /*COMMA*/
91 TRMPRI|OPTERM, /*CINT*/
92 TRMPRI|OPTERM, /*CLONG*/
93 TRMPRI|OPTERM, /*SYMBOL*/
94 TRMPRI|OPTERM, /*AUTOINC*/
95 TRMPRI|OPTERM, /*AUTODEC*/
96 LPNPRI|OPBIN, /*CALL - call with arguments*/
97 LPNPRI, /*NACALL - no argument call*/
98 TRMPRI, /*BFIELD - field selection*/
99 TRMPRI, /*CONDBR*/
100 TRMPRI, /*INIT*/
101 TRMPRI, /*LOADREG*/
102 TRMPRI|OPTERM, /*DCLONG - divide const long*/
103 TRMPRI|OPTERM, /*CFLOAT [vlh] 3.4*/
104 UNOPRI|OPRAS|OPASSIGN|OPBIN, /*CAST*/
105 TRMPRI, /*SEMI*/
106 TRMPRI, /*LCURBR - {*/
107 TRMPRI, /*RCURBR - }*/
108 LPNPRI, /*LBRACK - [*/
109 RPNPRI, /*RBRACK - ]*/
110 LPNPRI, /*LPAREN - )*/
111 RPNPRI, /*RPAREN - )*/
112 TRMPRI|OPTERM, /*STRING*/
113 TRMPRI, /*RESWORD*/
114 LPNPRI|OPBIN, /*APTR - expr -> symbol*/
115 LPNPRI|OPBIN, /*PERIOD - expr . symbol*/
116 UNOPRI|OPRAS, /*SIZEOF - sizeof expr*/
117 LPNPRI|OPBIN, /*MPARENS - matching parens ()*/
118 };
1File: TABL.C Page 3