/* import 文はここに書く */ import java.io.IOException; %% // 生成するクラスの名前 %class MyLexer // 生成するメソッドの戻り値型 %int %unicode %line %column %{ /* フィールドやメソッドはここに書く */ public static void main(String[] args) throws IOException { new MyLexer(System.in).yylex(); } %} /* この例ではここには何も書かない */ %% /* ここに動作記述を書く。*/ /* yytext() はマッチした文字列を返すメソッド */ [ \t]+ { System.out.print('_'); } [0-9]+(\.[0-9]+)?(E[+\-]?[0-9]+)? { System.out.print(""); System.out.print(yytext()); System.out.print(""); } [A-Za-z]([A-Za-z0-9])* { System.out.print(""); System.out.print(yytext()); System.out.print(""); } "." { System.out.print(yytext()); System.exit(1); } // その他の文字はそのまま出力 .|\n { System.out.printf(yytext()); } /* 上の動作記述では値を返していないが、動作記述の中で return 文を書くと、yylex メソッドの戻り値になる。(これが本来の使い方)*/