이 문법을 상상 :- 들소
이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)? bison이 (4)를 실행하지 않으면 실행하지만 (2) $ 3 값은 무엇입니까? 어떻게하면 $ 변수의 기본값을 설정할 수 있습니까?
오류 발생시 생성 된 AST를 어떻게 삭제합니까?