Я пытаюсь разобрать язык, в котором операторы имеют динамические атрибуты (приоритет и приоритет ), используя синтаксический анализатор Menhir (, аналогичный Ocamlyacc ). На этапе лексирования все операторы заполняют токен OP:string
(, поэтому «+» превращается в (OP "+")
и т. д. ).
Атрибуты операторов определяются во время синтаксического анализа и заполняют таблицу, связывающую операторы и их атрибуты. Учитывая эту таблицу, как я могу указать Menhir динамически изменять приоритет правила, анализирующего операторы на основе данных этой таблицы?
Спасибо, Чарли П.