185 похожих чатов

И ещё пара вопросов(возможно глупых, но до этого я только

парсер жсона писал), нормально же для каждого правила в bnf создавать отдельный узел ast, тоесть структуру/enum и соответственно для каждого правила отдельный парсер(использую парсер комбинаторы из nom) или есть практики лучше/проще(мне просто такой подход показался очевидным). И нормально ли использовать паттерн посетитель(visitor) для узлов ast в случае вышеупомянутого r7rs?(пока не уверен, что на rust этот паттерн будет смотреться по человечески вообще)

11 ответов

7 просмотров

Нормально. Стандартная практика. 👍

Кое что забыл, в р7рс, есть определение токенов, которое не используется дальше в грамматике и ещё пара таковых правил в бнф(комментарии например). Зачем они нужны? А насчёт комментариев, поскольку они также нигде не упоминаются в дальнейшем определении грамматики, мне единственным решением показалось просто их убрать перед тем как скормить код парсеру, это будет правильным?

Alexander Chichigin
Норм. Для не-продакшен интерпретатора подойдёт.

А как бы делалось в продакшн интерпретаторе(просто любопытно)?

oleja ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
А как бы делалось в продакшн интерпретаторе(просто...

Production-grade интерпретатор как минимум должен качественно сообщать об ошибках со ссылками/выдержками из исходника — для этого может потребоваться сохранять комментарии.

Alexander Chichigin
Production-grade интерпретатор как минимум должен ...

Ничего он такого не должен (точнее, это сильно зависит от его назначения), и тому есть немало примеров. ;)

Yaroslav Schekin
Ничего он такого не должен (точнее, это сильно зав...

Вы про production-grade интерпретаторы Scheme говорите? Потому что мы говорили про них.

Нет, я про production-grade интерпретаторы вообще (непонятно же, что Ваше утверждение ограничено именно этим контекстом, IMHO).

Alexander Chichigin
Норм. Для не-продакшен интерпретатора подойдёт.

Кстати, что насчёт других определений, которые далее не используются(токены например и ещё несколько вроде), я так и не понял зачем они нужны

Похожие вопросы

Обсуждают сегодня

Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
1
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Или ты челендж хочешь?
Ilya Shvechikov
7
Карта сайта