如何在 antlr4 中为函数创建令牌



我需要一些帮助,因为我知道如何在我的语言上创建一种定义函数的方法:

function: 
ID ‘as’ DATATYPE ‘(‘ arguments ‘)’ instruction* EndFun;

我的问题是,如果我想制作"void"功能,我如何防止用户输入"返回ID">

function: 
ID (‘as’ DATATYPE)? ‘(‘ arguments ‘)’ instruction* EndFun;

PS:指令令牌包含"返回ID">

要么在解析后检查void函数是否包含 return 语句(这就是我要做的(,要么做这样的事情:

function
: ID 'as' DATATYPE '(' arguments ')' instruction* EndFun
| 'void' '(' arguments ')' instruction_no_return* EndFun
;
instruction
: instruction_no_return
| 'return' ID
;
instruction_no_return
: instruction_a
| instruction_b
| instruction_c
;

相关内容

  • 没有找到相关文章

最新更新