src/eMacros/Environment/Environment.php
public function offsetGet($symbol) {
		list($sym, $pck) = self::symbol($symbol);
		
		if (!is_null($pck)) {
			//check package
			if (!array_key_exists($pck, $this->packages))
				throw new \UnexpectedValueException(sprintf("Package '%s' not found.", $pck));
			
			return $this->packages[$pck]->offsetGet($sym);
		}
		
		//is symbol defined on this scope?
		if (array_key_exists($sym, $this->symbols))
			return $this->symbols[$sym];

		foreach ($this->macros as $regex => $callback) {
			if (preg_match($regex, $sym, $matches))
				return $this->symbols[$sym] = $callback->__invoke($matches);
		}
	}
public function offsetGet($symbol) {
		list($sym, $pck) = self::symbol($symbol);
		
		if (!is_null($pck)) {
			//check package
			if (!array_key_exists($pck, $this->packages))
				throw new \UnexpectedValueException(sprintf("Package '%s' not found.", $pck));
			
			return $this->packages[$pck]->offsetGet($sym);
		}
		
		//is symbol defined on this scope?
		if (array_key_exists($sym, $this->symbols))
			return $this->symbols[$sym];

		foreach ($this->macros as $regex => $callback) {
			if (preg_match($regex, $sym, $matches))
				return $this->symbols[$sym] = $callback->__invoke($matches);
		}
	}
Obtains a symbol from environment table
(non-PHPdoc)
@see \eMacros\Scope::offsetGet()