コード例 #1
0
ファイル: MacroParser.php プロジェクト: mdzzohrabi/azera-fry
 /**
  * @param Token  $token
  * @param Parser $parser
  * @return Node
  */
 public function parse(Token $token, Parser $parser)
 {
     parent::parse($token, $parser);
     $stream = $parser->getStream();
     $name = $stream->expect(TokenTypes::T_NAME, null, 'Missing macro name');
     $args = null;
     if ($stream->test(TokenTypes::T_OPEN_PARAN)) {
         $args = $parser->getExpressionParser()->parseArguments(false, true);
     }
     $body = $this->parseBody($parser);
     $parser->setMacro($name->getValue(), new Node\Macro($name->getValue(), $args, $body, $token->getLine()));
 }
コード例 #2
0
 /**
  * @param Token $token
  * @param Parser $parser
  * @return Node
  */
 public function parse(Token $token, Parser $parser)
 {
     parent::parse($token, $parser);
     return new SandboxNode($this->parseBody($parser), $token->getLine());
 }