問題タブ [go-interface]
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.
go - Go で AST を作成する
goでカスタム言語のパーサーを書いています。私の問題は、構文ツリーの各ノードがその型 ( anif
または avariableDef
または a funcDef
) に基づいて異なるため、値が異なることですが、ツリーのような機能を与えるために、それらのいずれかを指すことができるポインターが必要です。 .
誰かが、ノードを説明するメソッド (実装依存) のinterface
ようなものを持つことを提案しdescribe
ましたが、問題は、ノードに基づいて異なるものを返すことです。(AfuncDef
はargs []variableDef
andを与えbody []node
ますが、if はcond bin
andを与えbody []node
、変数 def は andtype typ
を与えますname string
)
私はもともとこれを JS で書き、JSON の柔軟性を利用しました。GoにはJSONサポートが組み込まれていると聞いたことがありますが、その道をたどりたいとは思いません。