問題タブ [javaparser]

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 に答える
316 参照

java - javaparser でバイナリ部分式を取得する方法

javaparserを使用して、Java ソース ファイルの AST を解析しています。

ソース コード内のすべてのバイナリ部分式を個別のノードとして取得したいと考えています。これが私が解析しているソースコードです:

組み込みの BinaryExp 型を受け入れる Visitor を実装しましたが、見つかった唯一のノードにはバイナリ式が含まれています。

部分式「(4 / 10.0)」にもアクセスする方法はありますか? 完全な式の「左オペランド」を取得しようとしましたが、式のタイプであり、予想どおり BinaryExpr ではありません。

どんな助けでも大歓迎です。

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

java - Javaparser: 1 つのメソッドですべてのノード タイプにアクセスする

Javaparserを使用して Java ソース コードを解析しています。

抽象 Node クラスにアクセスできる Visitor を実装する方法はありますか?

すべてのノードにアクセスしてその行番号を出力したいのですが、非常に多くのタイプがあるため、すべてのノード タイプ (AssignExpr、BinaryExpr、IfStmt など) に対して visit() メソッドを実装したくありません。

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

java - Java の文字列パーサー ロジック

以下のような文字列があります。これは、AND/OR/NOT 条件をいくつか追加するだけでさらに拡張できますが、構文は維持されます。

この文字列を解析する必要があります。この文字列を JSON オブジェクトとして変換することに部分的に成功しました。しかし、完全にはできませんでした。

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

java - Java パーサーを使用して Java ファイルから属性を解析する

私は以下の3つのクラスを持っています。

次の情報を持つJavaパーサーを使用してクラスを解析したい:

  • クラス名
  • メソッド名
  • 属性名
0 投票する
4 に答える
905 参照

android - JsonObject を使用した JsonArray の解析

次の構造の JSON があります。

次のJavaコードを使用して、要素「product_id」および「price_id」にアクセスしようとしています:

しかし、製品が見つからないというエラーが表示されます。パーサーの何が問題なのですか?

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

java - Java コードからメソッド呼び出しを抽出する

Java コードからすべてのメソッド呼び出しを抽出したいと考えています。次の 2 つの正規表現を記述しましたが、すべてのメソッド呼び出しを抽出することはできません。

Reg1 :Pattern.compile("([a-zA-Z][0-9_a-zA-Z]*\\([a-zA-Z0-9_\\s,\\[\\]\\(\\)\\.]+\\))");

Reg2 :Pattern.compile("([a-zA-Z][0-9_a-zA-Z]*\\([\\s]*\\))")

入力:

出力:

" " を抽出できませんencode

正規表現に何を追加すればよいか、誰にも考えがありますか?

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

java - メソッドスコープJavaで重複変数をチェック

FileReaderメソッドを含むJavaファイルを読みました。メソッドスコープ(内部のメソッド領域)を読み取って重複変数を見つけるにはどうすればよいですか?

たとえば、これは私が読んだ Java ファイルです。

メソッドのスコープを知るにはどうすればいいですか?つまり、{ と } の間を意味します。スコープが見つかった場合は、上記の例 (int _nn) のような重複した変数を見つけます。

[追加] Javaパーサーを使用してみましたが、成功です。次に、リストを使用して結果を送信する必要がありますが、リストの最後のメソッドのみです。コードの何が問題になっていますか?

これは MethodVisitor です:

次に、これは MethodVisitor を呼び出すメソッドです。