問題タブ [sprache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compiler-construction - 連鎖式の AST へのモデル化
序文
初めてインタプリタ/コンパイラを書こうとしています。トークン化と解析は、私が理解したように見えるものです。モデル化するのが難しい言語構造がいくつかあるため、私はまだ苦労しています。に変換しようとしているサンプル コードを参照してくださいabstract syntax tree
。
下線付きの式は、次のようにモデル化されてAST
います。
質問:
A.相互に入れ子にする必要がある場合、チェーンExpressions
を配列としてモデル化する必要がありますか? 後で評価および走査するための最も実用的なモデルは何ですか?
B.ではfunc
assignToChainedExpressions
、最初の値が であるチェーンに値を割り当てることは理にかなっていExpression
ますClassInstantiation
か? それinstance
自体は実行時に破棄されると思います。
C.ほとんどの例では、Assignment
操作に非常に単純なモデルを使用しています。見る:
操作の左側Expression
も同様である場合、より複雑な割り当てをどのようにモデル化する必要がありますか?
編集1:
assignFromChainedExpressions
次のようにモデル化することをお勧めします。
assignToChainedExpressions
次のようにモデル化することをお勧めします。
c# - Sprache で任意の順序で表示される行を解析するにはどうすればよいですか?
Sprache を使用して、次のようなファイルのセクションを解析しています。
3 つの行はすべて必須ですが、任意の順序で表示できます。次のような個々の行のパーサーがあります。
そして、次のように、それらを組み合わせてセクション全体を解析します。
ただし、これは行が OneThing、AnotherThing、YetAnotherThing の順序で表示される場合にのみ機能します。これを変更して、行を任意の順序で表示できるようにするにはどうすればよいですか?
どんな助けでも大歓迎です!ありがとう