index
1 /************************************************************
2 * file: common.h
3 * date: 2006-03-28
4 * author: ideawu
5 * describe: none;
6 *************************************************************/
7 #ifndef COMMON_H
8 #define COMMON_H
9
10 typedef enum{
11 ERROR, UNKNOWN,
12 LEXER_DONE, // success!
13 IF, THEN, ELSE, WHILE, DO, BEGIN, END, //9
14 ID, NUM, //11
15 AND, OR,
16 LT, LE, GT, GE, EQ, //18
17 ASSIGN, PLUS, MINUS, MUL, DIV, //23
18 LP, RP, SEMI
19 }TokenType;
20
21
22 typedef struct{
23 TokenType type;
24 char *name;
25 }Token;
26
27
28 typedef enum{
29 INERROR,
30 START,
31 DONE,
32 INID,
33 INNUM,
34 INLE, // LT & LE
35 INGE, // GT & GE
36 INEQ, // EQ & ASSIGN
37 INCOMMENT
38 }ScannerState;
39
40
41 typedef enum{
42 ST_ERROR,
43 ST_NORMAL, // undefined, but not error
44 ST_EXP, // expression
45 ST_IF, ST_THEN, ST_WHILE, ST_ASSIGN, ST_BEGIN
46 }StatementType;
47
48 #endif
49
50
51