| 
<?php
 namespace eMacros\Runtime\Value;
 
 use eMacros\Applicable;
 use eMacros\Scope;
 use eMacros\GenericList;
 use eMacros\Symbol;
 
 class ValueUnset implements Applicable {
 /**
 * Removes a symbol from scope
 * Usage: (unset _var)
 * Returns: null
 * (non-PHPdoc)
 * @see \eMacros\Applicable::apply()
 */
 public function apply(Scope $scope, GenericList $arguments) {
 if (count($arguments) == 0) {
 throw new \BadFunctionCallException("ValueUnset: No parameters found.");
 }
 
 if (!($arguments[0] instanceof Symbol)) {
 throw new \InvalidArgumentException(sprintf("ValueUnset: Expected symbol as first argument, %s found instead.", substr(strtolower(strstr(get_class($arguments[0]), '\\')), 1)));
 }
 
 unset($scope->symbols[$arguments[0]->symbol]);
 }
 }
 ?>
 |