phpDocumentor PHP_ParserGenerator
[ class tree: PHP_ParserGenerator ] [ index: PHP_ParserGenerator ] [ all elements ]

Source for file PropagationLink.php

Documentation is available at PropagationLink.php

  1. <?php
  2. /**
  3.  * PHP_ParserGenerator, a php 5 parser generator.
  4.  * 
  5.  * This is a direct port of the Lemon parser generator, found at
  6.  * {@link http://www.hwaci.com/sw/lemon/}
  7.  *
  8.  * PHP version 5
  9.  *
  10.  * LICENSE:
  11.  * 
  12.  * Copyright (c) 2006, Gregory Beaver <cellog@php.net>
  13.  * All rights reserved.
  14.  *
  15.  * Redistribution and use in source and binary forms, with or without
  16.  * modification, are permitted provided that the following conditions
  17.  * are met:
  18.  *
  19.  *     * Redistributions of source code must retain the above copyright
  20.  *       notice, this list of conditions and the following disclaimer.
  21.  *     * Redistributions in binary form must reproduce the above copyright
  22.  *       notice, this list of conditions and the following disclaimer in
  23.  *       the documentation and/or other materials provided with the distribution.
  24.  *     * Neither the name of the PHP_ParserGenerator nor the names of its
  25.  *       contributors may be used to endorse or promote products derived
  26.  *       from this software without specific prior written permission.
  27.  *
  28.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  29.  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  30.  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  31.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  32.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  33.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  34.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  35.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  36.  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  37.  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  38.  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  39.  *
  40.  * @category   php
  41.  * @package    PHP_ParserGenerator
  42.  * @author     Gregory Beaver <cellog@php.net>
  43.  * @copyright  2006 Gregory Beaver
  44.  * @license    http://www.opensource.org/licenses/bsd-license.php New BSD License
  45.  * @version    CVS: $Id$
  46.  * @since      File available since Release 0.1.0
  47.  */
  48. /**
  49.  * A followset propagation link indicates that the contents of one
  50.  * configuration followset should be propagated to another whenever
  51.  * the first changes.
  52.  * 
  53.  * @package    PHP_ParserGenerator
  54.  * @author     Gregory Beaver <cellog@php.net>
  55.  * @copyright  2006 Gregory Beaver
  56.  * @license    http://www.opensource.org/licenses/bsd-license.php New BSD License
  57.  * @version    @package_version@
  58.  * @since      Class available since Release 0.1.0
  59.  */
  60.  
  61.     /**
  62.      * The configuration that defines this propagation link
  63.      * @var PHP_ParserGenerator_Config 
  64.      */
  65.     public $cfp;
  66.     /**
  67.      * The next propagation link
  68.      * @var PHP_ParserGenerator_PropagationLink|0
  69.      */
  70.     public $next = 0;
  71.  
  72.     /**
  73.      * Add a propagation link to the current list
  74.      * 
  75.      * This prepends the configuration passed in to the first parameter
  76.      * which is either 0 or a PHP_ParserGenerator_PropagationLink defining
  77.      * an existing list.
  78.      * @param PHP_ParserGenerator_PropagationLink|null
  79.      * @param PHP_ParserGenerator_Config 
  80.      */
  81.     static function Plink_add(&$plppPHP_ParserGenerator_Config $cfp)
  82.     {
  83.         $new new PHP_ParserGenerator_PropagationLink;
  84.         $new->next $plpp;
  85.         $plpp $new;
  86.         $new->cfp $cfp;
  87.     }
  88.  
  89.     /**
  90.      * Transfer every propagation link on the list "from" to the list "to"
  91.      */
  92.     static function Plink_copy(PHP_ParserGenerator_PropagationLink &$to,
  93.                                PHP_ParserGenerator_PropagationLink $from)
  94.     {
  95.         while ($from{
  96.             $nextpl $from->next;
  97.             $from->next $to;
  98.             $to $from;
  99.             $from $nextpl;
  100.         }
  101.     }
  102.  
  103.     /**
  104.      * Delete every propagation link on the list
  105.      * @param PHP_ParserGenerator_PropagationLink|0
  106.      */
  107.     static function Plink_delete($plp)
  108.     {
  109.         while ($plp{
  110.             $nextpl $plp->next;
  111.             $plp->next 0;
  112.             $plp $nextpl;
  113.         }
  114.     }
  115. }

Documentation generated on Sun, 02 Jul 2006 09:11:11 -0400 by phpDocumentor 1.3.0