0
다음 문법은 구조체와 bison의 필드 선언이 일치합니다. 누군가 줄이기 위해 갈등을 줄일 수 있다고 지적 할 수 있습니까?다음 바이슨 문법에서 감소/감소 충돌이 발생했습니다.
구조체 예 : 구조체 MYSTRUCT {INT의 VAR은} - 그래서, 당신이 recusive 규칙과 두베이스의 경우이
%start start
%%
start : program { $$ = parser::root->adopt($1); }
;
program : program structdef { $$ = $1->adopt ($2); }
|
;
structdef : TOK_STRUCT TOK_IDENT '{' fielddecls '}' {
destroy($3); destroy($5);
$$ = $1->adopt($2, $4);}
;
fielddecls : fielddecl {$$ = $1;}
| fielddecl fielddecls {$$ = $1->adopt($2);}
| {$$ = nullptr;}
;
fielddecl : basetype TOK_IDENT ';' {$$ = $1->adopt($2);}
;
basetype : TOK_VOID {$$ = $1;}
| TOK_INT {$$ = $1;}
| TOK_STRING {$$ = $1;}
| TOK_IDENT {$$ = $1;}
;
%%