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