refal-5-lambda icon indicating copy to clipboard operation
refal-5-lambda copied to clipboard

Объединить парсеры Рефала-5λ и Простого Рефала

Open Mazdaywik opened this issue 5 years ago • 0 comments

Мотивация

Задача #91, и, в перспективе, не только она, подразумевает расширение синтаксиса. Но, поскольку используется два front-end’а, новые возможности приходится параллельно вносить в каждый из них.

Рефал-5λ и Простой Рефал отличаются лексикой и незначительно синтаксисом. Основное отличие — имена по умолчанию идентификаторы в первом и указатели на функцию во втором. В Рефале-5λ, указатели на функцию предваряются знаком &, в Простом Рефале идентификаторы предваряются знаком #. Если унифицировать имена лексем, то синтаксический анализ можно объединить.

Синтаксический анализатор Рефала-5λ уже содержит флаг, описывающий вид синтаксиса — классический или расширенный режим. Его можно использовать и для того, чтобы отличать Рефал-5λ от Простого Рефала.

Что делать

Нужно унифицировать имена лексем (пересекающиеся) для Рефала-5λ и Простого Рефала и расширить R5-Parser.ref для поддержки Простого Рефала. После чего SR-Parser.sref можно будет удалить.

Mazdaywik avatar Mar 03 '19 21:03 Mazdaywik