1

重複の可能性:
Clojure を使用して Java ソース ファイルを分析する方法

Javaソースファイルを解析してJavaコード構造を理解できるようにする、java/clojureで利用できるツールは何ですか?

これの動機はコード生成のためです.Javaソースコードを含む文字列があったとします.

(def java-str 
"/**
 * @param r the modulus of the complex number to create
 * @param theta  the argument of the complex number to create
 * @return <code>r&middot;e<sup>i&middot;theta</sup></code>
 * @throws MathIllegalArgumentException  if r is negative
 * @since 1.1
 */
public static Complex polar2Complex(double r, double theta) {
    if (r < 0) {
        throw new MathIllegalArgumentException(
              LocalizedFormats.NEGATIVE_COMPLEX_MODULE, r);
    }
    return new Complex(r * FastMath.cos(theta), r * FastMath.sin(theta));
}
")

次にgen-clj-fn、Java メソッド、パラメーター名、型、および順序を認識する関数定義の clojure 文字列を生成するように記述できます。

(gen-clj-fn java-str)
;;=> "(defn polar-to-complex [#^Double r #^Double theta] 
;;        (Complex/polar2Complex r theta))"

r理想的には、取得して取得するのは良いことthetaですclojure.reflectが、それが可能かどうかはわかりません....型シグネチャのみを提供し、名前自体は提供しないと思います。

4

0 に答える 0