properly parse comments!
parse booleans
This commit is contained in:
parent
0f25fd6ff0
commit
ddb5d43edc
1 changed files with 19 additions and 2 deletions
|
@ -10,6 +10,7 @@ static ConfigEntry entry = { NULL, -1 };
|
||||||
|
|
||||||
static void stringvalue();
|
static void stringvalue();
|
||||||
static void numbervalue();
|
static void numbervalue();
|
||||||
|
static void boolvalue();
|
||||||
static void identifier();
|
static void identifier();
|
||||||
static void newline();
|
static void newline();
|
||||||
static int yywrap();
|
static int yywrap();
|
||||||
|
@ -20,17 +21,19 @@ string \"[^"\n]*\"
|
||||||
identifier [a-zA-Z][a-zA-Z0-9_.]*
|
identifier [a-zA-Z][a-zA-Z0-9_.]*
|
||||||
white [ \t]*
|
white [ \t]*
|
||||||
assign {white}={white}
|
assign {white}={white}
|
||||||
|
bool ([tT][rR][uU][eE]|[fF][aA][lL][sS][eE]|[yY][eE][sS]|[nN][oO]|[oO][nN]|[oO][fF][fF])
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
|
^# comment = TRUE;
|
||||||
|
{bool}/{white}\n boolvalue();
|
||||||
{string}/{white}\n stringvalue();
|
{string}/{white}\n stringvalue();
|
||||||
{number}/{white}\n numbervalue();
|
{number}/{white}\n numbervalue();
|
||||||
^{identifier}/{assign} identifier();
|
^{identifier}/{assign} identifier();
|
||||||
\n newline();
|
\n newline();
|
||||||
^# comment = TRUE;
|
|
||||||
=
|
=
|
||||||
[ \t]
|
[ \t]
|
||||||
. haserror = TRUE;
|
. if (!comment) haserror = TRUE;
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
|
@ -61,6 +64,19 @@ static void numbervalue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void boolvalue()
|
||||||
|
{
|
||||||
|
if (!comment) {
|
||||||
|
if (!haserror && entry.name != NULL && (signed)entry.type < 0) {
|
||||||
|
entry.type = Config_Bool;
|
||||||
|
entry.value.bool = (!g_ascii_strcasecmp("true", yytext) ||
|
||||||
|
!g_ascii_strcasecmp("yes", yytext) ||
|
||||||
|
!g_ascii_strcasecmp("on", yytext));
|
||||||
|
} else
|
||||||
|
haserror = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void identifier()
|
static void identifier()
|
||||||
{
|
{
|
||||||
if (!comment) {
|
if (!comment) {
|
||||||
|
@ -87,6 +103,7 @@ static void newline()
|
||||||
|
|
||||||
haserror = FALSE;
|
haserror = FALSE;
|
||||||
}
|
}
|
||||||
|
comment = FALSE;
|
||||||
++yylineno;
|
++yylineno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue