|
|
1.1 root 1: /* @(#)tk.h 2.3 */
2:
3: typedef short LCE; /* lanuguage code - used in mabiguous sitiuations */
4: #define lcC 0
5: #define lcPascal 1
6: #define lcFortran 2
7:
8: /* these are in ASCII order of their characters, where practicable.
9: * this is not meaningful, just meant to help organize things.
10: */
11:
12: /* where a token has a certain meaning (e.g. tkStar means tkMul), this
13: * is done with the = operator. When there are multiple meanings
14: * (i.e. the character is overloaded) then the BINARY operator token has
15: * the same value as the basic symbol (e.g. tkMul=tkStar) and the unary
16: * operator has its own token (tkDeref). The translation is context
17: * sensitive and is done in expr.c.
18: */
19: /* this WAS an enum, but went to defines for V7 compatibility */
20:
21: #define tkNil 0
22: #define tkBang 1 /* ! */
23: #define tkDQuote 2 /* " */
24: #define tkHash 3 /* # */
25: #define tkDollar 4 /* $ */
26: #define tkPercent 5 /* % */
27: #define tkModulo tkPercent
28: #define tkAmper 7 /* & */
29: #define tkBitAnd tkAmper
30: #define tkSQuote 8 /* ' */
31: #define tkLP 9 /* ( */
32: #define tkRP 10 /* ) */
33: #define tkStar 11 /* * */
34: #define tkMul tkStar
35: #define tkPlus 12 /* + */
36: #define tkComma 13 /* , */
37: #define tkMinus 14 /* - */
38: #define tkDot 15 /* . */
39: #define tkSlash 16 /* / */
40: /* the numbers */
41: #define tkColon 17 /* : */
42: #define tkSemi 18 /* ; */
43: #define tkLAB 19 /* < */
44: #define tkLT tkLAB
45: #define tkAssign 20 /* = */
46: #define tkRAB 21 /* > */
47: #define tkGT tkRAB
48: #define tkQuest 22 /* ? */
49: #define tkAt 23 /* @ */
50: /* upper case characters */
51: #define tkLSB 24 /* [ */
52: #define tkBackSlash 25 /* \ */
53: #define tkRSB 26 /* ] */
54: #define tkUpArrow 27 /* ^ */
55: #define tkXOR tkUpArrow
56: #define tkUnderScore 28 /* _ */
57: /* lower case characters */
58: #define tkLCB 29 /* { */
59: #define tkBar 30 /* | */
60: #define tkBitOr tkBar
61: #define tkRCB 31 /* } */
62: #define tkTilda 32 /* ~ */
63: /* overloaded characters - translated in expr.c */
64: #define tkRef 33 /* & */
65: #define tkDeref 34 /* * */
66: #define tkUMinus 35 /* - unary minus */
67: /* these are compound tokens */
68: #define tkAssPlus 36 /* += */
69: #define tkAssMinus 37 /* -= */
70: #define tkAssMult 38 /* *= */
71: #define tkAssDiv 39 /* /= */
72: #define tkAssMod 40 /* %= */
73: #define tkAssXOR 41 /* ^= */
74: #define tkAssBAND 42 /* &= */
75: #define tkAssBOR 43 /* |= */
76: #define tkAssLeft 44 /* <<= */
77: #define tkAssRight 45 /* >>= */
78: #define tkLAND 46 /* && */
79: #define tkLOR 47 /* || */
80: #define tkLE 48 /* <= */
81: #define tkGE 49 /* >= */
82: #define tkEqual 50 /* == */
83: #define tkNotEqual 51 /* != */
84: #define tkLShift 52 /* << */
85: #define tkRShift 53 /* >> */
86: #define tkPtr 54 /* -> */
87: #define tkDiv 55 /* // for division */
88: #define tkNumber 56 /* 0123456789 */
89: #define tkStr 57 /* Hi */
90: #define tkStrConstant 58 /* "Hi\n" */
91: #define tkCharConstant 60 /* '\t' for instance */
92: /* these are psuedo-tokens */
93: #define tkIndex 61 /* the index operation */
94: #define tkBOE 62 /* beginning of expression */
95: #define tkEOE 63 /* end of expression */
96: #define tkAdr 64 /* this is an address */
97: #define tkSizeof 65 /* the C sizeof operator */
98: #define tkInside 66 /* inside of procedure */
99: #define tkMax 67 /* highest value used + 1 */
100: #define tkOther -1 /* <Twilight Zone> */
101:
102: typedef int TKE, *pTKE;
103: extern TKE vtkLast, vtk;
104: extern TKE TkNext();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.