diff options
Diffstat (limited to 'buildscripts/phing/classes/phing/util/regexp')
3 files changed, 0 insertions, 443 deletions
diff --git a/buildscripts/phing/classes/phing/util/regexp/PregEngine.php b/buildscripts/phing/classes/phing/util/regexp/PregEngine.php deleted file mode 100644 index 76cf56b3..00000000 --- a/buildscripts/phing/classes/phing/util/regexp/PregEngine.php +++ /dev/null @@ -1,167 +0,0 @@ -<?php -/* - * $Id: 94607411e16d4c9091369ff4a65ea8f44bde8781 $ - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software consists of voluntary contributions made by many individuals - * and is licensed under the LGPL. For more information please see - * <http://phing.info>. - */ - -require_once 'phing/util/regexp/RegexpEngine.php'; - -/** - * PREG Regexp Engine. - * Implements a regexp engine using PHP's preg_match(), preg_match_all(), and preg_replace() functions. - * - * @author hans lellelid, hans@velum.net - * @package phing.util.regexp - */ -class PregEngine implements RegexpEngine { - - /** - * Set to null by default to distinguish between false and not set - * @var boolean - */ - private $ignoreCase = null; - - /** - * Set to null by default to distinguish between false and not set - * @var boolean - */ - private $multiline = null; - - /** - * Pattern modifiers - * @link http://php.net/manual/en/reference.pcre.pattern.modifiers.php - * @var string - */ - private $modifiers = null; - - /** - * Sets pattern modifiers for regex engine - * - * @param string $mods Modifiers to be applied to a given regex - * @return void - */ - public function setModifiers($mods) { - $this->modifiers = (string)$mods; - } - - /** - * Gets pattern modifiers. - * @return string - */ - public function getModifiers() { - $mods = $this->modifiers; - if($this->getIgnoreCase()) { - $mods .= 'i'; - } elseif($this->getIgnoreCase() === false) { - $mods = str_replace('i', '', $mods); - } - if($this->getMultiline()) { - $mods .= 's'; - } elseif($this->getMultiline() === false) { - $mods = str_replace('s', '', $mods); - } - // filter out duplicates - $mods = preg_split('//', $mods, -1, PREG_SPLIT_NO_EMPTY); - $mods = implode('', array_unique($mods)); - return $mods; - } - - /** - * Sets whether or not regex operation is case sensitive. - * @param boolean $bit - * @return void - */ - function setIgnoreCase($bit) { - $this->ignoreCase = (boolean) $bit; - } - - /** - * Gets whether or not regex operation is case sensitive. - * @return boolean - */ - function getIgnoreCase() { - return $this->ignoreCase; - } - - /** - * Sets whether regexp should be applied in multiline mode. - * @param boolean $bit - */ - function setMultiline($bit) { - $this->multiline = $bit; - } - - /** - * Gets whether regexp is to be applied in multiline mode. - * @return boolean - */ - function getMultiline() { - return $this->multiline; - } - - /** - * The pattern needs to be converted into PREG style -- which includes adding expression delims & any flags, etc. - * @param string $pattern - * @return string prepared pattern. - */ - private function preparePattern($pattern) - { - // Use backquotes since hardly ever found in a regexp pattern, avoids using preg_quote - return '`'.$pattern.'`' . $this->getModifiers(); - } - - /** - * Matches pattern against source string and sets the matches array. - * @param string $pattern The regex pattern to match. - * @param string $source The source string. - * @param array $matches The array in which to store matches. - * @return boolean Success of matching operation. - */ - function match($pattern, $source, &$matches) { - return preg_match($this->preparePattern($pattern), $source, $matches); - } - - /** - * Matches all patterns in source string and sets the matches array. - * @param string $pattern The regex pattern to match. - * @param string $source The source string. - * @param array $matches The array in which to store matches. - * @return boolean Success of matching operation. - */ - function matchAll($pattern, $source, &$matches) { - return preg_match_all($this->preparePattern($pattern), $source, $matches); - } - - /** - * Replaces $pattern with $replace in $source string. - * References to \1 group matches will be replaced with more preg-friendly - * $1. - * @param string $pattern The regex pattern to match. - * @param string $replace The string with which to replace matches. - * @param string $source The source string. - * @return string The replaced source string. - */ - function replace($pattern, $replace, $source) { - // convert \1 -> $1, because we want to use the more generic \1 in the XML - // but PREG prefers $1 syntax. - $replace = preg_replace('/\\\(\d+)/', '\$$1', $replace); - return preg_replace($this->preparePattern($pattern), $replace, $source); - } - -} - diff --git a/buildscripts/phing/classes/phing/util/regexp/Regexp.php b/buildscripts/phing/classes/phing/util/regexp/Regexp.php deleted file mode 100755 index 7188997e..00000000 --- a/buildscripts/phing/classes/phing/util/regexp/Regexp.php +++ /dev/null @@ -1,203 +0,0 @@ -<?php -/* - * $Id: b669eb9f2dd8533cba67b2058b7cbc2f558bdeae $ - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software consists of voluntary contributions made by many individuals - * and is licensed under the LGPL. For more information please see - * <http://phing.info>. - */ - -/** - * A factory class for regex functions. - * @author Hans Lellelid <hans@xmpl.org> - * @package phing.util.regexp - * @version $Id$ - */ -class Regexp { - - /** - * Matching groups found. - * @var array - */ - private $groups = array(); - - /** - * Pattern to match. - * @var string - */ - private $pattern; - - /** - * Replacement pattern. - * @var string - */ - private $replace; - - /** - * The regex engine -- e.g. 'preg' or 'ereg'; - * @var RegexpEngine - */ - private $engine; - - /** - * Constructor sets the regex engine to use (preg by default). - * @param string $_engineType The regex engine to use. - */ - function __construct($engineType='preg') { - if ($engineType == 'preg') { - include_once 'phing/util/regexp/PregEngine.php'; - $this->engine = new PregEngine(); - } elseif ($engineType == 'ereg') { - include_once 'phing/util/regexp/EregEngine.php'; - $this->engine = new EregEngine(); - } else { - throw new BuildException("Invalid engine type for Regexp: " . $engineType); - } - } - - /** - * Sets pattern to use for matching. - * @param string $pat The pattern to match on. - * @return void - */ - public function setPattern($pat) { - $this->pattern = (string) $pat; - } - - - /** - * Gets pattern to use for matching. - * @return string The pattern to match on. - */ - public function getPattern() { - return $this->pattern; - } - - /** - * Sets replacement string. - * @param string $rep The pattern to replace matches with. - * @return void - */ - public function setReplace($rep) { - $this->replace = (string) $rep; - } - - /** - * Gets replacement string. - * @return string The pattern to replace matches with. - */ - public function getReplace() { - return $this->replace; - } - - /** - * Performs match of specified pattern against $subject. - * @param string $subject The subject, on which to perform matches. - * @return boolean Whether or not pattern matches subject string passed. - */ - public function matches($subject) { - if($this->pattern === null) { - throw new Exception("No pattern specified for regexp match()."); - } - return $this->engine->match($this->pattern, $subject, $this->groups); - } - - /** - * Performs replacement of specified pattern and replacement strings. - * @param string $subject Text on which to perform replacement. - * @return string subject after replacement has been performed. - */ - public function replace($subject) { - if ($this->pattern === null || $this->replace === null) { - throw new Exception("Missing pattern or replacement string regexp replace()."); - } - return $this->engine->replace($this->pattern, $this->replace, $subject); - } - - /** - * Get array of matched groups. - * @return array Matched groups - */ - function getGroups() { - return $this->groups; - } - - /** - * Get specific matched group. - * @param integer $idx - * @return string specified group or NULL if group is not set. - */ - function getGroup($idx) { - if (!isset($this->groups[$idx])) { - return null; - } - return $this->groups[$idx]; - } - - /** - * Sets pattern modifiers for regex engine - * - * @param string $mods Modifiers to be applied to a given regex - * @return void - */ - public function setModifiers($mods) { - $this->engine->setModifiers($mods); - } - - /** - * Gets pattern modifiers. - * Subsequent call to engines getModifiers() filters out duplicates - * i.e. if i is provided in $mods, and setIgnoreCase(true), "i" - * modifier would be included only once - * @return string - */ - public function getModifiers() { - return $this->engine->getModifiers(); - } - - /** - * Sets whether the regexp matching is case insensitive. - * (default is false -- i.e. case sensisitive) - * @param boolean $bit - */ - function setIgnoreCase($bit) { - $this->engine->setIgnoreCase($bit); - } - - /** - * Gets whether the regexp matching is case insensitive. - * @return boolean - */ - function getIgnoreCase() { - return $this->engine->getIgnoreCase(); - } - - /** - * Sets whether regexp should be applied in multiline mode. - * @param boolean $bit - */ - function setMultiline($bit) { - $this->engine->setMultiline($bit); - } - - /** - * Gets whether regexp is to be applied in multiline mode. - * @return boolean - */ - function getMultiline() { - return $this->engine->getMultiline(); - } -} - diff --git a/buildscripts/phing/classes/phing/util/regexp/RegexpEngine.php b/buildscripts/phing/classes/phing/util/regexp/RegexpEngine.php deleted file mode 100755 index 3eb8c408..00000000 --- a/buildscripts/phing/classes/phing/util/regexp/RegexpEngine.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php -/* - * $Id: 5e2886f3fae60fff1fd142e79717a3a7a4555772 $ - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * This software consists of voluntary contributions made by many individuals - * and is licensed under the LGPL. For more information please see - * <http://phing.info>. - */ - -/** - * Contains some shared attributes and methods -- and some abstract methods with - * engine-specific implementations that sub-classes must override. - * - * @author Hans Lellelid <hans@velum.net> - * @package phing.util.regexp - * @version $Id$ - */ -interface RegexpEngine { - - /** - * Sets whether or not regex operation should ingore case. - * @param boolean $bit - * @return void - */ - public function setIgnoreCase($bit); - - /** - * Returns status of ignore case flag. - * @return boolean - */ - public function getIgnoreCase(); - - /** - * Matches pattern against source string and sets the matches array. - * @param string $pattern The regex pattern to match. - * @param string $source The source string. - * @param array $matches The array in which to store matches. - * @return boolean Success of matching operation. - */ - function match($pattern, $source, &$matches); - - /** - * Matches all patterns in source string and sets the matches array. - * @param string $pattern The regex pattern to match. - * @param string $source The source string. - * @param array $matches The array in which to store matches. - * @return boolean Success of matching operation. - */ - function matchAll($pattern, $source, &$matches); - - /** - * Replaces $pattern with $replace in $source string. - * @param string $pattern The regex pattern to match. - * @param string $replace The string with which to replace matches. - * @param string $source The source string. - * @return string The replaced source string. - */ - function replace($pattern, $replace, $source); - -} - |