如何在 antlr4 中为函数创建令牌
How do I create a token for a function in antlr4
我需要一些帮助,因为我知道如何创建一种方法来用我的语言定义函数:
function:
ID ‘as’ DATATYPE ‘(‘ arguments ‘)’ instruction* EndFun;
我的问题是,如果我想制作 'void' 函数,我怎样才能防止用户输入 'return ID'
function:
ID (‘as’ DATATYPE)? ‘(‘ arguments ‘)’ instruction* EndFun;
ps:说明token包含'return 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
;
我需要一些帮助,因为我知道如何创建一种方法来用我的语言定义函数:
function:
ID ‘as’ DATATYPE ‘(‘ arguments ‘)’ instruction* EndFun;
我的问题是,如果我想制作 'void' 函数,我怎样才能防止用户输入 'return ID'
function:
ID (‘as’ DATATYPE)? ‘(‘ arguments ‘)’ instruction* EndFun;
ps:说明token包含'return 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
;