|
|
@ -8,7 +8,7 @@ |
|
|
|
#define FLEX_SCANNER |
|
|
|
#define YY_FLEX_MAJOR_VERSION 2 |
|
|
|
#define YY_FLEX_MINOR_VERSION 5 |
|
|
|
#define YY_FLEX_SUBMINOR_VERSION 39 |
|
|
|
#define YY_FLEX_SUBMINOR_VERSION 35 |
|
|
|
#if YY_FLEX_SUBMINOR_VERSION > 0 |
|
|
|
#define FLEX_BETA |
|
|
|
#endif |
|
|
@ -161,12 +161,7 @@ typedef unsigned int flex_uint32_t; |
|
|
|
typedef struct yy_buffer_state *YY_BUFFER_STATE; |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef YY_TYPEDEF_YY_SIZE_T |
|
|
|
#define YY_TYPEDEF_YY_SIZE_T |
|
|
|
typedef size_t yy_size_t; |
|
|
|
#endif |
|
|
|
|
|
|
|
extern yy_size_t yyleng; |
|
|
|
extern int yyleng; |
|
|
|
|
|
|
|
extern FILE *yyin, *yyout; |
|
|
|
|
|
|
@ -175,7 +170,6 @@ extern FILE *yyin, *yyout; |
|
|
|
#define EOB_ACT_LAST_MATCH 2 |
|
|
|
|
|
|
|
#define YY_LESS_LINENO(n) |
|
|
|
#define YY_LINENO_REWIND_TO(ptr) |
|
|
|
|
|
|
|
/* Return all but the first "n" matched characters back to the input stream. */ |
|
|
|
#define yyless(n) \ |
|
|
@ -193,6 +187,11 @@ extern FILE *yyin, *yyout; |
|
|
|
|
|
|
|
#define unput(c) yyunput( c, (yytext_ptr) ) |
|
|
|
|
|
|
|
#ifndef YY_TYPEDEF_YY_SIZE_T |
|
|
|
#define YY_TYPEDEF_YY_SIZE_T |
|
|
|
typedef size_t yy_size_t; |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifndef YY_STRUCT_YY_BUFFER_STATE |
|
|
|
#define YY_STRUCT_YY_BUFFER_STATE |
|
|
|
struct yy_buffer_state |
|
|
@ -210,7 +209,7 @@ struct yy_buffer_state |
|
|
|
/* Number of characters read into yy_ch_buf, not including EOB |
|
|
|
* characters. |
|
|
|
*/ |
|
|
|
yy_size_t yy_n_chars; |
|
|
|
int yy_n_chars; |
|
|
|
|
|
|
|
/* Whether we "own" the buffer - i.e., we know we created it, |
|
|
|
* and can realloc() it to grow it, and should free() it to |
|
|
@ -280,8 +279,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ |
|
|
|
|
|
|
|
/* yy_hold_char holds the character lost when yytext is formed. */ |
|
|
|
static char yy_hold_char; |
|
|
|
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ |
|
|
|
yy_size_t yyleng; |
|
|
|
static int yy_n_chars; /* number of characters read into yy_ch_buf */ |
|
|
|
int yyleng; |
|
|
|
|
|
|
|
/* Points to current character in buffer. */ |
|
|
|
static char *yy_c_buf_p = (char *) 0; |
|
|
@ -309,7 +308,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); |
|
|
|
|
|
|
|
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); |
|
|
|
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); |
|
|
|
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); |
|
|
|
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); |
|
|
|
|
|
|
|
void *yyalloc (yy_size_t ); |
|
|
|
void *yyrealloc (void *,yy_size_t ); |
|
|
@ -369,8 +368,8 @@ static void yy_fatal_error (yyconst char msg[] ); |
|
|
|
*yy_cp = '\0'; \ |
|
|
|
(yy_c_buf_p) = yy_cp; |
|
|
|
|
|
|
|
#define YY_NUM_RULES 55 |
|
|
|
#define YY_END_OF_BUFFER 56 |
|
|
|
#define YY_NUM_RULES 58 |
|
|
|
#define YY_END_OF_BUFFER 59 |
|
|
|
/* This struct is not used in this scanner, |
|
|
|
but its presence is necessary. */ |
|
|
|
struct yy_trans_info |
|
|
@ -378,19 +377,20 @@ struct yy_trans_info |
|
|
|
flex_int32_t yy_verify; |
|
|
|
flex_int32_t yy_nxt; |
|
|
|
}; |
|
|
|
static yyconst flex_int16_t yy_accept[101] = |
|
|
|
static yyconst flex_int16_t yy_accept[109] = |
|
|
|
{ 0, |
|
|
|
0, 0, 56, 55, 54, 27, 55, 55, 21, 46, |
|
|
|
47, 18, 16, 51, 17, 48, 19, 2, 49, 50, |
|
|
|
38, 28, 39, 52, 44, 45, 23, 52, 52, 52, |
|
|
|
52, 52, 52, 52, 52, 52, 42, 22, 43, 24, |
|
|
|
54, 0, 3, 0, 53, 25, 34, 20, 31, 29, |
|
|
|
30, 32, 1, 2, 40, 37, 41, 52, 36, 52, |
|
|
|
52, 10, 52, 52, 52, 52, 4, 9, 52, 52, |
|
|
|
52, 35, 26, 33, 1, 52, 52, 52, 15, 8, |
|
|
|
52, 52, 52, 52, 52, 52, 6, 11, 52, 5, |
|
|
|
52, 13, 52, 52, 7, 52, 12, 52, 14, 0 |
|
|
|
|
|
|
|
0, 0, 59, 58, 57, 29, 58, 54, 23, 58, |
|
|
|
48, 49, 20, 18, 53, 19, 50, 21, 2, 51, |
|
|
|
52, 40, 30, 41, 55, 55, 46, 47, 25, 55, |
|
|
|
55, 55, 55, 55, 55, 55, 55, 55, 44, 24, |
|
|
|
45, 26, 57, 0, 3, 27, 36, 0, 4, 22, |
|
|
|
33, 31, 0, 32, 34, 1, 2, 42, 39, 43, |
|
|
|
55, 55, 38, 55, 55, 11, 55, 55, 55, 55, |
|
|
|
5, 10, 55, 55, 55, 37, 28, 35, 0, 56, |
|
|
|
1, 55, 55, 55, 55, 16, 9, 55, 55, 55, |
|
|
|
55, 17, 55, 55, 7, 12, 55, 6, 55, 14, |
|
|
|
|
|
|
|
55, 55, 8, 55, 13, 55, 15, 0 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yyconst flex_int32_t yy_ec[256] = |
|
|
@ -398,17 +398,17 @@ static yyconst flex_int32_t yy_ec[256] = |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 2, 3, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 2, 4, 5, 6, 1, 1, 7, 1, 8, |
|
|
|
9, 10, 11, 12, 13, 14, 15, 16, 16, 16, |
|
|
|
16, 16, 16, 16, 16, 16, 16, 17, 18, 19, |
|
|
|
20, 21, 1, 1, 22, 22, 22, 22, 22, 22, |
|
|
|
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, |
|
|
|
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, |
|
|
|
23, 1, 24, 25, 22, 1, 26, 27, 28, 29, |
|
|
|
|
|
|
|
30, 31, 22, 32, 33, 22, 34, 35, 22, 36, |
|
|
|
37, 22, 22, 38, 39, 40, 41, 22, 42, 22, |
|
|
|
22, 22, 43, 44, 45, 46, 1, 1, 1, 1, |
|
|
|
1, 2, 4, 5, 6, 1, 1, 7, 8, 9, |
|
|
|
10, 11, 12, 13, 14, 15, 16, 17, 17, 17, |
|
|
|
17, 17, 17, 17, 17, 17, 17, 18, 19, 20, |
|
|
|
21, 22, 1, 1, 23, 23, 23, 23, 23, 23, |
|
|
|
23, 23, 23, 23, 23, 23, 23, 24, 23, 23, |
|
|
|
23, 23, 23, 23, 23, 23, 23, 23, 23, 23, |
|
|
|
25, 1, 26, 27, 23, 1, 28, 29, 30, 31, |
|
|
|
|
|
|
|
32, 33, 23, 34, 35, 23, 36, 37, 23, 38, |
|
|
|
39, 23, 23, 40, 41, 42, 43, 23, 44, 23, |
|
|
|
23, 23, 45, 46, 47, 48, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
@ -425,89 +425,93 @@ static yyconst flex_int32_t yy_ec[256] = |
|
|
|
1, 1, 1, 1, 1 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yyconst flex_int32_t yy_meta[47] = |
|
|
|
static yyconst flex_int32_t yy_meta[49] = |
|
|
|
{ 0, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 2, 1, 1, 1, 1, |
|
|
|
1, 2, 1, 1, 1, 2, 2, 2, 2, 2, |
|
|
|
1, 1, 1, 1, 1, 1, 2, 1, 1, 1, |
|
|
|
1, 1, 2, 2, 1, 1, 1, 2, 2, 2, |
|
|
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
|
|
2, 2, 1, 1, 1, 1 |
|
|
|
2, 2, 2, 2, 1, 1, 1, 1 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yyconst flex_int16_t yy_base[104] = |
|
|
|
static yyconst flex_int16_t yy_base[113] = |
|
|
|
{ 0, |
|
|
|
0, 0, 116, 117, 45, 117, 110, 111, 42, 117, |
|
|
|
117, 40, 93, 117, 92, 117, 91, 37, 117, 117, |
|
|
|
90, 89, 88, 0, 117, 117, 87, 68, 68, 67, |
|
|
|
19, 15, 27, 73, 70, 69, 117, 37, 117, 117, |
|
|
|
62, 95, 117, 96, 117, 117, 117, 78, 117, 117, |
|
|
|
117, 117, 81, 45, 117, 117, 117, 0, 117, 66, |
|
|
|
59, 0, 55, 64, 54, 55, 0, 0, 50, 59, |
|
|
|
55, 117, 117, 117, 71, 60, 40, 49, 0, 0, |
|
|
|
50, 36, 40, 40, 40, 40, 0, 0, 34, 0, |
|
|
|
41, 0, 34, 33, 0, 27, 0, 37, 0, 117, |
|
|
|
|
|
|
|
81, 83, 64 |
|
|
|
0, 0, 126, 127, 47, 127, 120, 127, 44, 116, |
|
|
|
127, 127, 41, 102, 127, 39, 127, 101, 39, 127, |
|
|
|
127, 100, 99, 98, 0, 79, 127, 127, 96, 76, |
|
|
|
76, 75, 20, 16, 28, 81, 78, 77, 127, 42, |
|
|
|
127, 127, 65, 105, 127, 127, 127, 101, 127, 87, |
|
|
|
127, 127, 104, 127, 127, 89, 54, 127, 127, 127, |
|
|
|
0, 67, 127, 72, 65, 0, 61, 70, 60, 61, |
|
|
|
0, 0, 56, 65, 61, 127, 127, 127, 92, 127, |
|
|
|
70, 54, 57, 42, 51, 0, 0, 52, 38, 42, |
|
|
|
42, 0, 42, 42, 0, 0, 36, 0, 43, 0, |
|
|
|
|
|
|
|
36, 35, 0, 29, 0, 38, 0, 127, 88, 90, |
|
|
|
62, 92 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yyconst flex_int16_t yy_def[104] = |
|
|
|
static yyconst flex_int16_t yy_def[113] = |
|
|
|
{ 0, |
|
|
|
100, 1, 100, 100, 100, 100, 101, 102, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 103, 100, 100, 100, 103, 103, 103, |
|
|
|
103, 103, 103, 103, 103, 103, 100, 100, 100, 100, |
|
|
|
100, 101, 100, 102, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 103, 100, 103, |
|
|
|
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, |
|
|
|
103, 100, 100, 100, 100, 103, 103, 103, 103, 103, |
|
|
|
103, 103, 103, 103, 103, 103, 103, 103, 103, 103, |
|
|
|
103, 103, 103, 103, 103, 103, 103, 103, 103, 0, |
|
|
|
|
|
|
|
100, 100, 100 |
|
|
|
108, 1, 108, 108, 108, 108, 109, 108, 108, 110, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 111, 111, 108, 108, 108, 111, |
|
|
|
111, 111, 111, 111, 111, 111, 111, 111, 108, 108, |
|
|
|
108, 108, 108, 109, 108, 108, 108, 110, 108, 108, |
|
|
|
108, 108, 112, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
111, 111, 108, 111, 111, 111, 111, 111, 111, 111, |
|
|
|
111, 111, 111, 111, 111, 108, 108, 108, 112, 108, |
|
|
|
108, 111, 111, 111, 111, 111, 111, 111, 111, 111, |
|
|
|
111, 111, 111, 111, 111, 111, 111, 111, 111, 111, |
|
|
|
|
|
|
|
111, 111, 111, 111, 111, 111, 111, 0, 108, 108, |
|
|
|
108, 108 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yyconst flex_int16_t yy_nxt[164] = |
|
|
|
static yyconst flex_int16_t yy_nxt[176] = |
|
|
|
{ 0, |
|
|
|
4, 5, 5, 6, 7, 8, 9, 10, 11, 12, |
|
|
|
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, |
|
|
|
23, 24, 25, 26, 27, 24, 28, 29, 30, 31, |
|
|
|
32, 24, 33, 24, 24, 24, 24, 34, 24, 35, |
|
|
|
24, 36, 37, 38, 39, 40, 41, 41, 46, 48, |
|
|
|
53, 65, 54, 63, 64, 66, 72, 67, 53, 49, |
|
|
|
54, 47, 68, 41, 41, 58, 99, 98, 97, 96, |
|
|
|
95, 94, 93, 92, 91, 90, 89, 88, 87, 86, |
|
|
|
73, 42, 42, 44, 44, 85, 75, 84, 83, 82, |
|
|
|
81, 80, 79, 78, 77, 76, 75, 74, 45, 43, |
|
|
|
|
|
|
|
71, 70, 69, 62, 61, 60, 59, 57, 56, 55, |
|
|
|
52, 51, 50, 45, 43, 100, 3, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100 |
|
|
|
23, 24, 25, 26, 27, 28, 29, 25, 30, 31, |
|
|
|
32, 33, 34, 25, 35, 25, 25, 25, 25, 36, |
|
|
|
25, 37, 25, 38, 39, 40, 41, 42, 43, 43, |
|
|
|
46, 50, 53, 56, 69, 57, 67, 68, 70, 54, |
|
|
|
71, 51, 76, 61, 47, 72, 43, 43, 56, 107, |
|
|
|
57, 106, 105, 104, 103, 102, 101, 100, 99, 98, |
|
|
|
97, 96, 95, 94, 93, 92, 81, 77, 44, 44, |
|
|
|
48, 48, 79, 79, 80, 91, 90, 89, 88, 87, |
|
|
|
|
|
|
|
86, 85, 84, 83, 82, 81, 80, 78, 49, 45, |
|
|
|
75, 74, 73, 66, 65, 64, 63, 62, 60, 59, |
|
|
|
58, 55, 52, 49, 45, 108, 3, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yyconst flex_int16_t yy_chk[164] = |
|
|
|
static yyconst flex_int16_t yy_chk[176] = |
|
|
|
{ 0, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
|
|
1, 1, 1, 1, 1, 1, 5, 5, 9, 12, |
|
|
|
18, 32, 18, 31, 31, 32, 38, 33, 54, 12, |
|
|
|
54, 9, 33, 41, 41, 103, 98, 96, 94, 93, |
|
|
|
91, 89, 86, 85, 84, 83, 82, 81, 78, 77, |
|
|
|
38, 101, 101, 102, 102, 76, 75, 71, 70, 69, |
|
|
|
66, 65, 64, 63, 61, 60, 53, 48, 44, 42, |
|
|
|
|
|
|
|
36, 35, 34, 30, 29, 28, 27, 23, 22, 21, |
|
|
|
17, 15, 13, 8, 7, 3, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, |
|
|
|
100, 100, 100 |
|
|
|
1, 1, 1, 1, 1, 1, 1, 1, 5, 5, |
|
|
|
9, 13, 16, 19, 34, 19, 33, 33, 34, 16, |
|
|
|
35, 13, 40, 111, 9, 35, 43, 43, 57, 106, |
|
|
|
57, 104, 102, 101, 99, 97, 94, 93, 91, 90, |
|
|
|
89, 88, 85, 84, 83, 82, 81, 40, 109, 109, |
|
|
|
110, 110, 112, 112, 79, 75, 74, 73, 70, 69, |
|
|
|
|
|
|
|
68, 67, 65, 64, 62, 56, 53, 50, 48, 44, |
|
|
|
38, 37, 36, 32, 31, 30, 29, 26, 24, 23, |
|
|
|
22, 18, 14, 10, 7, 3, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, |
|
|
|
108, 108, 108, 108, 108 |
|
|
|
} ; |
|
|
|
|
|
|
|
static yy_state_type yy_last_accepting_state; |
|
|
@ -573,7 +577,7 @@ void str_putc(char c) { |
|
|
|
<STRING>. { str_putc(*yytext); } |
|
|
|
|
|
|
|
*/ |
|
|
|
#line 577 "lex.yy.c" |
|
|
|
#line 581 "lex.yy.c" |
|
|
|
|
|
|
|
#define INITIAL 0 |
|
|
|
|
|
|
@ -612,7 +616,7 @@ FILE *yyget_out (void ); |
|
|
|
|
|
|
|
void yyset_out (FILE * out_str ); |
|
|
|
|
|
|
|
yy_size_t yyget_leng (void ); |
|
|
|
int yyget_leng (void ); |
|
|
|
|
|
|
|
char *yyget_text (void ); |
|
|
|
|
|
|
@ -760,6 +764,11 @@ YY_DECL |
|
|
|
register char *yy_cp, *yy_bp; |
|
|
|
register int yy_act; |
|
|
|
|
|
|
|
#line 57 "tokenizer.lex" |
|
|
|
|
|
|
|
|
|
|
|
#line 771 "lex.yy.c" |
|
|
|
|
|
|
|
if ( !(yy_init) ) |
|
|
|
{ |
|
|
|
(yy_init) = 1; |
|
|
@ -786,12 +795,6 @@ YY_DECL |
|
|
|
yy_load_buffer_state( ); |
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
#line 57 "tokenizer.lex" |
|
|
|
|
|
|
|
|
|
|
|
#line 794 "lex.yy.c" |
|
|
|
|
|
|
|
while ( 1 ) /* loops until end-of-file is reached */ |
|
|
|
{ |
|
|
|
yy_cp = (yy_c_buf_p); |
|
|
@ -808,7 +811,7 @@ YY_DECL |
|
|
|
yy_match: |
|
|
|
do |
|
|
|
{ |
|
|
|
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; |
|
|
|
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; |
|
|
|
if ( yy_accept[yy_current_state] ) |
|
|
|
{ |
|
|
|
(yy_last_accepting_state) = yy_current_state; |
|
|
@ -817,13 +820,13 @@ yy_match: |
|
|
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) |
|
|
|
{ |
|
|
|
yy_current_state = (int) yy_def[yy_current_state]; |
|
|
|
if ( yy_current_state >= 101 ) |
|
|
|
if ( yy_current_state >= 109 ) |
|
|
|
yy_c = yy_meta[(unsigned int) yy_c]; |
|
|
|
} |
|
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; |
|
|
|
++yy_cp; |
|
|
|
} |
|
|
|
while ( yy_base[yy_current_state] != 117 ); |
|
|
|
while ( yy_base[yy_current_state] != 127 ); |
|
|
|
|
|
|
|
yy_find_action: |
|
|
|
yy_act = yy_accept[yy_current_state]; |
|
|
@ -864,268 +867,284 @@ YY_RULE_SETUP |
|
|
|
{ yylval = strdup(yytext+1); ((char *) yylval)[yyleng-2] = 0; return STRING; } |
|
|
|
YY_BREAK |
|
|
|
case 4: |
|
|
|
/* rule 4 can match eol */ |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 65 "tokenizer.lex" |
|
|
|
{ return IF; } |
|
|
|
{ yylval = strdup(yytext+1); ((char *) yylval)[yyleng-2] = 0; return STRING; } |
|
|
|
YY_BREAK |
|
|
|
case 5: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 67 "tokenizer.lex" |
|
|
|
{ return THEN; } |
|
|
|
{ return IF; } |
|
|
|
YY_BREAK |
|
|
|
case 6: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 69 "tokenizer.lex" |
|
|
|
{ return ELSE; } |
|
|
|
{ return THEN; } |
|
|
|
YY_BREAK |
|
|
|
case 7: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 71 "tokenizer.lex" |
|
|
|
{ return WHILE; } |
|
|
|
{ return ELSE; } |
|
|
|
YY_BREAK |
|
|
|
case 8: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 73 "tokenizer.lex" |
|
|
|
{ return FOR; } |
|
|
|
{ return WHILE; } |
|
|
|
YY_BREAK |
|
|
|
case 9: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 75 "tokenizer.lex" |
|
|
|
{ return IN; } |
|
|
|
{ return FOR; } |
|
|
|
YY_BREAK |
|
|
|
case 10: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 77 "tokenizer.lex" |
|
|
|
{ return DO; } |
|
|
|
{ return IN; } |
|
|
|
YY_BREAK |
|
|
|
case 11: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 79 "tokenizer.lex" |
|
|
|
{ return FUNC; } |
|
|
|
{ return DO; } |
|
|
|
YY_BREAK |
|
|
|
case 12: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 81 "tokenizer.lex" |
|
|
|
{ return RETURN; } |
|
|
|
{ return FUNC; } |
|
|
|
YY_BREAK |
|
|
|
case 13: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 83 "tokenizer.lex" |
|
|
|
{ return BREAK; } |
|
|
|
{ return RETURN; } |
|
|
|
YY_BREAK |
|
|
|
case 14: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 85 "tokenizer.lex" |
|
|
|
{ return CONTINUE; } |
|
|
|
{ return BREAK; } |
|
|
|
YY_BREAK |
|
|
|
case 15: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 87 "tokenizer.lex" |
|
|
|
{ return END; } |
|
|
|
{ return CONTINUE; } |
|
|
|
YY_BREAK |
|
|
|
case 16: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 89 "tokenizer.lex" |
|
|
|
{ return PLUS; } |
|
|
|
{ return END; } |
|
|
|
YY_BREAK |
|
|
|
case 17: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 91 "tokenizer.lex" |
|
|
|
{ return MINUS; } |
|
|
|
{ return NONE; } |
|
|
|
YY_BREAK |
|
|
|
case 18: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 93 "tokenizer.lex" |
|
|
|
{ return STAR; } |
|
|
|
{ return PLUS; } |
|
|
|
YY_BREAK |
|
|
|
case 19: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 95 "tokenizer.lex" |
|
|
|
{ return SLASH; } |
|
|
|
{ return MINUS; } |
|
|
|
YY_BREAK |
|
|
|
case 20: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 97 "tokenizer.lex" |
|
|
|
{ return DSTAR; } |
|
|
|
{ return STAR; } |
|
|
|
YY_BREAK |
|
|
|
case 21: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 99 "tokenizer.lex" |
|
|
|
{ return BAND; } |
|
|
|
{ return SLASH; } |
|
|
|
YY_BREAK |
|
|
|
case 22: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 101 "tokenizer.lex" |
|
|
|
{ return BOR; } |
|
|
|
{ return DSTAR; } |
|
|
|
YY_BREAK |
|
|
|
case 23: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 103 "tokenizer.lex" |
|
|
|
{ return BXOR; } |
|
|
|
{ return BAND; } |
|
|
|
YY_BREAK |
|
|
|
case 24: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 105 "tokenizer.lex" |
|
|
|
{ return BNOT; } |
|
|
|
{ return BOR; } |
|
|
|
YY_BREAK |
|
|
|
case 25: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 107 "tokenizer.lex" |
|
|
|
{ return LAND; } |
|
|
|
{ return BXOR; } |
|
|
|
YY_BREAK |
|
|
|
case 26: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 109 "tokenizer.lex" |
|
|
|
{ return LOR; } |
|
|
|
{ return BNOT; } |
|
|
|
YY_BREAK |
|
|
|
case 27: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 111 "tokenizer.lex" |
|
|
|
{ return LNOT; } |
|
|
|
{ return LAND; } |
|
|
|
YY_BREAK |
|
|
|
case 28: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 113 "tokenizer.lex" |
|
|
|
{ return ASSIGN; } |
|
|
|
{ return LOR; } |
|
|
|
YY_BREAK |
|
|
|
case 29: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 115 "tokenizer.lex" |
|
|
|
{ return ASSIGNPLUS; } |
|
|
|
{ return LNOT; } |
|
|
|
YY_BREAK |
|
|
|
case 30: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 117 "tokenizer.lex" |
|
|
|
{ return ASSIGNMINUS; } |
|
|
|
{ return ASSIGN; } |
|
|
|
YY_BREAK |
|
|
|
case 31: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 119 "tokenizer.lex" |
|
|
|
{ return ASSIGNSTAR; } |
|
|
|
{ return ASSIGNPLUS; } |
|
|
|
YY_BREAK |
|
|
|
case 32: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 121 "tokenizer.lex" |
|
|
|
{ return ASSIGNSLASH; } |
|
|
|
{ return ASSIGNMINUS; } |
|
|
|
YY_BREAK |
|
|
|
case 33: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 123 "tokenizer.lex" |
|
|
|
{ return ASSIGNDSTAR; } |
|
|
|
{ return ASSIGNSTAR; } |
|
|
|
YY_BREAK |
|
|
|
case 34: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 125 "tokenizer.lex" |
|
|
|
{ return ASSIGNBAND; } |
|
|
|
{ return ASSIGNSLASH; } |
|
|
|
YY_BREAK |
|
|
|
case 35: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 127 "tokenizer.lex" |
|
|
|
{ return ASSIGNBOR; } |
|
|
|
{ return ASSIGNDSTAR; } |
|
|
|
YY_BREAK |
|
|
|
case 36: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 129 "tokenizer.lex" |
|
|
|
{ return ASSIGNBXOR; } |
|
|
|
{ return ASSIGNBAND; } |
|
|
|
YY_BREAK |
|
|
|
case 37: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 131 "tokenizer.lex" |
|
|
|
{ return EQUAL; } |
|
|
|
{ return ASSIGNBOR; } |
|
|
|
YY_BREAK |
|
|
|
case 38: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 133 "tokenizer.lex" |
|
|
|
{ return LESS; } |
|
|
|
{ return ASSIGNBXOR; } |
|
|
|
YY_BREAK |
|
|
|
case 39: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 135 "tokenizer.lex" |
|
|
|
{ return GREATER; } |
|
|
|
{ return EQUAL; } |
|
|
|
YY_BREAK |
|
|
|
case 40: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 137 "tokenizer.lex" |
|
|
|
{ return LESSEQ; } |
|
|
|
{ return LESS; } |
|
|
|
YY_BREAK |
|
|
|
case 41: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 139 "tokenizer.lex" |
|
|
|
{ return GREATEREQ; } |
|
|
|
{ return GREATER; } |
|
|
|
YY_BREAK |
|
|
|
case 42: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 141 "tokenizer.lex" |
|
|
|
{ return LBRACE; } |
|
|
|
{ return LESSEQ; } |
|
|
|
YY_BREAK |
|
|
|
case 43: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 143 "tokenizer.lex" |
|
|
|
{ return RBRACE; } |
|
|
|
{ return GREATEREQ; } |
|
|
|
YY_BREAK |
|
|
|
case 44: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 145 "tokenizer.lex" |
|
|
|
{ return LBRACKET; } |
|
|
|
{ return LBRACE; } |
|
|
|
YY_BREAK |
|
|
|
case 45: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 147 "tokenizer.lex" |
|
|
|
{ return RBRACKET; } |
|
|
|
{ return RBRACE; } |
|
|
|
YY_BREAK |
|
|
|
case 46: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 149 "tokenizer.lex" |
|
|
|
{ return LPAREN; } |
|
|
|
{ return LBRACKET; } |
|
|
|
YY_BREAK |
|
|
|
case 47: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 151 "tokenizer.lex" |
|
|
|
{ return RPAREN; } |
|
|
|
{ return RBRACKET; } |
|
|
|
YY_BREAK |
|
|
|
case 48: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 153 "tokenizer.lex" |
|
|
|
{ return DOT; } |
|
|
|
{ return LPAREN; } |
|
|
|
YY_BREAK |
|
|
|
case 49: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 155 "tokenizer.lex" |
|
|
|
{ return COLON; } |
|
|
|
{ return RPAREN; } |
|
|
|
YY_BREAK |
|
|
|
case 50: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 157 "tokenizer.lex" |
|
|
|
{ return SEMICOLON; } |
|
|
|
{ return DOT; } |
|
|
|
YY_BREAK |
|
|
|
case 51: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 159 "tokenizer.lex" |
|
|
|
{ return COMMA; } |
|
|
|
{ return COLON; } |
|
|
|
YY_BREAK |
|
|
|
case 52: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 161 "tokenizer.lex" |
|
|
|
{ yylval = strdup(yytext); return IDENT; } |
|
|
|
{ return SEMICOLON; } |
|
|
|
YY_BREAK |
|
|
|
case 53: |
|
|
|
/* rule 53 can match eol */ |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 163 "tokenizer.lex" |
|
|
|
/* Skip comments */ |
|
|
|
{ return COMMA; } |
|
|
|
YY_BREAK |
|
|
|
case 54: |
|
|
|
/* rule 54 can match eol */ |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 165 "tokenizer.lex" |
|
|
|
/* Skip whitespace */ |
|
|
|
{ return POUND; } |
|
|
|
YY_BREAK |
|
|
|
case 55: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 167 "tokenizer.lex" |
|
|
|
{ yylval = strdup(yytext); return IDENT; } |
|
|
|
YY_BREAK |
|
|
|
case 56: |
|
|
|
/* rule 56 can match eol */ |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 169 "tokenizer.lex" |
|
|
|
/* Skip comments */ |
|
|
|
YY_BREAK |
|
|
|
case 57: |
|
|
|
/* rule 57 can match eol */ |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 171 "tokenizer.lex" |
|
|
|
/* Skip whitespace */ |
|
|
|
YY_BREAK |
|
|
|
case 58: |
|
|
|
YY_RULE_SETUP |
|
|
|
#line 173 "tokenizer.lex" |
|
|
|
ECHO; |
|
|
|
YY_BREAK |
|
|
|
#line 1129 "lex.yy.c" |
|
|
|
#line 1148 "lex.yy.c" |
|
|
|
case YY_STATE_EOF(INITIAL): |
|
|
|
yyterminate(); |
|
|
|
|
|
|
@ -1256,7 +1275,6 @@ case YY_STATE_EOF(INITIAL): |
|
|
|
"fatal flex scanner internal error--no action found" ); |
|
|
|
} /* end of action switch */ |
|
|
|
} /* end of scanning one token */ |
|
|
|
} /* end of user's declarations */ |
|
|
|
} /* end of yylex */ |
|
|
|
|
|
|
|
/* yy_get_next_buffer - try to read in a new buffer |
|
|
@ -1312,21 +1330,21 @@ static int yy_get_next_buffer (void) |
|
|
|
|
|
|
|
else |
|
|
|
{ |
|
|
|
yy_size_t num_to_read = |
|
|
|
int num_to_read = |
|
|
|
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; |
|
|
|
|
|
|
|
while ( num_to_read <= 0 ) |
|
|
|
{ /* Not enough room in the buffer - grow it. */ |
|
|
|
|
|
|
|
/* just a shorter name for the current buffer */ |
|
|
|
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; |
|
|
|
YY_BUFFER_STATE b = YY_CURRENT_BUFFER; |
|
|
|
|
|
|
|
int yy_c_buf_p_offset = |
|
|
|
(int) ((yy_c_buf_p) - b->yy_ch_buf); |
|
|
|
|
|
|
|
if ( b->yy_is_our_buffer ) |
|
|
|
{ |
|
|
|
yy_size_t new_size = b->yy_buf_size * 2; |
|
|
|
int new_size = b->yy_buf_size * 2; |
|
|
|
|
|
|
|
if ( new_size <= 0 ) |
|
|
|
b->yy_buf_size += b->yy_buf_size / 8; |
|
|
@ -1357,7 +1375,7 @@ static int yy_get_next_buffer (void) |
|
|
|
|
|
|
|
/* Read in more data. */ |
|
|
|
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), |
|
|
|
(yy_n_chars), num_to_read ); |
|
|
|
(yy_n_chars), (size_t) num_to_read ); |
|
|
|
|
|
|
|
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); |
|
|
|
} |
|
|
@ -1418,7 +1436,7 @@ static int yy_get_next_buffer (void) |
|
|
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) |
|
|
|
{ |
|
|
|
yy_current_state = (int) yy_def[yy_current_state]; |
|
|
|
if ( yy_current_state >= 101 ) |
|
|
|
if ( yy_current_state >= 109 ) |
|
|
|
yy_c = yy_meta[(unsigned int) yy_c]; |
|
|
|
} |
|
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; |
|
|
@ -1446,13 +1464,13 @@ static int yy_get_next_buffer (void) |
|
|
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) |
|
|
|
{ |
|
|
|
yy_current_state = (int) yy_def[yy_current_state]; |
|
|
|
if ( yy_current_state >= 101 ) |
|
|
|
if ( yy_current_state >= 109 ) |
|
|
|
yy_c = yy_meta[(unsigned int) yy_c]; |
|
|
|
} |
|
|
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; |
|
|
|
yy_is_jam = (yy_current_state == 100); |
|
|
|
yy_is_jam = (yy_current_state == 108); |
|
|
|
|
|
|
|
return yy_is_jam ? 0 : yy_current_state; |
|
|
|
return yy_is_jam ? 0 : yy_current_state; |
|
|
|
} |
|
|
|
|
|
|
|
static void yyunput (int c, register char * yy_bp ) |
|
|
@ -1467,7 +1485,7 @@ static int yy_get_next_buffer (void) |
|
|
|
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) |
|
|
|
{ /* need to shift things up to make room */ |
|
|
|
/* +2 for EOB chars. */ |
|
|
|
register yy_size_t number_to_move = (yy_n_chars) + 2; |
|
|
|
register int number_to_move = (yy_n_chars) + 2; |
|
|
|
register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ |
|
|
|
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; |
|
|
|
register char *source = |
|
|
@ -1516,7 +1534,7 @@ static int yy_get_next_buffer (void) |
|
|
|
|
|
|
|
else |
|
|
|
{ /* need more input */ |
|
|
|
yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); |
|
|
|
int offset = (yy_c_buf_p) - (yytext_ptr); |
|
|
|
++(yy_c_buf_p); |
|
|
|
|
|
|
|
switch ( yy_get_next_buffer( ) ) |
|
|
@ -1676,6 +1694,10 @@ static void yy_load_buffer_state (void) |
|
|
|
yyfree((void *) b ); |
|
|
|
} |
|
|
|
|
|
|
|
#ifndef __cplusplus |
|
|
|
extern int isatty (int ); |
|
|
|
#endif /* __cplusplus */ |
|
|
|
|
|
|
|
/* Initializes or reinitializes a buffer. |
|
|
|
* This function is sometimes called more than once on the same buffer, |
|
|
|
* such as during a yyrestart() or at EOF. |
|
|
@ -1788,7 +1810,7 @@ void yypop_buffer_state (void) |
|
|
|
*/ |
|
|
|
static void yyensure_buffer_stack (void) |
|
|
|
{ |
|
|
|
yy_size_t num_to_alloc; |
|
|
|
int num_to_alloc; |
|
|
|
|
|
|
|
if (!(yy_buffer_stack)) { |
|
|
|
|
|
|
@ -1885,12 +1907,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) |
|
|
|
* |
|
|
|
* @return the newly allocated buffer state object. |
|
|
|
*/ |
|
|
|
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) |
|
|
|
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) |
|
|
|
{ |
|
|
|
YY_BUFFER_STATE b; |
|
|
|
char *buf; |
|
|
|
yy_size_t n; |
|
|
|
yy_size_t i; |
|
|
|
int i; |
|
|
|
|
|
|
|
/* Get memory for full buffer, including space for trailing EOB's. */ |
|
|
|
n = _yybytes_len + 2; |
|
|
@ -1972,7 +1994,7 @@ FILE *yyget_out (void) |
|
|
|
/** Get the length of the current token. |
|
|
|
* |
|
|
|
*/ |
|
|
|
yy_size_t yyget_leng (void) |
|
|
|
int yyget_leng (void) |
|
|
|
{ |
|
|
|
return yyleng; |
|
|
|
} |
|
|
@ -2120,7 +2142,7 @@ void yyfree (void * ptr ) |
|
|
|
|
|
|
|
#define YYTABLES_NAME "yytables" |
|
|
|
|
|
|
|
#line 166 "tokenizer.lex" |
|
|
|
#line 173 "tokenizer.lex" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|