Size: a a a

Compiler Development

2021 March 29

M

MrSmith in Compiler Development
Shift reduce парсеры обычно такое называют
источник

ВМ

Виталий Медоваров... in Compiler Development
Но автор просто дальше на это накидывает больше и больше, никакой таблицы он не введёт никогда
источник

РС

Роман Соловьев... in Compiler Development
MrSmith
Посмотрите pest или бизон, можно почитать пейперы это просто конечный автомат со стеком
Ну вот конечный автомат как раз и надо где-то описать)
источник

M

MrSmith in Compiler Development
В таблице
источник

РС

Роман Соловьев... in Compiler Development
Виталий Медоваров
Но автор просто дальше на это накидывает больше и больше, никакой таблицы он не введёт никогда
В любом случае что-то нужно, чтобы понимать что "этого токена здесь не должно быть"
источник

M

MrSmith in Compiler Development
Обычно это генерируют грамматика си у меня вышла что то около 3к переходов
источник

ВМ

Виталий Медоваров... in Compiler Development
Роман Соловьев
В любом случае что-то нужно, чтобы понимать что "этого токена здесь не должно быть"
Там просто большой свитч и больше ничего, посмотри код то, хотя бы даже мой
источник

M

MrSmith in Compiler Development
Роман Соловьев
В любом случае что-то нужно, чтобы понимать что "этого токена здесь не должно быть"
Конечно, это когда вы не можете reduce возникает ошибка разбора
источник

M

MrSmith in Compiler Development
Ну тоесть лежит токен на вершине стека а правил редьюса нет для последовательности
источник

M

MrSmith in Compiler Development
Значит это неожиданный токен
источник

ВМ

Виталий Медоваров... in Compiler Development
Роман Соловьев
В любом случае что-то нужно, чтобы понимать что "этого токена здесь не должно быть"
источник

ВМ

Виталий Медоваров... in Compiler Development
Там кстати сейчас нету проверки на то что после корректного выражения нет мусора никакого, но там и по книжке так, проверка добавляется в следующей главе (про стейтменты)
источник

ВМ

Виталий Медоваров... in Compiler Development
Роман Соловьев
Ты считаешь достаточно запустить головной метод и дальше пошло поехало?
Не просто считаю, так там и делается (в книжке)
источник

M

MrSmith in Compiler Development
Только надо убрать все левые рекурсии и заменить на правые
источник

TP

Tim Plotnikov in Compiler Development
Народ, сегодня прочитал что в скале нет операторов и все там — функции(методы). Как они тогда определяют порядок вычисления ( + / * )?
источник

к

кана in Compiler Development
для инфиксных функций определяются приоритеты
источник

к

кана in Compiler Development
а может и нет
источник

к

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

к

кана in Compiler Development
источник

TP

Tim Plotnikov in Compiler Development
Хах, интересно)
Я просто думаю, имеет ли смысл в языке делать операторы? Какие сложности могут возникнуть если в язык добавлять кастомные операторы
источник