Changeset 3215 in webkit for trunk/JavaScriptCore/kjs/grammar.cpp


Ignore:
Timestamp:
Dec 30, 2002, 3:17:23 PM (22 years ago)
Author:
darin
Message:

Reviewed by Don and Maciej.

  • follow-on to my fix for 3134693 that fixes one more case of recursion and simplifies further
  • kjs/grammar.y: Remove SourceElementNode and just use a StatementNode instead. Reverse SourceElements rule so the recursive rule comes first as in the original KJS code (avoids actual parser recursion).
  • kjs/grammar.cpp: Regenerated.
  • kjs/grammar.cpp.h: Regenerated.
  • kjs/grammar.h: Regenerated.
  • kjs/nodes.h: Make processFuncDecl a virtual function in StatementNode so that we can use a StatementNode instead of a SourceElementNode. Add a call to reverseList in BlockNode to correct the order of the linked list in SourceElementsNode, to replace the technique where we reversed it in the parser. Remove SourceElementNode class, and make the element in SourceElementsNode be a StatementNode instead.
  • kjs/nodes.cpp: Remove SourceElementNode code. (StatementNode::processFuncDecl): Added empty function. (BlockNode::reverseList): Added. Used to make the SourceElements list ordered correctly.
  • kjs/nodes2string.cpp: Remove SourceElementNode code.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/grammar.cpp

    r3192 r3215  
    137137  ProgramNode         *prog;
    138138  AssignExprNode      *init;
    139   SourceElementNode   *src;
    140139  SourceElementsNode  *srcs;
    141140  StatListNode        *slist;
     
    308307    15,    62,    63,   145,     0,    15,    62,   144,    63,   145,
    309308     0,    58,     0,   144,    68,    58,     0,    64,    65,     0,
    310     64,   147,    65,     0,     0,   147,     0,   148,     0,   148,
    311    147,     0,   115,     0,   142,     0
     309    64,   147,    65,     0,     0,   147,     0,   148,     0,   147,
     310   148,     0,   115,     0,   142,     0
    312311};
    313312
     
    316315#if YYDEBUG != 0
    317316static const short yyrline[] = { 0,
    318    163,   165,   166,   167,   168,   169,   172,   178,   180,   182,
    319    183,   184,   185,   186,   189,   191,   192,   195,   197,   201,
    320    203,   206,   208,   211,   213,   217,   219,   220,   223,   225,
    321    226,   227,   228,   231,   233,   236,   238,   239,   240,   244,
    322    246,   249,   251,   254,   256,   259,   261,   262,   265,   267,
    323    268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
    324    280,   282,   283,   284,   287,   289,   290,   293,   295,   296,
    325    297,   300,   302,   304,   306,   308,   310,   312,   316,   318,
    326    319,   320,   321,   324,   326,   329,   331,   334,   336,   339,
    327    341,   345,   347,   351,   353,   357,   359,   363,   365,   366,
    328    367,   368,   369,   370,   371,   372,   373,   374,   375,   378,
    329    380,   383,   385,   386,   387,   388,   389,   390,   391,   392,
    330    393,   394,   395,   396,   397,   400,   402,   405,   407,   410,
    331    413,   422,   424,   428,   430,   433,   437,   441,   444,   451,
    332    453,   457,   459,   460,   463,   466,   469,   473,   479,   481,
    333    484,   486,   490,   492,   499,   501,   505,   507,   515,   517,
    334    521,   522,   528,   533,   538,   540,   544,   546,   549,   551,
    335    554,   556,   559,   561,   564,   570,   574,   576,   577,   580,
    336    584,   588,   591,   595,   597,   602,   604,   608,   611,   615,
    337    618,   622,   624,   627,   629
     317   162,   164,   165,   166,   167,   168,   171,   177,   179,   181,
     318   182,   183,   184,   185,   188,   190,   191,   194,   196,   200,
     319   202,   205,   207,   210,   212,   216,   218,   219,   222,   224,
     320   225,   226,   227,   230,   232,   235,   237,   238,   239,   243,
     321   245,   248,   250,   253,   255,   258,   260,   261,   264,   266,
     322   267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
     323   279,   281,   282,   283,   286,   288,   289,   292,   294,   295,
     324   296,   299,   301,   303,   305,   307,   309,   311,   315,   317,
     325   318,   319,   320,   323,   325,   328,   330,   333,   335,   338,
     326   340,   344,   346,   350,   352,   356,   358,   362,   364,   365,
     327   366,   367,   368,   369,   370,   371,   372,   373,   374,   377,
     328   379,   382,   384,   385,   386,   387,   388,   389,   390,   391,
     329   392,   393,   394,   395,   396,   399,   401,   404,   406,   409,
     330   412,   421,   423,   427,   429,   432,   436,   440,   443,   450,
     331   452,   456,   458,   459,   462,   465,   468,   472,   478,   480,
     332   483,   485,   489,   491,   498,   500,   504,   506,   514,   516,
     333   520,   521,   527,   532,   537,   539,   543,   545,   548,   550,
     334   553,   555,   558,   560,   563,   569,   573,   575,   576,   579,
     335   583,   587,   590,   594,   596,   601,   603,   607,   610,   614,
     336   617,   621,   623,   626,   628
    338337};
    339338#endif
     
    462461};
    463462
    464 static const short yypact[] = {   631,
    465 -32768,-32768,-32768,-32768,-32768,     3,   -38,   111,   -24,     5,
    466    -14,   335,  1066,  1066,   -12,-32768,   705,     9,  1066,    47,
    467     51,  1066,     0,  1066,  1066,-32768,    50,  1066,  1066,-32768,
    468   1066,   409,    12,  1066,  1066,  1066,  1066,-32768,-32768,-32768,
    469 -32768,    42,-32768,    83,   315,-32768,-32768,    71,   -25,    38,
    470     82,   239,    54,    68,    84,   133,   -23,-32768,-32768,    11,
     463static const short yypact[] = {   779,
     464-32768,-32768,-32768,-32768,-32768,     5,   -28,   111,   -30,     6,
     465   -31,   335,  1252,  1252,   -16,-32768,   853,    -5,  1252,     9,
     466    57,  1252,   -20,  1252,  1252,-32768,   -21,  1252,  1252,-32768,
     467  1252,   409,    -1,  1252,  1252,  1252,  1252,-32768,-32768,-32768,
     468-32768,    42,-32768,    43,   179,-32768,-32768,   -14,    12,   195,
     469    82,   118,    72,    85,    93,   151,   -23,-32768,-32768,    11,
    471470-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    472 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   631,-32768,
    473      6,-32768,   778,   114,-32768,    45,    42,-32768,   105,    17,
    474 -32768,-32768,     7,-32768,   129,   -42,-32768,-32768,    18,   112,
    475 -32768,-32768,  1066,   230,  1066,-32768,  1066,  1066,   -45,   483,
    476    162,-32768,-32768,   705,-32768,-32768,    -6,   150,   176,    50,
    477    220,   -37,   185,   212,-32768,   154,   850,   214,-32768,-32768,
    478 -32768,-32768,   922,  1066,   234,-32768,  1066,   237,-32768,-32768,
     471-32768,-32768,-32768,-32768,-32768,-32768,-32768,   779,-32768,-32768,
     472     7,-32768,   964,   161,-32768,    45,    42,-32768,   136,    17,
     473-32768,-32768,     8,-32768,   192,    24,-32768,-32768,    18,    90,
     474-32768,-32768,  1252,   236,  1252,-32768,  1252,  1252,   -45,   483,
     475   231,-32768,-32768,   853,-32768,-32768,    59,   191,   196,   -21,
     476   935,   123,   208,   557,-32768,   200,  1036,   203,-32768,-32768,
     477-32768,-32768,  1108,  1252,   222,-32768,  1252,   224,-32768,-32768,
    479478-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
    480 -32768,-32768,-32768,  1066,  1066,  1066,  1066,  1066,  1066,  1066,
    481   1066,  1066,  1066,  1066,  1066,  1066,  1066,  1066,  1066,  1066,
    482   1066,  1066,  1066,  1066,  1066,  1066,  1066,  1066,-32768,  1066,
    483 -32768,-32768,-32768,-32768,   244,    87,   241,   226,-32768,-32768,
    484 -32768,-32768,-32768,  1066,-32768,-32768,   -24,-32768,-32768,-32768,
    485     64,-32768,   248,   100,-32768,-32768,   103,   252,   121,   122,
    486    124,-32768,-32768,   253,     0,   283,-32768,-32768,-32768,-32768,
    487     35,  1066,-32768,-32768,    12,-32768,-32768,-32768,-32768,   181,
    488 -32768,   203,-32768,   223,-32768,-32768,-32768,-32768,-32768,    71,
    489     71,   -25,   -25,   -25,    38,    38,    38,    38,    38,    38,
    490     82,    82,    82,    82,   239,   239,   239,    84,   133,   249,
    491 -32768,   -15,   -41,  1066,  1066,-32768,-32768,   248,   190,   557,
    492 -32768,   248,   259,   705,  1066,   705,   255,   705,   262,-32768,
    493 -32768,   254,-32768,   994,-32768,  1066,-32768,-32768,  1066,  1066,
    494    298,  1066,   197,   245,-32768,   248,-32768,   260,-32768,-32768,
    495    307,   199,-32768,   323,-32768,-32768,   270,  1066,-32768,-32768,
    496 -32768,-32768,   200,  1066,   261,   705,  1066,-32768,-32768,   705,
    497 -32768,  1066,    23,   323,-32768,     0,-32768,   705,   201,  1066,
    498 -32768,   274,-32768,   232,   275,-32768,   323,-32768,-32768,-32768,
    499    705,   280,   705,   705,   705,   281,-32768,   705,-32768,-32768,
    500    705,   705,-32768,-32768,-32768,   348,   349,-32768
     479-32768,-32768,-32768,  1252,  1252,  1252,  1252,  1252,  1252,  1252,
     480  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,
     481  1252,  1252,  1252,  1252,  1252,  1252,  1252,  1252,-32768,  1252,
     482-32768,-32768,-32768,-32768,   226,    87,   217,   204,-32768,-32768,
     483-32768,-32768,-32768,  1252,-32768,-32768,   -30,-32768,-32768,-32768,
     484   105,-32768,   223,   103,-32768,-32768,   113,   227,   115,   116,
     485   117,-32768,-32768,   228,   -20,   253,-32768,-32768,-32768,-32768,
     486    35,  1252,-32768,-32768,    -1,-32768,-32768,-32768,-32768,   119,
     487-32768,   202,-32768,   206,-32768,-32768,-32768,-32768,-32768,   -14,
     488   -14,    12,    12,    12,   195,   195,   195,   195,   195,   195,
     489    82,    82,    82,    82,   118,   118,   118,    93,   151,   225,
     490-32768,    -3,   -44,  1252,  1252,-32768,-32768,   223,   126,   631,
     491-32768,   223,   233,   853,  1252,   853,   229,   853,   234,-32768,
     492-32768,   232,-32768,  1180,-32768,  1252,-32768,-32768,  1252,  1252,
     493   271,  1252,   127,   212,-32768,   223,-32768,   705,-32768,-32768,
     494   274,   157,-32768,   289,-32768,-32768,   237,  1252,-32768,-32768,
     495-32768,-32768,   174,  1252,   218,   853,  1252,-32768,-32768,   853,
     496-32768,  1252,    23,   289,-32768,   -20,-32768,   853,   175,  1252,
     497-32768,   243,-32768,   207,   238,-32768,   289,-32768,-32768,-32768,
     498   853,   246,   853,   853,   853,   245,-32768,   853,-32768,-32768,
     499   853,   853,-32768,-32768,-32768,   312,   314,-32768
    501500};
    502501
    503502static const short yypgoto[] = {-32768,
    504 -32768,-32768,-32768,   126,-32768,-32768,   135,   346,   351,-32768,
    505    -34,-32768,    41,-32768,     1,   148,   -10,    15,   117,   123,
    506 -32768,-32768,   184,   196,-32768,-32768,  -122,-32768,    -9,   -17,
    507    -22,    29,-32768,   191,   178,   118,-32768,-32768,-32768,-32768,
    508   -225,-32768,-32768,-32768,-32768,-32768,-32768,    44,-32768,    55,
    509 -32768,-32768,-32768,-32768,-32768,   166,-32768,-32768,   182,  -223,
    510 -32768,     2,-32768
     503-32768,-32768,-32768,    91,-32768,-32768,    94,   309,   310,-32768,
     504   -34,-32768,    41,-32768,     1,   120,    88,   -18,    75,    78,
     505-32768,-32768,   143,   145,-32768,-32768,  -122,-32768,    -9,   -17,
     506   -22,   -25,-32768,   138,   128,    67,-32768,-32768,-32768,-32768,
     507  -249,-32768,-32768,-32768,-32768,-32768,-32768,    -7,-32768,    13,
     508-32768,-32768,-32768,-32768,-32768,   129,-32768,-32768,   131,  -223,
     509-32768,     2,   -74
    511510};
    512511
    513512
    514 #define YYLAST          1140
     513#define YYLAST          1326
    515514
    516515
    517516static const short yytable[] = {   104,
    518    111,    78,    99,    80,   227,    92,   183,   199,   290,   139,
    519    231,   179,   109,   101,   102,   202,   177,   196,   205,   106,
    520    203,   117,   180,    83,   112,   113,   197,   220,   115,   116,
    521    221,   236,   335,    89,   129,   130,   131,   132,   212,   294,
    522    189,   190,   292,    95,   295,   158,   159,    96,   299,   103,
    523    189,   190,   193,   100,   100,   260,   219,   261,   178,   100,
    524     81,   180,    93,   110,   100,   100,   315,   194,   100,   100,
    525    105,   266,   318,   187,   100,   100,   100,   100,   180,   125,
    526    182,   160,   161,   162,   197,   180,    82,   336,    94,   184,
    527    200,   332,   191,   207,   181,   209,   218,   210,   211,   283,
    528    198,   206,   191,   133,   342,   163,   164,   134,   107,   192,
    529    264,   135,   108,     1,     2,     3,     4,     5,   114,   165,
    530    166,   202,     8,   186,   232,    84,   268,   234,   140,   141,
    531     16,   155,   173,   142,   143,   144,   145,   146,   147,   148,
    532    149,   150,   151,   152,   133,   156,   157,   174,   137,   242,
    533    243,   244,   138,   140,   141,   237,   238,   239,   167,   168,
    534     26,   310,   272,   311,   175,   274,   312,   273,    85,   153,
    535    180,    30,    31,   176,    86,    96,    33,   245,   246,   247,
    536    248,   249,   250,   276,   277,   327,   278,   194,   180,   180,
    537    201,   180,   280,   214,   215,   100,   100,   100,   100,   100,
     517   111,    78,    99,   182,   227,    80,    92,   183,   199,   139,
     518   231,   179,   109,   101,   102,   294,   177,   196,   205,   106,
     519   290,   117,   180,   197,   112,   113,    95,    89,   115,   116,
     520    96,   236,   335,    83,   129,   130,   131,   132,   212,   292,
     521   189,   190,   315,   110,   295,   103,   155,   114,   299,   182,
     522   189,   190,   193,   100,   100,   260,   105,   261,   178,   100,
     523   156,   157,    81,    93,   100,   100,   125,   332,   100,   100,
     524   107,   266,   318,   187,   100,   100,   100,   100,   180,   194,
     525   342,   202,   158,   159,   197,   180,   203,   336,    82,    94,
     526   184,   200,   191,   207,   181,   209,   218,   210,   211,   283,
     527   198,   206,   191,   133,   133,   163,   164,   134,   137,   192,
     528   264,   135,   138,     1,     2,     3,     4,     5,   108,   165,
     529   166,   219,     8,   186,   232,    84,   180,   234,   140,   141,
     530    16,   140,   141,   142,   143,   144,   145,   146,   147,   148,
     531   149,   150,   151,   152,   245,   246,   247,   248,   249,   250,
     532   173,   169,   170,   171,   172,   237,   238,   239,   167,   168,
     533    26,   310,   202,   311,   174,   272,   312,   268,    85,   153,
     534   273,    30,    31,   175,    86,   274,    33,   276,   277,   278,
     535   180,   285,   180,   180,   180,   327,   286,   220,   296,   316,
     536   221,   176,   280,   273,   180,   100,   100,   100,   100,   100,
    538537   100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
    539    100,   100,   100,   100,   100,   100,   100,   100,   -27,  -126,
    540    224,   225,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
    541   -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
    542   -126,  -126,  -126,   285,   -28,  -126,  -126,  -126,   286,  -126,
    543   -126,   208,   296,   222,   293,   187,   301,   273,   303,   316,
    544    306,   321,   328,   341,   180,   302,   180,   180,   180,   287,
    545    180,   298,   169,   170,   171,   172,   223,  -126,  -126,  -126,
    546    313,   228,   187,  -126,  -126,   251,   252,   253,   254,   288,
    547    180,   233,  -126,  -126,   235,   255,   256,   257,   331,   180,
    548    344,   262,   333,   339,   329,   240,   241,   187,   180,   265,
    549    340,   270,   334,   275,   279,   215,   300,   289,   304,   307,
    550    187,   314,   308,   347,   319,   349,   350,   350,   317,   320,
    551    354,   322,   326,   355,   355,    97,   343,     1,     2,     3,
    552      4,     5,   348,   345,   330,   353,     8,   357,   358,    84,
    553    284,    13,    14,    87,    16,   282,   140,   141,    88,   258,
    554     19,   142,   143,   144,   145,   146,   147,   148,   149,   150,
    555    151,   152,   259,   352,   267,   263,    24,    25,   338,   291,
    556    346,   281,   269,     0,    26,     0,     0,     0,     0,     0,
    557      0,     0,    85,    28,    29,    30,    31,   153,    86,     0,
     538   100,   100,   100,   100,   100,   100,   100,   100,   194,   321,
     539   140,   141,    96,   182,   180,   142,   143,   144,   145,   146,
     540   147,   148,   149,   150,   151,   152,   328,   341,   160,   161,
     541   162,   180,   180,   251,   252,   253,   254,   242,   243,   244,
     542   255,   256,   257,   201,   293,   187,   301,   208,   303,   -27,
     543   306,   153,   214,   215,   -28,   302,   224,   225,   287,   180,
     544   228,   298,   288,   180,   180,   344,   222,   240,   241,   233,
     545   313,   235,   187,   262,   180,   215,   270,   265,   275,   279,
     546   300,   307,   304,   289,   314,   317,   320,   322,   331,   326,
     547   308,   330,   333,   339,   329,   343,   345,   187,   348,   353,
     548   340,   357,   334,   358,   282,   284,    87,    88,   258,   352,
     549   187,   259,   263,   347,   267,   349,   350,   350,   291,   346,
     550   354,   269,     0,   355,   355,    97,   338,     1,     2,     3,
     551     4,     5,     0,     0,   281,     0,     8,     0,     0,    84,
     552     0,    13,    14,     0,    16,     0,     0,     0,     0,     0,
     553    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     554     0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
     555     0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
     556     0,     0,    85,    28,    29,    30,    31,     0,    86,     0,
    558557    33,     0,     0,     0,     0,    34,    35,    36,    37,     0,
    559558     0,     1,     2,     3,   118,   119,     6,     0,    98,     7,
     
    578577     0,     0,     0,     0,     0,     0,    26,     0,     0,     0,
    579578     0,     0,     0,     0,    27,    28,    29,    30,    31,     0,
    580     32,   297,    33,     0,     0,     0,     0,    34,    35,    36,
     579    32,   223,    33,     0,     0,     0,     0,    34,    35,    36,
    581580    37,     0,     0,     1,     2,     3,     4,     5,     6,     0,
    582581    38,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     
    585584     0,     0,    24,    25,     0,     0,     0,     0,     0,     0,
    586585    26,     0,     0,     0,     0,     0,     0,     0,    27,    28,
    587     29,    30,    31,     0,    32,     0,    33,     0,     0,     0,
     586    29,    30,    31,     0,    32,   297,    33,     0,     0,     0,
    588587     0,    34,    35,    36,    37,     0,     0,     1,     2,     3,
    589      4,     5,     6,     0,    38,     7,     8,     9,    10,    84,
     588     4,     5,     6,     0,    38,     7,     8,     9,    10,    11,
    590589    12,    13,    14,    15,    16,    17,    18,     0,     0,     0,
    591590    19,    20,    21,     0,    22,    23,     0,     0,     0,     0,
    592591     0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
    593592     0,     0,     0,     0,    26,     0,     0,     0,     0,     0,
    594      0,     0,    27,    28,    29,    30,    31,     0,    32,     0,
     593     0,     0,    27,    28,    29,    30,    31,     0,    32,   319,
    595594    33,     0,     0,     0,     0,    34,    35,    36,    37,     0,
    596      1,     2,     3,     4,     5,     0,     0,     0,    38,     8,
    597    185,     0,    84,     0,    13,    14,     0,    16,     0,     0,
     595     0,     1,     2,     3,     4,     5,     6,     0,    38,     7,
     596     8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     597    18,     0,     0,     0,    19,    20,    21,     0,    22,    23,
     598     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     599    24,    25,     0,     0,     0,     0,     0,     0,    26,     0,
     600     0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
     601    31,     0,    32,     0,    33,     0,     0,     0,     0,    34,
     602    35,    36,    37,     0,     0,     1,     2,     3,     4,     5,
     603     6,     0,    38,     7,     8,     9,    10,    84,    12,    13,
     604    14,    15,    16,    17,    18,     0,     0,     0,    19,    20,
     605    21,     0,    22,    23,     0,     0,     0,     0,     0,     0,
     606     0,     0,     0,     0,    24,    25,     0,     0,     0,     0,
     607     0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
     608    27,    28,    29,    30,    31,     0,    32,     0,    33,     0,
     609     0,     0,     0,    34,    35,    36,    37,     0,     0,     0,
     610     0,     0,     0,     0,  -126,     0,    38,  -126,  -126,  -126,
     611  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
     612  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,     0,     0,
     613  -126,  -126,  -126,     0,  -126,  -126,     1,     2,     3,     4,
     614     5,     0,     0,     0,     0,     8,   185,     0,    84,     0,
     615    13,    14,     0,    16,     0,     0,     0,     0,     0,    19,
     616     0,     0,  -126,  -126,  -126,     0,     0,     0,  -126,  -126,
     617     0,     0,     0,     0,     0,    24,    25,  -126,  -126,     0,
     618     0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
     619     0,    85,    28,    29,    30,    31,     0,    86,     0,    33,
     620     0,     0,     0,     0,    34,    35,    36,    37,     1,     2,
     621     3,     4,     5,     0,     0,     0,     0,     8,     0,     0,
     622    84,     0,    13,    14,     0,    16,     0,     0,     0,     0,
     623     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
     624     0,     0,     0,     0,     0,     0,     0,    24,    25,     0,
     625     0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
     626     0,     0,     0,    85,    28,    29,    30,    31,     0,    86,
     627     0,    33,   226,     0,     0,     0,    34,    35,    36,    37,
     628     1,     2,     3,     4,     5,     0,     0,     0,     0,     8,
     629     0,     0,    84,     0,    13,    14,     0,    16,     0,     0,
    598630     0,     0,     0,    19,     0,     0,     0,     0,     0,     0,
    599631     0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
    600632    25,     0,     0,     0,     0,     0,     0,    26,     0,     0,
    601633     0,     0,     0,     0,     0,    85,    28,    29,    30,    31,
    602      0,    86,     0,    33,     0,     0,     0,     0,    34,    35,
     634   229,    86,     0,    33,     0,     0,     0,     0,    34,    35,
    603635    36,    37,     1,     2,     3,     4,     5,     0,     0,     0,
    604636     0,     8,     0,     0,    84,     0,    13,    14,     0,    16,
     
    607639     0,    24,    25,     0,     0,     0,     0,     0,     0,    26,
    608640     0,     0,     0,     0,     0,     0,     0,    85,    28,    29,
    609     30,    31,     0,    86,     0,    33,   226,     0,     0,     0,
     641    30,    31,     0,    86,     0,    33,   309,     0,     0,     0,
    610642    34,    35,    36,    37,     1,     2,     3,     4,     5,     0,
    611643     0,     0,     0,     8,     0,     0,    84,     0,    13,    14,
     
    614646     0,     0,     0,    24,    25,     0,     0,     0,     0,     0,
    615647     0,    26,     0,     0,     0,     0,     0,     0,     0,    85,
    616     28,    29,    30,    31,   229,    86,     0,    33,     0,     0,
    617      0,     0,    34,    35,    36,    37,     1,     2,     3,     4,
    618      5,     0,     0,     0,     0,     8,     0,     0,    84,     0,
    619     13,    14,     0,    16,     0,     0,     0,     0,     0,    19,
    620      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    621      0,     0,     0,     0,     0,    24,    25,     0,     0,     0,
    622      0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
    623      0,    85,    28,    29,    30,    31,     0,    86,     0,    33,
    624    309,     0,     0,     0,    34,    35,    36,    37,     1,     2,
    625      3,     4,     5,     0,     0,     0,     0,     8,     0,     0,
    626     84,     0,    13,    14,     0,    16,     0,     0,     0,     0,
    627      0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
    628      0,     0,     0,     0,     0,     0,     0,    24,    25,     0,
    629      0,     0,     0,     0,     0,    26,     0,     0,     0,     0,
    630      0,     0,     0,    85,    28,    29,    30,    31,     0,    86,
    631      0,    33,     0,     0,     0,     0,    34,    35,    36,    37
     648    28,    29,    30,    31,     0,    86,     0,    33,     0,     0,
     649     0,     0,    34,    35,    36,    37
    632650};
    633651
    634652static const short yycheck[] = {    17,
    635     23,     0,    12,     1,   127,     1,     1,     1,    24,    44,
    636    133,     1,    22,    13,    14,    58,    40,     1,     1,    19,
    637     63,    31,    68,    62,    24,    25,    68,    65,    28,    29,
    638     68,   154,    10,    58,    34,    35,    36,    37,    84,   265,
    639      6,     7,    84,    58,   268,    71,    72,    62,   272,    62,
    640      6,     7,    87,    13,    14,   178,    63,   180,    82,    19,
    641     58,    68,    58,    64,    24,    25,   292,    83,    28,    29,
    642     62,   194,   296,    83,    34,    35,    36,    37,    68,    68,
    643     79,    44,    45,    46,    68,    68,    84,    65,    84,    84,
    644     84,   317,    58,   103,    84,   105,   114,   107,   108,   222,
    645     84,    84,    58,    62,   330,    24,    25,    66,    62,    65,
    646     24,    70,    62,     3,     4,     5,     6,     7,    69,    38,
    647     39,    58,    12,    83,   134,    15,    63,   137,    42,    43,
    648     20,    61,    79,    47,    48,    49,    50,    51,    52,    53,
    649     54,    55,    56,    57,    62,    75,    76,    80,    66,   160,
    650    161,   162,    70,    42,    43,   155,   156,   157,    77,    78,
    651     50,   284,    63,   286,    81,    63,   289,    68,    58,    83,
    652     68,    61,    62,    41,    64,    62,    66,   163,   164,   165,
    653    166,   167,   168,    63,    63,   308,    63,    83,    68,    68,
    654     62,    68,   215,    32,    33,   155,   156,   157,   158,   159,
     653    23,     0,    12,    78,   127,     1,     1,     1,     1,    44,
     654   133,     1,    22,    13,    14,   265,    40,     1,     1,    19,
     655    24,    31,    68,    68,    24,    25,    58,    58,    28,    29,
     656    62,   154,    10,    62,    34,    35,    36,    37,    84,    84,
     657     6,     7,   292,    64,   268,    62,    61,    69,   272,   124,
     658     6,     7,    87,    13,    14,   178,    62,   180,    82,    19,
     659    75,    76,    58,    58,    24,    25,    68,   317,    28,    29,
     660    62,   194,   296,    83,    34,    35,    36,    37,    68,    83,
     661   330,    58,    71,    72,    68,    68,    63,    65,    84,    84,
     662    84,    84,    58,   103,    84,   105,   114,   107,   108,   222,
     663    84,    84,    58,    62,    62,    24,    25,    66,    66,    65,
     664    24,    70,    70,     3,     4,     5,     6,     7,    62,    38,
     665    39,    63,    12,    83,   134,    15,    68,   137,    42,    43,
     666    20,    42,    43,    47,    48,    49,    50,    51,    52,    53,
     667    54,    55,    56,    57,   163,   164,   165,   166,   167,   168,
     668    79,    34,    35,    36,    37,   155,   156,   157,    77,    78,
     669    50,   284,    58,   286,    80,    63,   289,    63,    58,    83,
     670    68,    61,    62,    81,    64,    63,    66,    63,    63,    63,
     671    68,    63,    68,    68,    68,   308,    68,    65,    63,    63,
     672    68,    41,   215,    68,    68,   155,   156,   157,   158,   159,
    655673   160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
    656    170,   171,   172,   173,   174,   175,   176,   177,    69,     0,
    657     67,    68,     3,     4,     5,     6,     7,     8,     9,    10,
    658     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    659     21,    22,    23,    63,    69,    26,    27,    28,    68,    30,
    660     31,    22,    63,    69,   264,   265,   274,    68,   276,    63,
    661    278,    63,    63,    63,    68,   275,    68,    68,    68,    67,
    662     68,   270,    34,    35,    36,    37,    65,    58,    59,    60,
    663    290,    68,   292,    64,    65,   169,   170,   171,   172,    67,
    664     68,    58,    73,    74,    58,   173,   174,   175,   316,    68,
    665     69,    58,   320,   326,   314,   158,   159,   317,    68,    84,
    666    328,    64,   322,    62,    62,    33,    58,    69,    64,    58,
    667    330,    24,    69,   341,    65,   343,   344,   345,    84,    23,
    668    348,     9,    63,   351,   352,     1,    63,     3,     4,     5,
    669      6,     7,    63,    69,    84,    65,    12,     0,     0,    15,
    670    225,    17,    18,     8,    20,   221,    42,    43,     8,   176,
    671     26,    47,    48,    49,    50,    51,    52,    53,    54,    55,
    672     56,    57,   177,   345,   197,   185,    42,    43,   324,   262,
    673    337,   216,   201,    -1,    50,    -1,    -1,    -1,    -1,    -1,
    674     -1,    -1,    58,    59,    60,    61,    62,    83,    64,    -1,
     674   170,   171,   172,   173,   174,   175,   176,   177,    83,    63,
     675    42,    43,    62,   298,    68,    47,    48,    49,    50,    51,
     676    52,    53,    54,    55,    56,    57,    63,    63,    44,    45,
     677    46,    68,    68,   169,   170,   171,   172,   160,   161,   162,
     678   173,   174,   175,    62,   264,   265,   274,    22,   276,    69,
     679   278,    83,    32,    33,    69,   275,    67,    68,    67,    68,
     680    68,   270,    67,    68,    68,    69,    69,   158,   159,    58,
     681   290,    58,   292,    58,    68,    33,    64,    84,    62,    62,
     682    58,    58,    64,    69,    24,    84,    23,     9,   316,    63,
     683    69,    84,   320,   326,   314,    63,    69,   317,    63,    65,
     684   328,     0,   322,     0,   221,   225,     8,     8,   176,   345,
     685   330,   177,   185,   341,   197,   343,   344,   345,   262,   337,
     686   348,   201,    -1,   351,   352,     1,   324,     3,     4,     5,
     687     6,     7,    -1,    -1,   216,    -1,    12,    -1,    -1,    15,
     688    -1,    17,    18,    -1,    20,    -1,    -1,    -1,    -1,    -1,
     689    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     690    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
     691    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
     692    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,    -1,
    675693    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    -1,
    676694    -1,     3,     4,     5,     6,     7,     8,    -1,    84,    11,
     
    702720    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,
    703721    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,
    704     60,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
     722    60,    61,    62,    -1,    64,    65,    66,    -1,    -1,    -1,
    705723    -1,    71,    72,    73,    74,    -1,    -1,     3,     4,     5,
    706724     6,     7,     8,    -1,    84,    11,    12,    13,    14,    15,
     
    709727    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,
    710728    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,
    711     -1,    -1,    58,    59,    60,    61,    62,    -1,    64,    -1,
     729    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,    65,
    712730    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74,    -1,
    713      3,     4,     5,     6,     7,    -1,    -1,    -1,    84,    12,
    714     13,    -1,    15,    -1,    17,    18,    -1,    20,    -1,    -1,
     731    -1,     3,     4,     5,     6,     7,     8,    -1,    84,    11,
     732    12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     733    22,    -1,    -1,    -1,    26,    27,    28,    -1,    30,    31,
     734    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     735    42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
     736    -1,    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,
     737    62,    -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,
     738    72,    73,    74,    -1,    -1,     3,     4,     5,     6,     7,
     739     8,    -1,    84,    11,    12,    13,    14,    15,    16,    17,
     740    18,    19,    20,    21,    22,    -1,    -1,    -1,    26,    27,
     741    28,    -1,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
     742    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,
     743    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     744    58,    59,    60,    61,    62,    -1,    64,    -1,    66,    -1,
     745    -1,    -1,    -1,    71,    72,    73,    74,    -1,    -1,    -1,
     746    -1,    -1,    -1,    -1,     0,    -1,    84,     3,     4,     5,
     747     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     748    16,    17,    18,    19,    20,    21,    22,    23,    -1,    -1,
     749    26,    27,    28,    -1,    30,    31,     3,     4,     5,     6,
     750     7,    -1,    -1,    -1,    -1,    12,    13,    -1,    15,    -1,
     751    17,    18,    -1,    20,    -1,    -1,    -1,    -1,    -1,    26,
     752    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    64,    65,
     753    -1,    -1,    -1,    -1,    -1,    42,    43,    73,    74,    -1,
     754    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
     755    -1,    58,    59,    60,    61,    62,    -1,    64,    -1,    66,
     756    -1,    -1,    -1,    -1,    71,    72,    73,    74,     3,     4,
     757     5,     6,     7,    -1,    -1,    -1,    -1,    12,    -1,    -1,
     758    15,    -1,    17,    18,    -1,    20,    -1,    -1,    -1,    -1,
     759    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     760    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
     761    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
     762    -1,    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,
     763    -1,    66,    67,    -1,    -1,    -1,    71,    72,    73,    74,
     764     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
     765    -1,    -1,    15,    -1,    17,    18,    -1,    20,    -1,    -1,
    715766    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,
    716767    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
    717768    43,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,
    718769    -1,    -1,    -1,    -1,    -1,    58,    59,    60,    61,    62,
    719     -1,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
     770    63,    64,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,
    720771    73,    74,     3,     4,     5,     6,     7,    -1,    -1,    -1,
    721772    -1,    12,    -1,    -1,    15,    -1,    17,    18,    -1,    20,
     
    731782    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,    -1,    -1,
    732783    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    58,
    733     59,    60,    61,    62,    63,    64,    -1,    66,    -1,    -1,
    734     -1,    -1,    71,    72,    73,    74,     3,     4,     5,     6,
    735      7,    -1,    -1,    -1,    -1,    12,    -1,    -1,    15,    -1,
    736     17,    18,    -1,    20,    -1,    -1,    -1,    -1,    -1,    26,
    737     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    738     -1,    -1,    -1,    -1,    -1,    42,    43,    -1,    -1,    -1,
    739     -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
    740     -1,    58,    59,    60,    61,    62,    -1,    64,    -1,    66,
    741     67,    -1,    -1,    -1,    71,    72,    73,    74,     3,     4,
    742      5,     6,     7,    -1,    -1,    -1,    -1,    12,    -1,    -1,
    743     15,    -1,    17,    18,    -1,    20,    -1,    -1,    -1,    -1,
    744     -1,    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    745     -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    -1,
    746     -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,
    747     -1,    -1,    -1,    58,    59,    60,    61,    62,    -1,    64,
    748     -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,    74
     784    59,    60,    61,    62,    -1,    64,    -1,    66,    -1,    -1,
     785    -1,    -1,    71,    72,    73,    74
    749786};
    750787/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
     
    12941331
    12951332case 1:
     1333#line 163 "grammar.y"
     1334{ yyval.node = new NullNode(); ;
     1335    break;}
     1336case 2:
    12961337#line 164 "grammar.y"
    1297 { yyval.node = new NullNode(); ;
    1298     break;}
    1299 case 2:
     1338{ yyval.node = new BooleanNode(true); ;
     1339    break;}
     1340case 3:
    13001341#line 165 "grammar.y"
    1301 { yyval.node = new BooleanNode(true); ;
    1302     break;}
    1303 case 3:
     1342{ yyval.node = new BooleanNode(false); ;
     1343    break;}
     1344case 4:
    13041345#line 166 "grammar.y"
    1305 { yyval.node = new BooleanNode(false); ;
    1306     break;}
    1307 case 4:
     1346{ yyval.node = new NumberNode(yyvsp[0].dval); ;
     1347    break;}
     1348case 5:
    13081349#line 167 "grammar.y"
    1309 { yyval.node = new NumberNode(yyvsp[0].dval); ;
    1310     break;}
    1311 case 5:
     1350{ yyval.node = new StringNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ;
     1351    break;}
     1352case 6:
    13121353#line 168 "grammar.y"
    1313 { yyval.node = new StringNode(yyvsp[0].ustr); delete yyvsp[0].ustr; ;
    1314     break;}
    1315 case 6:
    1316 #line 169 "grammar.y"
    13171354{ Lexer *l = Lexer::curr();
    13181355                                     if (!l->scanRegExp()) YYABORT;
     
    13201357    break;}
    13211358case 7:
    1322 #line 173 "grammar.y"
     1359#line 172 "grammar.y"
    13231360{ Lexer *l = Lexer::curr();
    13241361                                     if (!l->scanRegExp()) YYABORT;
     
    13261363    break;}
    13271364case 8:
     1365#line 178 "grammar.y"
     1366{ yyval.node = new ThisNode(); ;
     1367    break;}
     1368case 9:
    13281369#line 179 "grammar.y"
    1329 { yyval.node = new ThisNode(); ;
    1330     break;}
    1331 case 9:
    1332 #line 180 "grammar.y"
    13331370{ yyval.node = new ResolveNode(*yyvsp[0].ident);
    13341371                                     delete yyvsp[0].ident; ;
    13351372    break;}
    13361373case 12:
     1374#line 183 "grammar.y"
     1375{ yyval.node = new GroupNode(yyvsp[-1].node); ;
     1376    break;}
     1377case 13:
    13371378#line 184 "grammar.y"
    1338 { yyval.node = new GroupNode(yyvsp[-1].node); ;
    1339     break;}
    1340 case 13:
     1379{ yyval.node = new ObjectLiteralNode(0L); ;
     1380    break;}
     1381case 14:
    13411382#line 185 "grammar.y"
    1342 { yyval.node = new ObjectLiteralNode(0L); ;
    1343     break;}
    1344 case 14:
    1345 #line 186 "grammar.y"
    13461383{ yyval.node = new ObjectLiteralNode(yyvsp[-1].plist); ;
    13471384    break;}
    13481385case 15:
     1386#line 189 "grammar.y"
     1387{ yyval.node = new ArrayNode(yyvsp[-1].ival); ;
     1388    break;}
     1389case 16:
    13491390#line 190 "grammar.y"
    1350 { yyval.node = new ArrayNode(yyvsp[-1].ival); ;
    1351     break;}
    1352 case 16:
     1391{ yyval.node = new ArrayNode(yyvsp[-1].elm); ;
     1392    break;}
     1393case 17:
    13531394#line 191 "grammar.y"
    1354 { yyval.node = new ArrayNode(yyvsp[-1].elm); ;
    1355     break;}
    1356 case 17:
    1357 #line 192 "grammar.y"
    13581395{ yyval.node = new ArrayNode(yyvsp[-1].ival, yyvsp[-3].elm); ;
    13591396    break;}
    13601397case 18:
    1361 #line 196 "grammar.y"
     1398#line 195 "grammar.y"
    13621399{ yyval.elm = new ElementNode(yyvsp[-1].ival, yyvsp[0].node); ;
    13631400    break;}
    13641401case 19:
    1365 #line 198 "grammar.y"
     1402#line 197 "grammar.y"
    13661403{ yyval.elm = new ElementNode(yyvsp[-3].elm, yyvsp[-1].ival, yyvsp[0].node); ;
    13671404    break;}
    13681405case 20:
    1369 #line 202 "grammar.y"
     1406#line 201 "grammar.y"
    13701407{ yyval.ival = 0; ;
    13711408    break;}
    13721409case 22:
     1410#line 206 "grammar.y"
     1411{ yyval.ival = 1; ;
     1412    break;}
     1413case 23:
    13731414#line 207 "grammar.y"
    1374 { yyval.ival = 1; ;
    1375     break;}
    1376 case 23:
    1377 #line 208 "grammar.y"
    13781415{ yyval.ival = yyvsp[-1].ival + 1; ;
    13791416    break;}
    13801417case 24:
    1381 #line 212 "grammar.y"
     1418#line 211 "grammar.y"
    13821419{ yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node); ;
    13831420    break;}
    13841421case 25:
    1385 #line 214 "grammar.y"
     1422#line 213 "grammar.y"
    13861423{ yyval.plist = new PropertyValueNode(yyvsp[-2].pnode, yyvsp[0].node, yyvsp[-4].plist); ;
    13871424    break;}
    13881425case 26:
     1426#line 217 "grammar.y"
     1427{ yyval.pnode = new PropertyNode(*yyvsp[0].ident); delete yyvsp[0].ident; ;
     1428    break;}
     1429case 27:
    13891430#line 218 "grammar.y"
    1390 { yyval.pnode = new PropertyNode(*yyvsp[0].ident); delete yyvsp[0].ident; ;
    1391     break;}
    1392 case 27:
     1431{ yyval.pnode = new PropertyNode(Identifier(*yyvsp[0].ustr)); delete yyvsp[0].ustr; ;
     1432    break;}
     1433case 28:
    13931434#line 219 "grammar.y"
    1394 { yyval.pnode = new PropertyNode(Identifier(*yyvsp[0].ustr)); delete yyvsp[0].ustr; ;
    1395     break;}
    1396 case 28:
    1397 #line 220 "grammar.y"
    13981435{ yyval.pnode = new PropertyNode(yyvsp[0].dval); ;
    13991436    break;}
    14001437case 31:
     1438#line 225 "grammar.y"
     1439{ yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
     1440    break;}
     1441case 32:
    14011442#line 226 "grammar.y"
    1402 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
    1403     break;}
    1404 case 32:
     1443{ yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); delete yyvsp[0].ident; ;
     1444    break;}
     1445case 33:
    14051446#line 227 "grammar.y"
    1406 { yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident); delete yyvsp[0].ident; ;
    1407     break;}
    1408 case 33:
    1409 #line 228 "grammar.y"
    14101447{ yyval.node = new NewExprNode(yyvsp[-1].node, yyvsp[0].args); ;
    14111448    break;}
    14121449case 35:
    1413 #line 233 "grammar.y"
     1450#line 232 "grammar.y"
    14141451{ yyval.node = new NewExprNode(yyvsp[0].node); ;
    14151452    break;}
    14161453case 36:
     1454#line 236 "grammar.y"
     1455{ yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
     1456    break;}
     1457case 37:
    14171458#line 237 "grammar.y"
    14181459{ yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
    14191460    break;}
    1420 case 37:
     1461case 38:
    14211462#line 238 "grammar.y"
    1422 { yyval.node = new FunctionCallNode(yyvsp[-1].node, yyvsp[0].args); ;
    1423     break;}
    1424 case 38:
     1463{ yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
     1464    break;}
     1465case 39:
    14251466#line 239 "grammar.y"
    1426 { yyval.node = new AccessorNode1(yyvsp[-3].node, yyvsp[-1].node); ;
    1427     break;}
    1428 case 39:
    1429 #line 240 "grammar.y"
    14301467{ yyval.node = new AccessorNode2(yyvsp[-2].node, *yyvsp[0].ident);
    14311468                                     delete yyvsp[0].ident; ;
    14321469    break;}
    14331470case 40:
     1471#line 244 "grammar.y"
     1472{ yyval.args = new ArgumentsNode(0L); ;
     1473    break;}
     1474case 41:
    14341475#line 245 "grammar.y"
    1435 { yyval.args = new ArgumentsNode(0L); ;
    1436     break;}
    1437 case 41:
    1438 #line 246 "grammar.y"
    14391476{ yyval.args = new ArgumentsNode(yyvsp[-1].alist); ;
    14401477    break;}
    14411478case 42:
     1479#line 249 "grammar.y"
     1480{ yyval.alist = new ArgumentListNode(yyvsp[0].node); ;
     1481    break;}
     1482case 43:
    14421483#line 250 "grammar.y"
    1443 { yyval.alist = new ArgumentListNode(yyvsp[0].node); ;
    1444     break;}
    1445 case 43:
    1446 #line 251 "grammar.y"
    14471484{ yyval.alist = new ArgumentListNode(yyvsp[-2].alist, yyvsp[0].node); ;
    14481485    break;}
    14491486case 47:
     1487#line 260 "grammar.y"
     1488{ yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ;
     1489    break;}
     1490case 48:
    14501491#line 261 "grammar.y"
    1451 { yyval.node = new PostfixNode(yyvsp[-1].node, OpPlusPlus); ;
    1452     break;}
    1453 case 48:
    1454 #line 262 "grammar.y"
    14551492{ yyval.node = new PostfixNode(yyvsp[-1].node, OpMinusMinus); ;
    14561493    break;}
    14571494case 50:
     1495#line 266 "grammar.y"
     1496{ yyval.node = new DeleteNode(yyvsp[0].node); ;
     1497    break;}
     1498case 51:
    14581499#line 267 "grammar.y"
    1459 { yyval.node = new DeleteNode(yyvsp[0].node); ;
    1460     break;}
    1461 case 51:
     1500{ yyval.node = new VoidNode(yyvsp[0].node); ;
     1501    break;}
     1502case 52:
    14621503#line 268 "grammar.y"
    1463 { yyval.node = new VoidNode(yyvsp[0].node); ;
    1464     break;}
    1465 case 52:
     1504{ yyval.node = new TypeOfNode(yyvsp[0].node); ;
     1505    break;}
     1506case 53:
    14661507#line 269 "grammar.y"
    1467 { yyval.node = new TypeOfNode(yyvsp[0].node); ;
    1468     break;}
    1469 case 53:
     1508{ yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
     1509    break;}
     1510case 54:
    14701511#line 270 "grammar.y"
    14711512{ yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
    14721513    break;}
    1473 case 54:
     1514case 55:
    14741515#line 271 "grammar.y"
    1475 { yyval.node = new PrefixNode(OpPlusPlus, yyvsp[0].node); ;
    1476     break;}
    1477 case 55:
     1516{ yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
     1517    break;}
     1518case 56:
    14781519#line 272 "grammar.y"
    14791520{ yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
    14801521    break;}
    1481 case 56:
     1522case 57:
    14821523#line 273 "grammar.y"
    1483 { yyval.node = new PrefixNode(OpMinusMinus, yyvsp[0].node); ;
    1484     break;}
    1485 case 57:
     1524{ yyval.node = new UnaryPlusNode(yyvsp[0].node); ;
     1525    break;}
     1526case 58:
    14861527#line 274 "grammar.y"
    1487 { yyval.node = new UnaryPlusNode(yyvsp[0].node); ;
    1488     break;}
    1489 case 58:
     1528{ yyval.node = new NegateNode(yyvsp[0].node); ;
     1529    break;}
     1530case 59:
    14901531#line 275 "grammar.y"
    1491 { yyval.node = new NegateNode(yyvsp[0].node); ;
    1492     break;}
    1493 case 59:
     1532{ yyval.node = new BitwiseNotNode(yyvsp[0].node); ;
     1533    break;}
     1534case 60:
    14941535#line 276 "grammar.y"
    1495 { yyval.node = new BitwiseNotNode(yyvsp[0].node); ;
    1496     break;}
    1497 case 60:
    1498 #line 277 "grammar.y"
    14991536{ yyval.node = new LogicalNotNode(yyvsp[0].node); ;
    15001537    break;}
    15011538case 62:
     1539#line 281 "grammar.y"
     1540{ yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ;
     1541    break;}
     1542case 63:
    15021543#line 282 "grammar.y"
    1503 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '*'); ;
    1504     break;}
    1505 case 63:
     1544{ yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ;
     1545    break;}
     1546case 64:
    15061547#line 283 "grammar.y"
    1507 { yyval.node = new MultNode(yyvsp[-2].node, yyvsp[0].node, '/'); ;
    1508     break;}
    1509 case 64:
    1510 #line 284 "grammar.y"
    15111548{ yyval.node = new MultNode(yyvsp[-2].node,yyvsp[0].node,'%'); ;
    15121549    break;}
    15131550case 66:
     1551#line 288 "grammar.y"
     1552{ yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '+'); ;
     1553    break;}
     1554case 67:
    15141555#line 289 "grammar.y"
    1515 { yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '+'); ;
    1516     break;}
    1517 case 67:
    1518 #line 290 "grammar.y"
    15191556{ yyval.node = new AddNode(yyvsp[-2].node, yyvsp[0].node, '-'); ;
    15201557    break;}
    15211558case 69:
     1559#line 294 "grammar.y"
     1560{ yyval.node = new ShiftNode(yyvsp[-2].node, OpLShift, yyvsp[0].node); ;
     1561    break;}
     1562case 70:
    15221563#line 295 "grammar.y"
    1523 { yyval.node = new ShiftNode(yyvsp[-2].node, OpLShift, yyvsp[0].node); ;
    1524     break;}
    1525 case 70:
     1564{ yyval.node = new ShiftNode(yyvsp[-2].node, OpRShift, yyvsp[0].node); ;
     1565    break;}
     1566case 71:
    15261567#line 296 "grammar.y"
    1527 { yyval.node = new ShiftNode(yyvsp[-2].node, OpRShift, yyvsp[0].node); ;
    1528     break;}
    1529 case 71:
    1530 #line 297 "grammar.y"
    15311568{ yyval.node = new ShiftNode(yyvsp[-2].node, OpURShift, yyvsp[0].node); ;
    15321569    break;}
    15331570case 73:
    1534 #line 303 "grammar.y"
     1571#line 302 "grammar.y"
    15351572{ yyval.node = new RelationalNode(yyvsp[-2].node, OpLess, yyvsp[0].node); ;
    15361573    break;}
    15371574case 74:
    1538 #line 305 "grammar.y"
     1575#line 304 "grammar.y"
    15391576{ yyval.node = new RelationalNode(yyvsp[-2].node, OpGreater, yyvsp[0].node); ;
    15401577    break;}
    15411578case 75:
    1542 #line 307 "grammar.y"
     1579#line 306 "grammar.y"
    15431580{ yyval.node = new RelationalNode(yyvsp[-2].node, OpLessEq, yyvsp[0].node); ;
    15441581    break;}
    15451582case 76:
    1546 #line 309 "grammar.y"
     1583#line 308 "grammar.y"
    15471584{ yyval.node = new RelationalNode(yyvsp[-2].node, OpGreaterEq, yyvsp[0].node); ;
    15481585    break;}
    15491586case 77:
    1550 #line 311 "grammar.y"
     1587#line 310 "grammar.y"
    15511588{ yyval.node = new RelationalNode(yyvsp[-2].node, OpInstanceOf, yyvsp[0].node); ;
    15521589    break;}
    15531590case 78:
    1554 #line 313 "grammar.y"
     1591#line 312 "grammar.y"
    15551592{ yyval.node = new RelationalNode(yyvsp[-2].node, OpIn, yyvsp[0].node); ;
    15561593    break;}
    15571594case 80:
     1595#line 317 "grammar.y"
     1596{ yyval.node = new EqualNode(yyvsp[-2].node, OpEqEq, yyvsp[0].node); ;
     1597    break;}
     1598case 81:
    15581599#line 318 "grammar.y"
    1559 { yyval.node = new EqualNode(yyvsp[-2].node, OpEqEq, yyvsp[0].node); ;
    1560     break;}
    1561 case 81:
     1600{ yyval.node = new EqualNode(yyvsp[-2].node, OpNotEq, yyvsp[0].node); ;
     1601    break;}
     1602case 82:
    15621603#line 319 "grammar.y"
    1563 { yyval.node = new EqualNode(yyvsp[-2].node, OpNotEq, yyvsp[0].node); ;
    1564     break;}
    1565 case 82:
     1604{ yyval.node = new EqualNode(yyvsp[-2].node, OpStrEq, yyvsp[0].node); ;
     1605    break;}
     1606case 83:
    15661607#line 320 "grammar.y"
    1567 { yyval.node = new EqualNode(yyvsp[-2].node, OpStrEq, yyvsp[0].node); ;
    1568     break;}
    1569 case 83:
    1570 #line 321 "grammar.y"
    15711608{ yyval.node = new EqualNode(yyvsp[-2].node, OpStrNEq, yyvsp[0].node);;
    15721609    break;}
    15731610case 85:
    1574 #line 326 "grammar.y"
     1611#line 325 "grammar.y"
    15751612{ yyval.node = new BitOperNode(yyvsp[-2].node, OpBitAnd, yyvsp[0].node); ;
    15761613    break;}
    15771614case 87:
    1578 #line 331 "grammar.y"
     1615#line 330 "grammar.y"
    15791616{ yyval.node = new BitOperNode(yyvsp[-2].node, OpBitXOr, yyvsp[0].node); ;
    15801617    break;}
    15811618case 89:
    1582 #line 336 "grammar.y"
     1619#line 335 "grammar.y"
    15831620{ yyval.node = new BitOperNode(yyvsp[-2].node, OpBitOr, yyvsp[0].node); ;
    15841621    break;}
    15851622case 91:
    1586 #line 342 "grammar.y"
     1623#line 341 "grammar.y"
    15871624{ yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpAnd, yyvsp[0].node); ;
    15881625    break;}
    15891626case 93:
    1590 #line 348 "grammar.y"
     1627#line 347 "grammar.y"
    15911628{ yyval.node = new BinaryLogicalNode(yyvsp[-2].node, OpOr, yyvsp[0].node); ;
    15921629    break;}
    15931630case 95:
    1594 #line 354 "grammar.y"
     1631#line 353 "grammar.y"
    15951632{ yyval.node = new ConditionalNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].node); ;
    15961633    break;}
    15971634case 97:
    1598 #line 360 "grammar.y"
     1635#line 359 "grammar.y"
    15991636{ yyval.node = new AssignNode(yyvsp[-2].node, yyvsp[-1].op, yyvsp[0].node);;
    16001637    break;}
    16011638case 98:
     1639#line 363 "grammar.y"
     1640{ yyval.op = OpEqual; ;
     1641    break;}
     1642case 99:
    16021643#line 364 "grammar.y"
    1603 { yyval.op = OpEqual; ;
    1604     break;}
    1605 case 99:
     1644{ yyval.op = OpPlusEq; ;
     1645    break;}
     1646case 100:
    16061647#line 365 "grammar.y"
    1607 { yyval.op = OpPlusEq; ;
    1608     break;}
    1609 case 100:
     1648{ yyval.op = OpMinusEq; ;
     1649    break;}
     1650case 101:
    16101651#line 366 "grammar.y"
    1611 { yyval.op = OpMinusEq; ;
    1612     break;}
    1613 case 101:
     1652{ yyval.op = OpMultEq; ;
     1653    break;}
     1654case 102:
    16141655#line 367 "grammar.y"
    1615 { yyval.op = OpMultEq; ;
    1616     break;}
    1617 case 102:
     1656{ yyval.op = OpDivEq; ;
     1657    break;}
     1658case 103:
    16181659#line 368 "grammar.y"
    1619 { yyval.op = OpDivEq; ;
    1620     break;}
    1621 case 103:
     1660{ yyval.op = OpLShift; ;
     1661    break;}
     1662case 104:
    16221663#line 369 "grammar.y"
    1623 { yyval.op = OpLShift; ;
    1624     break;}
    1625 case 104:
     1664{ yyval.op = OpRShift; ;
     1665    break;}
     1666case 105:
    16261667#line 370 "grammar.y"
    1627 { yyval.op = OpRShift; ;
    1628     break;}
    1629 case 105:
     1668{ yyval.op = OpURShift; ;
     1669    break;}
     1670case 106:
    16301671#line 371 "grammar.y"
    1631 { yyval.op = OpURShift; ;
    1632     break;}
    1633 case 106:
     1672{ yyval.op = OpAndEq; ;
     1673    break;}
     1674case 107:
    16341675#line 372 "grammar.y"
    1635 { yyval.op = OpAndEq; ;
    1636     break;}
    1637 case 107:
     1676{ yyval.op = OpXOrEq; ;
     1677    break;}
     1678case 108:
    16381679#line 373 "grammar.y"
    1639 { yyval.op = OpXOrEq; ;
    1640     break;}
    1641 case 108:
     1680{ yyval.op = OpOrEq; ;
     1681    break;}
     1682case 109:
    16421683#line 374 "grammar.y"
    1643 { yyval.op = OpOrEq; ;
    1644     break;}
    1645 case 109:
    1646 #line 375 "grammar.y"
    16471684{ yyval.op = OpModEq; ;
    16481685    break;}
    16491686case 111:
    1650 #line 380 "grammar.y"
     1687#line 379 "grammar.y"
    16511688{ yyval.node = new CommaNode(yyvsp[-2].node, yyvsp[0].node); ;
    16521689    break;}
    16531690case 126:
     1691#line 400 "grammar.y"
     1692{ yyval.stat = new BlockNode(0L); DBG(yyval.stat, yylsp[0], yylsp[0]); ;
     1693    break;}
     1694case 127:
    16541695#line 401 "grammar.y"
    1655 { yyval.stat = new BlockNode(0L); DBG(yyval.stat, yylsp[0], yylsp[0]); ;
    1656     break;}
    1657 case 127:
    1658 #line 402 "grammar.y"
    16591696{ yyval.stat = new BlockNode(yyvsp[-1].srcs); DBG(yyval.stat, yylsp[0], yylsp[0]); ;
    16601697    break;}
    16611698case 128:
     1699#line 405 "grammar.y"
     1700{ yyval.slist = new StatListNode(yyvsp[0].stat); ;
     1701    break;}
     1702case 129:
    16621703#line 406 "grammar.y"
    1663 { yyval.slist = new StatListNode(yyvsp[0].stat); ;
    1664     break;}
    1665 case 129:
    1666 #line 407 "grammar.y"
    16671704{ yyval.slist = new StatListNode(yyvsp[-1].slist, yyvsp[0].stat); ;
    16681705    break;}
    16691706case 130:
    1670 #line 411 "grammar.y"
     1707#line 410 "grammar.y"
    16711708{ yyval.stat = new VarStatementNode(yyvsp[-1].vlist);
    16721709                                      DBG(yyval.stat, yylsp[-2], yylsp[0]); ;
    16731710    break;}
    16741711case 131:
    1675 #line 413 "grammar.y"
     1712#line 412 "grammar.y"
    16761713{ if (automatic()) {
    16771714                                          yyval.stat = new VarStatementNode(yyvsp[-1].vlist);
     
    16831720    break;}
    16841721case 132:
    1685 #line 423 "grammar.y"
     1722#line 422 "grammar.y"
    16861723{ yyval.vlist = new VarDeclListNode(yyvsp[0].decl); ;
    16871724    break;}
    16881725case 133:
    1689 #line 425 "grammar.y"
     1726#line 424 "grammar.y"
    16901727{ yyval.vlist = new VarDeclListNode(yyvsp[-2].vlist, yyvsp[0].decl); ;
    16911728    break;}
    16921729case 134:
     1730#line 428 "grammar.y"
     1731{ yyval.decl = new VarDeclNode(*yyvsp[0].ident, 0); delete yyvsp[0].ident; ;
     1732    break;}
     1733case 135:
    16931734#line 429 "grammar.y"
    1694 { yyval.decl = new VarDeclNode(*yyvsp[0].ident, 0); delete yyvsp[0].ident; ;
    1695     break;}
    1696 case 135:
    1697 #line 430 "grammar.y"
    16981735{ yyval.decl = new VarDeclNode(*yyvsp[-1].ident, yyvsp[0].init); delete yyvsp[-1].ident; ;
    16991736    break;}
    17001737case 136:
    1701 #line 434 "grammar.y"
     1738#line 433 "grammar.y"
    17021739{ yyval.init = new AssignExprNode(yyvsp[0].node); ;
    17031740    break;}
    17041741case 137:
    1705 #line 438 "grammar.y"
     1742#line 437 "grammar.y"
    17061743{ yyval.stat = new EmptyStatementNode(); ;
    17071744    break;}
    17081745case 138:
    1709 #line 442 "grammar.y"
     1746#line 441 "grammar.y"
    17101747{ yyval.stat = new ExprStatementNode(yyvsp[-1].node);
    17111748                                     DBG(yyval.stat, yylsp[-1], yylsp[0]); ;
    17121749    break;}
    17131750case 139:
    1714 #line 444 "grammar.y"
     1751#line 443 "grammar.y"
    17151752{ if (automatic()) {
    17161753                                       yyval.stat = new ExprStatementNode(yyvsp[-1].node);
     
    17201757    break;}
    17211758case 140:
    1722 #line 452 "grammar.y"
     1759#line 451 "grammar.y"
    17231760{ yyval.stat = new IfNode(yyvsp[-2].node,yyvsp[0].stat,0L);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ;
    17241761    break;}
    17251762case 141:
    1726 #line 454 "grammar.y"
     1763#line 453 "grammar.y"
    17271764{ yyval.stat = new IfNode(yyvsp[-4].node,yyvsp[-2].stat,yyvsp[0].stat);DBG(yyval.stat,yylsp[-6],yylsp[-3]); ;
    17281765    break;}
    17291766case 142:
     1767#line 457 "grammar.y"
     1768{ yyval.stat=new DoWhileNode(yyvsp[-4].stat,yyvsp[-1].node);DBG(yyval.stat,yylsp[-5],yylsp[-3]);;
     1769    break;}
     1770case 143:
    17301771#line 458 "grammar.y"
    1731 { yyval.stat=new DoWhileNode(yyvsp[-4].stat,yyvsp[-1].node);DBG(yyval.stat,yylsp[-5],yylsp[-3]);;
    1732     break;}
    1733 case 143:
    1734 #line 459 "grammar.y"
    17351772{ yyval.stat = new WhileNode(yyvsp[-2].node,yyvsp[0].stat);DBG(yyval.stat,yylsp[-4],yylsp[-1]); ;
    17361773    break;}
    17371774case 144:
    1738 #line 461 "grammar.y"
     1775#line 460 "grammar.y"
    17391776{ yyval.stat = new ForNode(yyvsp[-6].node,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat);
    17401777                                     DBG(yyval.stat,yylsp[-8],yylsp[-1]); ;
    17411778    break;}
    17421779case 145:
    1743 #line 464 "grammar.y"
     1780#line 463 "grammar.y"
    17441781{ yyval.stat = new ForNode(yyvsp[-6].vlist,yyvsp[-4].node,yyvsp[-2].node,yyvsp[0].stat);
    17451782                                     DBG(yyval.stat,yylsp[-9],yylsp[-1]); ;
    17461783    break;}
    17471784case 146:
    1748 #line 467 "grammar.y"
     1785#line 466 "grammar.y"
    17491786{ yyval.stat = new ForInNode(yyvsp[-4].node, yyvsp[-2].node, yyvsp[0].stat);
    17501787                                     DBG(yyval.stat,yylsp[-6],yylsp[-1]); ;
    17511788    break;}
    17521789case 147:
    1753 #line 470 "grammar.y"
     1790#line 469 "grammar.y"
    17541791{ yyval.stat = new ForInNode(*yyvsp[-4].ident,0L,yyvsp[-2].node,yyvsp[0].stat);
    17551792                                     DBG(yyval.stat,yylsp[-7],yylsp[-1]);
     
    17571794    break;}
    17581795case 148:
    1759 #line 474 "grammar.y"
     1796#line 473 "grammar.y"
    17601797{ yyval.stat = new ForInNode(*yyvsp[-5].ident,yyvsp[-4].init,yyvsp[-2].node,yyvsp[0].stat);
    17611798                                     DBG(yyval.stat,yylsp[-8],yylsp[-1]);
     
    17631800    break;}
    17641801case 149:
    1765 #line 480 "grammar.y"
     1802#line 479 "grammar.y"
    17661803{ yyval.node = 0L; ;
    17671804    break;}
    17681805case 151:
     1806#line 484 "grammar.y"
     1807{ yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
     1808    break;}
     1809case 152:
    17691810#line 485 "grammar.y"
    1770 { yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
    1771     break;}
    1772 case 152:
    1773 #line 486 "grammar.y"
    17741811{ if (automatic()) {
    17751812                                       yyval.stat = new ContinueNode(); DBG(yyval.stat,yylsp[-1],yylsp[0]);
     
    17781815    break;}
    17791816case 153:
    1780 #line 490 "grammar.y"
     1817#line 489 "grammar.y"
    17811818{ yyval.stat = new ContinueNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[0]);
    17821819                                     delete yyvsp[-1].ident; ;
    17831820    break;}
    17841821case 154:
    1785 #line 492 "grammar.y"
     1822#line 491 "grammar.y"
    17861823{ if (automatic()) {
    17871824                                       yyval.stat = new ContinueNode(*yyvsp[-1].ident);DBG(yyval.stat,yylsp[-2],yylsp[-1]);
     
    17911828    break;}
    17921829case 155:
     1830#line 499 "grammar.y"
     1831{ yyval.stat = new BreakNode();DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
     1832    break;}
     1833case 156:
    17931834#line 500 "grammar.y"
    1794 { yyval.stat = new BreakNode();DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
    1795     break;}
    1796 case 156:
    1797 #line 501 "grammar.y"
    17981835{ if (automatic()) {
    17991836                                       yyval.stat = new BreakNode(); DBG(yyval.stat,yylsp[-1],yylsp[-1]);
     
    18021839    break;}
    18031840case 157:
    1804 #line 505 "grammar.y"
     1841#line 504 "grammar.y"
    18051842{ yyval.stat = new BreakNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[0]);
    18061843                                     delete yyvsp[-1].ident; ;
    18071844    break;}
    18081845case 158:
    1809 #line 507 "grammar.y"
     1846#line 506 "grammar.y"
    18101847{ if (automatic()) {
    18111848                                       yyval.stat = new BreakNode(*yyvsp[-1].ident); DBG(yyval.stat,yylsp[-2],yylsp[-1]);
     
    18161853    break;}
    18171854case 159:
     1855#line 515 "grammar.y"
     1856{ yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
     1857    break;}
     1858case 160:
    18181859#line 516 "grammar.y"
    1819 { yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[0]); ;
    1820     break;}
    1821 case 160:
    1822 #line 517 "grammar.y"
    18231860{ if (automatic()) {
    18241861                                       yyval.stat = new ReturnNode(0L); DBG(yyval.stat,yylsp[-1],yylsp[-1]);
     
    18271864    break;}
    18281865case 161:
     1866#line 520 "grammar.y"
     1867{ yyval.stat = new ReturnNode(yyvsp[-1].node); ;
     1868    break;}
     1869case 162:
    18291870#line 521 "grammar.y"
    1830 { yyval.stat = new ReturnNode(yyvsp[-1].node); ;
    1831     break;}
    1832 case 162:
    1833 #line 522 "grammar.y"
    18341871{ if (automatic())
    18351872                                       yyval.stat = new ReturnNode(yyvsp[-1].node);
     
    18381875    break;}
    18391876case 163:
    1840 #line 529 "grammar.y"
     1877#line 528 "grammar.y"
    18411878{ yyval.stat = new WithNode(yyvsp[-2].node,yyvsp[0].stat);
    18421879                                     DBG(yyval.stat, yylsp[-4], yylsp[-1]); ;
    18431880    break;}
    18441881case 164:
    1845 #line 534 "grammar.y"
     1882#line 533 "grammar.y"
    18461883{ yyval.stat = new SwitchNode(yyvsp[-2].node, yyvsp[0].cblk);
    18471884                                     DBG(yyval.stat, yylsp[-4], yylsp[-1]); ;
    18481885    break;}
    18491886case 165:
    1850 #line 539 "grammar.y"
     1887#line 538 "grammar.y"
    18511888{ yyval.cblk = new CaseBlockNode(yyvsp[-1].clist, 0L, 0L); ;
    18521889    break;}
    18531890case 166:
    1854 #line 541 "grammar.y"
     1891#line 540 "grammar.y"
    18551892{ yyval.cblk = new CaseBlockNode(yyvsp[-3].clist, yyvsp[-2].ccl, yyvsp[-1].clist); ;
    18561893    break;}
    18571894case 167:
    1858 #line 545 "grammar.y"
     1895#line 544 "grammar.y"
    18591896{ yyval.clist = 0L; ;
    18601897    break;}
    18611898case 169:
     1899#line 549 "grammar.y"
     1900{ yyval.clist = new ClauseListNode(yyvsp[0].ccl); ;
     1901    break;}
     1902case 170:
    18621903#line 550 "grammar.y"
    1863 { yyval.clist = new ClauseListNode(yyvsp[0].ccl); ;
    1864     break;}
    1865 case 170:
    1866 #line 551 "grammar.y"
    18671904{ yyval.clist = yyvsp[-1].clist->append(yyvsp[0].ccl); ;
    18681905    break;}
    18691906case 171:
     1907#line 554 "grammar.y"
     1908{ yyval.ccl = new CaseClauseNode(yyvsp[-1].node, 0L); ;
     1909    break;}
     1910case 172:
    18701911#line 555 "grammar.y"
    1871 { yyval.ccl = new CaseClauseNode(yyvsp[-1].node, 0L); ;
    1872     break;}
    1873 case 172:
    1874 #line 556 "grammar.y"
    18751912{ yyval.ccl = new CaseClauseNode(yyvsp[-2].node, yyvsp[0].slist); ;
    18761913    break;}
    18771914case 173:
     1915#line 559 "grammar.y"
     1916{ yyval.ccl = new CaseClauseNode(0L, 0L);; ;
     1917    break;}
     1918case 174:
    18781919#line 560 "grammar.y"
    1879 { yyval.ccl = new CaseClauseNode(0L, 0L);; ;
    1880     break;}
    1881 case 174:
    1882 #line 561 "grammar.y"
    18831920{ yyval.ccl = new CaseClauseNode(0L, yyvsp[0].slist); ;
    18841921    break;}
    18851922case 175:
    1886 #line 565 "grammar.y"
     1923#line 564 "grammar.y"
    18871924{ yyvsp[0].stat->pushLabel(*yyvsp[-2].ident);
    18881925                                     yyval.stat = new LabelNode(*yyvsp[-2].ident, yyvsp[0].stat);
     
    18901927    break;}
    18911928case 176:
    1892 #line 571 "grammar.y"
     1929#line 570 "grammar.y"
    18931930{ yyval.stat = new ThrowNode(yyvsp[-1].node); ;
    18941931    break;}
    18951932case 177:
     1933#line 574 "grammar.y"
     1934{ yyval.stat = new TryNode(yyvsp[-1].stat, yyvsp[0].node); ;
     1935    break;}
     1936case 178:
    18961937#line 575 "grammar.y"
    1897 { yyval.stat = new TryNode(yyvsp[-1].stat, yyvsp[0].node); ;
    1898     break;}
    1899 case 178:
     1938{ yyval.stat = new TryNode(yyvsp[-1].stat, 0L, yyvsp[0].node); ;
     1939    break;}
     1940case 179:
    19001941#line 576 "grammar.y"
    1901 { yyval.stat = new TryNode(yyvsp[-1].stat, 0L, yyvsp[0].node); ;
    1902     break;}
    1903 case 179:
    1904 #line 577 "grammar.y"
    19051942{ yyval.stat = new TryNode(yyvsp[-2].stat, yyvsp[-1].node, yyvsp[0].node); ;
    19061943    break;}
    19071944case 180:
    1908 #line 581 "grammar.y"
     1945#line 580 "grammar.y"
    19091946{ yyval.node = new CatchNode(*yyvsp[-2].ident, yyvsp[0].stat); delete yyvsp[-2].ident; ;
    19101947    break;}
    19111948case 181:
    1912 #line 585 "grammar.y"
     1949#line 584 "grammar.y"
    19131950{ yyval.node = new FinallyNode(yyvsp[0].stat); ;
    19141951    break;}
    19151952case 182:
    1916 #line 589 "grammar.y"
     1953#line 588 "grammar.y"
    19171954{ yyval.func = new FuncDeclNode(*yyvsp[-3].ident, 0L, yyvsp[0].body);
    19181955                                             delete yyvsp[-3].ident; ;
    19191956    break;}
    19201957case 183:
    1921 #line 592 "grammar.y"
     1958#line 591 "grammar.y"
    19221959{ yyval.func = new FuncDeclNode(*yyvsp[-4].ident, yyvsp[-2].param, yyvsp[0].body);
    19231960                                     delete yyvsp[-4].ident; ;
    19241961    break;}
    19251962case 184:
    1926 #line 596 "grammar.y"
     1963#line 595 "grammar.y"
    19271964{ yyval.node = new FuncExprNode(0L, yyvsp[0].body); ;
    19281965    break;}
    19291966case 185:
    1930 #line 598 "grammar.y"
     1967#line 597 "grammar.y"
    19311968{ yyval.node = new FuncExprNode(yyvsp[-2].param, yyvsp[0].body); ;
    19321969    break;}
    19331970case 186:
     1971#line 602 "grammar.y"
     1972{ yyval.param = new ParameterNode(*yyvsp[0].ident); delete yyvsp[0].ident; ;
     1973    break;}
     1974case 187:
    19341975#line 603 "grammar.y"
    1935 { yyval.param = new ParameterNode(*yyvsp[0].ident); delete yyvsp[0].ident; ;
    1936     break;}
    1937 case 187:
    1938 #line 604 "grammar.y"
    19391976{ yyval.param = yyvsp[-2].param->append(*yyvsp[0].ident);
    19401977                                     delete yyvsp[0].ident; ;
    19411978    break;}
    19421979case 188:
    1943 #line 609 "grammar.y"
     1980#line 608 "grammar.y"
    19441981{ yyval.body = new FunctionBodyNode(0L);
    19451982                                     DBG(yyval.body, yylsp[-1], yylsp[0]);;
    19461983    break;}
    19471984case 189:
    1948 #line 611 "grammar.y"
     1985#line 610 "grammar.y"
    19491986{ yyval.body = new FunctionBodyNode(yyvsp[-1].srcs);
    19501987                                     DBG(yyval.body, yylsp[-2], yylsp[0]);;
    19511988    break;}
    19521989case 190:
    1953 #line 616 "grammar.y"
     1990#line 615 "grammar.y"
    19541991{ yyval.prog = new ProgramNode(0L);
    19551992                                     Parser::progNode = yyval.prog; ;
    19561993    break;}
    19571994case 191:
    1958 #line 618 "grammar.y"
     1995#line 617 "grammar.y"
    19591996{ yyval.prog = new ProgramNode(yyvsp[0].srcs);
    19601997                                     Parser::progNode = yyval.prog; ;
    19611998    break;}
    19621999case 192:
     2000#line 622 "grammar.y"
     2001{ yyval.srcs = new SourceElementsNode(yyvsp[0].stat); ;
     2002    break;}
     2003case 193:
    19632004#line 623 "grammar.y"
    1964 { yyval.srcs = new SourceElementsNode(yyvsp[0].src); ;
    1965     break;}
    1966 case 193:
    1967 #line 624 "grammar.y"
    1968 { yyval.srcs = new SourceElementsNode(yyvsp[0].srcs, yyvsp[-1].src); ;
     2005{ yyval.srcs = new SourceElementsNode(yyvsp[-1].srcs, yyvsp[0].stat); ;
    19692006    break;}
    19702007case 194:
     2008#line 627 "grammar.y"
     2009{ yyval.stat = yyvsp[0].stat; ;
     2010    break;}
     2011case 195:
    19712012#line 628 "grammar.y"
    1972 { yyval.src = new SourceElementNode(yyvsp[0].stat); ;
    1973     break;}
    1974 case 195:
    1975 #line 629 "grammar.y"
    1976 { yyval.src = new SourceElementNode(yyvsp[0].func); ;
     2013{ yyval.stat = yyvsp[0].func; ;
    19772014    break;}
    19782015}
     
    21992236  return 1;
    22002237}
    2201 #line 632 "grammar.y"
     2238#line 631 "grammar.y"
    22022239
    22032240
Note: See TracChangeset for help on using the changeset viewer.