Don't allow asterisks in identifiers.

This commit is contained in:
Gunnar Beutner 2013-06-25 10:06:58 +02:00
parent f3d0738e93
commit 49faf14b70
2 changed files with 95 additions and 117 deletions

View File

@ -382,11 +382,11 @@ struct yy_trans_info
static yyconst flex_int16_t yy_accept[196] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 59, 57,
21, 21, 1, 57, 45, 57, 57, 57, 51, 57,
21, 21, 1, 57, 57, 57, 57, 57, 51, 57,
52, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 57, 18, 19, 12, 3, 2, 58, 15,
15, 0, 0, 0, 45, 55, 53, 51, 54, 16,
20, 56, 0, 48, 49, 50, 0, 46, 45, 45,
15, 0, 0, 0, 55, 53, 51, 54, 16, 20,
56, 0, 48, 49, 50, 0, 46, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 0, 17, 12, 11,
4, 5, 9, 10, 6, 8, 7, 0, 0, 0,
@ -439,8 +439,8 @@ static yyconst flex_int32_t yy_ec[256] =
static yyconst flex_int32_t yy_meta[43] =
{ 0,
1, 1, 2, 3, 1, 4, 1, 4, 1, 1,
4, 4, 4, 1, 4, 1, 4, 3, 4, 4,
1, 1, 2, 3, 1, 1, 1, 4, 1, 1,
4, 4, 4, 1, 1, 1, 4, 3, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1, 1
@ -448,151 +448,129 @@ static yyconst flex_int32_t yy_meta[43] =
static yyconst flex_int16_t yy_base[204] =
{ 0,
0, 0, 350, 349, 40, 42, 312, 311, 352, 357,
357, 357, 357, 28, 336, 335, 37, 44, 44, 333,
357, 333, 42, 49, 46, 51, 54, 53, 63, 56,
64, 69, 306, 357, 336, 0, 357, 357, 99, 357,
303, 307, 320, 323, 326, 357, 357, 86, 357, 357,
0, 357, 77, 357, 304, 357, 323, 357, 78, 75,
85, 81, 79, 92, 106, 84, 102, 109, 112, 110,
114, 91, 116, 120, 122, 126, 297, 357, 0, 357,
131, 135, 357, 357, 357, 357, 357, 295, 299, 301,
305, 0, 137, 357, 129, 318, 137, 138, 140, 139,
0, 0, 244, 243, 40, 42, 206, 205, 246, 251,
251, 251, 251, 28, 230, 229, 37, 44, 44, 227,
251, 0, 31, 215, 222, 209, 37, 38, 219, 219,
50, 42, 196, 251, 226, 0, 251, 251, 77, 251,
193, 197, 210, 213, 251, 251, 74, 251, 251, 0,
251, 67, 251, 195, 251, 214, 251, 0, 193, 188,
192, 205, 196, 69, 204, 202, 192, 62, 193, 185,
200, 181, 182, 186, 177, 181, 172, 251, 0, 251,
82, 87, 251, 251, 251, 251, 251, 170, 174, 176,
180, 0, 91, 251, 171, 0, 188, 169, 169, 175,
142, 143, 155, 146, 156, 157, 164, 147, 165, 317,
166, 149, 168, 173, 357, 178, 186, 357, 296, 292,
302, 171, 177, 180, 185, 184, 186, 190, 187, 313,
312, 188, 189, 197, 199, 198, 204, 311, 310, 214,
297, 296, 300, 208, 306, 200, 305, 213, 215, 205,
304, 216, 219, 222, 223, 221, 224, 298, 280, 289,
229, 230, 232, 233, 234, 292, 273, 237, 272, 271,
238, 247, 261, 246, 239, 244, 266, 242, 265, 264,
245, 240, 357, 241, 257, 247, 256, 254, 244, 230,
249, 357, 357, 88, 357, 289, 293, 297, 47, 301,
180, 167, 182, 177, 170, 178, 174, 159, 166, 0,
167, 160, 169, 168, 251, 94, 104, 251, 155, 151,
161, 152, 146, 158, 161, 145, 147, 162, 151, 0,
0, 156, 157, 150, 157, 144, 145, 0, 0, 107,
146, 145, 149, 151, 0, 137, 0, 146, 140, 131,
0, 130, 127, 144, 127, 136, 141, 139, 123, 138,
135, 122, 123, 108, 86, 0, 0, 96, 0, 0,
87, 85, 99, 83, 76, 92, 0, 73, 0, 0,
84, 59, 251, 52, 0, 46, 0, 0, 52, 37,
28, 251, 251, 0, 251, 127, 131, 135, 139, 57,
305, 309, 313
143, 147, 151
} ;
static yyconst flex_int16_t yy_def[204] =
{ 0,
195, 1, 196, 196, 197, 197, 198, 198, 195, 195,
195, 195, 195, 195, 199, 195, 195, 195, 195, 200,
195, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 195, 195, 195, 201, 195, 195, 202, 195,
195, 195, 195, 195, 199, 195, 195, 195, 195, 195,
203, 195, 195, 195, 195, 195, 200, 195, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 195, 195, 201, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 199,
195, 200, 200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 195, 195, 195, 201, 195, 195, 202, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 203,
195, 195, 195, 195, 195, 199, 195, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 195, 195, 201, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 203, 195, 195, 199, 199, 199, 199, 199, 199,
195, 203, 195, 195, 200, 200, 200, 200, 200, 200,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 195, 195, 195, 195, 195, 195,
195, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 195,
195, 195, 195, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 195, 195, 195,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 195, 195, 195, 199, 199, 199, 199, 199, 199,
199, 195, 195, 195, 199, 199, 199, 199, 195, 195,
199, 195, 195, 199, 0, 195, 195, 195, 195, 195,
200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 195, 195, 195, 195, 195, 195,
195, 200, 200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200, 200, 195,
195, 195, 195, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 195, 195, 195,
200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
200, 195, 195, 195, 200, 200, 200, 200, 200, 200,
200, 195, 195, 195, 200, 200, 200, 200, 195, 195,
200, 195, 195, 200, 0, 195, 195, 195, 195, 195,
195, 195, 195
} ;
static yyconst flex_int16_t yy_nxt[400] =
static yyconst flex_int16_t yy_nxt[294] =
{ 0,
10, 11, 12, 13, 14, 15, 16, 17, 10, 18,
19, 19, 10, 20, 21, 10, 22, 10, 23, 22,
22, 24, 22, 25, 22, 22, 26, 22, 27, 22,
28, 29, 30, 22, 22, 31, 32, 22, 22, 22,
33, 10, 37, 38, 37, 38, 42, 48, 48, 50,
45, 49, 53, 51, 48, 48, 195, 39, 52, 39,
195, 59, 43, 195, 63, 195, 44, 195, 195, 54,
195, 67, 60, 55, 70, 62, 61, 195, 195, 56,
65, 64, 69, 195, 71, 66, 72, 93, 93, 195,
68, 74, 195, 195, 53, 195, 48, 48, 195, 195,
33, 10, 37, 38, 37, 38, 42, 47, 47, 49,
59, 48, 52, 50, 47, 47, 67, 39, 51, 39,
58, 60, 43, 65, 74, 61, 44, 194, 66, 53,
71, 193, 72, 54, 192, 68, 75, 93, 93, 55,
191, 76, 52, 190, 47, 47, 73, 81, 82, 100,
105, 106, 116, 117, 101, 189, 83, 117, 117, 53,
73, 98, 195, 75, 103, 195, 195, 99, 76, 81,
82, 54, 100, 95, 96, 55, 195, 101, 83, 97,
195, 56, 84, 195, 195, 102, 195, 110, 195, 85,
195, 104, 109, 86, 195, 87, 195, 105, 106, 107,
195, 116, 117, 195, 108, 117, 117, 93, 93, 112,
111, 195, 195, 195, 195, 123, 195, 195, 114, 113,
195, 195, 54, 195, 127, 122, 55, 126, 130, 195,
195, 195, 56, 129, 124, 125, 132, 128, 195, 195,
195, 137, 195, 134, 131, 195, 133, 195, 140, 117,
138, 195, 136, 135, 195, 139, 117, 117, 195, 195,
84, 93, 93, 54, 140, 117, 188, 85, 187, 55,
186, 86, 185, 87, 117, 117, 53, 117, 117, 184,
54, 183, 182, 181, 180, 179, 55, 34, 34, 34,
34, 36, 36, 36, 36, 40, 40, 40, 40, 56,
56, 56, 56, 79, 178, 177, 79, 80, 80, 80,
80, 92, 176, 92, 92, 175, 174, 173, 172, 171,
170, 169, 168, 167, 166, 165, 164, 163, 162, 161,
160, 159, 158, 157, 156, 155, 154, 153, 152, 151,
150, 149, 148, 147, 146, 145, 144, 143, 142, 141,
139, 138, 137, 136, 135, 134, 133, 132, 131, 130,
195, 195, 195, 195, 195, 144, 146, 147, 150, 153,
152, 195, 195, 195, 195, 151, 145, 155, 195, 195,
149, 148, 195, 154, 117, 117, 161, 195, 156, 195,
195, 162, 157, 195, 163, 195, 195, 195, 195, 165,
168, 164, 171, 195, 195, 170, 195, 195, 195, 175,
166, 195, 195, 195, 177, 167, 195, 169, 195, 195,
176, 195, 186, 195, 193, 180, 192, 188, 195, 178,
195, 195, 190, 179, 181, 185, 189, 187, 195, 195,
195, 191, 184, 183, 182, 195, 195, 195, 194, 34,
34, 34, 34, 36, 36, 36, 36, 40, 40, 40,
40, 57, 57, 57, 57, 79, 195, 174, 79, 80,
80, 80, 80, 92, 173, 92, 92, 172, 195, 195,
195, 160, 159, 158, 195, 195, 195, 195, 143, 142,
141, 195, 195, 121, 120, 119, 118, 115, 58, 94,
195, 91, 90, 89, 88, 78, 77, 195, 58, 47,
46, 195, 41, 41, 35, 35, 9, 195, 195, 195,
129, 128, 127, 126, 125, 124, 123, 122, 121, 120,
119, 118, 115, 114, 113, 112, 111, 110, 109, 108,
107, 104, 103, 102, 99, 98, 97, 96, 95, 57,
94, 91, 90, 89, 88, 78, 77, 70, 69, 64,
63, 62, 57, 46, 45, 195, 41, 41, 35, 35,
9, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195
195, 195, 195
} ;
static yyconst flex_int16_t yy_chk[400] =
static yyconst flex_int16_t yy_chk[294] =
{ 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, 5, 5, 6, 6, 14, 17, 17, 18,
199, 17, 19, 18, 19, 19, 23, 5, 18, 6,
25, 23, 14, 24, 25, 26, 14, 28, 27, 19,
30, 28, 23, 19, 30, 24, 23, 29, 31, 19,
27, 26, 29, 32, 31, 27, 31, 53, 53, 60,
28, 32, 59, 63, 48, 62, 48, 48, 66, 61,
23, 17, 19, 18, 19, 19, 28, 5, 18, 6,
200, 23, 14, 27, 32, 23, 14, 191, 27, 19,
31, 190, 31, 19, 189, 28, 32, 52, 52, 19,
186, 32, 47, 184, 47, 47, 31, 39, 39, 64,
68, 68, 81, 81, 64, 182, 39, 82, 82, 47,
31, 62, 194, 32, 66, 72, 64, 63, 32, 39,
39, 48, 64, 59, 60, 48, 67, 64, 39, 61,
65, 48, 39, 68, 70, 65, 69, 72, 71, 39,
73, 67, 71, 39, 74, 39, 75, 68, 68, 69,
76, 81, 81, 95, 70, 82, 82, 93, 93, 74,
73, 97, 98, 100, 99, 97, 101, 102, 76, 75,
104, 108, 93, 112, 101, 95, 93, 100, 104, 103,
105, 106, 93, 103, 98, 99, 106, 102, 107, 109,
111, 112, 113, 108, 105, 122, 107, 114, 116, 116,
113, 123, 111, 109, 124, 114, 117, 117, 126, 125,
39, 93, 93, 47, 116, 116, 181, 39, 178, 47,
176, 39, 175, 39, 117, 117, 93, 140, 140, 174,
93, 173, 172, 171, 168, 165, 93, 196, 196, 196,
196, 197, 197, 197, 197, 198, 198, 198, 198, 199,
199, 199, 199, 201, 164, 163, 201, 202, 202, 202,
202, 203, 162, 203, 203, 161, 160, 159, 158, 157,
156, 155, 154, 153, 152, 150, 149, 148, 146, 144,
143, 142, 141, 137, 136, 135, 134, 133, 132, 129,
128, 127, 126, 125, 124, 123, 122, 121, 120, 119,
114, 113, 112, 111, 109, 108, 107, 106, 105, 104,
127, 129, 132, 133, 128, 122, 124, 125, 128, 133,
132, 134, 136, 135, 146, 129, 123, 135, 137, 150,
127, 126, 144, 134, 140, 140, 144, 148, 136, 149,
152, 146, 137, 153, 148, 156, 154, 155, 157, 150,
154, 149, 157, 161, 162, 156, 163, 164, 165, 161,
152, 168, 171, 175, 163, 153, 178, 155, 176, 181,
162, 186, 176, 191, 190, 168, 189, 181, 188, 164,
187, 185, 184, 165, 171, 175, 182, 178, 180, 179,
177, 186, 174, 173, 172, 170, 169, 167, 191, 196,
196, 196, 196, 197, 197, 197, 197, 198, 198, 198,
198, 200, 200, 200, 200, 201, 166, 160, 201, 202,
202, 202, 202, 203, 159, 203, 203, 158, 151, 147,
145, 143, 142, 141, 139, 138, 131, 130, 121, 120,
119, 110, 96, 91, 90, 89, 88, 77, 57, 55,
45, 44, 43, 42, 41, 35, 33, 22, 20, 16,
15, 9, 8, 7, 4, 3, 195, 195, 195, 195,
103, 102, 101, 100, 99, 98, 97, 95, 91, 90,
89, 88, 77, 76, 75, 74, 73, 72, 71, 70,
69, 67, 66, 65, 63, 62, 61, 60, 59, 56,
54, 44, 43, 42, 41, 35, 33, 30, 29, 26,
25, 24, 20, 16, 15, 9, 8, 7, 4, 3,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195, 195, 195, 195, 195, 195, 195
195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
195, 195, 195
} ;
@ -705,7 +683,7 @@ static char *lb_steal(lex_buf *lb)
#line 709 "../../../lib/config/config_lexer.cc"
#line 687 "../../../lib/config/config_lexer.cc"
#define INITIAL 0
#define C_COMMENT 1
@ -962,7 +940,7 @@ YY_DECL
lex_buf string_buf;
#line 966 "../../../lib/config/config_lexer.cc"
#line 944 "../../../lib/config/config_lexer.cc"
yylval = yylval_param;
@ -1406,7 +1384,7 @@ YY_RULE_SETUP
#line 229 "config_lexer.ll"
ECHO;
YY_BREAK
#line 1410 "../../../lib/config/config_lexer.cc"
#line 1388 "../../../lib/config/config_lexer.cc"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(C_COMMENT):
case YY_STATE_EOF(STRING):

View File

@ -210,7 +210,7 @@ partial return T_PARTIAL;
true { yylval->num = 1; return T_NUMBER; }
false { yylval->num = 0; return T_NUMBER; }
set return T_SET;
[a-zA-Z_\*][:a-zA-Z0-9\-_\*]* { yylval->text = strdup(yytext); return T_IDENTIFIER; }
[a-zA-Z_][:a-zA-Z0-9\-_]* { yylval->text = strdup(yytext); return T_IDENTIFIER; }
\<[^\>]*\> { yytext[yyleng-1] = '\0'; yylval->text = strdup(yytext + 1); return T_STRING_ANGLE; }
-?[0-9]+(\.[0-9]+)?ms { yylval->num = strtod(yytext, NULL) / 1000; return T_NUMBER; }
-?[0-9]+(\.[0-9]+)?h { yylval->num = strtod(yytext, NULL) * 60 * 60; return T_NUMBER; }