問題タブ [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.
eclipse - Eclipse でのインクリメンタル コンパイル。ASTNode-s と SVN のバージョン管理
ソースコードをEclipseで分析した後、いくつかの統計を作成しています。しかし、コンパイルのたびにモデルをゼロから再構築するため、全体的なプロセスは遅すぎます。 コードの変更された部分のみを (ASTNodes として) 取得し、モデルのその部分だけを再構築する方法を探しています。ユーザーがコンパイルした後は、正確なコード要素ではなく、変更されたコンパイル単位でさえ十分であり、それでも最適化には適していると思います。
subclipseプラグインを使用すると、コード要素(インポート、メソッド、変数宣言など)によって変更が順序付けられるため、eclipseはどのコード要素が変更されたかを知ることができる(そしてそれらのセマンティクスを知ることさえできる)と確信しています。 . まあ..少なくともそのプラグインはその情報を知ることができます。
前もって感謝します
java - 別のXPath要素に基づいて要素を検索するXPath
私はJavaASTを持っていて、XPathを介してその中の変数を見つけようとしています。
変数が「foobar」と呼ばれているとしましょう。
しかし、テキスト「foobar」がわからないが、別の要素から読みたい場合はどうなりますか
「Name」ノードの@Imageには「foobar」という情報がありますが、PrimaryPrefix/Name[@Image]
機能しません。
//SynchronizedStatement/Expression/PrimaryExpression/PrimaryPrefix/Name
と同じ条件をどのように書き直す必要があり@Image='foobar'
ますか?
ありがとう
java - XPathは祖先要素に基づいて要素を検索します
再び私はから作成されたJavaASTを持っています
o
定義されたString変数が使用されている同期ブロックを見つけるXPathクエリを作成しようとしています。
定義が上にあるので、それはSynchronizedStatementの祖先ですが、私はそれを機能させません
私はそれ/SynchronizedStatement[Expression/PrimaryExpression/PrimaryPrefix/Name[@Image=
が正しいことを知っています、私の問題は祖先のClassOrInterfaceBody部分にどのように対処するかです。
私が何を意味するのかが明確になることを願っています;-)
ありがとう
python - Python で抽象構文ツリーのビジター パターンを作成するには?
同僚から、AST をナビゲートするためのビジター パターンを作成するよう提案されました。どうすればそれを書き始めることができるか、誰か教えてもらえますか?
私が理解している限りでは、AST の各ノードには、visit()
何らかの形で (どこから?) 呼び出されるメソッド (?) があります。以上で私の理解は終わりです。
すべてを単純化するために、ノードRoot
、Expression
、Number
がOp
あり、ツリーが次のようになっているとします。
訪問者パターンがこのツリーにアクセスして出力を生成する方法を考えられる人はいますか?
ありがとう、ボダ・シド。
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が発生します。スタックトレースの上位数行は次のようになります
コードは次のようなメソッドで正常に機能します
再帰関数に他の設定が必要な場合はお知らせください。
design-patterns - 式 AST の操作
AST を使用する際のベスト プラクティスはありますか? 解析された式 AST があります。ConstantExpression、BinaryExpression など。GUI ダイアログに AST からの情報を入力したいのですが、コードがかなり乱雑になるため、ここでちょっと混乱します。
例:
2 つのテキスト ボックスに値 10 を入力したいと考えています。ASTから20。私が今行っているのは、(.Net Is-operator を使用して) 正しい子式の型をチェックし、それに応じて動作する再帰的な方法であり、コードは本当に「臭い」です:)
Visitor など、これをやや簡単/読みやすく/保守しやすくするデザインパターンはありますか?
java - JavaでJavaを解析するための最良の方法
タイトルにあるように、JavaでJavaソースコードを解析したいと思います。すでにこれを実行している他のJavaライブラリがあると確信していますが、見つかりませんでした。
.net - C#3コードをXMLの抽象構文木として表現する
C#3のGCC_XMLに似たものがあるかどうか疑問に思いました。基本的に、プログラムの構文構造全体をXMLで表す方法です。
表現が作成されたら、それをXDocumentに解析し、そこから解釈またはクエリしたいと思っていました。
このためのツールはありますか?
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実装も素晴らしいでしょう。
c# - Visual BasicとC#の両方で開発されたアプリケーションのAST生成
私は現在、Visual BasicとC#の両方で開発された1つのアプリケーションを理解しています。コードが約50KLOCであるため、コードの実行は困難になっています。そこで、AST(抽象構文木)の生成を計画しています。両方の言語を一緒に生成することは可能でしょうか。
少なくともコールグラフの生成は役に立ちます(ただし、両方の言語で機能するツールは見つかりません)
この質問がわかりにくい場合はお知らせください。
AdvanceDevに感謝します