bmstu-iu9 / bmstu-iu9/refal-5-lambda
Объединить парсеры Рефала-5λ и Простого Рефала
- Dominant language
- C++
- Stars
- 97
- Forks
- 40
- PR merge metrics
- No merged PRs in 30d
Description
Мотивация
========
Задача #91, и, в перспективе, не только она, подразумевает расширение синтаксиса. Но, поскольку используется два front-end’а, новые возможности приходится параллельно вносить в каждый из них.
Рефал-5λ и Простой Рефал отличаются лексикой и незначительно синтаксисом. Основное отличие — имена по умолчанию идентификаторы в первом и указатели на функцию во втором. В Рефале-5λ, указатели на функцию предваряются знаком `&`, в Простом Рефале идентификаторы предваряются знаком `#`. Если унифицировать имена лексем, то синтаксический анализ можно объединить.
Синтаксический анализатор Рефала-5λ уже содержит флаг, описывающий вид синтаксиса — классический или расширенный режим. Его можно использовать и для того, чтобы отличать Рефал-5λ от Простого Рефала.
Что делать
=======
Нужно унифицировать имена лексем (пересекающиеся) для Рефала-5λ и Простого Рефала и расширить `R5-Parser.ref` для поддержки Простого Рефала. После чего `SR-Parser.sref` можно будет удалить.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.