ANTLR 函数作为参数

问题描述

我正在用 ANTLR4 创建一种语言。我试图让函数作为方法的参数传递。但我无法找到任何资源。如果有可用的,也许有人可以提供提示或资源?

我的最终目标:

public int function1()
{
  int a = function2(function3(1));
}

public int function2(int i)
{
  return i + 1;
}

public int function3(int i)
{
  return i+1;
}

解决方法

函数调用只是表达式规则中的替代:

expression
 : expression ( '+' | '-' ) expression
 | INTEGER
 | IDENTIFIER
 | functionCall
 ;

functionCall
 : IDENTIFIER '(' arguments? ')'
 ;

arguments
 : expression ( ',' expression )*
 ;