Информация об изменениях

Сообщение Re[2]: контекстно-свободная самоописывающаяся грамматика от 09.03.2017 21:53

Изменено 09.03.2017 23:27 Arsen.Shnurkov

Re[2]: контекстно-свободная самоописывающаяся грамматика
К> нарушение приоритета.

исправил (в исходном сообщении).

К>Нет красивого способа задавать "не менее N повторений"


кажется, поправил.

К>
К>(*4*) исключение = выражение , гм , "-" , гм , выражение ;
К>

К>Плохая семантика, negative lookahead в общем случае.
К> На ровном месте получаем из контекстно-свободной грамматики контекстно-зависимую.

Это специально. Мне нужна возможность записывать штуки типа

некий фрагмент = произвольный текст - многосимвольный маркер окончания фрагмента ;


UPD: примерно как тут — http://stackoverflow.com/questions/406230/regular-expression-to-match-a-line-that-doesnt-contain-a-word

К>Хотя подразумевалась чисто регулярная фишка — классы символов.


в этой грамматике действительно окончание комментария вида "*)" может быть записано классами символов, да.
А вообще, чем длинее маркер, тем тяжелее писать формулу.

К>Пример:

К>
К>привет      = "п" , "р" , "и" , "в" , "е" , "т" ;
К>мир         = "м" , "и" , "р" ;
К>любое слово =  буква { буква } ;
К>


запятая пропущена перед фигурной скобкой.

К>
К>любые слова = любое слово , { обм , любое слово } ;

К>привет но не мир = ( привет , обм , любые слова ) - ( любые слова , обм , мир ) ;
К>


И ? АААААаааа. Делать-то что, что делать?
Re[2]: контекстно-свободная самоописывающаяся грамматика
К> нарушение приоритета.

исправил (в исходном сообщении).

К>Нет красивого способа задавать "не менее N повторений"


кажется, поправил.

К>
К>(*4*) исключение = выражение , гм , "-" , гм , выражение ;
К>

К>Плохая семантика, negative lookahead в общем случае.
К> На ровном месте получаем из контекстно-свободной грамматики контекстно-зависимую.

Это специально. Мне нужна возможность записывать штуки типа

некий фрагмент = произвольный текст - многосимвольный маркер окончания фрагмента ;


К>Хотя подразумевалась чисто регулярная фишка — классы символов.


в этой грамматике действительно окончание комментария вида "*)" может быть записано классами символов, да.
А вообще, чем длинее маркер, тем тяжелее писать формулу.

К>Пример:

К>
К>привет      = "п" , "р" , "и" , "в" , "е" , "т" ;
К>мир         = "м" , "и" , "р" ;
К>любое слово =  буква { буква } ;
К>


запятая пропущена перед фигурной скобкой.

К>
К>любые слова = любое слово , { обм , любое слово } ;

К>привет но не мир = ( привет , обм , любые слова ) - ( любые слова , обм , мир ) ;
К>


И ? АААААаааа. Делать-то что, что делать?

Ещё есть засада в том, что символы-с-ударением — это не символы, а двусимвольные строки из основного символа и модификатора.

я хочу примерно как тут — http://stackoverflow.com/questions/406230/regular-expression-to-match-a-line-that-doesnt-contain-a-word