Move the sources to trunk
[opencv] / apps / Hawk / CVEiCL / EiC / src / lexer.h
1 #ifndef LEXERH_
2 #define LEXERH_
3
4 /* lexer.h
5  *
6  *      (C) Copyright May  7 1995, Edmond J. Breen.
7  *                 ALL RIGHTS RESERVED.
8  * This code may be copied for personal, non-profit use only.
9  *
10  */
11 enum{
12   NUM = 350, HEX, OCTAL, STR,
13   CHAR,UCHAR,
14   SHORT, USHORT,
15   INT,UINT,
16   LONG, ULONG,
17   FLOAT,DOUBLE,
18
19   ID,TYPENAME, FUNCTION,
20   INC,          /* ++ */
21   DEC,          /* -- */
22   RARROW,       /* -> */
23   LSHT,         /* << */
24   RSHT,         /* >> */
25
26   MISC, /* dummy for EiC_lexan */
27
28   RELOP,  /* relational operators */
29   LT,   /* < */
30   LE,   /* <= */
31   EQ,   /* == */
32   NE,   /* != */
33   GT,   /* >  */
34   GE,   /* >= */
35
36   LOR,  /* || */
37   BOR,  /* | */
38   XOR,  /* ^ */
39
40   LAND, /* && */
41   AND,  /* & */
42
43   LOGOP,        /* logical operators */
44   NOT,          /* ! */
45
46   ASSOP,        /* assignment operators */
47   ASS,          /* =  */
48   ADDEQ,        /* += */
49   SUBEQ,        /* -= */
50   MULEQ,        /* *= */
51   DIVEQ,        /* /= */
52   MODEQ,        /* %= */
53   RSHTEQ,       /* >>= */
54   LSHTEQ,       /* <<= */
55   ANDEQ,        /* &= */
56   BOREQ,        /* |= */
57   XOREQ /* ^= */
58
59 };
60
61 void EiC_initlex(char *str);
62 int EiC_lexan(void);
63 char EiC_nextchar(void);
64
65 #if 0
66
67 extern unsigned short STOKEN;
68 #define retractlexan()  STOKEN=token->Tok
69
70 #else
71
72 /* the following is to provide EiC with
73  *  N token lookahead parser
74  */
75
76 #define ILOOKAHEAD
77 #define MAX_TOKENS 3
78
79 extern token_t EiC_TokenArray[];
80 extern token_t *token;
81 extern int EiC_TokenI, EiC_TokenP, EiC_TokenR;
82 extern char *lex_buff;
83 extern char EiC_LEXEM[];
84
85 #define retractlexan()   do\
86 {\
87      if(EiC_TokenI) {\
88          EiC_TokenR++;EiC_TokenI--;\
89          if(EiC_TokenP==0) EiC_TokenP = MAX_TOKENS;\
90          EiC_TokenP--;\
91          if(EiC_TokenP) token=&EiC_TokenArray[EiC_TokenP-1];\
92          else token=&EiC_TokenArray[MAX_TOKENS-1];\
93      }\
94 }while(0)
95
96 #endif
97
98 #endif  /* LEXERH_ */
99
100
101
102
103
104
105