我有时会得到语法错误,就像this one一样,Ruby引发了一个关于“意外IDENTIFIER”的错误。修复代码的语法似乎解决了这个问题,但首先让我感到困惑的是错误的原因。
我希望如果我知道tIDENTIFIER究竟是什么,我可以在语法中查找并直接将其删除。
答案 0 :(得分:2)
tIDENTIFIER
是标识符标记。标识符是一些文本,如变量或函数名称。在Ruby中,标识符必须以字母或下划线开头,然后可以有更多的字母,下划线或数字。
作为示例:“main”,“puts”,“String”和“x2”都是标识符。 “!!”,“12412”,“(”和“返回”不是。
用错误信息换句话说:Ruby在一个它没有预料到的地方找到了一个变量,类或方法名。您可能不想删除它:您更有可能忘记了某些内容,例如您链接的示例中的逗号。
答案 1 :(得分:1)
在不期望的地方找到令牌标识符。可能是由于一行不存在或者某种类型的缺失分隔符,可能是逗号。据推测,您不会想要删除令牌,只需修复您声明已经在做的语法。
请参阅文件parse.y以获取有关这些内容的明确详细信息。
具体显示:
%token <id> tIDENTIFIER tFID tGVAR tIVAR tCONSTANT tCVAR tLABEL
%token <node> tINTEGER tFLOAT tRATIONAL tIMAGINARY tSTRING_CONTENT tCHAR
%token <node> tNTH_REF tBACK_REF
%token <num> tREGEXP_END