Как распарсить условное выражение в шаблоне ?

pilot911

Новичок
Как распарсить условное выражение в шаблоне ?

Имею на руках шаблон, в котором работают простые {{IF a==1}}....{{END}}

Где можно почитать о том, как распарсить что-то посложнее, например:

{{IF (a==1 && b=2) || c=3}}....{{END}}
 

Вурдалак

Продвинутый новичок
pilot911
Самое простое — с помощью той же обратной польской записи. Но правда потеряется одна «вкусность»: подвыражения будут выполняться даже тогда, когда не следует (false && die(), true || die() etc).

-~{}~ 28.03.10 22:41:

По-моему, это по-нормальному делается через префиксную запись с последующим переводом в постфиксную.

-~{}~ 28.03.10 22:43:

А вообще, если ты шаблоны «компилируешь» в PHP-код, то просто проверь на наличие синтаксических ошибок и отдай этот код на растерзание интерпретатору PHP.
 

pilot911

Новичок
Автор оригинала: Вурдалак
pilot911
Самое простое — с помощью той же обратной польской записи. Но правда потеряется одна «вкусность»: подвыражения будут выполняться даже тогда, когда не следует (false && die(), true || die() etc).

-~{}~ 28.03.10 22:41:

По-моему, это по-нормальному делается через префиксную запись с последующим переводом в постфиксную.

-~{}~ 28.03.10 22:43:

А вообще, если ты шаблоны «компилируешь» в PHP-код, то просто проверь на наличие синтаксических ошибок и отдай этот код на растерзание интерпретатору PHP.
разумно, спасибо
 
Сверху