1

私は現在BASIC言語用の簡単なコンパイラを開発していますが、あなたに質問したい問題がいくつか見つかりました。

最初のものは簡単です。どこでトークンを定義すればよいですか? つまり、Lexer.java ファイルでは、次の式を使用してトークンをパーサーに送信します。 return symbol(sym.STATIC); STATIC は私にとってトークンですが、どこで定義すればよいかわかりません。

次に、Lexer と Parser のインスタンスを作成するメイン クラスをどこに定義すればよいでしょうか。Parser クラスか、それとも別のクラスか。

ありがとうございます。

4

2 に答える 2

1

最初:これらのシンボルを定義するクラスを含むファイルが自動的に生成されます

2 番目: 生成された Lexer からオブジェクトを作成する main を使用して独自のクラスを作成し、そこに InputStream を渡し、Parser からオブジェクトを作成して Lexer を渡します。これら 2 つのオブジェクトを作成したら、Parser に属するメソッド parse() を呼び出します。

于 2011-07-18T15:30:38.983 に答える