Ruby 错误消息通常包含带有单字母前缀的词法常量,例如:
语法错误,意外的 tIDENTIFIER,期待 kEND
t
和从哪里来k
?还有其他字母吗?可能的关键字的主列表?
对于这样的问题,parse.y通常是查看的地方。如果没记错的话,“t”代表令牌,而“k”表示关键字。
以下是表示标识符的不同标记(在其他事物的名称意义上):
%token <id> tIDENTIFIER tFID tGVAR tIVAR tCONSTANT tCVAR tLABEL
kEND
我通过快速搜索找到的唯一定义是k_end
:
k_end : keyword_end
{
token_info_pop("end");
}
;