Parsing 函数调用的ANTLR规则

Parsing 函数调用的ANTLR规则,parsing,antlr,Parsing,Antlr,我是ANTLR4的新手,我正在尝试解析这个输入 X = 1 2 A(2) B (2) 在这个输入中,A应该是一个函数调用,而B应该是一个名为B的变量。但是我在lexer中有一个跳过空白的规则 如何为该输入编写解析器规则,但保留跳过空白的规则 提前感谢解决方案是在lexer中定义一个函数导入器,您可以在其中控制空白,然后在解析器中继续函数调用,以实现灵活的参数处理: FUNCTION_START: ID OPEN_PAR; function: FUNCTION_START parameter

我是ANTLR4的新手,我正在尝试解析这个输入

X = 1 2 A(2) B (2)
在这个输入中,A应该是一个函数调用,而B应该是一个名为B的变量。但是我在lexer中有一个跳过空白的规则

如何为该输入编写解析器规则,但保留跳过空白的规则


提前感谢

解决方案是在lexer中定义一个函数导入器,您可以在其中控制空白,然后在解析器中继续函数调用,以实现灵活的参数处理:

FUNCTION_START: ID OPEN_PAR;


function: FUNCTION_START parameters CLOSE_PAR;

这里的关键点是,在lexer中,当您使用另一个lexer规则时,空格规则不会生效,因此
函数\u START
规则将只接受格式
标识符(
之间没有空格)的输入。它将不匹配
B(

我没有太多使用解析器的经验,但是如果您可以在这里使用正则表达式,那么您可以使用它跳过空格。如果您可以使用正则表达式,请告诉我,我将帮助您使用正则表达式