我在ANTLR中编写一个解析器来解析oracle脚本。我想在脚本中忽略“/”。
DROP PACKAGE package_name; /
无论如何都要忽略这个正斜杠?
答案 0 :(得分:1)
您可以使用如下所示的词法分析器规则来隐藏输入中的所有斜杠字符:
SLASH : '/' -> channel(HIDDEN);
将令牌放在HIDDEN
频道上会将令牌隐藏在解析器规则中,但仍会显示在您生成的解析树上调用getText()
所产生的文本中。如果您想完全删除该字符(即使是getText()
),那么您可以按如下方式更改规则:
SLASH : '/' -> skip;
如果您只想忽略出现在行尾的斜杠字符,可以添加如下谓词:
IGNORED_SLASH
: '/' {_input.LA(1)=='\r' || _input.LA(1)=='\n' || _input.LA(1)==EOF}?
-> channel(HIDDEN)
;
答案 1 :(得分:0)