この 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.