標準フォーマットのためのコンクリートは、抽象構文木
-
05-09-2019 - |
質問
申し訳ありませんでした。趣味プロジェクトを行う一部のコードを解析操作が可能です。このプロジェクトが必要ですが、コンクリートは、抽象構文ツリーの指定されたソースファイルです。また、双方向の参考文献の木々がご提供いただきました。いを避けるための筆記文法を構築し、自分のレクサーとのパーサです。
ある標準フォーマットを記述するためにはコンクリートまたは抽象構文木がありますか?いず広く利用されているツールチェーン支援への出力これらのフォーマットは?
持っていない特定の対象プログラミング言語です。他の人気の一致のための試作が、今後は好きについての知ってい:Python、C#、Javascript、またはC/C++.
私のソースファイルをツールや図書館かも。理想の世界で実践的な実行このツールコードで編集されているとユーザーに寛容に誤差は生じません。再び、私だけのプロトタイプを開発し、これらの要件からlax.
よろしく!
解決
私たちは、UMLにおけるASTメタモデルを定義し、移入するANTLR(Javaの)を使用する 私たちのプロジェクトで型。我々はまた、構文解析した後、ANTLRからのトークン情報を維持するが、我々はまだモデルに作られた変更で基本となるテキスト・ファイルを更新しようとしていない。
このは、(EclipseのUML2 / EMFなどのインフラでは、)恐ろしいオーバーヘッドがありますが、私たちの目標は、モデルベース/駆動開発(MDD、MDA)とにかく高レベルのツールを使用することですので、我々はそれを使用することにしました各レベルでます。
私はかつて OpenArchitectureWare のと遊んだ学生たちのいずれかを考えると、Eclipseベースから変更を取得するために管理しましたバック構文木に変換し、生成されたエディタ(上記のUMLモデルとは関係ありません)自動的に、私はこれについての詳細を知りません。
また、 ANTLRののツリー文法を見てみたいことがあります。
他のヒント
研究コミュニティは、グラフの交換が別のプログラム解析ツールから情報を移動する際に行うには正しいことであると判断しました。 http://www.gupro.de/GXLする
を参照してください。最近では、OMGは、抽象構文木を交換するための標準を定義しています。 http://www.omg.org/spec/ASTM/1.0/Beta1/を参照してください。 の
この問題は、何度も何度も解決し得るように思われます。 年間に作られた半ダースの「ツールバス」の提案があります そのすべてのこれまでの業界を追い越していないものと、それを解決しました。 問題は、a)は、使用してのASTを表現するのは簡単なことです LISPのような入れ子式表記の任意の種類は、[括弧、 XMLのように、...]ので、人々が簡単に、独自のソリューションを展開、 そしてb)別でASTを交換する一つのツール、彼らのために 両方のASTノードが何を意味するかについて、基本的に同意する必要があります。 しかし、ほとんどのASTは、むしろ誤って特定の由来しています 文法/構文解析する技術は、各ツールで使用される、とあります ツール間そのことについて、ほとんど常に意見の相違。 だから、私は有意義のASTを交換する非常にいくつかのツールを見てきました。
あなたが趣味の事をやっている場合は、、私は、Lispのように固執したいです 各ノードは、次の形式を持つ木の符号化: (...) その発生しやすく、読みやすいます。
特定の基準を期待がより一般的な目的の基準にも適しています。いらっしゃBaxter既に述べたように GXL, は、 RDF あるものの、することを必要とする適切なオントロジーをより一層向けの意味より構文です。まだの場合はオプションでお試しいただけます。
特定の基準をクリBaxter既に述べたように ASTM, つではな目標の特定の種類のプログラミング言語の論理について語) 標準のための意味的および概念的なグラフ, として知られる ISO‑IEC24707 2007年.
な基準がついて: に向け携帯型ソースコードの表現のXML .
ているものは知らなかっ有効利用基準(この地域で、常に自宅のお料理も)いに関心があるだけの人にとってもこの話題です。