簡體   English   中英

是否有Java語言的Java解析器?

[英]Is there a Java parser for the Java language?

我正在尋找一個允許我解析java源文件的java庫,它給了我代碼的AST表示。

實際上我只對帶有注釋的類和方法定義感興趣。 我不需要方法代碼的AST。

我正在使用此信息進行代碼生成。 這就是我無法首先編譯源文件以從結果類文件中獲取信息的原因。 在生成一些額外的類之前,代碼不會在沒有錯誤的情況下編譯。

Java 6支持將其作為編譯器的本機部分,並為其提供標准API( javax.lang.model )。 你可以在這里閱讀。 它專為您的用例而設計(即從注釋和源代碼生成代碼)。

ANTLR( http://www.antlr.org/ )有一個Java語言解析器,它也支持AST。

嘗試

options {
    output=AST;
}

在* .g文件中(我沒有親自嘗試過);

我認為NetBeans Javaparser可能是你會感興趣的東西。

您可以使用Java語言的語法文件來嘗試JavaCC

我找到了項目javaparser ,它解析單個java文件並返回一個格式良好的AST。

@tangens寫了關於JavaParser但引用了一個現在過時的項目。

2011年有一個分支仍在積極維護,現在還解析Java 1.7和1.8。

你可以在那里找到它: https//github.com/javaparser/javaparser

免責聲明:我是該項目的貢獻者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM