Im пытается понять, как использовать PEG.js для простого поиска/замены в тексте. Разумеется, это не предназначено для синтаксического анализатора, но в любом случае я интересуюсь логикой этих языков для создания поиска/замены.Использование PEG.js для простого поиска/замены
Проблема, с которой я сталкиваюсь, заключается в том, что трудно определить положительное дополнение некоторых определений. Пример: представьте себе, я хочу, чтобы найти и заменить что-то вроде этого синтаксиса:
rule = (whatever_is_not_my_syntax* m:my_syntax)+ {replace m}
word = [a-z0-9_]+
my_syntax = word "." word
whatever_is_not_my_syntax = ???
Это трудно описать, положительно, что такое whatever_is_not_my_syntax
в PEG.js без частичного столкновения (и, как следствие ошибки синтаксического анализа) с my_syntax
, или по крайней мере, я не знаю, как это сделать, потому что единственными отрицательными функциями парсера на PEG.js являются !expression
и [^characters]
.
Вы можете мне помочь? Буду признателен за любую книгу или библиографию, если существует, об этой теме. Заранее спасибо.