185 похожих чатов

Гайс, если я правильно понимаю, ленивый режим сопоставления реализовывается на

основе lookahead (в основном). Т.е. текущий шаблон(шаблон1) жрет строку, пока текущий символ не удовлетворит следующий шаблон(шаблон2).

Получается, что когда шаблон1 будет сопоставлен, мы можем быть уверены, что шаблон2 тоже сапоставлен и повторно его проверять не нужно, достаточно "сдвинуть строку".


Правильно ли понимаю это и используется ли подобный подход?

23 ответов

9 просмотров

Кажется, в PEG такое есть

Это какой из комбинаторов-то?

И не строку, а инпут, в приличных домах токенайзеры ставят перед парсером

Роман-Соловьев Автор вопроса

Что ты имеешь в виду? Такие штуки я так понимаю это частная реализация. Но хочу понять делают ли вообще так и какие подводные камни

Роман Соловьев
Что ты имеешь в виду? Такие штуки я так понимаю эт...

Тогда давай подробнее - что ты имеешь ввиду под "ленивым режимом сопоставления"?

Роман Соловьев
Вот такую ситуацию

Это ж просто deterministic FSM, ему lookahead не нужен. 🤷‍♀️

Роман-Соловьев Автор вопроса
Alexander Chichigin
Это ж просто deterministic FSM, ему lookahead не н...

Нуу lookahead тоже является FSM в целом? Чекаешь текущий символ и следующий

Роман Соловьев
Нуу lookahead тоже является FSM в целом? Чекаешь т...

Тут не нужно смотреть следующий — только текущий.

Роман-Соловьев Автор вопроса

В данном случае это не важно. Как мы без lookahead узнаем, что это последний ';'

Да, всё классно. 👍

Роман Соловьев
В данном случае это не важно. Как мы без lookahead...

А нам без разницы, последний он или нет. Имеет смысл подробнее изучить, какие FSM строятся по регулярным выражениям и как они работают.

Alexander Chichigin
А нам без разницы, последний он или нет. Имеет смы...

Когда в регулярных выражениях появляются группы, и надо сохранять позиции их начала и конца, построение FSM сильно усложняется

Роман-Соловьев Автор вопроса

Если мы чтобы распарсить выражение return 125;;; по анагалогии с регексом return (.*); убедились, что ; после группы есть можем не парсить эту ; повторно

Роман Соловьев
Вот такую ситуацию

Рекомендую от регулярок отказаться, взять парсер языка, над которым проводятся операции и работать с его AST

Роман-Соловьев Автор вопроса
TOV_MULTIMASSO
Рекомендую от регулярок отказаться, взять парсер я...

регулярки не юзаю, онли парсер комбинаторы

Роман Соловьев
Вот такую ситуацию

Ещё раз - за что ты себя так не любишь, что гоняешь регулярки по исходному коду, который по определению является CFG а не регулярной грамматикой?

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Hello experts, Could someone kindly tell me how to run vacuum inside a plpgsql function? If you have any link please share. Thank you
Amol Palav
10
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
Карта сайта