Re[17]: Хочется странного
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 29.01.25 02:11
Оценка:
Здравствуйте, Sinclair, Вы писали:

M>>Да. Но в большинстве случаев это не нужно. Например, у меня в перспективе маячит раскраска кода листингов в документации, того, который в маркдауне ограничен тремя бэктиками, а на кывте обрамляется тэгом code.

S>Ну, тогда я не совсем понимаю, чего вы хотите. В начале вы сослались на Гвидо, который объясняет причины, по которым он предпочёл бы переехать на PEG. Но PEG — это не лексер, это безлексерный парсер.

Гвидо там же говорит, что у него есть свой офигенский лексер, который он не хочет выкидывать. Я в такой же ситуации. Вот и всё. Для разминки думаю набросать пару языков на ручном рекурсивном спуске с использованием своего "лексера", а там дальше видно будет.

Packet Diagram выглядит хорошим кандидатом, мне как раз надо как-то по-простому описать кастомную раскладку памяти в прошивке, чтобы её не компилятор генерил, а я своей тулзой (хочу прошить во флешку инфу по железке раз и навсегда, а потом бутлоадер будет проверять, соответствует ли фирмварь хардварной ревизии), и этот кусочек прошивки хочу описать в виде Packet Diagram, а тулзе значения переменных отдавать, и она бы HEX генерила по такому описанию. Должно получится на имеющемся быстро и не слишком сложно


M>>Часто большее и не нужно

S>Я ж не спорю — если ваши планы заканчиваются на лексической раскраске, то ваше решение прекрасно.

Мои планы на этом только начинаются


S>Стандарт де-факто сейчас — это VS Code, а точнее — протокол LSP.


Вы (ничего, что я на Вы?) сами же говорите, что это полное говно, нет?
И что там двухстадийная раскраска, и первая фаза на регэксах? У меня работает гораздо быстрее регэксов


M>>Моё решение предлагает задание операторов оптом, задание различных типов скобок, и наборы фильтров. Всё это можно варьировать при настройке и получать результат лучше, чем в NPP. Уже годно для тупого лексера.

S>Ну так и замечательно. Просто если вы хотите что-то куда-то развивать, то тупой лексер, с моей точки зрения — тупик.

Посмотрю, как пойдёт. Пока так, что есть малой кровью


M>>Например, что a--b, это не полная хрень, а a минус b с унарным минусом. Если нужно такое — это не ко мне. У меня жадный алгоритм токенизации. И он выплюнет a, --, b, для примитивной раскраски этого достаточно, как в прочем, и для дальнейшего разбора.

S>Ну, интерполированные строки он сможет разобрать?

Ну, надо будет плагин-парсер запилить для интерполированных строк, как и для любых нетривиальных литералов


M>>Не очень понятно, что ты хотел сказать.

S>Что поддерживать парсер языка, в котором собственно грамматика размазана по токенизатору, парсеру, и пачке "фильтров", которые меняют поведение токенизатора и парсера — то ещё занятие.

Ну, если бы был хороший инструмент, который позволяет не размазывать, то я бы на него посмотрел. Может и приду к чему-то такому, может сам запилю. Пока ничего не нравится


M>>Мне до этого ещё далеко. Но не вижу особых проблем. Не уверен, что на каждое нажатие клавиши надо делать вставки...


S>Очень хорошо.


Вы, наверное, забыли тут вставить
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.