数字Numは0か、先頭が0でない0から9の文字列です。 これで文法を定義できました。 実際に動くプログラムにするため、コンパイラコンパイラとよばれる、言語処理系の開発に特化したコンパイラを使用してみましょう。この記事では、Javaによるコンパイラコンパイラ実装であるJavaCCを使います。 JavaCC:https://javacc.dev.java.net/ Downloadsからを取得して適当なフォルダに展開してください。 展開したフォルダのbinフォルダにパスを通せばjavaccコマンドを利用できるようになります。 ところで、上記のEBNF表記上は特に区別されていませんが、一般に、言語処理系は字句解析と構文解析とよばれる処理ににわけてソースコードを解析します。 字句解析は構文解析の準備処理です。まず入力された文字列を空白文字や特定の記号などで区切っていきます。区切られたそれぞれの文字