Неоднозначная грамматика в фазе разбора
Я хочу построить компилятор на своем родном языке, я написал грамматику и закончил фазу лексера. Мой вопрос в фазе синтаксического анализа - эта часть моего грамматика EBNF
Statement → Block | Assignment | CallStatement | Declaration |
inputStatement |outputStatement | IFStatement | WhileStatement
CallStatement → Identifier { /[Expression/] } {. Identifier } /( Arguments /)
lefthand → Identifier { /[Expression/] } {. Identifier { /[Expression/] } }
Я использую метод парсера рекурсивного спуска, моя проблема заключается в том, чтобы различать CallStatement и левый, как это решить, извиняюсь, если не могу объяснить идею:(