/**
  * Initialize operator code constructor with 1 parameter (unary).
  *
  * @param ezcTemplateAstNode $parameter 
  */
 public function __construct(ezcTemplateAstNode $parameter = null)
 {
     parent::__construct(self::OPERATOR_TYPE_UNARY, false);
     if ($parameter) {
         $this->appendParameter($parameter);
     }
 }
 /**
  * Constructs a new ezcTemplateBinaryOperatorAstNode
  *
  * @param ezcTemplateAstNode $parameter1
  * @param ezcTemplateAstNode $parameter2
  */
 public function __construct($parameter1 = null, $parameter2 = null)
 {
     parent::__construct(self::OPERATOR_TYPE_BINARY);
     if ($parameter1 !== null && $parameter2 !== null) {
         $this->appendParameter($parameter1);
         $this->appendParameter($parameter2);
     } elseif ($parameter1 != null) {
         throw new ezcTemplateInternalException("The binary operator expects zero or two parameters.");
     }
 }
 /**
  * Initialize operator code constructor with 2 parameters (binary).
  *
  * @param ezcTemplateAstNode $array
  * @param array(ezcTemplateAstNode) $fetches
  */
 public function __construct(ezcTemplateAstNode $array = null, array $fetches = null)
 {
     parent::__construct(self::OPERATOR_TYPE_BINARY);
     // This is a special binary operator since it allows more than two parameters.
     // Each extra parameter will be considered an additional array lookup
     $this->maxParameterCount = false;
     if ($array !== null) {
         $this->appendParameter($array);
         if ($fetches !== null) {
             foreach ($fetches as $fetch) {
                 $this->appendParameter($fetch);
             }
         }
     }
 }