2
В настоящее время я создаю язык программирования для научной ярмарки.Ошибка левого рекурсии в Peg.JS
Это мой PEG.js грамматик:
start
= s:Statements
{ return ['Program', {}].concat(s); }
/_
Statements
= s:Statement ";"
{ return s; }
/ss:Statements s:Statement ";"
{ return ss; ss.push(s); }
/_
Statement
= SetVar
SetVar
= i:Ident "=" e:Expr
{ return ['SetVarStmt', {}, i, e]; }
Expr
= Ident
/Number
Number
= n:[0-9]+
{ return ['Number', { val: parseInt(n.join(""), 10) }]; }
Ident
= i:[a-zA-Z._]*
{ return ['Ident', { name: i.join("") }]; }
_ = [ \t\r\n]*
Я получаю следующее сообщение об ошибке: «Левая рекурсия обнаруженную для правила„Заявление“.» Но я не могу понять, почему это происходит.