多くのファイルを処理したいので、これを xml.l の最後に追加します。
int ParseXml(char *s)
{
int err = 0;
XMLin = fopen(s, "r");
if (!XMLin) {
puts("Error on XML file opening\n");
} else {
XML_switch_to_buffer( XML_create_buffer( XMLin, YY_BUF_SIZE ) );
err = XMLparse();
XML_delete_buffer( YY_CURRENT_BUFFER );
fclose(XMLin);
}
return err;
}
最初の実行では機能しますが (0 を返します)、2 回目の呼び出しでは失敗します (1 を返します)。フレックスマニュアルによると、うまくいくはずです!
私は何を間違えましたか?