1

良い一日。PEGを使い始めたばかりです。私はwp:peg やその他の理論に精通していますが、それでも内部的にどのように機能するかを理解できません。

私の仕事は次のような式を解析することです

if($a=='qwerty' && $b>2 || $c<=5)
     print 'something';
endif;

isステートメントの本体には、印刷演算子のみが含まれ、他には何も含まれていませんが、複雑な条件があります。

それについての私の考え:

/*!* 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

 */

しかし、私はこのタスクがより良い解決策を持っていると信じています:)あなたはそれで私を助けることができますか?ありがとう。

4

0 に答える 0