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

Source for file Rule.php

Documentation is available at Rule.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.  * Each production rule in the grammar is stored in this class
  50.  * 
  51.  * @package    PHP_ParserGenerator
  52.  * @author     Gregory Beaver <cellog@php.net>
  53.  * @copyright  2006 Gregory Beaver
  54.  * @license    http://www.opensource.org/licenses/bsd-license.php New BSD License
  55.  * @version    @package_version@
  56.  * @since      Class available since Release 0.1.0
  57.  */
  58.     /**
  59.      * Left-hand side of the rule
  60.      * @var array an array of {@link PHP_ParserGenerator_Symbol} objects
  61.      */
  62.     public $lhs;
  63.     /**
  64.      * Alias for the LHS (NULL if none)
  65.      *
  66.      * @var array 
  67.      */
  68.     public $lhsalias = array();
  69.     /**
  70.      * Line number for the rule
  71.      * @var int 
  72.      */
  73.     public $ruleline;
  74.     /**
  75.      * Number of right-hand side symbols
  76.      */
  77.     public $nrhs;
  78.     /**
  79.      * The right-hand side symbols
  80.      * @var array an array of {@link PHP_ParserGenerator_Symbol} objects
  81.      */
  82.     public $rhs;
  83.     /**
  84.      * Aliases for each right-hand side symbol, or null if no alis.
  85.      * 
  86.      * In this rule:
  87.      * <pre>
  88.      * foo ::= BAR(A) baz(B).
  89.      * </pre>
  90.      * 
  91.      * The right-hand side aliases are A for BAR, and B for baz.
  92.      * @var array aliases are indexed by the right-hand side symbol index.
  93.      */
  94.     public $rhsalias = array();
  95.     /**
  96.      * Line number at which code begins
  97.      * @var int 
  98.      */
  99.     public $line;
  100.     /**
  101.      * The code executed when this rule is reduced
  102.      * 
  103.      * <pre>
  104.      * foo(R) ::= BAR(A) baz(B). {R = A + B;}
  105.      * </pre>
  106.      * 
  107.      * In the rule above, the code is "R = A + B;"
  108.      * @var string|0
  109.      */
  110.     public $code;
  111.     /**
  112.      * Precedence symbol for this rule
  113.      * @var PHP_ParserGenerator_Symbol 
  114.      */
  115.     public $precsym;
  116.     /**
  117.      * An index number for this rule
  118.      * 
  119.      * Used in both naming of reduce functions and determining which rule code
  120.      * to use for reduce actions
  121.      * @var int 
  122.      */
  123.     public $index;
  124.     /**
  125.      * True if this rule is ever reduced
  126.      * @var boolean 
  127.      */
  128.     public $canReduce;
  129.     /**
  130.      * Next rule with the same left-hand side
  131.      * @var PHP_ParserGenerator_Rule|0
  132.      */
  133.     public $nextlhs;
  134.     /**
  135.      * Next rule in the global list
  136.      * @var PHP_ParserGenerator_Rule|0
  137.      */
  138.     public $next;
  139. }

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