PEG-php解析if语句

PEG-php解析if语句,php,parsing,peg,Php,Parsing,Peg,你好。 刚开始使用PEG。 我熟悉 和其他一些理论,但仍然无法理解它的内部工作原理 我的任务是解析如下表达式 if($a=='qwerty' && $b>2 || $c<=5) print 'something'; endif; 但我相信这个任务有更好的解决方案:) 你能帮我吗? 谢谢 /*!* Calculator Int: /[0-9]+/ Var: /\$[a-z]+/ tThen: /then{1}/ tIf: /if{1}/ tElse: /e

你好。 刚开始使用PEG。 我熟悉 和其他一些理论,但仍然无法理解它的内部工作原理

我的任务是解析如下表达式

if($a=='qwerty' && $b>2 || $c<=5)
     print 'something';
endif;
但我相信这个任务有更好的解决方案:) 你能帮我吗? 谢谢

/*!* Calculator

Int: /[0-9]+/
Var: /\$[a-z]+/
tThen: /then{1}/
tIf: /if{1}/
tElse: /else{1}/
tEndif: /endif{1}/

block: /.+/

condEq: Var '==' ( Int | Var ) * 

condStatement: '(' condEq ')'
  function condEq( &$result, $sub ) {
    if( eval($sub['text'].';') ) {
        $result['text'] = 'true';
    }
    else {
        $result['text'] = 'false';
    }
  }

 ifStatement: tIf condStatement

 Expr: ifStatement

 */