Реги и вложенные элементы

Potaevsky

Новичок
Реги и вложенные элементы

Привет всем!

Пишу маленький шаблонизатор - столкнулся с проблемкой:

Есть код шаблона:
PHP:
<%iterate foo%>
-something-
    <%iterate bar%>
         ^something^
    <%/iterate%>
<%/iterate%>
Как можно регой выбрать итерации только самого последнего уровня, то есть те, в которых нет итераций вложенных? То есть выбрать:
PHP:
<%iterate bar%>
     ^something^
<%/iterate%>
с кодом который внутри...
 

ustas

Элекомист №1
разбор в массив, стэк.
есть tit вариант и самый правильный, использовать smarty!? и понаделать новые управляющие структуры. это очччень просто проделать через плагины.
 

WP

^_^
Popoff
По моим наблюдениям, те кто не знает регулярок в полной мере, советуют их не использовать, а кто знает, использует и советует другим.
ustas
> использовать smarty!?
Они сьеле твой моск? :)
 

Popoff

popoff.donetsk.ua
WP
:-D

Я предложил не использовать регулярные выражения потому, что в вопросе речь идёт о шаблонизаторе. А также потому, что в программировании часто только в самом начале бывают "маленькие шаблонизаторы", а потом в эти "маленькие шаблонизаторы" постоянно нужно добавлять новые "маленькие возможности" - и этот человек, вместо того, чтобы один раз разобраться с теорией автоматов, будет постоянно бегать на форум, задавая вопросы о том, как в это огромное регулярное выражение добавить вот такую "маленькую возможность".

Я более чем уверен, что эти вложенные итераторы как раз и являются такой "маленькой возможностью", необходимость в которой выскочила уже после того, как основная часть шаблонизатора написана. По-настоящему "маленькому шаблонизатору" не требуются вложенные итераторы.

Дополнительно, раз уж ты начал кидаться камнями, могу поделиться своим личным наблюдением, что тот, кто не может/не хочет разобраться с теорией автоматов, как правило, находит регулярные выражения более простыми (по сравнению с автоматами) и тычет их (регулярные выражения) везде, где попало. Часто - даже там, где не требуется ни первое, ни второе.
 

WP

^_^
Popoff
Я не стал кидаться камнями. То что Вы описали (беготня на форум) зависит не от реализации парсера, а от самого человека, он может разобраться с регулярками и не бегать на форум, не вижу проблемы дописывать функционал в регулярное выражение.
И я не сказал что не нужно использовать конечные автоматы, пусть человек сам выбирает что ему ближе. Но я против кидания камней в сторону регулярок (смотрите например сорцы компилятора Quicky).
 
Сверху