Ну так вам надо терминологию подлатать. А именно почитать что такое парсер и лексер. И для чего они нужны. Далее разработать грамматику, и по ней уже генерировать нужные вызовы нужного кода. Т.о. вы получите некий интепретатор грамматики, ну который уже может писать в файл некоторую байтовую последовательность, которую кто-то может интерпретировать (ну типа процессора).
Нет. Заказное письмо с распечаткой кода.
Т.о. код материализуется. Т.е. на дату штампа на письме он существовал и был в вашем распоряжении.
Теперь пусть ответчик доказывает, что он раньше его написал.
Регулярки я и сам составлю. Все примеры которые приведены выше никак не покажут строки которые мне нужны. Ок положим вот так:
Есть файл: cat log
foo
bar baz
xxx yyy
baz bar foo
zzzz bar
Мне нужно выбрать все строки с foo или все строки одновременно с bar и baz (строго одновременно).
Как я поступлю с grep? вот команда которая решает мои задачи:
cat log | grep -e foo -e baz | grep -e foo -e bar
foo
bar baz
baz bar foo
но вы видите, это достаточно сложная команда. foo встречается 2 раза. А если я хочу более "заковыристое" условие, так я должен тогда еще больше пайпов писать + еще больше foo добавлять и т.п.
придет момент, когда я обычным grep так вообще не сделаю, я могу ошибится ит.п.
т.о. я спрашиваю как мне упростить все это дело так, чтобы я просто описал некое правило фильтрации (один раз) со всякими скобочками и приортетами операций, и получил на выходе то что мне нужно.
Т.е. в данном случае было бы идеально если бы мне дали сделать фильтр такой:
foo|(bar&baz)
В том что код может быть не эквивалентным. Я имею ввиду в Эрланге хвостовая рекурсия оптимизируется, и на стек не кладется адрес вызвавшей функции. А вот в императивных языках я не знаю, может она быть оптимизирована ? т.о. при неблагоприятных стечениях обстоятельств код на императивном языке может упасть.
> В конце концов может вам нужен лог в реал тайме тогда это tail -f или мультитайл в несколько потоков.
я про tail -f вас не спрашивал :) я четко обозначил что есть файл, ну вы же понимаете что это может быть пайп, ну кого я учу, а ?
Ок. Есть строка А, строка Б и В
нужно в логах найти все строки которые удовлетворяют правилу:
в строке лога присутствует строка А
или
одновременно присутствуют строки Б и В.
Я могу придумать миллион вариаций на эту тему.
Ну например:
в строке лога присутствует А
или
одновременно присутсвует Б и не присутсвует В.
DTX, чистый значит не производящий никаких "сайд" эффектов во вне, типа: запрос сервера, вывод чего-то, ввод чего-то, чтение\запись файлов и т.п. Чистые функции ВСЕГДА возвращают один и тот же результат на одни и те же входные данные.
> давай все условия, соберем всю регулярку
я условия все выше написал, я хочу получить строки в которых есть:
baz
или
одновременно foo и bar в любой последовательности.
Да я все это знаю, и проблема в том что не дает это столь большой гибкости.
То что вы привели в примере, совершенно не работает как: #1|(#2 & #3).
это совершенно не то, вы просто ошиблись.
> Флаг -e это тоже регулярное выражение, если что.)
да я ж не спорю, если так посудить: grep baz тоже регулярка.
> Это условие нелогично, ибо мы не знаем, что подразумевается под "и". Строка "baz и foo"?
если вам что то не логично, то можно это уточнить.
А именно одновременное присутствие baz и foo в строке. Я кажется привел пример в вопросе,
но вы почему то не удосужились прочитать и понять это.
> Сергей, это все верно для программируемых систем, но не годится для систем автономных, способных самостоятельно научаться и находить какие действия необходимо предпринять для удовлетворения условиям мотивации.
Что-то вы все врёте. Все что я написал справедливо для любых систем, которые способны адаптироваться.
> Мне нужно понять достаточно ли правильного выбора операционных пространств, вознаграждающих функций и целей для начала разработки проекта квази - автономных систем.
Достаточно. Во только вы дальше философствования не продвинитесь, пока не примените математический аппарат.