bmstu-iu9 / bmstu-iu9/refal-5-lambda

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

Open
#201 0 comments 0 reactions 1 assignee Claimed by @Mazdaywik View on GitHub
task
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.