* Pandi, Krisztian
* Raduly, Csaba
* Szabados, Kristof
+ * Szabo, Bence Janos
* Szabo, Janos Zoltan – initial implementation
* Szalai, Gabor
* Zalanyi, Balazs Andor
/* Example: fe80::c002:37ff:fe6c:0%fastethernet0/0 */
IPV6 [0-9A-Fa-f:.]+(%[0-9A-Za-z]+)?
+UID [uU][+]?[0-9A-Fa-f]{1,8}
%x SC_blockcomment SC_DEFINE SC_CSTRING SC_ORDERED_INCLUDE
%s SC_MODULE_PARAMETERS SC_LOGGING SC_TESTPORT_PARAMETERS SC_EXECUTE SC_GROUPS
%s SC_COMPONENTS SC_EXTERNAL_COMMANDS SC_MAIN_CONTROLLER SC_INCLUDE SC_PROFILER
+%s SC_CHAR_KEYWORD
%%
int comment_caller = INITIAL;
{NUMBER} {
yylval.int_val = NULL;
BN_dec2bn(&yylval.int_val, *yytext == '+' ? yytext + 1 : yytext);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
RETURN(MPNumber);
}
RETURN(Number);
{FLOAT} {
yylval.float_val = atof(yytext);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
RETURN(MPFloat);
}
RETURN(Float);
{CHARSTRING} {
yylval.str_val = mcopystrn(yytext, yyleng);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
RETURN(MPCstring);
}
RETURN(Cstring);
}
+<SC_CHAR_KEYWORD>
+{
+ {UID} {
+ yylval.str_val = mcopystrn(yytext, yyleng);
+ RETURN(Cstring);
+ }
+
+ [,] { RETURN(*yytext); }
+
+ [)] { BEGIN(SC_MODULE_PARAMETERS); RETURN(*yytext); }
+}
+
/* Section-wide keywords */
<SC_MODULE_PARAMETERS>
{
NULL RETURN(NULLKeyword);
null RETURN(nullKeyword);
-char RETURN(CharKeyword);
+char { BEGIN(SC_CHAR_KEYWORD); RETURN(CharKeyword); }
objid RETURN(ObjIdKeyword);
omit RETURN(OmitKeyword);
none |
if (whether_update_buffer())
cfg->config_read_buffer = mputprintf(cfg->config_read_buffer, "%s ", int_val_str);
OPENSSL_free(int_val_str);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
return MPNumber;
}
return Number;
Free(macroname);
if (whether_update_buffer()) cfg->config_read_buffer =
mputprintf(cfg->config_read_buffer, "%f ", yylval.float_val);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
return MPFloat;
}
return Float;
"name `%s'", macroname);
yylval.str_val = memptystr();
Free(macroname);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
return MPCstring;
}
return Cstring;
}
Free(macroname);
yylval.str_val = mcopystr(macrovalue);
- if (YY_START == SC_MODULE_PARAMETERS) {
+ if (YY_START == SC_MODULE_PARAMETERS || YY_START == SC_CHAR_KEYWORD) {
return MPCstring;
}
return Cstring;
":="|"=" RETURN(AssignmentChar);
"&=" RETURN(ConcatChar);
-. RETURN(yytext[0]);
+. RETURN(yytext[0]);
<*><<EOF>> {
if (expansion_buffer) {
{
switch (YY_START) {
case SC_MODULE_PARAMETERS:
+ case SC_CHAR_KEYWORD:
case SC_LOGGING:
case SC_TESTPORT_PARAMETERS:
case SC_EXTERNAL_COMMANDS: