単純な C に似た言語用のパーサーを作成するというタスクが与えられました。パーサーを作成したい任意のプログラミング言語とツールを使用できますが、同時に Python を学習しているので、それが私の好みの選択です。
私のパーサーが従わなければならない制限がいくつかあります。まず、次の情報を含むテキスト ファイルを読み取ることができる必要があります。
kind1 : spelling1
kind2 : spelling2
kind3 : spelling3
.
.
.
kindn : spellingn
各種類とスペルは、トークンの種類と言語の値を参照します。このファイルは、コードのサンプルを言語の字句解析器に通した結果です。
次に、パーサーの出力をカスタマイズできなければなりません。理想的には、kind:spelling リストを、言語のコンパイラに渡されて MIPS アセンブリ コードに変換されるトークンの別のシーケンスに変換したファイルを出力したいと考えています。パーサーで生成できるようにしたいものの例を次に示します。
%function int test
%variable int x
%variable int y
%begin
%if %id y , %id x > %do
%begin
%return %num 0
%end
%return %num 1
%end
誰かが既存の Python パーサー ジェネレーターについてアドバイスしてくれたり、上記の例で探しているようなことを達成できれば、とても助かります。