函数调用的 ANTLR 规则
ANTLR rule for function call
我是 ANTLR4 的新手,我正在尝试解析此输入
X = 1 2 A(2) B (2)
在这个输入中,A 应该是一个函数调用,而 B 应该是一个名称变量 B.But 我在词法分析器中有一个跳过空格的规则。
我如何为这个输入编写解析器规则但保留跳过空格的规则
提前致谢
解决方案是在词法分析器中定义一个函数引入器,您可以在其中控制空格,然后在解析器中继续函数调用以实现灵活的参数处理:
FUNCTION_START: ID OPEN_PAR;
function: FUNCTION_START parameters CLOSE_PAR;
这里的关键点是,在词法分析器中,当您处于另一个词法分析器规则中时,空白规则不会生效,因此 FUNCTION_START
规则将只接受 identifer(
形式的输入中间没有空格。它不会匹配 B (
.
我是 ANTLR4 的新手,我正在尝试解析此输入
X = 1 2 A(2) B (2)
在这个输入中,A 应该是一个函数调用,而 B 应该是一个名称变量 B.But 我在词法分析器中有一个跳过空格的规则。
我如何为这个输入编写解析器规则但保留跳过空格的规则
提前致谢
解决方案是在词法分析器中定义一个函数引入器,您可以在其中控制空格,然后在解析器中继续函数调用以实现灵活的参数处理:
FUNCTION_START: ID OPEN_PAR;
function: FUNCTION_START parameters CLOSE_PAR;
这里的关键点是,在词法分析器中,当您处于另一个词法分析器规则中时,空白规则不会生效,因此 FUNCTION_START
规则将只接受 identifer(
形式的输入中间没有空格。它不会匹配 B (
.