2014-06-13 40 views
0

我可以使用標準的antlr4運行時開發Android應用程序,在我的情況下我只有一個解析器,但是當我去包裝它們時,Lint和proguard抱怨失蹤的swing類和其他。是否有Android運行時可用於Antlr 4

是否有與Android兼容的Antlr4運行時?

編輯:我已經張貼了一個page with the Eclipse Android library project,其中包含Android端口的Antlr Lexer V4.2.2。如下所述進行模式化。 (http://www.forward.com.au/AndroidProgramming/index.html

回答

0

是否有與Android兼容的Antlr4運行時?

沒有,沒有。

0

花了一些時間解決我的問題。

ⅰ)從語法生成詞法分析器Java文件並檢查正確使用標準運行時庫

ⅱ)除去運行時庫從項目

iii)由antlr4運行源加入java文件目錄一次一個,以解決編譯錯誤

需要刪除所有@NonNull和@Nullable引用

註釋掉的代碼,它引用的javax等主要toString()和樹形顯示方法

添加的Arrays.copyOf和binarySearch實現,Android不提供給misc.Utils 並修復了所用文件中的所有引用。

刪除到System.out和System.err(TODO加入Android的日誌調用需要的話)

刪除不支持@SuppressWarnings

刪除未使用的導入

整個ATN和DFA運行的所有引用包已移植到Android API 7(Android V2.1 +)

在misc包中省略了GraphicsSupport.java,JFileChooserConfirmOverwrite.java,LogManager.java和TestRig.java

在utils的去除waitForClose和addWindowListener方法添加copyOf和方法的binarySearch

在樹包ommitted包GUI,模式和XPath和其他類不需要爲編譯,因爲我只有在這個項目詞法分析器。這是一個'完整'的港口需要更多的工作。

在運行時包省略ConsoleErrorListener.java(TODO與Android登錄錯誤監聽取代),取代 String.isEmpty()與(string.length減()== 0)在DiagnosticErrorListener.java,從分析器移除 方法compileParseTreePattern (TODO修復此問題), 省略ParserInterpreter需要ArrayDeque和Deque實現(TODO修復此問題), 在Recognizer中移除了ConsoleConrorListener.INSTANCE, 在RuleContext中移除了save()和inspect()和toStringTree()方法並用空字符串返回替換爲toString()。

結果是Android的端口大約80%完成。

如果您想要如上所述的Android庫代碼,請通過www.pfod.com.au與我聯繫。

相關問題