[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/phpexcel/PHPExcel/Calculation/Token/ -> Stack.php (source)

   1  <?php
   2  /**
   3   * PHPExcel
   4   *
   5   * Copyright (c) 2006 - 2014 PHPExcel
   6   *
   7   * This library is free software; you can redistribute it and/or
   8   * modify it under the terms of the GNU Lesser General Public
   9   * License as published by the Free Software Foundation; either
  10   * version 2.1 of the License, or (at your option) any later version.
  11   *
  12   * This library is distributed in the hope that it will be useful,
  13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15   * Lesser General Public License for more details.
  16   *
  17   * You should have received a copy of the GNU Lesser General Public
  18   * License along with this library; if not, write to the Free Software
  19   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  20   *
  21   * @category   PHPExcel
  22   * @package    PHPExcel_Calculation
  23   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  24   * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
  25   * @version    ##VERSION##, ##DATE##
  26   */
  27  
  28  
  29  /**
  30   * PHPExcel_Calculation_Token_Stack
  31   *
  32   * @category    PHPExcel_Calculation_Token_Stack
  33   * @package        PHPExcel_Calculation
  34   * @copyright    Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  35   */
  36  class PHPExcel_Calculation_Token_Stack {
  37  
  38      /**
  39       *  The parser stack for formulae
  40       *
  41       *  @var mixed[]
  42       */
  43      private $_stack = array();
  44  
  45      /**
  46       *  Count of entries in the parser stack
  47       *
  48       *  @var integer
  49       */
  50      private $_count = 0;
  51  
  52  
  53      /**
  54       * Return the number of entries on the stack
  55       *
  56       * @return  integer
  57       */
  58  	public function count() {
  59          return $this->_count;
  60      }    //    function count()
  61  
  62      /**
  63       * Push a new entry onto the stack
  64       *
  65       * @param  mixed  $type
  66       * @param  mixed  $value
  67       * @param  mixed  $reference
  68       */
  69  	public function push($type, $value, $reference = NULL) {
  70          $this->_stack[$this->_count++] = array('type'        => $type,
  71                                                 'value'        => $value,
  72                                                 'reference'    => $reference
  73                                                );
  74          if ($type == 'Function') {
  75              $localeFunction = PHPExcel_Calculation::_localeFunc($value);
  76              if ($localeFunction != $value) {
  77                  $this->_stack[($this->_count - 1)]['localeValue'] = $localeFunction;
  78              }
  79          }
  80      }    //    function push()
  81  
  82      /**
  83       * Pop the last entry from the stack
  84       *
  85       * @return  mixed
  86       */
  87  	public function pop() {
  88          if ($this->_count > 0) {
  89              return $this->_stack[--$this->_count];
  90          }
  91          return NULL;
  92      }    //    function pop()
  93  
  94      /**
  95       * Return an entry from the stack without removing it
  96       *
  97       * @param   integer  $n  number indicating how far back in the stack we want to look
  98       * @return  mixed
  99       */
 100  	public function last($n = 1) {
 101          if ($this->_count - $n < 0) {
 102              return NULL;
 103          }
 104          return $this->_stack[$this->_count - $n];
 105      }    //    function last()
 106  
 107      /**
 108       * Clear the stack
 109       */
 110  	function clear() {
 111          $this->_stack = array();
 112          $this->_count = 0;
 113      }
 114  
 115  }    //    class PHPExcel_Calculation_Token_Stack


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1