問題タブ [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 に答える
265 参照

parsing - JavaParser: Java 文法定義はどこにありますか?

JavaParserがJava コードを解析するために実際に使用している BNF スタイルの Java 1.8 文法はどこで入手できますか?

java_1_8.jjによって自動的に生成された JavaParser のコードベースにファイルがありますjavaccが、このファイルの生成に使用された文法ファイルは見当たりません.jj

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

java - Adding a String field to a new compilationUnit with JavaParser

This might be a stupid question, but i want to acchive what the subject states. I want to add a new String field to a newly declared classOrInterfaceobject in a new new compilationUnit. But from what i can tell from the sourcefiles, that option is not possible. The primitiveClass only holds enums for all the other primitives, Long, char, bytes etc.

Am i missing something? Or have the developers forgot about the String option?

SOLVED Thanks to Riduidels answer, i managed to crack the code, so to speak :) The thing was to create a new ClassOrInterfaceType and calling it String, simple enough. Though, i must say, that the people behind JavaParser should look into adding a enum for String as they have for the other Primitives. Working code:

Thanks Riduidel!

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

java - JavaParser の比較

私は JavaParser で遊んでいて、すべての System.out.println(); をフィルタリングする方法を探しています。

私は次の方法でそれを行うことができます

引数を一致させるために毎回新しい MethodExpression を作成する必要があるため、その解決策は好きではありません。静的な最終 MethodExpression を 1 つ作成し、入力パラメーターを定数と比較したいと思います。

何かのようなもの

equals メソッド以外で JParser のステートメントを比較する方法はありますか?

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

java - Javaparser メソッドの編集

メソッドがあるとしましょう:

そのメソッドの最初、{ と int i = 5; の間にステートメントを挿入したいと思います。javaparser でそれを行うにはどうすればよいですか? メソッドにアクセスすると、ASTHelper.addStmt(..) はメソッドの最後にステートメントを挿入します。

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

java - 新しい Java パーサーのテスト

純粋に自己学習の練習として、Parse::RecDescentモジュールを使用して Perl で Java パーサーを作成しようとしています。Antlrbisonなどの他のツールを使用して、後でパーサーを再実装する可能性があります。

しかし、Java 言語仕様に従って、パーサーが実際に正しい解析を生成していることを確認するにはどうすればよいでしょうか? elseつまり、ぶら下がっている 、演算子結合性、優先順位などの正しい処理。

1 つの方法は、両方のパーサーに非常に多数のテスト Java プログラムの AST を生成させ、次に 2 つの AST セットを比較することによって、私のパーサーをバグのない既知のパーサーと比較することです。

これが本当に唯一の方法である場合、Java 言語仕様全体を完全にカバーするテスト Java プログラムの大規模なスイートをどこで見つけることができますか?

JavaParserを見てきましたが、完全なテスト データセットがないようです。

もう 1 つの方法は、もちろん、自分で何万ものテスト Java プログラムを手作業で作成することです。これは、時間の観点からだけでなく、網羅性を確保する上でも、私にとって非常に非現実的です。

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

java - JavaParser を使用して AST ノードとして新しいオブジェクトを作成する方法は?

JavaParserを使用して、次のステートメントを AST に追加したいと思います。私はすでにマニュアルを読んでおり、簡単な例を実行する方法を知っています。ただし、新しいオブジェクトの作成に関連するものは見つかりませんでした。誰かがそれを手伝ってくれるかどうか疑問に思っています。