0
我definig內彎曲令牌作爲正則表達式(Flex中)爲完整的普通句子
%%
@[^\\\" \n\(\),=\{\}#~]+ {yylval.sval = strdup(yytext + 1); return ENTRYTYPE;}
[A-Za-z][A-Za-z0-9:"]* { yylval.sval = strdup(yytext); return KEY; }
\"([^"]|\\.)*\"|\{([^"]|\\.)*\} { yylval.sval = strdup(yytext); return VALUE; }
[ \t\n] ; /* ignore whitespace */
[{}=,] { return *yytext; }
. { fprintf(stderr, "Unrecognized character %c in input\n", *yytext); }
%%
(雖然,不是一個好辦法) 問題是變量的值都爲帶引號的字符串做精細,形式「一些報價」;但是當它們被大括號(形式{一些句子})包圍時,並不適用於這種形式。 那裏有什麼雜亂的東西?
'\ 「([^」] | \\。)* \」 \t \t \t \t {yylval.sval =的strdup(yytext中);返回值;} \ {([^}。] | \\) * \} {yylval.sval = strdup(yytext); return VALUE;}' 給出大括號文本的錯誤爲 ** [bold] **語法錯誤,意外$ end,期望KEY或'}'* * – BaRud 2013-04-29 17:27:32