| 0 | 1 <html> | 
|  | 2 <head> | 
|  | 3 <title>MayaChemTools:Code:Parsers::SimpleCalcParser.pm</title> | 
|  | 4 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | 
|  | 5 <link rel="stylesheet" type="text/css" href="../../../css/MayaChemToolsCode.css"> | 
|  | 6 </head> | 
|  | 7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10"> | 
|  | 8 <br/> | 
|  | 9 <center> | 
|  | 10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a> | 
|  | 11 </center> | 
|  | 12 <br/> | 
|  | 13 <pre> | 
|  | 14 <a name="package-Parsers::SimpleCalcParser-"></a>   1 <span class="k">package </span><span class="i">Parsers::SimpleCalcParser</span><span class="sc">;</span> | 
|  | 15    2 <span class="c">#</span> | 
|  | 16    3 <span class="c"># $RCSfile: SimpleCalcParser.yy,v $</span> | 
|  | 17    4 <span class="c"># $Date: 2015/02/28 20:50:55 $</span> | 
|  | 18    5 <span class="c"># $Revision: 1.10 $</span> | 
|  | 19    6 <span class="c">#</span> | 
|  | 20    7 <span class="c"># Author: Manish Sud <msud@san.rr.com></span> | 
|  | 21    8 <span class="c">#</span> | 
|  | 22    9 <span class="c"># Copyright (C) 2015 Manish Sud. All rights reserved.</span> | 
|  | 23   10 <span class="c">#</span> | 
|  | 24   11 <span class="c"># This file is part of MayaChemTools.</span> | 
|  | 25   12 <span class="c">#</span> | 
|  | 26   13 <span class="c"># MayaChemTools is free software; you can redistribute it and/or modify it under</span> | 
|  | 27   14 <span class="c"># the terms of the GNU Lesser General Public License as published by the Free</span> | 
|  | 28   15 <span class="c"># Software Foundation; either version 3 of the License, or (at your option) any</span> | 
|  | 29   16 <span class="c"># later version.</span> | 
|  | 30   17 <span class="c">#</span> | 
|  | 31   18 <span class="c"># MayaChemTools is distributed in the hope that it will be useful, but without</span> | 
|  | 32   19 <span class="c"># any warranty; without even the implied warranty of merchantability of fitness</span> | 
|  | 33   20 <span class="c"># for a particular purpose.  See the GNU Lesser General Public License for more</span> | 
|  | 34   21 <span class="c"># details.</span> | 
|  | 35   22 <span class="c">#</span> | 
|  | 36   23 <span class="c"># You should have received a copy of the GNU Lesser General Public License</span> | 
|  | 37   24 <span class="c"># along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or</span> | 
|  | 38   25 <span class="c"># write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,</span> | 
|  | 39   26 <span class="c"># Boston, MA, 02111-1307, USA.</span> | 
|  | 40   27 <span class="c">#</span> | 
|  | 41   28 <span class="c">#</span> | 
|  | 42   29 <span class="c"># A WORD TO THE WISE:</span> | 
|  | 43   30 <span class="c">#</span> | 
|  | 44   31 <span class="c"># The parser package and token table files, SimpleCalcParser.pm and</span> | 
|  | 45   32 <span class="c">#  SimpleCalcParser.tab.ph, are automatically generated from parser grammar</span> | 
|  | 46   33 <span class="c"># definition file, SimpleCalcParser.yy, using byacc available through perl-byacc1.8</span> | 
|  | 47   34 <span class="c"># modified with perl5-byacc-patches-0.5 for generation of object oriented parser:</span> | 
|  | 48   35 <span class="c">#</span> | 
|  | 49   36 <span class="c">#    byacc -l -P -d -b SimpleCalcParser SimpleCalcParser.yy</span> | 
|  | 50   37 <span class="c">#    mv SimpleCalcParser.tab.pl SimpleCalcParser.pm</span> | 
|  | 51   38 <span class="c">#</span> | 
|  | 52   39 | 
|  | 53   40 <span class="k">use</span> <span class="w">Carp</span><span class="sc">;</span> | 
|  | 54   41 | 
|  | 55   42 <span class="c"># Setup a hash map for mapping of words/letters to values...</span> | 
|  | 56   43 <span class="i">%LetterToValueMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span> | 
|  | 57   44 | 
|  | 58   45 <span class="i">$NUMBER</span>=<span class="n">257</span><span class="sc">;</span> | 
|  | 59   46 <span class="i">$LETTER</span>=<span class="n">258</span><span class="sc">;</span> | 
|  | 60   47 <span class="i">$YYERRCODE</span>=<span class="n">256</span><span class="sc">;</span> | 
|  | 61   48 <span class="i">@yylhs</span> = <span class="s">(</span>                                               <span class="n">-1</span><span class="cm">,</span> | 
|  | 62   49     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">1</span><span class="cm">,</span>    <span class="n">1</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span> | 
|  | 63   50     <span class="n">2</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span> | 
|  | 64   51 <span class="s">)</span><span class="sc">;</span> | 
|  | 65   52 <span class="i">@yylen</span> = <span class="s">(</span>                                                <span class="n">2</span><span class="cm">,</span> | 
|  | 66   53     <span class="n">0</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">1</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span> | 
|  | 67   54     <span class="n">3</span><span class="cm">,</span>    <span class="n">1</span><span class="cm">,</span>    <span class="n">1</span><span class="cm">,</span> | 
|  | 68   55 <span class="s">)</span><span class="sc">;</span> | 
|  | 69   56 <span class="i">@yydefred</span> = <span class="s">(</span>                                             <span class="n">1</span><span class="cm">,</span> | 
|  | 70   57     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">12</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span> | 
|  | 71   58     <span class="n">0</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">6</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 72   59     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">11</span><span class="cm">,</span> | 
|  | 73   60 <span class="s">)</span><span class="sc">;</span> | 
|  | 74   61 <span class="i">@yydgoto</span> = <span class="s">(</span>                                              <span class="n">1</span><span class="cm">,</span> | 
|  | 75   62     <span class="n">6</span><span class="cm">,</span>    <span class="n">7</span><span class="cm">,</span> | 
|  | 76   63 <span class="s">)</span><span class="sc">;</span> | 
|  | 77   64 <span class="i">@yysindex</span> = <span class="s">(</span>                                             <span class="n">0</span><span class="cm">,</span> | 
|  | 78   65   <span class="n">-40</span><span class="cm">,</span>   <span class="n">-7</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>  <span class="n">-57</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>   <span class="n">-5</span><span class="cm">,</span>  <span class="n">-18</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 79   66   <span class="n">-31</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>  <span class="n">-38</span><span class="cm">,</span>  <span class="n">-18</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>  <span class="n">-16</span><span class="cm">,</span> | 
|  | 80   67   <span class="n">-16</span><span class="cm">,</span>  <span class="n">-30</span><span class="cm">,</span>  <span class="n">-30</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 81   68 <span class="s">)</span><span class="sc">;</span> | 
|  | 82   69 <span class="i">@yyrindex</span> = <span class="s">(</span>                                             <span class="n">0</span><span class="cm">,</span> | 
|  | 83   70     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">-9</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 84   71     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">8</span><span class="cm">,</span> | 
|  | 85   72    <span class="n">13</span><span class="cm">,</span>   <span class="n">-2</span><span class="cm">,</span>    <span class="n">5</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 86   73 <span class="s">)</span><span class="sc">;</span> | 
|  | 87   74 <span class="i">@yygindex</span> = <span class="s">(</span>                                             <span class="n">0</span><span class="cm">,</span> | 
|  | 88   75     <span class="n">0</span><span class="cm">,</span>   <span class="n">50</span><span class="cm">,</span> | 
|  | 89   76 <span class="s">)</span><span class="sc">;</span> | 
|  | 90   77 <span class="i">$YYTABLESIZE</span>=<span class="n">220</span><span class="sc">;</span> | 
|  | 91   78 <span class="i">@yytable</span> = <span class="s">(</span>                                              <span class="n">5</span><span class="cm">,</span> | 
|  | 92   79    <span class="n">13</span><span class="cm">,</span>    <span class="n">5</span><span class="cm">,</span>    <span class="n">8</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span>   <span class="n">12</span><span class="cm">,</span>   <span class="n">17</span><span class="cm">,</span>   <span class="n">17</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span>    <span class="n">4</span><span class="cm">,</span>   <span class="n">19</span><span class="cm">,</span> | 
|  | 93   80    <span class="n">15</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>    <span class="n">5</span><span class="cm">,</span>   <span class="n">14</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">16</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">7</span><span class="cm">,</span>   <span class="n">17</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 94   81    <span class="n">17</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">8</span><span class="cm">,</span>   <span class="n">15</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>   <span class="n">15</span><span class="cm">,</span>   <span class="n">14</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>   <span class="n">16</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 95   82    <span class="n">16</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span> | 
|  | 96   83     <span class="n">9</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>    <span class="n">7</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span> | 
|  | 97   84     <span class="n">7</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>    <span class="n">7</span><span class="cm">,</span>    <span class="n">8</span><span class="cm">,</span>   <span class="n">11</span><span class="cm">,</span>    <span class="n">8</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">8</span><span class="cm">,</span>   <span class="n">18</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 98   85     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>   <span class="n">20</span><span class="cm">,</span>   <span class="n">21</span><span class="cm">,</span>   <span class="n">22</span><span class="cm">,</span>   <span class="n">23</span><span class="cm">,</span>   <span class="n">24</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 99   86     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 100   87     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 101   88     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 102   89     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 103   90     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 104   91     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 105   92     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 106   93     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 107   94     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 108   95     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 109   96     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 110   97     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 111   98     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 112   99     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span> | 
|  | 113  100     <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">0</span><span class="cm">,</span>    <span class="n">2</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>    <span class="n">4</span><span class="cm">,</span>    <span class="n">3</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span> | 
|  | 114  101 <span class="s">)</span><span class="sc">;</span> | 
|  | 115  102 <span class="i">@yycheck</span> = <span class="s">(</span>                                             <span class="n">40</span><span class="cm">,</span> | 
|  | 116  103    <span class="n">10</span><span class="cm">,</span>   <span class="n">40</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">61</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">37</span><span class="cm">,</span>   <span class="n">37</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">41</span><span class="cm">,</span> | 
|  | 117  104    <span class="n">42</span><span class="cm">,</span>   <span class="n">43</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">47</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">37</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 118  105    <span class="n">37</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">10</span><span class="cm">,</span>   <span class="n">42</span><span class="cm">,</span>   <span class="n">43</span><span class="cm">,</span>   <span class="n">42</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span>   <span class="n">37</span><span class="cm">,</span>   <span class="n">47</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 119  106    <span class="n">47</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">42</span><span class="cm">,</span>   <span class="n">43</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">47</span><span class="cm">,</span>   <span class="n">41</span><span class="cm">,</span>   <span class="n">42</span><span class="cm">,</span> | 
|  | 120  107    <span class="n">43</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">47</span><span class="cm">,</span>   <span class="n">41</span><span class="cm">,</span>   <span class="n">42</span><span class="cm">,</span>   <span class="n">43</span><span class="cm">,</span>   <span class="n">41</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span> | 
|  | 121  108    <span class="n">43</span><span class="cm">,</span>   <span class="n">47</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span>   <span class="n">41</span><span class="cm">,</span>    <span class="n">5</span><span class="cm">,</span>   <span class="n">43</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">45</span><span class="cm">,</span>    <span class="n">9</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 122  109    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">13</span><span class="cm">,</span>   <span class="n">14</span><span class="cm">,</span>   <span class="n">15</span><span class="cm">,</span>   <span class="n">16</span><span class="cm">,</span>   <span class="n">17</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 123  110    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 124  111    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 125  112    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 126  113    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 127  114    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 128  115    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 129  116    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 130  117    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 131  118    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 132  119    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 133  120    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 134  121    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 135  122    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 136  123    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span> | 
|  | 137  124    <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>   <span class="n">-1</span><span class="cm">,</span>  <span class="n">256</span><span class="cm">,</span>  <span class="n">257</span><span class="cm">,</span>  <span class="n">258</span><span class="cm">,</span>  <span class="n">257</span><span class="cm">,</span>  <span class="n">258</span><span class="cm">,</span> | 
|  | 138  125 <span class="s">)</span><span class="sc">;</span> | 
|  | 139  126 <span class="i">$YYFINAL</span>=<span class="n">1</span><span class="sc">;</span> | 
|  | 140  127 <span class="c">#ifndef YYDEBUG</span> | 
|  | 141  128 <span class="c">#define YYDEBUG 0</span> | 
|  | 142  129 <span class="c">#endif</span> | 
|  | 143  130 <span class="i">$YYMAXTOKEN</span>=<span class="n">258</span><span class="sc">;</span> | 
|  | 144  131 <span class="c">#if YYDEBUG</span> | 
|  | 145  132 <span class="i">@yyname</span> = <span class="s">(</span> | 
|  | 146  133 <span class="q">"end-of-file"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"'\\n'"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 147  134 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"'%'"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"'('"</span><span class="cm">,</span><span class="q">"')'"</span><span class="cm">,</span><span class="q">"'*'"</span><span class="cm">,</span><span class="q">"'+'"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"'-'"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"'/'"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 148  135 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"'='"</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 149  136 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 150  137 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 151  138 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 152  139 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span> | 
|  | 153  140 <span class="q">''</span><span class="cm">,</span><span class="q">''</span><span class="cm">,</span><span class="q">"NUMBER"</span><span class="cm">,</span><span class="q">"LETTER"</span><span class="cm">,</span> | 
|  | 154  141 <span class="s">)</span><span class="sc">;</span> | 
|  | 155  142 <span class="i">@yyrule</span> = <span class="s">(</span> | 
|  | 156  143 <span class="q">"\$accept : list"</span><span class="cm">,</span> | 
|  | 157  144 <span class="q">"list :"</span><span class="cm">,</span> | 
|  | 158  145 <span class="q">"list : list stat '\\n'"</span><span class="cm">,</span> | 
|  | 159  146 <span class="q">"list : list error '\\n'"</span><span class="cm">,</span> | 
|  | 160  147 <span class="q">"stat : expr"</span><span class="cm">,</span> | 
|  | 161  148 <span class="q">"stat : LETTER '=' expr"</span><span class="cm">,</span> | 
|  | 162  149 <span class="q">"expr : '(' expr ')'"</span><span class="cm">,</span> | 
|  | 163  150 <span class="q">"expr : expr '+' expr"</span><span class="cm">,</span> | 
|  | 164  151 <span class="q">"expr : expr '-' expr"</span><span class="cm">,</span> | 
|  | 165  152 <span class="q">"expr : expr '*' expr"</span><span class="cm">,</span> | 
|  | 166  153 <span class="q">"expr : expr '/' expr"</span><span class="cm">,</span> | 
|  | 167  154 <span class="q">"expr : expr '%' expr"</span><span class="cm">,</span> | 
|  | 168  155 <span class="q">"expr : NUMBER"</span><span class="cm">,</span> | 
|  | 169  156 <span class="q">"expr : LETTER"</span><span class="cm">,</span> | 
|  | 170  157 <span class="s">)</span><span class="sc">;</span> | 
|  | 171  158 <span class="c">#endif</span> | 
|  | 172  159 | 
|  | 173 <a name="yyclearin-"></a> 160 <span class="k">sub </span><span class="m">yyclearin</span> <span class="s">{</span> <span class="i">$_</span>[<span class="n">0</span>]->{<span class="q">'yychar'</span>} = <span class="n">-1</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 174  161 | 
|  | 175 <a name="yyerrok-"></a> 162 <span class="k">sub </span><span class="m">yyerrok</span> <span class="s">{</span> <span class="i">$_</span>[<span class="n">0</span>]->{<span class="q">'yyerrflag'</span>} = <span class="n">0</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 176  163 | 
|  | 177 <a name="new-"></a> 164 <span class="k">sub </span><span class="m">new</span> <span class="s">{</span> | 
|  | 178  165   <span class="k">my</span> <span class="i">$p</span> = <span class="s">{</span><span class="q">'yylex'</span> <span class="cm">=></span> <span class="i">$_</span>[<span class="n">1</span>]<span class="cm">,</span> <span class="q">'yyerror'</span> <span class="cm">=></span> <span class="i">$_</span>[<span class="n">2</span>]<span class="cm">,</span> <span class="q">'yydebug'</span> <span class="cm">=></span> <span class="i">$_</span>[<span class="n">3</span>]<span class="s">}</span><span class="sc">;</span> | 
|  | 179  166   <span class="k">bless</span> <span class="i">$p</span><span class="cm">,</span> <span class="i">$_</span>[<span class="n">0</span>]<span class="sc">;</span> | 
|  | 180  167 <span class="s">}</span> | 
|  | 181  168 | 
|  | 182 <a name="YYERROR-"></a> 169 <span class="k">sub </span><span class="m">YYERROR</span> <span class="s">{</span> ++<span class="i">$_</span>[<span class="n">0</span>]->{<span class="q">'yynerrs'</span>}<span class="sc">;</span> <span class="i">$_</span>[<span class="n">0</span>]<span class="i">->yy_err_recover</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 183  170 | 
|  | 184 <a name="yy_err_recover-"></a> 171 <span class="k">sub </span><span class="m">yy_err_recover</span> <span class="s">{</span> | 
|  | 185  172   <span class="c">#</span> | 
|  | 186  173   <span class="c"># msud@san.rr.com:</span> | 
|  | 187  174   <span class="c">#</span> | 
|  | 188  175   <span class="c"># Turn off "exiting" warning to suppress the following warning at "next yyloop":</span> | 
|  | 189  176   <span class="c">#</span> | 
|  | 190  177   <span class="c"># Exiting subroutine via next at <LineNum></span> | 
|  | 191  178   <span class="c">#</span> | 
|  | 192  179   <span class="c"># The code does work as expected with or without turning off the warning.</span> | 
|  | 193  180   <span class="c"># This method is invoked in yyparse method directly or indirectly in another</span> | 
|  | 194  181   <span class="c"># method and Perl compilers ends up finding "yyloop" as the nearst enclosure</span> | 
|  | 195  182   <span class="c"># label.</span> | 
|  | 196  183   <span class="c">#</span> | 
|  | 197  184   <span class="k">no</span> <span class="w">warnings</span> <span class="q">qw(exiting)</span><span class="sc">;</span> | 
|  | 198  185 | 
|  | 199  186   <span class="k">my</span> <span class="s">(</span><span class="i">$p</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 200  187   <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyerrflag'</span>} < <span class="n">3</span><span class="s">)</span> | 
|  | 201  188   <span class="s">{</span> | 
|  | 202  189     <span class="i">$p</span>->{<span class="q">'yyerrflag'</span>} = <span class="n">3</span><span class="sc">;</span> | 
|  | 203  190     <span class="k">while</span> <span class="s">(</span><span class="n">1</span><span class="s">)</span> | 
|  | 204  191     <span class="s">{</span> | 
|  | 205  192       <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} = <span class="i">$yysindex</span>[<span class="i">$p</span>->{<span class="q">'yyss'</span>}->[<span class="i">$p</span>->{<span class="q">'yyssp'</span>}]]<span class="s">)</span> && | 
|  | 206  193           <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} += <span class="i">$YYERRCODE</span><span class="s">)</span> >= <span class="n">0</span> && | 
|  | 207  194           <span class="i">$p</span>->{<span class="q">'yyn'</span>} < <span class="i">@yycheck</span> && | 
|  | 208  195           <span class="i">$yycheck</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] == <span class="i">$YYERRCODE</span><span class="s">)</span> | 
|  | 209  196       <span class="s">{</span> | 
|  | 210  197         <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: state "</span> . | 
|  | 211  198                      <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] . | 
|  | 212  199                      <span class="q">", error recovery shifting to state"</span> . | 
|  | 213  200                      <span class="i">$yytable</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] . <span class="q">"\n"</span><span class="s">)</span> | 
|  | 214  201                        <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="sc">;</span> | 
|  | 215  202         <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[++<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] = | 
|  | 216  203           <span class="i">$p</span>->{<span class="q">'yystate'</span>} = <span class="i">$yytable</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}]<span class="sc">;</span> | 
|  | 217  204         <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[++<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}] = <span class="i">$p</span>->{<span class="q">'yylval'</span>}<span class="sc">;</span> | 
|  | 218  205         <span class="k">next</span> <span class="j">yyloop</span><span class="sc">;</span> | 
|  | 219  206       <span class="s">}</span> | 
|  | 220  207       <span class="k">else</span> | 
|  | 221  208       <span class="s">{</span> | 
|  | 222  209         <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: error recovery discarding state "</span>. | 
|  | 223  210               <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[<span class="i">$p</span>->{<span class="q">'yyssp'</span>}]. <span class="q">"\n"</span><span class="s">)</span> | 
|  | 224  211                 <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="sc">;</span> | 
|  | 225  212         <span class="k">return</span><span class="s">(</span><span class="k">undef</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yyssp'</span>} <= <span class="n">0</span><span class="sc">;</span> | 
|  | 226  213         --<span class="i">$p</span>->{<span class="q">'yyssp'</span>}<span class="sc">;</span> | 
|  | 227  214         --<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}<span class="sc">;</span> | 
|  | 228  215       <span class="s">}</span> | 
|  | 229  216     <span class="s">}</span> | 
|  | 230  217   <span class="s">}</span> | 
|  | 231  218   <span class="k">else</span> | 
|  | 232  219   <span class="s">{</span> | 
|  | 233  220     <span class="k">return</span> <span class="s">(</span><span class="k">undef</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yychar'</span>} == <span class="n">0</span><span class="sc">;</span> | 
|  | 234  221     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="s">)</span> | 
|  | 235  222     <span class="s">{</span> | 
|  | 236  223       <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="q">''</span><span class="sc">;</span> | 
|  | 237  224       <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>} <= <span class="i">$YYMAXTOKEN</span><span class="s">)</span> <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} = | 
|  | 238  225         <span class="i">$yyname</span>[<span class="i">$p</span>->{<span class="q">'yychar'</span>}]<span class="sc">;</span> <span class="s">}</span> | 
|  | 239  226       <span class="k">if</span> <span class="s">(</span>!<span class="i">$p</span>->{<span class="q">'yys'</span>}<span class="s">)</span> <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="q">'illegal-symbol'</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 240  227       <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: state "</span> . <span class="i">$p</span>->{<span class="q">'yystate'</span>} . | 
|  | 241  228                    <span class="q">", error recovery discards "</span> . | 
|  | 242  229                    <span class="q">"token "</span> . <span class="i">$p</span>->{<span class="q">'yychar'</span>} . <span class="q">"("</span> . | 
|  | 243  230                    <span class="i">$p</span>->{<span class="q">'yys'</span>} . <span class="q">")\n"</span><span class="s">)</span><span class="sc">;</span> | 
|  | 244  231     <span class="s">}</span> | 
|  | 245  232     <span class="i">$p</span>->{<span class="q">'yychar'</span>} = <span class="n">-1</span><span class="sc">;</span> | 
|  | 246  233     <span class="k">next</span> <span class="j">yyloop</span><span class="sc">;</span> | 
|  | 247  234   <span class="s">}</span> | 
|  | 248  235 <span class="n">0</span><span class="sc">;</span> | 
|  | 249  236 <span class="s">}</span> <span class="c"># yy_err_recover</span> | 
|  | 250  237 | 
|  | 251 <a name="yyparse-"></a> 238 <span class="k">sub </span><span class="m">yyparse</span> <span class="s">{</span> | 
|  | 252  239   <span class="k">my</span> <span class="s">(</span><span class="i">$p</span><span class="cm">,</span> <span class="i">$s</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 253  240   <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="i">$ENV</span>{<span class="q">'YYDEBUG'</span>}<span class="s">)</span> | 
|  | 254  241   <span class="s">{</span> | 
|  | 255  242     <span class="i">$p</span>->{<span class="q">'yydebug'</span>} = <span class="k">int</span><span class="s">(</span><span class="i">$1</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} =~ <span class="q">/^(\d)/</span><span class="sc">;</span> | 
|  | 256  243   <span class="s">}</span> | 
|  | 257  244 | 
|  | 258  245   <span class="i">$p</span>->{<span class="q">'yynerrs'</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 259  246   <span class="i">$p</span>->{<span class="q">'yyerrflag'</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 260  247   <span class="i">$p</span>->{<span class="q">'yychar'</span>} = <span class="s">(</span><span class="n">-1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 261  248 | 
|  | 262  249   <span class="i">$p</span>->{<span class="q">'yyssp'</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 263  250   <span class="i">$p</span>->{<span class="q">'yyvsp'</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 264  251   <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] = <span class="i">$p</span>->{<span class="q">'yystate'</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 265  252 | 
|  | 266  253   <span class="j">yyloop:</span> <span class="k">while</span><span class="s">(</span><span class="n">1</span><span class="s">)</span> | 
|  | 267  254   <span class="s">{</span> | 
|  | 268  255     <span class="j">yyreduce:</span> <span class="s">{</span> | 
|  | 269  256       <span class="k">last</span> <span class="j">yyreduce</span> <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} = <span class="i">$yydefred</span>[<span class="i">$p</span>->{<span class="q">'yystate'</span>}]<span class="s">)</span><span class="sc">;</span> | 
|  | 270  257       <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>} < <span class="n">0</span><span class="s">)</span> | 
|  | 271  258       <span class="s">{</span> | 
|  | 272  259         <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>}<span class="cm">,</span> <span class="i">$p</span>->{<span class="q">'yylval'</span>}<span class="s">)</span> = | 
|  | 273  260             <span class="i">&</span>{<span class="i">$p</span>->{<span class="q">'yylex'</span>}}<span class="s">(</span><span class="i">$s</span><span class="s">)</span><span class="s">)</span> < <span class="n">0</span><span class="s">)</span> <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yychar'</span>} = <span class="n">0</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 274  261         <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="s">)</span> | 
|  | 275  262         <span class="s">{</span> | 
|  | 276  263           <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="q">''</span><span class="sc">;</span> | 
|  | 277  264           <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>} <= <span class="i">$#yyname</span><span class="s">)</span> | 
|  | 278  265              <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="i">$yyname</span>[<span class="i">$p</span>->{<span class="q">'yychar'</span>}]<span class="sc">;</span> <span class="s">}</span> | 
|  | 279  266           <span class="k">if</span> <span class="s">(</span>!<span class="i">$p</span>->{<span class="q">'yys'</span>}<span class="s">)</span> <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="q">'illegal-symbol'</span><span class="sc">;</span> <span class="s">}</span><span class="sc">;</span> | 
|  | 280  267           <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: state "</span> . <span class="i">$p</span>->{<span class="q">'yystate'</span>} . | 
|  | 281  268                        <span class="q">", reading "</span> . <span class="i">$p</span>->{<span class="q">'yychar'</span>} . <span class="q">" ("</span> . | 
|  | 282  269                        <span class="i">$p</span>->{<span class="q">'yys'</span>} . <span class="q">")\n"</span><span class="s">)</span><span class="sc">;</span> | 
|  | 283  270         <span class="s">}</span> | 
|  | 284  271       <span class="s">}</span> | 
|  | 285  272       <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} = <span class="i">$yysindex</span>[<span class="i">$p</span>->{<span class="q">'yystate'</span>}]<span class="s">)</span> && | 
|  | 286  273           <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} += <span class="i">$p</span>->{<span class="q">'yychar'</span>}<span class="s">)</span> >= <span class="n">0</span> && | 
|  | 287  274           <span class="i">$yycheck</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] == <span class="i">$p</span>->{<span class="q">'yychar'</span>}<span class="s">)</span> | 
|  | 288  275       <span class="s">{</span> | 
|  | 289  276         <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: state "</span> . <span class="i">$p</span>->{<span class="q">'yystate'</span>} . | 
|  | 290  277                      <span class="q">", shifting to state "</span> . | 
|  | 291  278               <span class="i">$yytable</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] . <span class="q">"\n"</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="sc">;</span> | 
|  | 292  279         <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[++<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] = <span class="i">$p</span>->{<span class="q">'yystate'</span>} = | 
|  | 293  280           <span class="i">$yytable</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}]<span class="sc">;</span> | 
|  | 294  281         <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[++<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}] = <span class="i">$p</span>->{<span class="q">'yylval'</span>}<span class="sc">;</span> | 
|  | 295  282         <span class="i">$p</span>->{<span class="q">'yychar'</span>} = <span class="s">(</span><span class="n">-1</span><span class="s">)</span><span class="sc">;</span> | 
|  | 296  283         --<span class="i">$p</span>->{<span class="q">'yyerrflag'</span>} <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yyerrflag'</span>} > <span class="n">0</span><span class="sc">;</span> | 
|  | 297  284         <span class="k">next</span> <span class="j">yyloop</span><span class="sc">;</span> | 
|  | 298  285       <span class="s">}</span> | 
|  | 299  286       <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} = <span class="i">$yyrindex</span>[<span class="i">$p</span>->{<span class="q">'yystate'</span>}]<span class="s">)</span> && | 
|  | 300  287           <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} += <span class="i">$p</span>->{<span class="q">'yychar'</span>}<span class="s">)</span> >= <span class="n">0</span> && | 
|  | 301  288           <span class="i">$yycheck</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] == <span class="i">$p</span>->{<span class="q">'yychar'</span>}<span class="s">)</span> | 
|  | 302  289       <span class="s">{</span> | 
|  | 303  290         <span class="i">$p</span>->{<span class="q">'yyn'</span>} = <span class="i">$yytable</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}]<span class="sc">;</span> | 
|  | 304  291         <span class="k">last</span> <span class="j">yyreduce</span><span class="sc">;</span> | 
|  | 305  292       <span class="s">}</span> | 
|  | 306  293       <span class="k">if</span> <span class="s">(</span>! <span class="i">$p</span>->{<span class="q">'yyerrflag'</span>}<span class="s">)</span> <span class="s">{</span> | 
|  | 307  294         <span class="k">if</span> <span class="s">(</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$EOI</span><span class="s">)</span> && <span class="i">$p</span>->{<span class="q">'yychar'</span>} == <span class="i">$EOI</span><span class="s">)</span> || <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>} == <span class="n">0</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span> | 
|  | 308  295           <span class="i">&</span>{<span class="i">$p</span>->{<span class="q">'yyerror'</span>}}<span class="s">(</span><span class="q">"syntax error at or near the end of input text"</span><span class="cm">,</span> <span class="i">$s</span><span class="s">)</span><span class="sc">;</span> | 
|  | 309  296         <span class="s">}</span> | 
|  | 310  297         <span class="k">else</span> <span class="s">{</span> | 
|  | 311  298           <span class="i">&</span>{<span class="i">$p</span>->{<span class="q">'yyerror'</span>}}<span class="s">(</span><span class="q">"syntax error at or near input text: '$p->{'yylval'}'"</span><span class="cm">,</span> <span class="i">$s</span><span class="s">)</span><span class="sc">;</span> | 
|  | 312  299         <span class="s">}</span> | 
|  | 313  300         ++<span class="i">$p</span>->{<span class="q">'yynerrs'</span>}<span class="sc">;</span> | 
|  | 314  301       <span class="s">}</span> | 
|  | 315  302       <span class="k">return</span><span class="s">(</span><span class="k">undef</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span><span class="i">->yy_err_recover</span><span class="sc">;</span> | 
|  | 316  303     <span class="s">}</span> <span class="c"># yyreduce</span> | 
|  | 317  304     <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: state "</span> . <span class="i">$p</span>->{<span class="q">'yystate'</span>} . | 
|  | 318  305                  <span class="q">", reducing by rule "</span> . | 
|  | 319  306                  <span class="i">$p</span>->{<span class="q">'yyn'</span>} . <span class="q">" ("</span> . <span class="i">$yyrule</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] . | 
|  | 320  307                  <span class="q">")\n"</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="sc">;</span> | 
|  | 321  308     <span class="i">$p</span>->{<span class="q">'yym'</span>} = <span class="i">$yylen</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}]<span class="sc">;</span> | 
|  | 322  309     <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}+<span class="n">1</span>-<span class="i">$p</span>->{<span class="q">'yym'</span>}]<span class="sc">;</span> | 
|  | 323  310 | 
|  | 324  311     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">2</span><span class="s">)</span> <span class="s">{</span> | 
|  | 325  312     <span class="s">{</span>  <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">1</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 326  313     <span class="s">}</span> | 
|  | 327  314 | 
|  | 328  315     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">3</span><span class="s">)</span> <span class="s">{</span> | 
|  | 329  316     <span class="s">{</span> <span class="i">$p</span><span class="i">->yyerrok</span><span class="sc">;</span> <span class="i">$p</span><span class="i">->yyclearin</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 330  317     <span class="s">}</span> | 
|  | 331  318 | 
|  | 332  319     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">4</span><span class="s">)</span> <span class="s">{</span> | 
|  | 333  320     <span class="s">{</span>  <span class="i">$ExprOut</span> = <span class="k">sprintf</span> <span class="q">"%5i"</span><span class="cm">,</span> <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="k">print</span> <span class="q">"$ExprOut\n"</span><span class="sc">;</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 334  321     <span class="s">}</span> | 
|  | 335  322 | 
|  | 336  323     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">5</span><span class="s">)</span> <span class="s">{</span> | 
|  | 337  324     <span class="s">{</span> <span class="i">$LetterToValueMap</span>{<span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">2</span>]} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 338  325     <span class="s">}</span> | 
|  | 339  326 | 
|  | 340  327     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">6</span><span class="s">)</span> <span class="s">{</span> | 
|  | 341  328     <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">1</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 342  329     <span class="s">}</span> | 
|  | 343  330 | 
|  | 344  331     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">7</span><span class="s">)</span> <span class="s">{</span> | 
|  | 345  332     <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">2</span>] + <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 346  333     <span class="s">}</span> | 
|  | 347  334 | 
|  | 348  335     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">8</span><span class="s">)</span> <span class="s">{</span> | 
|  | 349  336     <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">2</span>] - <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 350  337     <span class="s">}</span> | 
|  | 351  338 | 
|  | 352  339     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">9</span><span class="s">)</span> <span class="s">{</span> | 
|  | 353  340     <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">2</span>] * <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 354  341     <span class="s">}</span> | 
|  | 355  342 | 
|  | 356  343     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">10</span><span class="s">)</span> <span class="s">{</span> | 
|  | 357  344     <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">2</span>] / <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 358  345     <span class="s">}</span> | 
|  | 359  346 | 
|  | 360  347     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">11</span><span class="s">)</span> <span class="s">{</span> | 
|  | 361  348     <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">2</span>] % <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> <span class="s">}</span> | 
|  | 362  349     <span class="s">}</span> | 
|  | 363  350 | 
|  | 364  351     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} == <span class="n">13</span><span class="s">)</span> <span class="s">{</span> | 
|  | 365  352     <span class="s">{</span> | 
|  | 366  353                           <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$LetterToValueMap</span>{<span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]}<span class="s">)</span> <span class="s">{</span> | 
|  | 367  354                             <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="i">$LetterToValueMap</span>{<span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]}<span class="sc">;</span> | 
|  | 368  355                           <span class="s">}</span> | 
|  | 369  356                           <span class="k">else</span> <span class="s">{</span> | 
|  | 370  357                             <span class="i">$Letter</span> = <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}-<span class="n">0</span>]<span class="sc">;</span> | 
|  | 371  358                             <span class="k">print</span> <span class="q">"Undefined variable $Letter encountered by SimpleCalcParser; Value set to 0\n"</span><span class="sc">;</span> | 
|  | 372  359                             <span class="i">$p</span>->{<span class="q">'yyval'</span>} = <span class="n">0</span><span class="sc">;</span> | 
|  | 373  360                           <span class="s">}</span> | 
|  | 374  361                         <span class="s">}</span> | 
|  | 375  362     <span class="s">}</span> | 
|  | 376  363     <span class="i">$p</span>->{<span class="q">'yyssp'</span>} -= <span class="i">$p</span>->{<span class="q">'yym'</span>}<span class="sc">;</span> | 
|  | 377  364     <span class="i">$p</span>->{<span class="q">'yystate'</span>} = <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[<span class="i">$p</span>->{<span class="q">'yyssp'</span>}]<span class="sc">;</span> | 
|  | 378  365     <span class="i">$p</span>->{<span class="q">'yyvsp'</span>} -= <span class="i">$p</span>->{<span class="q">'yym'</span>}<span class="sc">;</span> | 
|  | 379  366     <span class="i">$p</span>->{<span class="q">'yym'</span>} = <span class="i">$yylhs</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}]<span class="sc">;</span> | 
|  | 380  367     <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yystate'</span>} == <span class="n">0</span> && <span class="i">$p</span>->{<span class="q">'yym'</span>} == <span class="n">0</span><span class="s">)</span> | 
|  | 381  368     <span class="s">{</span> | 
|  | 382  369       <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: after reduction, shifting from state 0 "</span><span class="cm">,</span> | 
|  | 383  370             <span class="q">"to state $YYFINAL\n"</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="sc">;</span> | 
|  | 384  371       <span class="i">$p</span>->{<span class="q">'yystate'</span>} = <span class="i">$YYFINAL</span><span class="sc">;</span> | 
|  | 385  372       <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[++<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] = <span class="i">$YYFINAL</span><span class="sc">;</span> | 
|  | 386  373       <span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[++<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}] = <span class="i">$p</span>->{<span class="q">'yyval'</span>}<span class="sc">;</span> | 
|  | 387  374       <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>} < <span class="n">0</span><span class="s">)</span> | 
|  | 388  375       <span class="s">{</span> | 
|  | 389  376         <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>}<span class="cm">,</span> <span class="i">$p</span>->{<span class="q">'yylval'</span>}<span class="s">)</span> = | 
|  | 390  377             <span class="i">&</span>{<span class="i">$p</span>->{<span class="q">'yylex'</span>}}<span class="s">(</span><span class="i">$s</span><span class="s">)</span><span class="s">)</span> < <span class="n">0</span><span class="s">)</span> <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yychar'</span>} = <span class="n">0</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 391  378         <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="s">)</span> | 
|  | 392  379         <span class="s">{</span> | 
|  | 393  380           <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="q">''</span><span class="sc">;</span> | 
|  | 394  381           <span class="k">if</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yychar'</span>} <= <span class="i">$#yyname</span><span class="s">)</span> | 
|  | 395  382             <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="i">$yyname</span>[<span class="i">$p</span>->{<span class="q">'yychar'</span>}]<span class="sc">;</span> <span class="s">}</span> | 
|  | 396  383           <span class="k">if</span> <span class="s">(</span>!<span class="i">$p</span>->{<span class="q">'yys'</span>}<span class="s">)</span> <span class="s">{</span> <span class="i">$p</span>->{<span class="q">'yys'</span>} = <span class="q">'illegal-symbol'</span><span class="sc">;</span> <span class="s">}</span> | 
|  | 397  384           <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: state $YYFINAL, reading "</span> . | 
|  | 398  385                <span class="i">$p</span>->{<span class="q">'yychar'</span>} . <span class="q">" ("</span> . <span class="i">$p</span>->{<span class="q">'yys'</span>} . <span class="q">")\n"</span><span class="s">)</span><span class="sc">;</span> | 
|  | 399  386         <span class="s">}</span> | 
|  | 400  387       <span class="s">}</span> | 
|  | 401  388       <span class="k">return</span> <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyvs'</span>}->[<span class="n">1</span>]<span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yychar'</span>} == <span class="n">0</span><span class="sc">;</span> | 
|  | 402  389       <span class="k">next</span> <span class="j">yyloop</span><span class="sc">;</span> | 
|  | 403  390     <span class="s">}</span> | 
|  | 404  391     <span class="k">if</span> <span class="s">(</span><span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} = <span class="i">$yygindex</span>[<span class="i">$p</span>->{<span class="q">'yym'</span>}]<span class="s">)</span> && | 
|  | 405  392         <span class="s">(</span><span class="i">$p</span>->{<span class="q">'yyn'</span>} += <span class="i">$p</span>->{<span class="q">'yystate'</span>}<span class="s">)</span> >= <span class="n">0</span> && | 
|  | 406  393         <span class="i">$p</span>->{<span class="q">'yyn'</span>} <= <span class="i">$#yycheck</span> && | 
|  | 407  394         <span class="i">$yycheck</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}] == <span class="i">$p</span>->{<span class="q">'yystate'</span>}<span class="s">)</span> | 
|  | 408  395     <span class="s">{</span> | 
|  | 409  396         <span class="i">$p</span>->{<span class="q">'yystate'</span>} = <span class="i">$yytable</span>[<span class="i">$p</span>->{<span class="q">'yyn'</span>}]<span class="sc">;</span> | 
|  | 410  397     <span class="s">}</span> <span class="k">else</span> <span class="s">{</span> | 
|  | 411  398         <span class="i">$p</span>->{<span class="q">'yystate'</span>} = <span class="i">$yydgoto</span>[<span class="i">$p</span>->{<span class="q">'yym'</span>}]<span class="sc">;</span> | 
|  | 412  399     <span class="s">}</span> | 
|  | 413  400     <span class="k">warn</span><span class="s">(</span><span class="q">"yydebug: after reduction, shifting from state "</span> . | 
|  | 414  401         <span class="i">$p</span>->{<span class="q">'yyss'</span>}->[<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] . <span class="q">" to state "</span> . | 
|  | 415  402         <span class="i">$p</span>->{<span class="q">'yystate'</span>} . <span class="q">"\n"</span><span class="s">)</span> <span class="k">if</span> <span class="i">$p</span>->{<span class="q">'yydebug'</span>}<span class="sc">;</span> | 
|  | 416  403     <span class="i">$p</span>->{<span class="q">'yyss'</span>}[++<span class="i">$p</span>->{<span class="q">'yyssp'</span>}] = <span class="i">$p</span>->{<span class="q">'yystate'</span>}<span class="sc">;</span> | 
|  | 417  404     <span class="i">$p</span>->{<span class="q">'yyvs'</span>}[++<span class="i">$p</span>->{<span class="q">'yyvsp'</span>}] = <span class="i">$p</span>->{<span class="q">'yyval'</span>}<span class="sc">;</span> | 
|  | 418  405   <span class="s">}</span> <span class="c"># yyloop</span> | 
|  | 419  406 <span class="s">}</span> <span class="c"># yyparse</span> | 
|  | 420  407 | 
|  | 421  408 | 
|  | 422  409 <span class="c"># yyerror function supplied to parser along with a lexer during initialization of</span> | 
|  | 423  410 <span class="c"># the parser...</span> | 
|  | 424  411 <span class="c">#</span> | 
|  | 425  412 | 
|  | 426 <a name="yyerror-1-"></a> 413 <span class="k">sub </span><span class="m">yyerror</span> <span class="s">{</span> | 
|  | 427  414     <span class="k">my</span> <span class="s">(</span><span class="i">$msg</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span> | 
|  | 428  415     <span class="k">print</span> <span class="q">"yyerror: $msg...\n"</span><span class="sc">;</span> | 
|  | 429  416 <span class="s">}</span> | 
|  | 430  417 | 
|  | 431 <a name="EOF-"></a></pre> | 
|  | 432 <p> </p> | 
|  | 433 <br /> | 
|  | 434 <center> | 
|  | 435 <img src="../../../images/h2o2.png"> | 
|  | 436 </center> | 
|  | 437 </body> | 
|  | 438 </html> |