function __construct(parent $parent, $file, &$new_consts = array()) { if ($file) { $this->file = self::export($file); $this->dir = self::export(dirname($file)); } else { unset($this->callbacks['tagFileC'], $this->callbacks['tagLineC']); } $file = self::$staticConsts; self::loadConsts($new_consts); $this->constants = self::$staticConsts; self::$staticConsts = $file; $this->newConsts =& $new_consts; parent::__construct($parent); }
static function __init() { foreach (get_declared_classes() as $v) { $v = strtolower($v); if (false !== strpos($v, 'patchwork')) { continue; } if ('p' === $v) { break; } self::$declaredClass[] = $v; } foreach (self::$parsers as $k => $v) { is_bool($v) || ($v = self::$parsers[$k] = 0 > $v ? PHP_VERSION_ID < -$v : PHP_VERSION_ID >= $v); $v && class_exists('Patchwork_PHP_Parser_' . $k); } if (file_exists($v = PATCHWORK_PROJECT_PATH . ".patchwork.overrides.ser")) { $v = unserialize(file_get_contents($v)); Patchwork_PHP_Parser_FunctionOverriding::loadOverrides($v[0]); Patchwork_PHP_Parser_ConstantInliner::loadConsts($v[1]); } }
function getOverrides() { $o = $this->newOverrides; $this->newOverrides = array(array(), array()); return array(Patchwork_PHP_Parser_FunctionOverriding::loadOverrides($o[0]), Patchwork_PHP_Parser_ConstantInliner::loadConsts($o[1])); }