2
我想解析一个文件,其中第一行可能包含或不包含“项目”名称的定义(与Pascal的关键字program
一样),如果不是,则使用正在解析的文件的名称作为默认。简体:获取解析文件的名称?
@members{ String projectName; }
project : {projectName = ...} // name of parsed file as default
(PROJECTNAMEKEYWORD ID {projectName = $ID.text;})?
otherstuff {/*...*/};
这甚至可能吗?我发现使用谷歌或antlr手册很难发现这一点。通过它的文档,input.getSourceName()
应该是我正在寻找的东西,但它总是返回null,并且调试将导致我的类ANTLRStringStream
有name
字段,其值由此方法返回但从未设置。