/**
  * @param string $name
  */
 public function __construct($name)
 {
     parent::__construct($name, function () {
         $this->validateCompilerFunctionArguments($this, func_get_args());
         return call_user_func_array([$this, 'getCompilerFunction'], func_get_args());
     }, function () {
         $this->validateEvaluatorFunctionArguments($this, func_get_args());
         return call_user_func_array([$this, 'getEvaluatorFunction'], func_get_args());
     });
 }
 public function addFunction(ExpressionFunction $function)
 {
     $this->register($function->getName(), $function->getCompiler(), $function->getEvaluator());
 }