如何在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