DSL - широкое понятие, может быть по-разному
а antlr что, сильно помогает в написании dsl?
А как же Lex Yacc? Flex / Bison или библиотеки наподобие sly, csly. Или — вручную разобрать для быстродействия.
Ого, какие люди :)
Где-то попадались замечания автора почему он реализовал определенные фичи в третьей версии. Наверное, в репе, либо в книге автора. Тут ещё вариант задаться вопросом почему сейчас реактивность набирает популярность, но тут можно встретить только не понимание вопроса.
Насколько я понимаю, все эти штуки имеют один серьезный недостаток - не умеют обновлять дерево частично по мере редактирования исходника, а парсят все целиком. Из библиотек которые умеют навскидку вспоминаю только tree-sitter
А триситтер не всегда нормально восстанавливается после ошибок и не всегда их репортит. Нет в мире совершенства (кроме написанного вручную парсера, который делает всё, что нужно, и так, как нужно)
не знаю, как в других парсер-генераторах, но в том же happy это не очень сложно сделать самостоятельно
А как там это делается? Стейт можно дёшево сохранять и откатывать до нужной точки?
Можно что-то и на котлине или на typescript сделать похоже на DSL
Это будет EDSL, вероятно это не то чего ждут от ANTLR
Я Yacc/Bison не пользовался, но как я понял из этого и других чатов, Бизон это библиотека сугубо для сишных проектов, в особенности из-за её костыльного интерфейса свойственного сишным поделкам
"Bison can generate code for C, C++, D and Java." © Интерфейс (в т.ч. и к lexer), там, конечно, кондовый.
Coctail ведь аналог Bison / Lex ? Тогда ещё Modula-2 и Modula-3
For some value of "аналог", как говорится. ;) Кроме шуток, аналогов-то много, но по возможностям и качеству они могут отличаться очень существенно.
В плане нашей дискуссии что Bison ( YACC) , что COCKTAIL - одного поля ягоды ? Yes? Вот я и решил пополнить список
Хмм... а зачем его пополнять-то (в плане аналогов), если есть, хотя бы, https://en.wikipedia.org/wiki/Comparison_of_parser_generators ?
Это где-то там, а мой пост - здесь Ж-)
Обсуждают сегодня