こんにちは私はLEXをできるようにしようとしている/ yaccの分割テーブル、subwayLinesのトークンにこの文字列LEX/yaccの文字列(構文エラー)を認識しません
table subwayLines:int[3]
、INT [3]と[ 3]オプション(つまり、intまたはint型[3])私は「INT」を認識しようとするまで
すべてがうまくある、 ので、これは私がlexの
[A-Za-z0-9\[\]]+ { /* column property*/
yylval.sval = (char *)strdup(yytext);
char* temp=yylval.sval;
return STRING;
}
に何をしたかである私は、問題がある知っていますin
[A-Za-z0-9\[\]]+
ので、私はそれは私が私の文字列でこれを書いた場合、例えば、「[」や「]」なしで行くことができない、まだ私を除いて動作します
[A-Za-z]+("[")?+[0-9]+("]")?+(",")?
にそれを変更する場合:
table subwayLines:int
それは私に構文エラー を与えるので、誰もそれを変更する方法を知っていますか? [3]
をオプションにするには感謝
'int型を認識するが理由である[3 ] 'を文字列トークンとして返すのではなく、そのトークンを4つのトークンとして返して構文を解析するのではなく、空白がある場合はどうなりますか(それは許されますか?) 'int [3]'。 – Kaz