includes/wikiengine/Parse.php
changeset 1027 98c052fc3337
parent 1026 f0431eb8161e
child 1028 dde4416dea00
--- a/includes/wikiengine/Parse.php	Sun Jun 21 00:16:21 2009 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-<?php
-// vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4:
-/**
- * Baseline rule class for extension into a "real" parser component.
- *
- * PHP versions 4 and 5
- *
- * @category   Text
- * @package    Text_Wiki
- * @author     Paul M. Jones <pmjones@php.net>
- * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
- * @version    CVS: $Id: Parse.php,v 1.5 2005/07/29 08:57:29 toggg Exp $
- * @link       http://pear.php.net/package/Text_Wiki
- */
-
-/**
- * Baseline rule class for extension into a "real" parser component.
- *
- * Text_Wiki_Rule classes do not stand on their own; they are called by a
- * Text_Wiki object, typcially in the transform() method. Each rule class
- * performs three main activities: parse, process, and render.
- *
- * The parse() method takes a regex and applies it to the whole block of
- * source text at one time. Each match is sent as $matches to the
- * process() method.
- *
- * The process() method acts on the matched text from the source, and
- * then processes the source text is some way.  This may mean the
- * creation of a delimited token using addToken().  In every case, the
- * process() method returns the text that should replace the matched text
- * from parse().
- *
- * @category   Text
- * @package    Text_Wiki
- * @author     Paul M. Jones <pmjones@php.net>
- * @license    http://www.gnu.org/copyleft/lesser.html  LGPL License 2.1
- * @version    Release: @package_version@
- * @link       http://pear.php.net/package/Text_Wiki
- */
-class Text_Wiki_Parse {
-
-
-    /**
-    *
-    * Configuration options for this parser rule.
-    *
-    * @access public
-    *
-    * @var string
-    *
-    */
-
-    var $conf = array();
-
-
-    /**
-    *
-    * Regular expression to find matching text for this rule.
-    *
-    * @access public
-    *
-    * @var string
-    *
-    * @see parse()
-    *
-    */
-
-    var $regex = null;
-
-
-    /**
-    *
-    * The name of this rule for new token array elements.
-    *
-    * @access public
-    *
-    * @var string
-    *
-    */
-
-    var $rule = null;
-
-
-    /**
-    *
-    * A reference to the calling Text_Wiki object.
-    *
-    * This is needed so that each rule has access to the same source
-    * text, token set, URLs, interwiki maps, page names, etc.
-    *
-    * @access public
-    *
-    * @var object
-    */
-
-    var $wiki = null;
-
-
-    /**
-    *
-    * Constructor for this parser rule.
-    *
-    * @access public
-    *
-    * @param object &$obj The calling "parent" Text_Wiki object.
-    *
-    */
-
-    function Text_Wiki_Parse(&$obj)
-    {
-        // set the reference to the calling Text_Wiki object;
-        // this allows us access to the shared source text, token
-        // array, etc.
-        $this->wiki =& $obj;
-
-        // set the name of this rule; generally used when adding
-        // to the tokens array. strip off the Text_Wiki_Parse_ portion.
-        // text_wiki_parse_
-        // 0123456789012345
-        $tmp = substr(get_class($this), 16);
-        $this->rule = ucwords(strtolower($tmp));
-
-        // override config options for the rule if specified
-        if (isset($this->wiki->parseConf[$this->rule]) &&
-            is_array($this->wiki->parseConf[$this->rule])) {
-
-            $this->conf = array_merge(
-                $this->conf,
-                $this->wiki->parseConf[$this->rule]
-            );
-
-        }
-    }
-
-
-    /**
-    *
-    * Abstrct method to parse source text for matches.
-    *
-    * Applies the rule's regular expression to the source text, passes
-    * every match to the process() method, and replaces the matched text
-    * with the results of the processing.
-    *
-    * @access public
-    *
-    * @see Text_Wiki_Parse::process()
-    *
-    */
-
-    function parse()
-    {
-        $this->wiki->source = preg_replace_callback(
-            $this->regex,
-            array(&$this, 'process'),
-            $this->wiki->source
-        );
-    }
-
-
-    /**
-    *
-    * Abstract method to generate replacements for matched text.
-    *
-    * @access public
-    *
-    * @param array $matches An array of matches from the parse() method
-    * as generated by preg_replace_callback.  $matches[0] is the full
-    * matched string, $matches[1] is the first matched pattern,
-    * $matches[2] is the second matched pattern, and so on.
-    *
-    * @return string The processed text replacement; defaults to the
-    * full matched string (i.e., no changes to the text).
-    *
-    * @see Text_Wiki_Parse::parse()
-    *
-    */
-
-    function process(&$matches)
-    {
-        return $matches[0];
-    }
-
-
-    /**
-    *
-    * Simple method to safely get configuration key values.
-    *
-    * @access public
-    *
-    * @param string $key The configuration key.
-    *
-    * @param mixed $default If the key does not exist, return this value
-    * instead.
-    *
-    * @return mixed The configuration key value (if it exists) or the
-    * default value (if not).
-    *
-    */
-
-    function getConf($key, $default = null)
-    {
-        if (isset($this->conf[$key])) {
-            return $this->conf[$key];
-        } else {
-            return $default;
-        }
-    }
-
-
-    /**
-    *
-    * Extract 'attribute="value"' portions of wiki markup.
-    *
-    * This kind of markup is typically used only in macros, but is useful
-    * anywhere.
-    *
-    * The syntax is pretty strict; there can be no spaces between the
-    * option name, the equals, and the first double-quote; the value
-    * must be surrounded by double-quotes.  You can escape characters in
-    * the value with a backslash, and the backslash will be stripped for
-    * you.
-    *
-    * @access public
-    *
-    * @param string $text The "attributes" portion of markup.
-    *
-    * @return array An associative array of key-value pairs where the
-    * key is the option name and the value is the option value.
-    *
-    */
-
-    function getAttrs($text)
-    {
-        // find the =" sections;
-        $tmp = explode('="', trim($text));
-
-        // basic setup
-        $k = count($tmp) - 1;
-        $attrs = array();
-        $key = null;
-
-        // loop through the sections
-        foreach ($tmp as $i => $val) {
-
-            // first element is always the first key
-            if ($i == 0) {
-                $key = trim($val);
-                continue;
-            }
-
-            // find the last double-quote in the value.
-            // the part to the left is the value for the last key,
-            // the part to the right is the next key name
-            $pos = strrpos($val, '"');
-            $attrs[$key] = stripslashes(substr($val, 0, $pos));
-            $key = trim(substr($val, $pos+1));
-
-        }
-
-        return $attrs;
-
-    }
-}
-?>