Size: a a a

2020 April 11

P

Pavel in rust_offtopic
Emmanuel Goldstein
А как мне в твоём парсере получить AST?
он не делает AST, потому, что AST не нужно для юз-кейса
источник

EG

Emmanuel Goldstein in rust_offtopic
Pavel
он не делает AST, потому, что AST не нужно для юз-кейса
Мой парсер не делает квери к дереву, потому что это не нужно для юз-кейса
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
Мой парсер не делает квери к дереву, потому что это не нужно для юз-кейса
от этого он перестал быть парсером?
источник

EG

Emmanuel Goldstein in rust_offtopic
Pavel
от этого он перестал быть парсером?
Именно поэтому твоё исходное сравнение не имеет смысла.
Сравнивать «парсер», который извлекает одно значение из скобочной последовательности и полноценный парсер ЯП — глупо.
источник

EG

Emmanuel Goldstein in rust_offtopic
Твой ещё и медленный, походу
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
Именно поэтому твоё исходное сравнение не имеет смысла.
Сравнивать «парсер», который извлекает одно значение из скобочной последовательности и полноценный парсер ЯП — глупо.
глупо называть словом "парсер" только один конкретный вид парсеров.
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
Твой ещё и медленный, походу
померяемся?
источник

P

Pavel in rust_offtopic
парсер это любой алгоритм, который может работать с синтаксисом языка
источник

EG

Emmanuel Goldstein in rust_offtopic
Pavel
что-то сложно, вот парсер окололиспа (Oracle TNS) с кверями в дерево меньше, чем в одну страницу кода на голой жабе
> у меня на парсер ЯП ушло 1300*4 строк
> а у меня на извлечение одного значения из последовательности ушло 30 строк, твой парсер слишком большой
источник

EG

Emmanuel Goldstein in rust_offtopic
Какой смысл сравнивать код с разными задачами?
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
Какой смысл сравнивать код с разными задачами?
какой смысл хвастаться жирным кодом, когда чаще всего весь этот жир не относится к решаемой задаче? определение AST и правил синтаксиса это не парсер, вывод ошибок это не парсер, парсер это просто стейт-машина или что-то похожее, что отдаёт всё это, сам по себе парсер обычно очень мелкий.
источник

EG

Emmanuel Goldstein in rust_offtopic
> Парсер (англ. parser; от parse — анализ, разбор), или синтаксический анализатор, — часть программы, преобразующей входные данные (как правило, текст) в структурированный формат.
То есть в AST, например.
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Прям с стрелочками на конкретные символы, подчёркиваниями и прочим счастьем?
Да, там относительно легко
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Да, там относительно легко
Я тем временем нашёл обёртку с нормальным API
источник

P

Pavel in rust_offtopic
Emmanuel Goldstein
> Парсер (англ. parser; от parse — анализ, разбор), или синтаксический анализатор, — часть программы, преобразующей входные данные (как правило, текст) в структурированный формат.
То есть в AST, например.
или в CST, или в список строк. Список строк — тоже структурированный формат.
источник

p

polunin.ai in rust_offtopic
Pavel
что-то сложно, вот парсер окололиспа (Oracle TNS) с кверями в дерево меньше, чем в одну страницу кода на голой жабе
У меня парсер нормального языка (на тот момент были функции, выражения, литералы) с парсингом в АСТ, сохранением позиции токенов, и ошибками
источник

P

Pavel in rust_offtopic
polunin.ai
У меня парсер нормального языка (на тот момент были функции, выражения, литералы) с парсингом в АСТ, сохранением позиции токенов, и ошибками
ну, ты же понимаешь, что когда ты не говоришь какой язык, то вот эти все "у меня вышло в N строк" ничего не говорят?
источник

P

Pavel in rust_offtopic
(а вообще это почти всегда странно писать полноценный парсер руками, куча генераторов парсеров же есть)
источник

p

polunin.ai in rust_offtopic
Pavel
ну, ты же понимаешь, что когда ты не говоришь какой язык, то вот эти все "у меня вышло в N строк" ничего не говорят?
Функции, операции +,-,*, скобки, переменные. В любом языке это +- одно и то же.
источник

p

polunin.ai in rust_offtopic
Си-подобный стнтаксис
источник