2016-04-14 6 views
0

整数の先行ゼロを無視したい 00034があると言うことができます.43だけを受け入れ、ゼロを無視します。 私はフレックス使用していると私は43先行ゼロを無視し、残りをフレックスアナライザで読み取る

NUMBER [1-9][0-9]*|0 
ZEROS 00+ 

、その後、整数のためのトークンを返したい:

{ZEROS} { /*DO NOTHING*/ } 
{NUMBER} { return INT; } 

をが、それらに問題があり、私は0032を試したとき、私は、正しい結果を得るため、私は032を試してみると、0をint、32をintとして返します。

私が使用している場合:

NUMBER [1-9][0-9]*|0 
ZEROS 00* 

単一のゼロは無視されます。

どのような考えですか?

答えて

1

なぜですか?あなたはテキストを返さない。トークンINTを返却し、atoi(yyext)yylvalに格納する必要があります。 これは、先導する0を処理するのはです。アナライザではありません。ルールは次のとおりです。

[0-9]+ { yylval.intValue = atoi(yytext); return INT; } 
関連する問題