Size: a a a

Compiler Development

2021 May 10

M

MrSmith in Compiler Development
Конвенции разработки это нормально, но то колличество что есть в с++ нет
источник

TS

Timur Safin in Compiler Development
везде, в любой достаточно развитой языковой инфраструктуре
источник

M

MrSmith in Compiler Development
И опять же, разговор вообше не об этом, когда я возьму раст или зиг я получу доступ ко все инфраструктуре, ну может что то придеться дописывать, на д у меня большей части не будет причем что раст что зиг предлагают больше чем д
источник

M

MrSmith in Compiler Development
Да это понятно
источник

M

MrSmith in Compiler Development
Но субсет не тоже самое
источник

M

MrSmith in Compiler Development
Взяв код на с++ с метамагией он не перестанет работать хоть и не в духе проекта
источник

M

MrSmith in Compiler Development
А на д перестанет
источник

M

MrSmith in Compiler Development
Причем соглашения легко реализовать в линтере, а пропатчить нужную либу может занимать дофига времени
источник

M

MrSmith in Compiler Development
Ну и нафиг такой язык нужен, с си то проблем хватает тут ещё D своих занесет
источник

РС

Роман Соловьев... in Compiler Development
Всем привет, а что делать с такими грамматиками? они считаются не валидными?

если составлять таблицу First - то Test1, Test2 могут вообще не быть
источник

А⚙

Антон ⚙️ in Compiler Development
Не считаются, это неоднозначная грамматика
источник

РС

Роман Соловьев... in Compiler Development
А как устраняется?
источник

s

suhr in Compiler Development
Пишешь однозначную грамматику, которая парсит тот же язык.
источник

B

Brenoritvrezorkre in Compiler Development
Не всегда возможно
источник
2021 May 11

K

Kir in Compiler Development
Test = "start" Test1
Test1 = "hello"*
источник

K

Kir in Compiler Development
Поэтому есть ограничение: ни одна продукция не должна парсить пустую строку.
источник

K

Kir in Compiler Development
Test = "start"
Test = "start" Test1
Test1 = "hello" Test1
Test1 = "hello"
источник

РС

Роман Соловьев... in Compiler Development
Я просто пишу штуку которая парсит грамматику и возвращает First, Follow.

И тут я придумал такое пример и хз как на него надо реагировать
источник

K

Kir in Compiler Development
Error: productions Test2, Test3 are possibly empty
источник

K

Kir in Compiler Development
С этим ограничением реализация First/Follow сильно упрощается, так как не надо ходить в соседние элементы внутри продукции и проверять, могут ли они быть пустыми или нет
источник