私の質問は、this oneに触発されましたが、javascriptでは、parsimmon parser-combinatorライブラリを使用しています。私はpythonやyamlのような字下げに敏感な言語を解析したい。parsimmonライブラリを使ってインデントベースの言語を解析する
私は簡単に十分なJavaScriptにその答えにScalaの例を変換するために管理してきました - キーは、Scalaのパーサコンビネータで>>
オペレータに相当しparsimmonでchain
機能、である - 彼らは両方のパーサと機能を取りますパーサを返し、最初のパーサの結果を関数に渡して、次のパーサを選択します。
しかし、これを再帰的にする方法については、私の頭の中では納得できません。この例は単一のブロックのためのものです - 私は、ネストされたブロックを作成する方法、pythonのようなものを解析するのに必要なデンデントレベルを追跡する方法を見ていません。
私はコードサンプルが奨励されているけど、私はこれまでに6時間を費やしてきたし、部分的にもまだ働いているコードを持っていません... – Josh