花了一些時間解決我的問題。
ⅰ)從語法生成詞法分析器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與我聯繫。