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