0
我正在通過自定義語法處理我的輸入文件並提取令牌並將它們返回到HashMap
中。在ANTLR 3中,我能夠通過在解析器上調用rule()
方法並獲得HashMap
類似於parser.record
的東西來解析文件。在ANTLR4中從解析器訪問解析的數據
這似乎並不適用於ANTLR 4.我提到這本書,看起來我必須撥打parser.init()
才能開始解析,但在解析器中看不到任何方法。
我使用ANTLRWorks 2來生成我的詞法分析器和分析器文件。我沒有生成監聽器類。
感謝幫助。我正在處理另一個問題。從我的語法中找到一個片段。正如你所看到的,我將這些值保存在一個HashMap中。我的文件正在被正確解析,但我無法訪問該HashMap後解析。在ANTLR 3中,它就像parser.metadata一樣簡單。記錄: {Map metadata = new HashMap (); } 頭1 WORD * COLD_JOB WORD + DOCTYPE {metadata.put( 「DOCTYPE」,$ doctype.text);} HEADER2 '交易提交:' 日期時間 'CSR名稱:' 字+ 數字 '客戶ID:' CUSTOMER_NUMBER {metadata.put( 「thriventId」,$ customer_number.text);} –
javadmirer
2013-03-15 16:05:09