Size: a a a

2021 February 26

JS

Jerzy Syrowiecki in fprog_spb
Alexander Tchitchigin
Но не в XHTML? И не уверен насчёт HTML5... 🤔
HTML5 — просто версия HTML, который должен успешно парсить любой набор байтов
источник

AT

Alexander Tchitchigi... in fprog_spb
Kir
Восстановление - это про LALR. Насчёт готовых комбинаторов я не уверен.
Да Тратт и к LR недавно прикрутил. 😉
источник

Y

Yuuri in fprog_spb
Так а как с комбинаторами восстанавливаться?
источник

AT

Alexander Tchitchigi... in fprog_spb
Yuuri
Так а как с комбинаторами восстанавливаться?
Руками писать откат и пропуск до известного токена...
источник

K

Kir in fprog_spb
Сделать комбинатор "сумма с восстановлением", который select' ps = go where go select ps <|> (dropToken >> go)
источник

Y

Yuuri in fprog_spb
В парсере пюрескрипта где-то между 0.11 и 0.13 переехали с Parsec на Happy. Не удивлюсь, если из-за этого.
источник

K

Kir in fprog_spb
Yuuri
В парсере пюрескрипта где-то между 0.11 и 0.13 переехали с Parsec на Happy. Не удивлюсь, если из-за этого.
Не, это они потому что комбинаторы, будучи recursive descent, не могут в левую рекурсию - в отличие от recursive ascent (yacc, LR in general). Happy/Alex - это генераторы GLR-парсеров подъёма.
источник

JS

Jerzy Syrowiecki in fprog_spb
кажется, классическая тактика — не пропускать токены, а вставлять недостающие до выхода на уровень выше
источник

K

Kir in fprog_spb
Jerzy Syrowiecki
кажется, классическая тактика — не пропускать токены, а вставлять недостающие до выхода на уровень выше
Если пропускать - то программа когда-нибудь точно закончится. А если неаккуратно добавлять, то не факт
источник

Y

Yuuri in fprog_spb
Jerzy Syrowiecki
кажется, классическая тактика — не пропускать токены, а вставлять недостающие до выхода на уровень выше
А если там не пропущенный, а наоборот лишний?
источник

AT

Alexander Tchitchigi... in fprog_spb
Kir
Не, это они потому что комбинаторы, будучи recursive descent, не могут в левую рекурсию - в отличие от recursive ascent (yacc, LR in general). Happy/Alex - это генераторы GLR-парсеров подъёма.
Даже GLR? С parse forest?
источник

JS

Jerzy Syrowiecki in fprog_spb
Kir
Если пропускать - то программа когда-нибудь точно закончится. А если неаккуратно добавлять, то не факт
количество уровней выше по стэку тоже конечное, и обычно довольно малое
источник

JS

Jerzy Syrowiecki in fprog_spb
Yuuri
А если там не пропущенный, а наоборот лишний?
появятся дурацкие сообщения, как в Паскале и GCC
источник

K

Kir in fprog_spb
Alexander Tchitchigin
Даже GLR? С parse forest?
GLR-то как раз может, естессно
источник

K

Kir in fprog_spb
Я про то, что они переехали на нормальные парсеры
источник

AT

Alexander Tchitchigi... in fprog_spb
Kir
GLR-то как раз может, естессно
Я переспрашивал, что именно GLR генерируют? 😊
источник

K

Kir in fprog_spb
Alexander Tchitchigin
Я переспрашивал, что именно GLR генерируют? 😊
Парсер оно генерирует
источник

K

Kir in fprog_spb
Alex/Happy точнее парсеры генерит, GLR это алгоритм
источник

AT

Alexander Tchitchigi... in fprog_spb
Kir
Парсер оно генерирует
LOL, сломанный телефон получился, извините. 😂
источник

Y

Yuuri in fprog_spb
Kir
Не, это они потому что комбинаторы, будучи recursive descent, не могут в левую рекурсию - в отличие от recursive ascent (yacc, LR in general). Happy/Alex - это генераторы GLR-парсеров подъёма.
Но если они столько лет жили с парсеком, как-то ведь научились обходить эту левую рекурсию, и чего тогда вдруг всё переделывать?
источник