如何在antlr4中推送默认模式
How to push the default mode in antlr4
我目前正在编写具有多种词法模式的 antrl4 语法。并且很容易将具有明确名称的模式推送到默认模式,然后 return 通过弹出当前模式。
OPEN_PARENTHESIS : '(' -> pushMode(IN_PARENTHESES);
mode IN_PARENTHESES;
CLOSE_PARENTHESIS : ')' -> popMode;
但现在我处于堆栈上有几种模式的情况,我仍然想 return 到默认模式而不弹出堆栈上的所有内容。所以我的问题是,是否可以通过按照 pushMode(DEFAULT)
的方式做一些事情来 return 到默认模式?
我想你要找的是 -> mode(DEFAULT_MODE)
参见:https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md#mode-pushmode-popmode-and-more
我目前正在编写具有多种词法模式的 antrl4 语法。并且很容易将具有明确名称的模式推送到默认模式,然后 return 通过弹出当前模式。
OPEN_PARENTHESIS : '(' -> pushMode(IN_PARENTHESES);
mode IN_PARENTHESES;
CLOSE_PARENTHESIS : ')' -> popMode;
但现在我处于堆栈上有几种模式的情况,我仍然想 return 到默认模式而不弹出堆栈上的所有内容。所以我的问题是,是否可以通过按照 pushMode(DEFAULT)
的方式做一些事情来 return 到默认模式?
我想你要找的是 -> mode(DEFAULT_MODE)
参见:https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md#mode-pushmode-popmode-and-more