私はすでにこのリンクを試しました: Print in JavaCC。しかし、なんらかの理由で、その答えはうまくいきませんでした。テキストをコピーしてファイルに貼り付けて実行しましたが、µ
たとえば と入力しても何も出力されませんでした。
文字列トークンで非英語を使用できるようにしたいと考えています。テスト目的のためだけに、現在私は持っています:
options
{
UNICODE_INPUT = true;
JAVA_UNICODE_ESCAPE = false;
}
PARSER_BEGIN(Unicode)
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class Unicode
{
public static void main(String[] args)
{
if(args.length == 0)
{
System.out.println("File name not specified!");
return;
}
System.out.println("-----Start-----\n\n");
try
{
FileInputStream fis = new FileInputStream(args[0]);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
Unicode parser = new Unicode(isr);
parser.start();
}
catch(FileNotFoundException ex){
System.out.println(ex);
}
catch(UnsupportedEncodingException ex){
System.out.println(ex);
}
catch(ParseException ex){
System.out.println(ex);
}
catch(TokenMgrError ex){
System.out.println(ex);
}
System.out.println("\n\n------End-------");
}
}
PARSER_END(Unicode)
TOKEN:{
// á é í ó ú
<STR: ("\u00e1" | "\u00e9" | "\u00ed" | "\u00f3" | "\u00fa")>
}
void start():
{
Token found;
}
{
(
found = <STR>
{System.out.println("Input: " + found.image);}
)+
<EOF>
}
パーサーを実行して を含むファイルをフィードするとá, é, í, ó, ú
、たくさんの疑問符しか表示されません。
Input: ?
Input: ?
Input: ?
Input: ?
Input: ?
自動生成される char ストリーム ファイルを変更する必要があると読んだことがありますが、よくわかりません。