Size: a a a

Compiler Development

2020 March 26

YS

Yaroslav Schekin in Compiler Development
Kakadu
Как специальный вид парсера. Думаю, что можно накрутить полиморфизм в action коде: в одном случае делать AST, а во втором выдавать отрезки с тегами содержимого
Т.е. это подход: каждому языку — свой парсер (что внутри, LSP не важно)?
Так это и есть просто обёртка / представление результата работы parser.
источник

IB

Ivan Boldyrev in Compiler Development
Yaroslav Schekin
Ну уж нет! ;)
Неплохо бы DSL такой мощности на эту тему найти — это да.
Ну, они ведь все эквивалентны :)))
Ну, Рефал возьмите, кажется, лучше подойдёт. Но, на самом деле, разница не очень принципиальная :)  Если хотите настолько универсальное решение, то надо уметь и Perl парсить, а там можно вот такие фокусы вытворять:
https://metacpan.org/pod/Lingua::Romana::Perligata
источник

K

Kakadu in Compiler Development
Yaroslav Schekin
Т.е. это подход: каждому языку — свой парсер (что внутри, LSP не важно)?
Так это и есть просто обёртка / представление результата работы parser.
Да, типа того. Главно не писать специальный парсер заново, потому что расходиться будут
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Boldyrev
Ну, они ведь все эквивалентны :)))
Ну, Рефал возьмите, кажется, лучше подойдёт. Но, на самом деле, разница не очень принципиальная :)  Если хотите настолько универсальное решение, то надо уметь и Perl парсить, а там можно вот такие фокусы вытворять:
https://metacpan.org/pod/Lingua::Romana::Perligata
Эквивалентность неинтересна, интересны эффективность разработки (и отладки), наглядность представления, приемлемая универсальность (да и производительности полученного highlighter чтобы хоть хватало в обычных случаях) ;)
источник

IB

Ivan Boldyrev in Compiler Development
Yaroslav Schekin
Эквивалентность неинтересна, интересны эффективность разработки (и отладки), наглядность представления, приемлемая универсальность (да и производительности полученного highlighter чтобы хоть хватало в обычных случаях) ;)
Определитесь, что такое обычные случаи.  Я это и пытался из вас вытащить.
источник

YS

Yaroslav Schekin in Compiler Development
Kakadu
Да, типа того. Главно не писать специальный парсер заново, потому что расходиться будут
Но это как раз не то, о чём я спрашивал, к сожалению. Т.е. это "вот Вам API — мучайтесь как хотите". :(
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Boldyrev
Определитесь, что такое обычные случаи.  Я это и пытался из вас вытащить.
Например, поддержка большинства более-менее распространённых языков программирования.
Как это достигается "жуткими костылями" в существующих text editors.
источник

IB

Ivan Boldyrev in Compiler Development
В большинстве распространённых языков нет ни вложенных комментариев, ни зарезервированных слов как идентификаторов.
источник

K

Kakadu in Compiler Development
У меня как-то были влажные мечты сделать для OCaml в LSP поддержку подстветки, а потом научить пакеты с DSLями экспортировать расширения подсветки, чтобы можно было управляемо подсвечивать в IDE всякие DSLи не перекомпилирую backend ideшки
источник

e

e in Compiler Development
Yaroslav Schekin
Например, поддержка большинства более-менее распространённых языков программирования.
Как это достигается "жуткими костылями" в существующих text editors.
Т.е. анализ существующих редакторов ты уже провел — что там с E-Control например?
источник

K

Kakadu in Compiler Development
Наверное это был сарказм?
источник

ИЧ

Илья Чистяков in Compiler Development
тут зашёл в vim, и правда регулярки о.о
источник

ИЧ

Илья Чистяков in Compiler Development
перл кстати тоже на регулярках в виме
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Boldyrev
В большинстве распространённых языков нет ни вложенных комментариев, ни зарезервированных слов как идентификаторов.
Откуда статистика? ;) С моей точки зрения всё совсем иначе.
источник

IB

Ivan Boldyrev in Compiler Development
Yaroslav Schekin
Откуда статистика? ;) С моей точки зрения всё совсем иначе.
Pers. Obs.
источник

YS

Yaroslav Schekin in Compiler Development
e
Т.е. анализ существующих редакторов ты уже провел — что там с E-Control например?
Всех существующих — конечно, нет.
источник

e

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

BD

Berkus Decker in Compiler Development
большинство на регулярках д, остальные по возможности на LSP
источник

IB

Ivan Boldyrev in Compiler Development
Yaroslav Schekin
Откуда статистика? ;) С моей точки зрения всё совсем иначе.
Так приведите ещё примеров, делов-то :)))
источник

K

Kakadu in Compiler Development
Yaroslav Schekin
Но это как раз не то, о чём я спрашивал, к сожалению. Т.е. это "вот Вам API — мучайтесь как хотите". :(
А можно ещё раз чего вы хотите?
источник