á、é、í、ó、ú、ñなどのアクセント付き文字を含むすべての単語を入力ファイルから抽出するには、JFlex を使用してパーサーを作成する必要があります。
私の問題は、すべてのファイルを UTF8 エンコーディングと %unicode タグで設定しても、それらの文字を認識できないことです。
.lex ファイルは次のようになります。
import java_cup.runtime.*;
%%
%class ParserLex
%unicode
%public
%final
%cup
%init{
%init}
%{
private Symbol sym(int type) {
return sym(type, yytext());
}
private Symbol sym(int type, Object value) {
return new Symbol(type, yyline, yycolumn, value);
}
%}
Token = [áéíóú]
ANY = .
%%
{Token}
{ System.out.println(yytext()); }
{ANY}
{ }
そして、私のテストクラスは次のようなものです:
class ParserTest {
public static void main(String[] args) throws IOException {
InputStreamReader reader = new InputStreamReader(new FileInputStream(args[0]), "UTF8");
ParserLex parser = new ParserLex(reader);
for (Symbol sym = parser.next_token(); sym.sym != 0; sym = parser.next_token()) {
}
reader.close();
}
}
この問題に関するアイデアやアドバイスはありますか?