Beispiel #1
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_STRING)) {
         $parser->insert(new static($parser->getCurrentToken()->getValue()));
         $parser->advance();
         return true;
     }
     return false;
 }
Beispiel #2
0
 public static function parse(ParserInterface $parser)
 {
     $parser->insert(new static());
     $parser->traverseUp();
     if (ExpressionNode::parse($parser)) {
         if ($parser->skip(Token::T_SYMBOL, ',')) {
             self::parse($parser);
         }
     }
     $parser->traverseDown();
     return true;
 }
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'not') || $parser->accept(Token::T_IDENT, 'or') || $parser->accept(Token::T_IDENT, 'and') || $parser->accept(Token::T_IDENT, 'equals')) {
         $parser->insert(new static($parser->getCurrentToken()->getValue()));
         $parser->advance();
         return true;
     }
     return false;
 }
Beispiel #4
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT) && $parser->acceptNext(Token::T_SYMBOL, '(')) {
         $parser->insert(new static($parser->getCurrentToken()->getValue()));
         $parser->advance();
         $parser->skip(Token::T_SYMBOL, '(');
         $parser->traverseUp();
         ArgumentListNode::parse($parser);
         $parser->skip(Token::T_SYMBOL, ')');
         $parser->traverseDown();
         return true;
     }
     return false;
 }
Beispiel #5
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'if')) {
         $parser->insert(new static());
         $parser->advance();
         $parser->traverseUp();
         if (ConditionNode::parse($parser)) {
             $parser->setAttribute();
         }
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->parseOutsideTag();
         if (ElseNode::parse($parser)) {
             $parser->parseOutsideTag();
         }
         if (ElseIfNode::parse($parser)) {
             $parser->parseOutsideTag();
         }
         $parser->skip(Token::T_OPENING_TAG);
         $parser->skip(Token::T_IDENT, '/if');
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->traverseDown();
         $parser->parseOutsideTag();
         return true;
     }
     return false;
 }
Beispiel #6
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'raw') || $parser->accept(Token::T_IDENT, 'r')) {
         $parser->insert(new static());
         $parser->advance();
         $parser->traverseUp();
         if (ExpressionNode::parse($parser)) {
             $parser->setAttribute();
         }
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->traverseDown();
         $parser->parseOutsideTag();
     }
 }
Beispiel #7
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'else')) {
         $parser->insert(new static());
         $parser->advance();
         $parser->expect(Token::T_CLOSING_TAG);
         $parser->advance();
         return true;
     }
     return false;
 }
Beispiel #8
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_SYMBOL, '[')) {
         $parser->insert(new static());
         $parser->traverseUp();
         $parser->advance();
         ArgumentListNode::parse($parser);
         $parser->expect(Token::T_SYMBOL, ']');
         $parser->advance();
         $parser->traverseDown();
         return true;
     }
     return false;
 }
Beispiel #9
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'extends')) {
         $parser->insert(new static());
         $parser->advance();
         $parser->traverseUp();
         ExpressionNode::parse($parser);
         $parser->setAttribute();
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->parseOutsideTag();
         $parser->skip(Token::T_OPENING_TAG);
         $parser->skip(Token::T_IDENT, '/extends');
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->traverseDown();
         $parser->parseOutsideTag();
         return true;
     }
     return false;
 }
Beispiel #10
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'block')) {
         $parser->insert(new static());
         $parser->advance();
         $parser->traverseUp();
         ExpressionNode::parse($parser);
         $parser->setAttribute();
         if ($parser->accept(Token::T_IDENT, 'prepend') || $parser->accept(Token::T_IDENT, 'append')) {
             $parser->insert(new OptionNode($parser->getCurrentToken()->getValue()));
             $parser->setAttribute();
             $parser->advance();
         }
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->parseOutsideTag();
         $parser->skip(Token::T_OPENING_TAG);
         $parser->skip(Token::T_IDENT, '/block');
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->traverseDown();
         $parser->parseOutsideTag();
         return true;
     }
     return false;
 }
Beispiel #11
0
 public static function parse(ParserInterface $parser)
 {
     if ($parser->accept(Token::T_IDENT, 'for')) {
         $parser->insert(new static());
         $parser->advance();
         $parser->traverseUp();
         if ($parser->accept(Token::T_VAR)) {
             // T_VAR as first attribute
             $parser->insert(new VariableNode($parser->getCurrentToken()->getValue()));
             $parser->setAttribute();
             $parser->advance();
             $parser->expect(Token::T_IDENT, 'in');
             $parser->advance();
             ExpressionNode::parse($parser);
             $parser->setAttribute();
         } elseif ($parser->accept(Token::T_NUMBER)) {
             // T_NUMBER as first attribute
             $parser->insert(new NumberNode($parser->getCurrentToken()->getValue()));
             $parser->setAttribute();
             $parser->advance();
             $parser->expect(Token::T_IDENT, 'to');
             $parser->advance();
             if ($parser->expect(Token::T_NUMBER)) {
                 $parser->insert(new NumberNode($parser->getCurrentToken()->getValue()));
                 $parser->setAttribute();
                 $parser->advance();
                 if ($parser->accept(Token::T_IDENT, 'as')) {
                     $parser->advance();
                     $parser->expect(Token::T_VAR);
                     $parser->insert(new VariableNode($parser->getCurrentToken()->getValue()));
                     $parser->setAttribute();
                     $parser->advance();
                 }
             }
         }
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->parseOutsideTag();
         $parser->skip(Token::T_OPENING_TAG);
         $parser->skip(Token::T_IDENT, '/for');
         $parser->skip(Token::T_CLOSING_TAG);
         $parser->traverseDown();
         $parser->parseOutsideTag();
         return true;
     }
     return false;
 }