想象这个语法:的错误会发生什么 - 野牛
declaration
: declaration_specifiers ';' { /* allocate AST Node and return (1) */}
| declaration_specifiers init_declarator_list ';' { /* allocate AST Node and return (2)*/}
;
init_declarator_list
: init_declarator { /* alloc AST Node and return (3) */}
| init_declarator_list ',' init_declarator { /* allocate AST Node and return (4) */}
;
现在想象有在“”令牌的错误。所以我们到目前为止有:
声明 - > declaration_specifiers init_declarator_list - > init_declarator_list '' /*error*/
这里会发生什么?
野牛是否执行(4)代码?和(2)?如果野牛不执行(4),但它确实执行(2)什么是3美元的价值?我如何设置$变量的默认值?
我怎样才能删除错误产生我AST正常吗?