Improve precision of interference analysis. Allow sizeof(v.r1.r2) expressions.
[repair.git] / Repair / RepairInterpreter / token.h
1 #ifndef Token_H
2 #define Token_H
3
4 #include "common.h"
5 #include <iostream.h>
6 #include <stdio.h>
7 #include "classlist.h"
8
9 class Token {
10  public:
11   Token(char *s, int tt);
12   Token(const Token & t);
13    Token & operator=(const Token &right);
14   Token();
15   ~Token();
16   int token_type;
17   char* str;
18
19  private:
20 };
21 void tokenname(int t);
22
23 #define TOKEN_OPENBRACK 1
24 #define TOKEN_CLOSEBRACK 2
25 #define TOKEN_FORALL 3
26 #define TOKEN_IN 4
27 #define TOKEN_OPENBRACE 5
28 #define TOKEN_CLOSEBRACE 6
29 #define TOKEN_COMMA 7
30 #define TOKEN_SIZEOF 8
31 #define TOKEN_OPENPAREN 9
32 #define TOKEN_CLOSEPAREN 10
33 #define TOKEN_LT 11
34 #define TOKEN_LTE 12
35 #define TOKEN_EQUALS 13
36 #define TOKEN_GTE 14
37 #define TOKEN_GT 15
38 #define TOKEN_ONE 16
39 #define TOKEN_DOT 17
40 #define TOKEN_DOTINV 18
41 #define TOKEN_NOT 19
42 #define TOKEN_LITERAL 20
43 #define TOKEN_PARAM 21
44 #define TOKEN_SUB 22
45 #define TOKEN_ADD 23
46 #define TOKEN_MULT 24
47 #define TOKEN_AND 25
48 #define TOKEN_OR 26
49 #define TOKEN_EOL 27
50 #define TOKEN_EOF 28
51 #define TOKEN_IMPLIES 29
52 #define TOKEN_TRUE 30
53 #define TOKEN_ISVALID 31
54 #define TOKEN_FOR 32
55 #define TOKEN_TO 33
56 #define TOKEN_STRUCTURE 34
57 #define TOKEN_RESERVED 35
58 #define TOKEN_LABEL 36
59 #define TOKEN_INT 37
60 #define TOKEN_BIT 38
61 #define TOKEN_BYTE 39
62 #define TOKEN_SUBTYPE 40
63 #define TOKEN_OF 41
64 #define TOKEN_SEMI 42
65 #define TOKEN_COLON 43
66 #define TOKEN_SET 44
67 #define TOKEN_ARROW 45
68 #define TOKEN_MANY 46
69 #define TOKEN_BAR 47
70 #define TOKEN_PARTITION 48
71 #define TOKEN_ELEMENT 49
72 #define TOKEN_DELAY 50
73 #define TOKEN_STATIC 51
74 #define TOKEN_DIV 52
75 #define TOKEN_CAST 53
76 #define TOKEN_SHORT 54
77 #define TOKEN_NULL 55
78 #define TOKEN_CRASH 56
79
80
81
82 class Reader{
83  public:
84   Reader(istream * is);
85   Token readnext();
86   Token peakahead();
87   void error();
88
89  private:
90   bool breakchar(int);
91   Token checktoken();
92   istream *readerin;
93   char buf[200];
94   int pos;
95 };
96
97 #endif