この Bison は Java 言語のコードが吐けるように修正したものです。 "-j" あるいは "--java" オプションを指定すると、Java 用のパーサを 出力します。アクション部は当然、Java 言語で記述します。 Java 化するにあたり、C 言語とは完全互換ではないため、一部、仕様 に変更があります。以下、Java モードでの主な違いを列挙します。
%union, %pure, %semantic_parser
YYACCEPT, YYABORT, YYERROR, YYFAIL はマクロではないので、
関数呼び出しのように、
YYACCEPT(), YYABORT(), YYERROR(), YYFAIL()としなければ
ならない。
%type, %token による型指定は、キャスト命令に置換される。
C 言語版は、union を用いて型合わせを行うが、Java 版はキャストを
用いて型合わせを行う。なお $$ はキャストさず、常に Object 型です。
%import java.io.*;Parser.y とすると、出力ファイル名は
ParserTab.java、クラス名は ParserTab のように、
Tab が追加された名前になる。
1999-06-19
* Bison 1.27 j2 released.
* Modified indentation of the source code.
* Bug fixed.
1999-06-18
* Bison 1.27 j1 released.