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