Parser.java

// *******************************************************************
// This file has been automatically generated from the grammar in file
// RCL.grm by ilog.language.syntax.ParserGenerator on
// Wed May 03 20:59:49 PDT 2006 --- !!! PLEASE DO NO EDIT !!!
// *******************************************************************

package ilog.rcl;

import java.io.Reader;
import java.io.StringReader;
import java.io.IOException;
import ilog.language.syntax.*;
import java.io.PrintStream;
import ilog.language.tools.Misc;


/* ************ */
/* PARSER CLASS */
/* ************ */

class Parser extends StaticParser
{
  /* ************************ */
  /* PARSER CLASS CONSTRUCTOR */
  /* ************************ */

  public Parser(Tokenizer t)
    {
      input = t;
    }

  /* ************************* */
  /* PARSER CLASS DECLARATIONS */
  /* ************************* */

  long start;
  boolean quiet = true;
  PrintStream out = System.out;

  void setStart ()
    {
      start = System.currentTimeMillis();
    }

  void setQuiet (boolean flag)
    {
      quiet = flag;
    }

  void setOutputStream (PrintStream stream)
    {
      out = stream;
    }

  
  void showXml ()
    {
      out.println("*** Total parsing time = "
                 +(System.currentTimeMillis()-start)
                 +" ms");

      if (!quiet)
        {
          errorManager().tallyErrors();
          if (Misc.askYesNo("*** Do you want to see the XML serialization"))
	    {
	      out.println();
              currentNode().xmlify();
	      out.println();
	    }
        }
    }


  /* ********************** */
  /* STATIC INITIALIZATIONS */
  /* ********************** */

  static
    {
      initializeTerminals();
      initializeNonTerminals();
      initializeRules();
      initializeParserActions();
      initializeParserStates();
      initializeActionTables();
      initializeGotoTables();
      initializeStateTables();
    }

  /* ********************* */
  /* PARTIAL PARSE METHODS */
  /* ********************* */

  final static ParseNode $RCL_SWITCH$ = new ParseNode(terminals[3]);

  public final void parseRCL (String s) throws IOException
    {
      parseRCL(new StringReader(s));
    }

  public final void parseRCL (Reader r) throws IOException
    {
      input.setReader(r);
      errorManager().recoverFromErrors(false);
      setSwitchToken($RCL_SWITCH$);
      parse();
    }

  /* **************** */
  /* SEMANTIC ACTIONS */
  /* **************** */

  protected ParseNode semanticAction(ParserRule $rule$) throws IOException
    {
      ParseNode $head$ = new ParseNode($rule$.head);

      switch($rule$.index())
        {
          case 2:
            {
            $head$ = $head$.copy(node($rule$,2));
            break;
            }
          case 3:
            {
            showXml();
            break;
            }
          case 0: case 1: case 23: case 27: 
            break;
          default:
            $head$ = $head$.copy(node($rule$,1));
            break;
        }
      return $head$;
    }

  /* **************** */
  /* TERMINAL SYMBOLS */
  /* **************** */

  static void initializeTerminals ()
    {
      terminals = new ParserTerminal[18];

      newTerminal(0,"$EMPTY$",1,2);
      newTerminal(1,"$E_O_I$",1,2);
      newTerminal(2,"error",1,2);
      newTerminal(3,"$RCL_switch$",1,2);
      newTerminal(4,"Data",1,2);
      newTerminal(5,"Ind",1,2);
      newTerminal(6,"Var",1,2);
      newTerminal(7,"Rel",1,2);
      newTerminal(8,"Fun",1,2);
      newTerminal(9,"And",1,2);
      newTerminal(10,"(",1,2);
      newTerminal(11,")",1,2);
      newTerminal(12,"Or",1,2);
      newTerminal(13,"Exists",1,2);
      newTerminal(14,"Forall",1,2);
      newTerminal(15,"Neg",1,2);
      newTerminal(16,"Naf",1,2);
      newTerminal(17,"=",1,2);
    }

  /* ******************** */
  /* NON-TERMINAL SYMBOLS */
  /* ******************** */

  static void initializeNonTerminals ()
    {
      nonterminals = new ParserNonTerminal[16];

      newNonTerminal(0,"$START$");
      newNonTerminal(1,"$ROOTS$");
      newNonTerminal(2,"RCL");
      newNonTerminal(3,"CONDIT");
      newNonTerminal(4,"CONJ");
      newNonTerminal(5,"DISJ");
      newNonTerminal(6,"QUANTIF");
      newNonTerminal(7,"LITFORM");
      newNonTerminal(8,"CONDIT_star");
      newNonTerminal(9,"Var_plus");
      newNonTerminal(10,"Atom");
      newNonTerminal(11,"TERM_star");
      newNonTerminal(12,"TERM");
      newNonTerminal(13,"Expr");
      newNonTerminal(14,"CONDIT_plus");
      newNonTerminal(15,"TERM_plus");
    }

  /* **************** */
  /* PRODUCTION RULES */
  /* **************** */

  static void initializeRules ()
    {
      rules = new ParserRule[33];

      rules[0] = new ParserRule(0,1,0,1,2);
      rules[1] = new ParserRule(1,1,1,1,2);
      rules[2] = new ParserRule(1,2,2,1,2);
      rules[3] = new ParserRule(2,1,3,1,2);
      rules[4] = new ParserRule(3,1,4,1,2);
      rules[5] = new ParserRule(3,1,5,1,2);
      rules[6] = new ParserRule(3,1,6,1,2);
      rules[7] = new ParserRule(3,1,7,1,2);
      rules[8] = new ParserRule(4,4,8,1,2).xmlInfo("And 3");
      rules[9] = new ParserRule(5,4,9,1,2).xmlInfo("Or 3");
      rules[10] = new ParserRule(6,5,10,1,2).xmlInfo("Exists 2 4");
      rules[11] = new ParserRule(6,5,11,1,2).xmlInfo("Forall 2 4");
      rules[12] = new ParserRule(7,1,12,1,2);
      rules[13] = new ParserRule(7,2,13,1,2).xmlInfo("Neg 2");
      rules[14] = new ParserRule(7,2,14,1,2).xmlInfo("Naf 2");
      rules[15] = new ParserRule(7,3,15,1,2).xmlInfo("NafNeg 3");
      rules[16] = new ParserRule(10,4,16,1,2).xmlInfo("Atom 1 3");
      rules[17] = new ParserRule(10,3,17,1,2).xmlInfo("Equal 1 3");
      rules[18] = new ParserRule(12,1,18,1,2);
      rules[19] = new ParserRule(12,1,19,1,2);
      rules[20] = new ParserRule(12,1,20,1,2);
      rules[21] = new ParserRule(12,1,21,1,2);
      rules[22] = new ParserRule(13,4,22,1,2).xmlInfo("Expr 1 3");
      rules[23] = new ParserRule(8,0,23,1,2);
      rules[24] = new ParserRule(8,1,24,1,2);
      rules[25] = new ParserRule(14,1,25,1,2);
      rules[26] = new ParserRule(14,2,26,1,2);
      rules[27] = new ParserRule(11,0,27,1,2);
      rules[28] = new ParserRule(11,1,28,1,2);
      rules[29] = new ParserRule(15,1,29,1,2);
      rules[30] = new ParserRule(15,2,30,1,2);
      rules[31] = new ParserRule(9,1,31,1,2);
      rules[32] = new ParserRule(9,2,32,1,2);
    }

  /* ************** */
  /* PARSER ACTIONS */
  /* ************** */

  static void initializeParserActions ()
    {
      actions = new ParserAction[428];

      newAction(0,5,0);
      newAction(1,2,0);
      newAction(2,0,3);
      newAction(3,0,9);
      newAction(4,0,10);
      newAction(5,0,11);
      newAction(6,0,12);
      newAction(7,0,14);
      newAction(8,0,15);
      newAction(9,0,16);
      newAction(10,0,18);
      newAction(11,0,19);
      newAction(12,0,20);
      newAction(13,0,22);
      newAction(14,1,1);
      newAction(15,0,9);
      newAction(16,0,10);
      newAction(17,0,11);
      newAction(18,0,12);
      newAction(19,0,14);
      newAction(20,0,15);
      newAction(21,0,16);
      newAction(22,0,18);
      newAction(23,0,19);
      newAction(24,0,20);
      newAction(25,0,22);
      newAction(26,1,3);
      newAction(27,1,4);
      newAction(28,1,4);
      newAction(29,1,4);
      newAction(30,1,4);
      newAction(31,1,4);
      newAction(32,1,4);
      newAction(33,1,4);
      newAction(34,1,4);
      newAction(35,1,4);
      newAction(36,1,4);
      newAction(37,1,4);
      newAction(38,1,4);
      newAction(39,1,4);
      newAction(40,1,5);
      newAction(41,1,5);
      newAction(42,1,5);
      newAction(43,1,5);
      newAction(44,1,5);
      newAction(45,1,5);
      newAction(46,1,5);
      newAction(47,1,5);
      newAction(48,1,5);
      newAction(49,1,5);
      newAction(50,1,5);
      newAction(51,1,5);
      newAction(52,1,5);
      newAction(53,1,6);
      newAction(54,1,6);
      newAction(55,1,6);
      newAction(56,1,6);
      newAction(57,1,6);
      newAction(58,1,6);
      newAction(59,1,6);
      newAction(60,1,6);
      newAction(61,1,6);
      newAction(62,1,6);
      newAction(63,1,6);
      newAction(64,1,6);
      newAction(65,1,6);
      newAction(66,1,7);
      newAction(67,1,7);
      newAction(68,1,7);
      newAction(69,1,7);
      newAction(70,1,7);
      newAction(71,1,7);
      newAction(72,1,7);
      newAction(73,1,7);
      newAction(74,1,7);
      newAction(75,1,7);
      newAction(76,1,7);
      newAction(77,1,7);
      newAction(78,1,7);
      newAction(79,0,54);
      newAction(80,0,48);
      newAction(81,0,39);
      newAction(82,0,39);
      newAction(83,1,12);
      newAction(84,1,12);
      newAction(85,1,12);
      newAction(86,1,12);
      newAction(87,1,12);
      newAction(88,1,12);
      newAction(89,1,12);
      newAction(90,1,12);
      newAction(91,1,12);
      newAction(92,1,12);
      newAction(93,1,12);
      newAction(94,1,12);
      newAction(95,1,12);
      newAction(96,0,16);
      newAction(97,0,18);
      newAction(98,0,19);
      newAction(99,0,20);
      newAction(100,0,22);
      newAction(101,0,35);
      newAction(102,0,16);
      newAction(103,0,18);
      newAction(104,0,19);
      newAction(105,0,20);
      newAction(106,0,22);
      newAction(107,0,31);
      newAction(108,0,29);
      newAction(109,1,18);
      newAction(110,1,18);
      newAction(111,1,18);
      newAction(112,1,18);
      newAction(113,1,18);
      newAction(114,1,18);
      newAction(115,1,18);
      newAction(116,1,18);
      newAction(117,1,18);
      newAction(118,1,18);
      newAction(119,1,18);
      newAction(120,1,18);
      newAction(121,1,18);
      newAction(122,1,18);
      newAction(123,1,19);
      newAction(124,1,19);
      newAction(125,1,19);
      newAction(126,1,19);
      newAction(127,1,19);
      newAction(128,1,19);
      newAction(129,1,19);
      newAction(130,1,19);
      newAction(131,1,19);
      newAction(132,1,19);
      newAction(133,1,19);
      newAction(134,1,19);
      newAction(135,1,19);
      newAction(136,1,19);
      newAction(137,1,20);
      newAction(138,1,20);
      newAction(139,1,20);
      newAction(140,1,20);
      newAction(141,1,20);
      newAction(142,1,20);
      newAction(143,1,20);
      newAction(144,1,20);
      newAction(145,1,20);
      newAction(146,1,20);
      newAction(147,1,20);
      newAction(148,1,20);
      newAction(149,1,20);
      newAction(150,1,20);
      newAction(151,1,21);
      newAction(152,1,21);
      newAction(153,1,21);
      newAction(154,1,21);
      newAction(155,1,21);
      newAction(156,1,21);
      newAction(157,1,21);
      newAction(158,1,21);
      newAction(159,1,21);
      newAction(160,1,21);
      newAction(161,1,21);
      newAction(162,1,21);
      newAction(163,1,21);
      newAction(164,1,21);
      newAction(165,0,23);
      newAction(166,1,27);
      newAction(167,0,18);
      newAction(168,0,19);
      newAction(169,0,20);
      newAction(170,0,22);
      newAction(171,0,28);
      newAction(172,1,28);
      newAction(173,0,18);
      newAction(174,0,19);
      newAction(175,0,20);
      newAction(176,0,22);
      newAction(177,1,29);
      newAction(178,1,29);
      newAction(179,1,29);
      newAction(180,1,29);
      newAction(181,1,29);
      newAction(182,1,30);
      newAction(183,1,30);
      newAction(184,1,30);
      newAction(185,1,30);
      newAction(186,1,30);
      newAction(187,1,22);
      newAction(188,1,22);
      newAction(189,1,22);
      newAction(190,1,22);
      newAction(191,1,22);
      newAction(192,1,22);
      newAction(193,1,22);
      newAction(194,1,22);
      newAction(195,1,22);
      newAction(196,1,22);
      newAction(197,1,22);
      newAction(198,1,22);
      newAction(199,1,22);
      newAction(200,1,22);
      newAction(201,0,18);
      newAction(202,0,19);
      newAction(203,0,20);
      newAction(204,0,22);
      newAction(205,1,17);
      newAction(206,1,17);
      newAction(207,1,17);
      newAction(208,1,17);
      newAction(209,1,17);
      newAction(210,1,17);
      newAction(211,1,17);
      newAction(212,1,17);
      newAction(213,1,17);
      newAction(214,1,17);
      newAction(215,1,17);
      newAction(216,1,17);
      newAction(217,1,17);
      newAction(218,1,27);
      newAction(219,0,18);
      newAction(220,0,19);
      newAction(221,0,20);
      newAction(222,0,22);
      newAction(223,0,33);
      newAction(224,1,16);
      newAction(225,1,16);
      newAction(226,1,16);
      newAction(227,1,16);
      newAction(228,1,16);
      newAction(229,1,16);
      newAction(230,1,16);
      newAction(231,1,16);
      newAction(232,1,16);
      newAction(233,1,16);
      newAction(234,1,16);
      newAction(235,1,16);
      newAction(236,1,16);
      newAction(237,1,14);
      newAction(238,1,14);
      newAction(239,1,14);
      newAction(240,1,14);
      newAction(241,1,14);
      newAction(242,1,14);
      newAction(243,1,14);
      newAction(244,1,14);
      newAction(245,1,14);
      newAction(246,1,14);
      newAction(247,1,14);
      newAction(248,1,14);
      newAction(249,1,14);
      newAction(250,0,16);
      newAction(251,0,18);
      newAction(252,0,19);
      newAction(253,0,20);
      newAction(254,0,22);
      newAction(255,1,15);
      newAction(256,1,15);
      newAction(257,1,15);
      newAction(258,1,15);
      newAction(259,1,15);
      newAction(260,1,15);
      newAction(261,1,15);
      newAction(262,1,15);
      newAction(263,1,15);
      newAction(264,1,15);
      newAction(265,1,15);
      newAction(266,1,15);
      newAction(267,1,15);
      newAction(268,1,13);
      newAction(269,1,13);
      newAction(270,1,13);
      newAction(271,1,13);
      newAction(272,1,13);
      newAction(273,1,13);
      newAction(274,1,13);
      newAction(275,1,13);
      newAction(276,1,13);
      newAction(277,1,13);
      newAction(278,1,13);
      newAction(279,1,13);
      newAction(280,1,13);
      newAction(281,0,40);
      newAction(282,0,41);
      newAction(283,1,31);
      newAction(284,1,31);
      newAction(285,0,9);
      newAction(286,0,10);
      newAction(287,0,11);
      newAction(288,0,12);
      newAction(289,0,14);
      newAction(290,0,15);
      newAction(291,0,16);
      newAction(292,0,18);
      newAction(293,0,19);
      newAction(294,0,20);
      newAction(295,0,22);
      newAction(296,1,32);
      newAction(297,1,32);
      newAction(298,0,43);
      newAction(299,1,11);
      newAction(300,1,11);
      newAction(301,1,11);
      newAction(302,1,11);
      newAction(303,1,11);
      newAction(304,1,11);
      newAction(305,1,11);
      newAction(306,1,11);
      newAction(307,1,11);
      newAction(308,1,11);
      newAction(309,1,11);
      newAction(310,1,11);
      newAction(311,1,11);
      newAction(312,0,45);
      newAction(313,0,41);
      newAction(314,0,9);
      newAction(315,0,10);
      newAction(316,0,11);
      newAction(317,0,12);
      newAction(318,0,14);
      newAction(319,0,15);
      newAction(320,0,16);
      newAction(321,0,18);
      newAction(322,0,19);
      newAction(323,0,20);
      newAction(324,0,22);
      newAction(325,0,47);
      newAction(326,1,10);
      newAction(327,1,10);
      newAction(328,1,10);
      newAction(329,1,10);
      newAction(330,1,10);
      newAction(331,1,10);
      newAction(332,1,10);
      newAction(333,1,10);
      newAction(334,1,10);
      newAction(335,1,10);
      newAction(336,1,10);
      newAction(337,1,10);
      newAction(338,1,10);
      newAction(339,0,9);
      newAction(340,0,10);
      newAction(341,0,11);
      newAction(342,0,12);
      newAction(343,0,14);
      newAction(344,0,15);
      newAction(345,1,23);
      newAction(346,0,16);
      newAction(347,0,18);
      newAction(348,0,19);
      newAction(349,0,20);
      newAction(350,0,22);
      newAction(351,0,53);
      newAction(352,1,24);
      newAction(353,0,9);
      newAction(354,0,10);
      newAction(355,0,11);
      newAction(356,0,12);
      newAction(357,0,14);
      newAction(358,0,15);
      newAction(359,0,16);
      newAction(360,0,18);
      newAction(361,0,19);
      newAction(362,0,20);
      newAction(363,0,22);
      newAction(364,1,25);
      newAction(365,1,25);
      newAction(366,1,25);
      newAction(367,1,25);
      newAction(368,1,25);
      newAction(369,1,25);
      newAction(370,1,25);
      newAction(371,1,25);
      newAction(372,1,25);
      newAction(373,1,25);
      newAction(374,1,25);
      newAction(375,1,25);
      newAction(376,1,26);
      newAction(377,1,26);
      newAction(378,1,26);
      newAction(379,1,26);
      newAction(380,1,26);
      newAction(381,1,26);
      newAction(382,1,26);
      newAction(383,1,26);
      newAction(384,1,26);
      newAction(385,1,26);
      newAction(386,1,26);
      newAction(387,1,26);
      newAction(388,1,9);
      newAction(389,1,9);
      newAction(390,1,9);
      newAction(391,1,9);
      newAction(392,1,9);
      newAction(393,1,9);
      newAction(394,1,9);
      newAction(395,1,9);
      newAction(396,1,9);
      newAction(397,1,9);
      newAction(398,1,9);
      newAction(399,1,9);
      newAction(400,1,9);
      newAction(401,0,9);
      newAction(402,0,10);
      newAction(403,0,11);
      newAction(404,0,12);
      newAction(405,0,14);
      newAction(406,0,15);
      newAction(407,1,23);
      newAction(408,0,16);
      newAction(409,0,18);
      newAction(410,0,19);
      newAction(411,0,20);
      newAction(412,0,22);
      newAction(413,0,56);
      newAction(414,1,8);
      newAction(415,1,8);
      newAction(416,1,8);
      newAction(417,1,8);
      newAction(418,1,8);
      newAction(419,1,8);
      newAction(420,1,8);
      newAction(421,1,8);
      newAction(422,1,8);
      newAction(423,1,8);
      newAction(424,1,8);
      newAction(425,1,8);
      newAction(426,1,8);
      newAction(427,1,2);
    }

  /* ************* */
  /* PARSER STATES */
  /* ************* */

  static void initializeParserStates ()
    {
      states = new ParserState[58];

      for (int i=0; i<58; i++) newState(i);
    }

  /* ************* */
  /* ACTION TABLES */
  /* ************* */

  static void initializeActionTables ()
    {
      newActionTables(52);

      newActionTable(0,12);
	setAction(0,15,7);
	setAction(0,4,10);
	setAction(0,13,5);
	setAction(0,8,13);
	setAction(0,9,3);
	setAction(0,6,12);
	setAction(0,16,8);
	setAction(0,14,6);
	setAction(0,3,2);
	setAction(0,7,9);
	setAction(0,5,11);
	setAction(0,12,4);

      newActionTable(1,1);
	setAction(1,1,1);

      newActionTable(2,1);
	setAction(2,1,14);

      newActionTable(3,11);
	setAction(3,15,19);
	setAction(3,4,22);
	setAction(3,13,17);
	setAction(3,8,25);
	setAction(3,9,15);
	setAction(3,6,24);
	setAction(3,16,20);
	setAction(3,14,18);
	setAction(3,7,21);
	setAction(3,5,23);
	setAction(3,12,16);

      newActionTable(4,1);
	setAction(4,1,26);

      newActionTable(5,13);
	setAction(5,15,38);
	setAction(5,4,28);
	setAction(5,8,32);
	setAction(5,11,34);
	setAction(5,16,39);
	setAction(5,7,31);
	setAction(5,12,35);
	setAction(5,13,36);
	setAction(5,9,33);
	setAction(5,6,30);
	setAction(5,1,27);
	setAction(5,14,37);
	setAction(5,5,29);

      newActionTable(6,13);
	setAction(6,15,51);
	setAction(6,4,41);
	setAction(6,8,45);
	setAction(6,11,47);
	setAction(6,16,52);
	setAction(6,7,44);
	setAction(6,12,48);
	setAction(6,13,49);
	setAction(6,9,46);
	setAction(6,6,43);
	setAction(6,1,40);
	setAction(6,14,50);
	setAction(6,5,42);

      newActionTable(7,13);
	setAction(7,15,64);
	setAction(7,4,54);
	setAction(7,8,58);
	setAction(7,11,60);
	setAction(7,16,65);
	setAction(7,7,57);
	setAction(7,12,61);
	setAction(7,13,62);
	setAction(7,9,59);
	setAction(7,6,56);
	setAction(7,1,53);
	setAction(7,14,63);
	setAction(7,5,55);

      newActionTable(8,13);
	setAction(8,15,77);
	setAction(8,4,67);
	setAction(8,8,71);
	setAction(8,11,73);
	setAction(8,16,78);
	setAction(8,7,70);
	setAction(8,12,74);
	setAction(8,13,75);
	setAction(8,9,72);
	setAction(8,6,69);
	setAction(8,1,66);
	setAction(8,14,76);
	setAction(8,5,68);

      newActionTable(9,1);
	setAction(9,10,79);

      newActionTable(10,1);
	setAction(10,10,80);

      newActionTable(11,1);
	setAction(11,6,81);

      newActionTable(12,13);
	setAction(12,15,94);
	setAction(12,4,84);
	setAction(12,8,88);
	setAction(12,11,90);
	setAction(12,16,95);
	setAction(12,7,87);
	setAction(12,12,91);
	setAction(12,13,92);
	setAction(12,9,89);
	setAction(12,6,86);
	setAction(12,1,83);
	setAction(12,14,93);
	setAction(12,5,85);

      newActionTable(13,5);
	setAction(13,4,97);
	setAction(13,8,100);
	setAction(13,6,99);
	setAction(13,7,96);
	setAction(13,5,98);

      newActionTable(14,6);
	setAction(14,15,101);
	setAction(14,4,103);
	setAction(14,8,106);
	setAction(14,6,105);
	setAction(14,7,102);
	setAction(14,5,104);

      newActionTable(15,1);
	setAction(15,10,107);

      newActionTable(16,1);
	setAction(16,17,108);

      newActionTable(17,14);
	setAction(17,15,120);
	setAction(17,4,110);
	setAction(17,8,114);
	setAction(17,11,116);
	setAction(17,16,121);
	setAction(17,7,113);
	setAction(17,12,117);
	setAction(17,17,122);
	setAction(17,13,118);
	setAction(17,9,115);
	setAction(17,6,112);
	setAction(17,1,109);
	setAction(17,14,119);
	setAction(17,5,111);

      newActionTable(18,14);
	setAction(18,15,134);
	setAction(18,4,124);
	setAction(18,8,128);
	setAction(18,11,130);
	setAction(18,16,135);
	setAction(18,7,127);
	setAction(18,12,131);
	setAction(18,17,136);
	setAction(18,13,132);
	setAction(18,9,129);
	setAction(18,6,126);
	setAction(18,1,123);
	setAction(18,14,133);
	setAction(18,5,125);

      newActionTable(19,14);
	setAction(19,15,148);
	setAction(19,4,138);
	setAction(19,8,142);
	setAction(19,11,144);
	setAction(19,16,149);
	setAction(19,7,141);
	setAction(19,12,145);
	setAction(19,17,150);
	setAction(19,13,146);
	setAction(19,9,143);
	setAction(19,6,140);
	setAction(19,1,137);
	setAction(19,14,147);
	setAction(19,5,139);

      newActionTable(20,14);
	setAction(20,15,162);
	setAction(20,4,152);
	setAction(20,8,156);
	setAction(20,11,158);
	setAction(20,16,163);
	setAction(20,7,155);
	setAction(20,12,159);
	setAction(20,17,164);
	setAction(20,13,160);
	setAction(20,9,157);
	setAction(20,6,154);
	setAction(20,1,151);
	setAction(20,14,161);
	setAction(20,5,153);

      newActionTable(21,1);
	setAction(21,10,165);

      newActionTable(22,5);
	setAction(22,4,167);
	setAction(22,8,170);
	setAction(22,6,169);
	setAction(22,11,166);
	setAction(22,5,168);

      newActionTable(23,1);
	setAction(23,11,171);

      newActionTable(24,5);
	setAction(24,4,173);
	setAction(24,8,176);
	setAction(24,6,175);
	setAction(24,11,172);
	setAction(24,5,174);

      newActionTable(25,5);
	setAction(25,4,177);
	setAction(25,8,180);
	setAction(25,11,181);
	setAction(25,6,179);
	setAction(25,5,178);

      newActionTable(26,5);
	setAction(26,4,182);
	setAction(26,8,185);
	setAction(26,11,186);
	setAction(26,6,184);
	setAction(26,5,183);

      newActionTable(27,14);
	setAction(27,15,198);
	setAction(27,4,188);
	setAction(27,8,192);
	setAction(27,11,194);
	setAction(27,16,199);
	setAction(27,7,191);
	setAction(27,12,195);
	setAction(27,17,200);
	setAction(27,13,196);
	setAction(27,9,193);
	setAction(27,6,190);
	setAction(27,1,187);
	setAction(27,14,197);
	setAction(27,5,189);

      newActionTable(28,4);
	setAction(28,4,201);
	setAction(28,8,204);
	setAction(28,6,203);
	setAction(28,5,202);

      newActionTable(29,13);
	setAction(29,15,216);
	setAction(29,4,206);
	setAction(29,8,210);
	setAction(29,11,212);
	setAction(29,16,217);
	setAction(29,7,209);
	setAction(29,12,213);
	setAction(29,13,214);
	setAction(29,9,211);
	setAction(29,6,208);
	setAction(29,1,205);
	setAction(29,14,215);
	setAction(29,5,207);

      newActionTable(30,1);
	setAction(30,11,223);

      newActionTable(31,13);
	setAction(31,15,235);
	setAction(31,4,225);
	setAction(31,8,229);
	setAction(31,11,231);
	setAction(31,16,236);
	setAction(31,7,228);
	setAction(31,12,232);
	setAction(31,13,233);
	setAction(31,9,230);
	setAction(31,6,227);
	setAction(31,1,224);
	setAction(31,14,234);
	setAction(31,5,226);

      newActionTable(32,13);
	setAction(32,15,248);
	setAction(32,4,238);
	setAction(32,8,242);
	setAction(32,11,244);
	setAction(32,16,249);
	setAction(32,7,241);
	setAction(32,12,245);
	setAction(32,13,246);
	setAction(32,9,243);
	setAction(32,6,240);
	setAction(32,1,237);
	setAction(32,14,247);
	setAction(32,5,239);

      newActionTable(33,13);
	setAction(33,15,266);
	setAction(33,4,256);
	setAction(33,8,260);
	setAction(33,11,262);
	setAction(33,16,267);
	setAction(33,7,259);
	setAction(33,12,263);
	setAction(33,13,264);
	setAction(33,9,261);
	setAction(33,6,258);
	setAction(33,1,255);
	setAction(33,14,265);
	setAction(33,5,257);

      newActionTable(34,13);
	setAction(34,15,279);
	setAction(34,4,269);
	setAction(34,8,273);
	setAction(34,11,275);
	setAction(34,16,280);
	setAction(34,7,272);
	setAction(34,12,276);
	setAction(34,13,277);
	setAction(34,9,274);
	setAction(34,6,271);
	setAction(34,1,268);
	setAction(34,14,278);
	setAction(34,5,270);

      newActionTable(35,2);
	setAction(35,6,282);
	setAction(35,10,281);

      newActionTable(36,2);
	setAction(36,6,283);
	setAction(36,10,284);

      newActionTable(37,2);
	setAction(37,6,296);
	setAction(37,10,297);

      newActionTable(38,1);
	setAction(38,11,298);

      newActionTable(39,13);
	setAction(39,15,310);
	setAction(39,4,300);
	setAction(39,8,304);
	setAction(39,11,306);
	setAction(39,16,311);
	setAction(39,7,303);
	setAction(39,12,307);
	setAction(39,13,308);
	setAction(39,9,305);
	setAction(39,6,302);
	setAction(39,1,299);
	setAction(39,14,309);
	setAction(39,5,301);

      newActionTable(40,2);
	setAction(40,6,313);
	setAction(40,10,312);

      newActionTable(41,1);
	setAction(41,11,325);

      newActionTable(42,13);
	setAction(42,15,337);
	setAction(42,4,327);
	setAction(42,8,331);
	setAction(42,11,333);
	setAction(42,16,338);
	setAction(42,7,330);
	setAction(42,12,334);
	setAction(42,13,335);
	setAction(42,9,332);
	setAction(42,6,329);
	setAction(42,1,326);
	setAction(42,14,336);
	setAction(42,5,328);

      newActionTable(43,12);
	setAction(43,15,343);
	setAction(43,4,347);
	setAction(43,13,341);
	setAction(43,8,350);
	setAction(43,9,339);
	setAction(43,6,349);
	setAction(43,11,345);
	setAction(43,16,344);
	setAction(43,14,342);
	setAction(43,7,346);
	setAction(43,5,348);
	setAction(43,12,340);

      newActionTable(44,1);
	setAction(44,11,351);

      newActionTable(45,12);
	setAction(45,15,357);
	setAction(45,4,360);
	setAction(45,13,355);
	setAction(45,8,363);
	setAction(45,9,353);
	setAction(45,6,362);
	setAction(45,11,352);
	setAction(45,16,358);
	setAction(45,14,356);
	setAction(45,7,359);
	setAction(45,5,361);
	setAction(45,12,354);

      newActionTable(46,12);
	setAction(46,15,374);
	setAction(46,13,372);
	setAction(46,4,364);
	setAction(46,9,369);
	setAction(46,8,368);
	setAction(46,11,370);
	setAction(46,6,366);
	setAction(46,16,375);
	setAction(46,14,373);
	setAction(46,7,367);
	setAction(46,12,371);
	setAction(46,5,365);

      newActionTable(47,12);
	setAction(47,15,386);
	setAction(47,13,384);
	setAction(47,4,376);
	setAction(47,9,381);
	setAction(47,8,380);
	setAction(47,11,382);
	setAction(47,6,378);
	setAction(47,16,387);
	setAction(47,14,385);
	setAction(47,7,379);
	setAction(47,12,383);
	setAction(47,5,377);

      newActionTable(48,13);
	setAction(48,15,399);
	setAction(48,4,389);
	setAction(48,8,393);
	setAction(48,11,395);
	setAction(48,16,400);
	setAction(48,7,392);
	setAction(48,12,396);
	setAction(48,13,397);
	setAction(48,9,394);
	setAction(48,6,391);
	setAction(48,1,388);
	setAction(48,14,398);
	setAction(48,5,390);

      newActionTable(49,1);
	setAction(49,11,413);

      newActionTable(50,13);
	setAction(50,15,425);
	setAction(50,4,415);
	setAction(50,8,419);
	setAction(50,11,421);
	setAction(50,16,426);
	setAction(50,7,418);
	setAction(50,12,422);
	setAction(50,13,423);
	setAction(50,9,420);
	setAction(50,6,417);
	setAction(50,1,414);
	setAction(50,14,424);
	setAction(50,5,416);

      newActionTable(51,1);
	setAction(51,1,427);

    }

  /* *********** */
  /* GOTO TABLES */
  /* *********** */

  static void initializeGotoTables ()
    {
      newGotoTables(17);

      newGotoTable(0,10);
	setGoto(0,2,2);
	setGoto(0,13,21);
	setGoto(0,4,5);
	setGoto(0,6,7);
	setGoto(0,1,1);
	setGoto(0,3,4);
	setGoto(0,10,13);
	setGoto(0,7,8);
	setGoto(0,12,17);
	setGoto(0,5,6);

      newGotoTable(1,0);

      newGotoTable(2,9);
	setGoto(2,2,57);
	setGoto(2,13,21);
	setGoto(2,4,5);
	setGoto(2,6,7);
	setGoto(2,3,4);
	setGoto(2,10,13);
	setGoto(2,7,8);
	setGoto(2,12,17);
	setGoto(2,5,6);

      newGotoTable(3,1);
	setGoto(3,9,44);

      newGotoTable(4,1);
	setGoto(4,9,38);

      newGotoTable(5,3);
	setGoto(5,13,21);
	setGoto(5,10,37);
	setGoto(5,12,17);

      newGotoTable(6,3);
	setGoto(6,13,21);
	setGoto(6,10,34);
	setGoto(6,12,17);

      newGotoTable(7,4);
	setGoto(7,15,25);
	setGoto(7,13,21);
	setGoto(7,11,24);
	setGoto(7,12,26);

      newGotoTable(8,2);
	setGoto(8,13,21);
	setGoto(8,12,27);

      newGotoTable(9,2);
	setGoto(9,13,21);
	setGoto(9,12,30);

      newGotoTable(10,4);
	setGoto(10,15,25);
	setGoto(10,13,21);
	setGoto(10,11,32);
	setGoto(10,12,26);

      newGotoTable(11,3);
	setGoto(11,13,21);
	setGoto(11,10,36);
	setGoto(11,12,17);

      newGotoTable(12,8);
	setGoto(12,13,21);
	setGoto(12,4,5);
	setGoto(12,6,7);
	setGoto(12,3,42);
	setGoto(12,10,13);
	setGoto(12,7,8);
	setGoto(12,12,17);
	setGoto(12,5,6);

      newGotoTable(13,8);
	setGoto(13,13,21);
	setGoto(13,4,5);
	setGoto(13,6,7);
	setGoto(13,3,46);
	setGoto(13,10,13);
	setGoto(13,7,8);
	setGoto(13,12,17);
	setGoto(13,5,6);

      newGotoTable(14,10);
	setGoto(14,13,21);
	setGoto(14,4,5);
	setGoto(14,8,49);
	setGoto(14,6,7);
	setGoto(14,3,51);
	setGoto(14,14,50);
	setGoto(14,10,13);
	setGoto(14,7,8);
	setGoto(14,12,17);
	setGoto(14,5,6);

      newGotoTable(15,8);
	setGoto(15,13,21);
	setGoto(15,4,5);
	setGoto(15,6,7);
	setGoto(15,3,52);
	setGoto(15,10,13);
	setGoto(15,7,8);
	setGoto(15,12,17);
	setGoto(15,5,6);

      newGotoTable(16,10);
	setGoto(16,13,21);
	setGoto(16,4,5);
	setGoto(16,8,55);
	setGoto(16,6,7);
	setGoto(16,3,51);
	setGoto(16,14,50);
	setGoto(16,10,13);
	setGoto(16,7,8);
	setGoto(16,12,17);
	setGoto(16,5,6);

    }

  /* ************ */
  /* STATE TABLES */
  /* ************ */

  static void initializeStateTables ()
    {
      setTables(0,0,0);
      setTables(1,1,1);
      setTables(2,2,1);
      setTables(3,3,2);
      setTables(4,4,1);
      setTables(5,5,1);
      setTables(6,6,1);
      setTables(7,7,1);
      setTables(8,8,1);
      setTables(9,9,1);
      setTables(10,10,1);
      setTables(11,11,3);
      setTables(12,11,4);
      setTables(13,12,1);
      setTables(14,13,5);
      setTables(15,14,6);
      setTables(16,15,1);
      setTables(17,16,1);
      setTables(18,17,1);
      setTables(19,18,1);
      setTables(20,19,1);
      setTables(21,20,1);
      setTables(22,21,1);
      setTables(23,22,7);
      setTables(24,23,1);
      setTables(25,24,8);
      setTables(26,25,1);
      setTables(27,26,1);
      setTables(28,27,1);
      setTables(29,28,9);
      setTables(30,29,1);
      setTables(31,22,10);
      setTables(32,30,1);
      setTables(33,31,1);
      setTables(34,32,1);
      setTables(35,13,11);
      setTables(36,33,1);
      setTables(37,34,1);
      setTables(38,35,1);
      setTables(39,36,1);
      setTables(40,3,12);
      setTables(41,37,1);
      setTables(42,38,1);
      setTables(43,39,1);
      setTables(44,40,1);
      setTables(45,3,13);
      setTables(46,41,1);
      setTables(47,42,1);
      setTables(48,43,14);
      setTables(49,44,1);
      setTables(50,45,15);
      setTables(51,46,1);
      setTables(52,47,1);
      setTables(53,48,1);
      setTables(54,43,16);
      setTables(55,49,1);
      setTables(56,50,1);
      setTables(57,51,1);
    }
}


This file was generated on Wed May 03 20:59:55 PDT 2006 from file Parser.java
by the ilog.language.tools.Hilite Java tool written by Hassan Aït-Kaci