h
,то
skip First
bool first = true
while not EOF
if Follow: break
if first: first = false
else skip `,`
// Parse element...
skip Follow
Size: a a a
h
,skip First
bool first = true
while not EOF
if Follow: break
if first: first = false
else skip `,`
// Parse element...
skip Follow
h
РС
h
h
РС
AT
h
h
AT
h
РС
h
;.;)*= AssignExpr вам не нужен First Followif '=' => parse expressionh
{}, тогда нам не нужен semi ;), и на те, что требуют ;.statement: BlockStatement | Statement ;``, где BlockStatement: IfStatement, а Statement: VarDeclStatement. Для IfStatement: IF expression '{' statements '}' Нам очевидно ; не нужен в концеРС
h
VariableStart: '_' | Letter;
Variable: VariableStart (VariableStart | Digit)*
РС
А⚙