問題タブ [abstract-syntax-tree]

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.

0 投票する
1 に答える
204 参照

eclipse - Eclipse でのインクリメンタル コンパイル。ASTNode-s と SVN のバージョン管理

ソースコードをEclipseで分析した後、いくつかの統計を作成しています。しかし、コンパイルのたびにモデルをゼロから再構築するため、全体的なプロセスは遅すぎます。 コードの変更された部分のみを (ASTNodes として) 取得し、モデルのその部分だけを再構築する方法を探しています。ユーザーがコンパイルした後は、正確なコード要素ではなく、変更されたコンパイル単位でさえ十分であり、それでも最適化には適していると思います。

subclipseプラグインを使用すると、コード要素(インポート、メソッド、変数宣言など)によって変更が順序付けられるため、eclipseはどのコード要素が変更されたかを知ることができる(そしてそれらのセマンティクスを知ることさえできる)と確信しています。 . まあ..少なくともそのプラグインはその情報を知ることができます。

前もって感謝します

0 投票する
1 に答える
472 参照

java - 別のXPath要素に基づいて要素を検索するXPath

私はJavaASTを持っていて、XPathを介してその中の変数を見つけようとしています。

変数が「foobar」と呼ばれているとしましょう。

しかし、テキスト「foobar」がわからないが、別の要素から読みたい場合はどうなりますか

「Name」ノードの@Imageには「foobar」という情報がありますが、PrimaryPrefix/Name[@Image]機能しません。

//SynchronizedStatement/Expression/PrimaryExpression/PrimaryPrefix/Nameと同じ条件をどのように書き直す必要があり@Image='foobar'ますか?

ありがとう

0 投票する
1 に答える
597 参照

java - XPathは祖先要素に基づいて要素を検索します

再び私はから作成されたJavaASTを持っています

o定義されたString変数が使用されている同期ブロックを見つけるXPathクエリを作成しようとしています。

定義が上にあるので、それはSynchronizedStatementの祖先ですが、私はそれを機能させません

私はそれ/SynchronizedStatement[Expression/PrimaryExpression/PrimaryPrefix/Name[@Image=が正しいことを知っています、私の問題は祖先のClassOrInterfaceBody部分にどのように対処するかです。

私が何を意味するのかが明確になることを願っています;-)

ありがとう

0 投票する
3 に答える
22214 参照

python - Python で抽象構文ツリーのビジター パターンを作成するには?

同僚から、AST をナビゲートするためのビジター パターンを作成するよう提案されました。どうすればそれを書き始めることができるか、誰か教えてもらえますか?

私が理解している限りでは、AST の各ノードには、visit()何らかの形で (どこから?) 呼び出されるメソッド (?) があります。以上で私の理解は終わりです。

すべてを単純化するために、ノードRootExpressionNumberOpあり、ツリーが次のようになっているとします。

訪問者パターンがこのツリーにアクセスして出力を生成する方法を考えられる人はいますか?

ありがとう、ボダ・シド。

0 投票する
1 に答える
447 参照

scala - 再帰的方法のためのscalaASTの生成

次のコードを使用してscalaASTを生成しています。

これは、コード内でコンパイラを実行し、使用するASTを生成するために使用される標準コードだと思います。上記のコードは、これまでTest.scalaの有効なscalaコードで正常に機能していました。Test.scalaで再帰関数を使用すると、次のようになります。

def xMethod(x:Int):Int = if(x == 0)-1 else xMethod(x-1)

java.lang.NullPointerExceptionが発生します。スタックトレースの上位数行は次のようになります

コードは次のようなメソッドで正常に機能します

再帰関数に他の設定が必要な場合はお知らせください。

0 投票する
2 に答える
651 参照

design-patterns - 式 AST の操作

AST を使用する際のベスト プラクティスはありますか? 解析された式 AST があります。ConstantExpression、BinaryExpression など。GUI ダイアログに AST からの情報を入力したいのですが、コードがかなり乱雑になるため、ここでちょっと混乱します。

例:

2 つのテキスト ボックスに値 10 を入力したいと考えています。ASTから20。私が今行っているのは、(.Net Is-operator を使用して) 正しい子式の型をチェックし、それに応じて動作する再帰的な方法であり、コードは本当に「臭い」です:)

Visitor など、これをやや簡単/読みやすく/保守しやすくするデザインパターンはありますか?

0 投票する
5 に答える
1681 参照

java - JavaでJavaを解析するための最良の方法

タイトルにあるように、JavaでJavaソースコードを解析したいと思います。すでにこれを実行している他のJavaライブラリがあると確信していますが、見つかりませんでした。

0 投票する
1 に答える
1158 参照

.net - C#3コードをXMLの抽象構文木として表現する

C#3のGCC_XMLに似たものがあるかどうか疑問に思いました。基本的に、プログラムの構文構造全体をXMLで表す方法です。

表現が作成されたら、それをXDocumentに解析し、そこから解釈またはクエリしたいと思っていました。

このためのツールはありますか?

0 投票する
5 に答える
8293 参照

xml - ソースコードを ast の xml ベースの表現に変換する方法は?

Java および C コードの ast の xml 表現を取得したいと考えています。3か月前、私はまだこの質問をしましたが、解決策は私にとって快適ではありませんでした

  • srcmlはこの問題の良い解決策のようですが、行番号と列をサポートしていませんが、その機能が必要です。
  • elsaについて: cite: 「Elsa AST を XML ドキュメントとしてエクスポートする取り組みが進行中です。次の公開リリースでこれを宣伝できると期待しています。」
  • dms ... わかりませんでした。
  • 特にJavaの場合、行番号をサポートするjavamlがあります。ただし、sourceforge ページにはファイルがリストされていません。

質問: 行番号 (および列) をサポートする xml への ast の変換をサポートする利用可能なソフトウェアがあります [特に Java および c/c++ の場合]? javaml と srcml に代わるものはありますか?

ps: パーサー ジェネレーターは必要ありません。コンソールの入力で使用できるツールを見つけたいと思っています:./my-xml-generator Test.java [またはそのようなもの] ...またはJava実装も素晴らしいでしょう。

0 投票する
1 に答える
609 参照

c# - Visual BasicとC#の両方で開発されたアプリケーションのAST生成

私は現在、Visual BasicとC#の両方で開発された1つのアプリケーションを理解しています。コードが約50KLOCであるため、コードの実行は困難になっています。そこで、AST(抽象構文木)の生成を計画しています。両方の言語を一緒に生成することは可能でしょうか。

少なくともコールグラフの生成は役に立ちます(ただし、両方の言語で機能するツールは見つかりません)

この質問がわかりにくい場合はお知らせください。

AdvanceDevに感謝します