コンパイラと DSL に少し慣れたいといつも思っていて、特にログ ファイル用の SQL のようなエンジンに手を出そうとしてきました。
.. これらはすでにたくさんあることは承知していますが、エクササイズの一部 (まあ、ほとんど) は、このようなことを学ぶための言い訳であることを覚えておいてください。
私はメンタルブロックにぶつかったと感じています.
私が読んだテキストの多くは文法の構築に焦点を当てていますが、これは問題ありませんが、AST を作成/作成することから、実際に何か有用なことをさせることへの飛躍については混乱しています。
私はこの本のインタープリター言語に関する章を読んでいます。これは「パイ」言語に関する章です。これは、言語を構築するこの特定の部分について最も重要な部分があるように思われるからです。
次のようなコードを作成する必要がある場合
select x,y from "c:\temp\foo.txt" where x=1 delimited by {Commas}
物事を簡単にするために、ファイルの内容を ArrayList にロードしたと仮定します。次に、外部ツリー ウォーカーを構築して AST をトラバースし、要素を中間ストレージにシャッフルします (一致する場合x=1
) - 最後に最後のバッファを出力します。結果セットになります。
ご案内をお待ちしております。
乾杯、エース