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