/* 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 メソッドの戻り値になる。(これが本来の使い方)*/