Merge @import fix for CSS1 test suite from Stephan Kulow.
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 19 Jul 2004 21:50:40 +0000 (21:50 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 19 Jul 2004 21:50:40 +0000 (21:50 +0000)
        Reviewed by hyatt

        * khtml/css/parser.cpp:
        * khtml/css/parser.y:
        * layout-tests/css1/basic/containment-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7053 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/css1/basic/containment-expected.txt
WebCore/ChangeLog-2005-08-23
WebCore/khtml/css/parser.cpp
WebCore/khtml/css/parser.y

index ecf5295..5e62a49 100644 (file)
@@ -99,7 +99,7 @@ layer at (0,0) size 800x943
             text run at (129,18) width 68: "section 3.0"
         RenderText {TEXT} at (197,18) size 275x18
           text run at (197,18) width 275: " of the CSS1 specification for more details)."
-      RenderBlock {P} at (0,527) size 784x18
+      RenderBlock {P} at (0,527) size 784x18 [color=#008000]
         RenderText {TEXT} at (0,0) size 203x18
           text run at (0,0) width 203: "This paragraph should be green."
       RenderTable {TABLE} at (0,561) size 784x366 [border: (1px outset #808080)]
@@ -194,6 +194,6 @@ layer at (0,0) size 800x943
                     text run at (129,18) width 68: "section 3.0"
                 RenderText {TEXT} at (197,18) size 275x18
                   text run at (197,18) width 275: " of the CSS1 specification for more details)."
-              RenderBlock {P} at (4,316) size 762x18
+              RenderBlock {P} at (4,316) size 762x18 [color=#008000]
                 RenderText {TEXT} at (0,0) size 203x18
                   text run at (0,0) width 203: "This paragraph should be green."
index 96f100d..dadbece 100644 (file)
@@ -1,5 +1,15 @@
 2004-07-19  David Hyatt  <hyatt@apple.com>
 
+       Merge @import fix for CSS1 test suite from Stephan Kulow.
+       
+        Reviewed by hyatt
+
+        * khtml/css/parser.cpp:
+        * khtml/css/parser.y:
+        * layout-tests/css1/basic/containment-expected.txt:
+
+2004-07-19  David Hyatt  <hyatt@apple.com>
+
        Fix for 3718697, crash clicking on JS tab at alaskaair.com.
        
         Reviewed by kocienda
index 51e9bff..4f5d650 100644 (file)
@@ -183,11 +183,11 @@ static int cssyylex( YYSTYPE *yylval ) {
 
 
 
-#define        YYFINAL         310
+#define        YYFINAL         312
 #define        YYFLAG          -32768
 #define        YYNTBASE        63
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 298 ? yytranslate[x] : 116)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 298 ? yytranslate[x] : 117)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -226,21 +226,21 @@ static const char yytranslate[] = {     0,
 static const short yyprhs[] = {     0,
      0,     6,     9,    12,    15,    22,    28,    34,    35,    38,
     39,    42,    45,    46,    52,    56,    60,    61,    65,    66,
-    70,    71,    75,    77,    79,    81,    83,    85,    87,    94,
-    98,   102,   109,   113,   117,   118,   121,   123,   125,   126,
-   128,   129,   131,   136,   139,   147,   148,   152,   155,   159,
-   163,   167,   171,   174,   177,   178,   180,   182,   188,   190,
-   195,   198,   200,   204,   207,   208,   210,   212,   215,   219,
-   222,   227,   233,   238,   240,   242,   244,   247,   250,   252,
-   254,   256,   258,   261,   264,   269,   278,   285,   296,   298,
-   300,   302,   304,   306,   308,   310,   312,   315,   319,   326,
-   328,   331,   333,   337,   339,   343,   348,   352,   358,   363,
-   368,   375,   381,   384,   391,   393,   397,   400,   403,   404,
-   406,   410,   413,   416,   419,   420,   422,   425,   428,   431,
-   434,   438,   441,   444,   446,   449,   451,   454,   457,   460,
-   463,   466,   469,   472,   475,   478,   481,   484,   487,   490,
-   493,   496,   499,   502,   505,   511,   515,   518,   522,   526,
-   529,   535,   539,   541
+    70,    71,    75,    77,    79,    81,    83,    85,    87,    89,
+    96,   100,   104,   111,   115,   119,   120,   123,   125,   127,
+   128,   130,   131,   133,   138,   141,   149,   150,   154,   157,
+   161,   165,   169,   173,   176,   179,   180,   182,   184,   190,
+   192,   197,   200,   202,   206,   209,   210,   212,   214,   217,
+   221,   224,   229,   235,   240,   242,   244,   246,   249,   252,
+   254,   256,   258,   260,   263,   266,   271,   280,   287,   298,
+   300,   302,   304,   306,   308,   310,   312,   314,   317,   321,
+   328,   330,   333,   335,   339,   341,   345,   350,   354,   360,
+   365,   370,   377,   383,   386,   393,   395,   399,   402,   405,
+   406,   408,   412,   415,   418,   421,   422,   424,   427,   430,
+   433,   436,   440,   443,   446,   448,   451,   453,   456,   459,
+   462,   465,   468,   471,   474,   477,   480,   483,   486,   489,
+   492,   495,   498,   501,   504,   507,   513,   517,   520,   524,
+   528,   530,   533,   539,   543,   545
 };
 
 static const short yyrhs[] = {    69,
@@ -249,79 +249,79 @@ static const short yyrhs[] = {    69,
      0,    23,    48,    67,   101,    49,     0,    24,    48,    67,
    106,    49,     0,     0,    67,     3,     0,     0,    68,     4,
      0,    68,     3,     0,     0,    20,    67,    10,    67,    50,
-     0,    20,     1,   114,     0,    20,     1,    50,     0,     0,
+     0,    20,     1,   115,     0,    20,     1,    50,     0,     0,
     70,    74,    68,     0,     0,    71,    75,    68,     0,     0,
     72,    73,    68,     0,    87,     0,    80,     0,    83,     0,
-    84,     0,   113,     0,   112,     0,    16,    67,    77,    67,
-    78,    50,     0,    16,     1,   114,     0,    16,     1,    50,
-     0,    21,    67,    76,    77,    67,    50,     0,    21,     1,
-   114,     0,    21,     1,    50,     0,     0,    11,     3,     0,
-    10,     0,    45,     0,     0,    79,     0,     0,    82,     0,
-    79,    51,    67,    82,     0,    79,     1,     0,    18,    67,
-    79,    48,    67,    81,    49,     0,     0,    81,    87,    67,
-     0,    11,    67,     0,    17,     1,   114,     0,    17,     1,
-    50,     0,    19,     1,   114,     0,    19,     1,    50,     0,
-    52,    67,     0,    53,    67,     0,     0,    54,     0,    52,
-     0,    88,    48,    67,   101,    49,     0,    89,     0,    88,
-    51,    67,    89,     0,    88,     1,     0,    91,     0,    89,
-    85,    91,     0,    89,     1,     0,     0,    55,     0,    11,
-     0,    92,    67,     0,    92,    93,    67,     0,    93,    67,
-     0,    90,    56,    92,    67,     0,    90,    56,    92,    93,
-    67,     0,    90,    56,    93,    67,     0,    11,     0,    55,
-     0,    94,     0,    93,    94,     0,    93,     1,     0,    12,
-     0,    95,     0,    97,     0,   100,     0,    14,    11,     0,
-    11,    67,     0,    15,    67,    96,    57,     0,    15,    67,
-    96,    98,    67,    99,    67,    57,     0,    15,    67,    90,
-    56,    96,    57,     0,    15,    67,    90,    56,    96,    98,
-    67,    99,    67,    57,     0,    58,     0,     5,     0,     6,
-     0,     7,     0,     8,     0,     9,     0,    11,     0,    10,
-     0,    13,    11,     0,    13,    13,    11,     0,    13,    46,
-    67,    91,    67,    59,     0,   103,     0,   102,   103,     0,
-   102,     0,     1,   115,     1,     0,     1,     0,   103,    50,
-    67,     0,   103,   115,    50,    67,     0,     1,    50,    67,
-     0,     1,   115,     1,    50,    67,     0,   102,   103,    50,
-    67,     0,   102,     1,    50,    67,     0,   102,     1,   115,
-     1,    50,    67,     0,   104,    13,    67,   106,   105,     0,
-   104,     1,     0,   104,    13,    67,     1,   106,   105,     0,
-   105,     0,   104,    13,    67,     0,    11,    67,     0,    25,
-    67,     0,     0,   108,     0,   106,   107,   108,     0,   106,
-     1,     0,    60,    67,     0,    51,    67,     0,     0,   109,
-     0,    86,   109,     0,    10,    67,     0,    11,    67,     0,
-    42,    67,     0,    86,    42,    67,     0,    45,    67,     0,
-    47,    67,     0,   111,     0,    61,    67,     0,   110,     0,
-    44,    67,     0,    43,    67,     0,    29,    67,     0,    30,
-    67,     0,    31,    67,     0,    32,    67,     0,    33,    67,
-     0,    34,    67,     0,    35,    67,     0,    36,    67,     0,
-    37,    67,     0,    38,    67,     0,    39,    67,     0,    40,
-    67,     0,    41,    67,     0,    27,    67,     0,    26,    67,
-     0,    28,    67,     0,    46,    67,   106,    59,    67,     0,
-    46,    67,     1,     0,    12,    67,     0,    62,     1,   114,
-     0,    62,     1,    50,     0,     1,   114,     0,    48,     1,
-   115,     1,    49,     0,    48,     1,    49,     0,   114,     0,
-   115,     1,   114,     0
+    84,     0,   114,     0,   112,     0,   113,     0,    16,    67,
+    77,    67,    78,    50,     0,    16,     1,   115,     0,    16,
+     1,    50,     0,    21,    67,    76,    77,    67,    50,     0,
+    21,     1,   115,     0,    21,     1,    50,     0,     0,    11,
+     3,     0,    10,     0,    45,     0,     0,    79,     0,     0,
+    82,     0,    79,    51,    67,    82,     0,    79,     1,     0,
+    18,    67,    79,    48,    67,    81,    49,     0,     0,    81,
+    87,    67,     0,    11,    67,     0,    17,     1,   115,     0,
+    17,     1,    50,     0,    19,     1,   115,     0,    19,     1,
+    50,     0,    52,    67,     0,    53,    67,     0,     0,    54,
+     0,    52,     0,    88,    48,    67,   101,    49,     0,    89,
+     0,    88,    51,    67,    89,     0,    88,     1,     0,    91,
+     0,    89,    85,    91,     0,    89,     1,     0,     0,    55,
+     0,    11,     0,    92,    67,     0,    92,    93,    67,     0,
+    93,    67,     0,    90,    56,    92,    67,     0,    90,    56,
+    92,    93,    67,     0,    90,    56,    93,    67,     0,    11,
+     0,    55,     0,    94,     0,    93,    94,     0,    93,     1,
+     0,    12,     0,    95,     0,    97,     0,   100,     0,    14,
+    11,     0,    11,    67,     0,    15,    67,    96,    57,     0,
+    15,    67,    96,    98,    67,    99,    67,    57,     0,    15,
+    67,    90,    56,    96,    57,     0,    15,    67,    90,    56,
+    96,    98,    67,    99,    67,    57,     0,    58,     0,     5,
+     0,     6,     0,     7,     0,     8,     0,     9,     0,    11,
+     0,    10,     0,    13,    11,     0,    13,    13,    11,     0,
+    13,    46,    67,    91,    67,    59,     0,   103,     0,   102,
+   103,     0,   102,     0,     1,   116,     1,     0,     1,     0,
+   103,    50,    67,     0,   103,   116,    50,    67,     0,     1,
+    50,    67,     0,     1,   116,     1,    50,    67,     0,   102,
+   103,    50,    67,     0,   102,     1,    50,    67,     0,   102,
+     1,   116,     1,    50,    67,     0,   104,    13,    67,   106,
+   105,     0,   104,     1,     0,   104,    13,    67,     1,   106,
+   105,     0,   105,     0,   104,    13,    67,     0,    11,    67,
+     0,    25,    67,     0,     0,   108,     0,   106,   107,   108,
+     0,   106,     1,     0,    60,    67,     0,    51,    67,     0,
+     0,   109,     0,    86,   109,     0,    10,    67,     0,    11,
+    67,     0,    42,    67,     0,    86,    42,    67,     0,    45,
+    67,     0,    47,    67,     0,   111,     0,    61,    67,     0,
+   110,     0,    44,    67,     0,    43,    67,     0,    29,    67,
+     0,    30,    67,     0,    31,    67,     0,    32,    67,     0,
+    33,    67,     0,    34,    67,     0,    35,    67,     0,    36,
+    67,     0,    37,    67,     0,    38,    67,     0,    39,    67,
+     0,    40,    67,     0,    41,    67,     0,    27,    67,     0,
+    26,    67,     0,    28,    67,     0,    46,    67,   106,    59,
+    67,     0,    46,    67,     1,     0,    12,    67,     0,    62,
+     1,   115,     0,    62,     1,    50,     0,    74,     0,     1,
+   115,     0,    48,     1,   116,     1,    49,     0,    48,     1,
+    49,     0,   115,     0,   116,     1,   115,     0
 };
 
 #endif
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   236,   238,   239,   240,   243,   250,   256,   281,   283,   286,
-   288,   289,   292,   294,   299,   300,   303,   305,   315,   317,
-   320,   322,   332,   334,   335,   336,   337,   338,   341,   354,
-   357,   362,   371,   372,   375,   377,   380,   382,   385,   389,
-   393,   397,   401,   406,   412,   426,   428,   437,   459,   463,
-   468,   472,   477,   479,   480,   483,   485,   488,   507,   519,
-   533,   539,   543,   572,   578,   580,   581,   584,   589,   594,
-   599,   606,   615,   626,   643,   648,   652,   662,   668,   678,
-   679,   680,   683,   695,   715,   721,   727,   735,   746,   750,
-   753,   756,   759,   762,   767,   769,   772,   786,   793,   802,
-   806,   811,   814,   820,   828,   832,   835,   841,   847,   852,
-   858,   866,   889,   893,   901,   906,   913,   920,   922,   925,
-   930,   943,   949,   953,   956,   961,   963,   964,   965,   972,
-   973,   974,   975,   976,   977,   979,   984,   986,   987,   988,
-   989,   990,   991,   992,   993,   994,   995,   996,   997,   998,
-   999,  1000,  1001,  1002,  1006,  1014,  1029,  1036,  1043,  1051,
-  1077,  1079,  1082,  1084
+   237,   239,   240,   241,   244,   251,   257,   282,   284,   287,
+   289,   290,   293,   295,   300,   301,   304,   306,   316,   318,
+   321,   323,   333,   335,   336,   337,   338,   339,   340,   343,
+   356,   359,   364,   373,   374,   377,   379,   382,   384,   387,
+   391,   395,   399,   403,   408,   414,   428,   430,   439,   461,
+   465,   470,   474,   479,   481,   482,   485,   487,   490,   509,
+   521,   535,   541,   545,   574,   580,   582,   583,   586,   591,
+   596,   601,   608,   617,   628,   645,   650,   654,   664,   670,
+   680,   681,   682,   685,   697,   717,   723,   729,   737,   748,
+   752,   755,   758,   761,   764,   769,   771,   774,   788,   795,
+   804,   808,   813,   816,   822,   830,   834,   837,   843,   849,
+   854,   860,   868,   891,   895,   903,   908,   915,   922,   924,
+   927,   932,   945,   951,   955,   958,   963,   965,   966,   967,
+   974,   975,   976,   977,   978,   979,   981,   986,   988,   989,
+   990,   991,   992,   993,   994,   995,   996,   997,   998,   999,
+  1000,  1001,  1002,  1003,  1004,  1008,  1016,  1031,  1038,  1045,
+  1053,  1063,  1089,  1091,  1094,  1096
 };
 #endif
 
@@ -343,274 +343,278 @@ static const char * const yytname[] = {   "$","error","$undefined.","WHITESPACE"
 "element_name","specifier_list","specifier","class","attrib_id","attrib","match",
 "ident_or_string","pseudo","declaration_list","decl_list","declaration","property",
 "prio","expr","operator","term","unary_term","function","hexcolor","invalid_at",
-"invalid_rule","invalid_block","invalid_block_list", NULL
+"invalid_import","invalid_rule","invalid_block","invalid_block_list", NULL
 };
 #endif
 
 static const short yyr1[] = {     0,
     63,    63,    63,    63,    64,    65,    66,    67,    67,    68,
     68,    68,    69,    69,    69,    69,    70,    70,    71,    71,
-    72,    72,    73,    73,    73,    73,    73,    73,    74,    74,
-    74,    75,    75,    75,    76,    76,    77,    77,    78,    78,
-    79,    79,    79,    79,    80,    81,    81,    82,    83,    83,
-    84,    84,    85,    85,    85,    86,    86,    87,    88,    88,
-    88,    89,    89,    89,    90,    90,    90,    91,    91,    91,
-    91,    91,    91,    92,    92,    93,    93,    93,    94,    94,
-    94,    94,    95,    96,    97,    97,    97,    97,    98,    98,
-    98,    98,    98,    98,    99,    99,   100,   100,   100,   101,
-   101,   101,   101,   101,   102,   102,   102,   102,   102,   102,
-   102,   103,   103,   103,   103,   103,   104,   105,   105,   106,
-   106,   106,   107,   107,   107,   108,   108,   108,   108,   108,
-   108,   108,   108,   108,   108,   108,   109,   109,   109,   109,
+    72,    72,    73,    73,    73,    73,    73,    73,    73,    74,
+    74,    74,    75,    75,    75,    76,    76,    77,    77,    78,
+    78,    79,    79,    79,    79,    80,    81,    81,    82,    83,
+    83,    84,    84,    85,    85,    85,    86,    86,    87,    88,
+    88,    88,    89,    89,    89,    90,    90,    90,    91,    91,
+    91,    91,    91,    91,    92,    92,    93,    93,    93,    94,
+    94,    94,    94,    95,    96,    97,    97,    97,    97,    98,
+    98,    98,    98,    98,    98,    99,    99,   100,   100,   100,
+   101,   101,   101,   101,   101,   102,   102,   102,   102,   102,
+   102,   102,   103,   103,   103,   103,   103,   104,   105,   105,
+   106,   106,   106,   107,   107,   107,   108,   108,   108,   108,
+   108,   108,   108,   108,   108,   108,   108,   109,   109,   109,
    109,   109,   109,   109,   109,   109,   109,   109,   109,   109,
-   109,   109,   109,   109,   110,   110,   111,   112,   112,   113,
-   114,   114,   115,   115
+   109,   109,   109,   109,   109,   110,   110,   111,   112,   112,
+   113,   114,   115,   115,   116,   116
 };
 
 static const short yyr2[] = {     0,
      5,     2,     2,     2,     6,     5,     5,     0,     2,     0,
      2,     2,     0,     5,     3,     3,     0,     3,     0,     3,
-     0,     3,     1,     1,     1,     1,     1,     1,     6,     3,
-     3,     6,     3,     3,     0,     2,     1,     1,     0,     1,
-     0,     1,     4,     2,     7,     0,     3,     2,     3,     3,
-     3,     3,     2,     2,     0,     1,     1,     5,     1,     4,
-     2,     1,     3,     2,     0,     1,     1,     2,     3,     2,
-     4,     5,     4,     1,     1,     1,     2,     2,     1,     1,
-     1,     1,     2,     2,     4,     8,     6,    10,     1,     1,
-     1,     1,     1,     1,     1,     1,     2,     3,     6,     1,
-     2,     1,     3,     1,     3,     4,     3,     5,     4,     4,
-     6,     5,     2,     6,     1,     3,     2,     2,     0,     1,
-     3,     2,     2,     2,     0,     1,     2,     2,     2,     2,
-     3,     2,     2,     1,     2,     1,     2,     2,     2,     2,
+     0,     3,     1,     1,     1,     1,     1,     1,     1,     6,
+     3,     3,     6,     3,     3,     0,     2,     1,     1,     0,
+     1,     0,     1,     4,     2,     7,     0,     3,     2,     3,
+     3,     3,     3,     2,     2,     0,     1,     1,     5,     1,
+     4,     2,     1,     3,     2,     0,     1,     1,     2,     3,
+     2,     4,     5,     4,     1,     1,     1,     2,     2,     1,
+     1,     1,     1,     2,     2,     4,     8,     6,    10,     1,
+     1,     1,     1,     1,     1,     1,     1,     2,     3,     6,
+     1,     2,     1,     3,     1,     3,     4,     3,     5,     4,
+     4,     6,     5,     2,     6,     1,     3,     2,     2,     0,
+     1,     3,     2,     2,     2,     0,     1,     2,     2,     2,
+     2,     3,     2,     2,     1,     2,     1,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     5,     3,     2,     3,     3,     2,
-     5,     3,     1,     3
+     2,     2,     2,     2,     2,     5,     3,     2,     3,     3,
+     1,     2,     5,     3,     1,     3
 };
 
 static const short yydefact[] = {    13,
      0,     0,     0,     0,     8,     8,     8,    10,     0,     0,
      8,     8,     8,     2,     3,     4,    17,     0,    16,    15,
-     9,     8,    65,     0,     0,    12,    11,    19,     0,     0,
-    74,    79,     0,     0,     8,    75,     8,     0,     0,     0,
-    62,     8,     0,    76,    80,    81,    82,   104,     8,     8,
-     0,     0,   100,     0,   115,     8,     8,     8,     8,     8,
+     9,     8,    66,     0,     0,    12,    11,    19,     0,     0,
+    75,    80,     0,     0,     8,    76,     8,     0,     0,     0,
+    63,     8,     0,    77,    81,    82,    83,   105,     8,     8,
+     0,     0,   101,     0,   116,     8,     8,     8,     8,     8,
      8,     8,     8,     8,     8,     8,     8,     8,     8,     8,
      8,     8,     8,     8,     8,     8,     8,     8,     8,     8,
-    57,    56,     8,     0,     0,   120,   126,   136,   134,     0,
-    21,    10,   162,   163,     0,    14,    97,     0,     8,    83,
-    65,     0,    61,     8,     8,    64,     8,     8,    65,     0,
-    68,     0,    78,    70,    77,     8,     0,   117,   118,     6,
-     0,   101,     8,     0,   113,     8,   128,   129,   157,   153,
-   152,   154,   139,   140,   141,   142,   143,   144,   145,   146,
-   147,   148,   149,   150,   151,   130,   138,   137,   132,     0,
-   133,   135,     8,   127,   122,     7,     8,     8,     0,     0,
-     0,     0,     0,    10,    18,     0,    98,    65,     8,    66,
-     0,     0,     5,     0,    65,    53,    54,    63,    74,    75,
-     8,     0,    69,   107,   103,     8,     0,     8,   105,     0,
-     8,     0,   156,     0,   131,   124,   123,   121,    31,    30,
-    37,    38,     8,     0,    35,     0,     0,     8,     0,     0,
-    10,    24,    25,    26,    23,    28,    27,    20,   161,   164,
-     8,    84,     0,    90,    91,    92,    93,    94,    85,    89,
-     8,     0,     0,    71,     0,    73,     8,   110,     0,   109,
-   106,     0,     0,     8,    41,    34,    33,     0,     0,   160,
-     0,    41,     0,     0,    22,     0,     8,     0,     0,    58,
-    72,   108,     8,     0,   112,   155,     8,     0,     0,    42,
-    36,     8,    50,    49,     0,    52,    51,   159,   158,    99,
-    87,     8,    96,    95,     8,   111,   114,    48,    29,    44,
-     8,     0,     8,     0,     0,     0,    32,    46,     8,    86,
-    43,    65,     0,    45,     8,    88,    47,     0,     0,     0
+    58,    57,     8,     0,     0,   121,   127,   137,   135,     0,
+    21,    10,   164,   165,     0,    14,    98,     0,     8,    84,
+    66,     0,    62,     8,     8,    65,     8,     8,    66,     0,
+    69,     0,    79,    71,    78,     8,     0,   118,   119,     6,
+     0,   102,     8,     0,   114,     8,   129,   130,   158,   154,
+   153,   155,   140,   141,   142,   143,   144,   145,   146,   147,
+   148,   149,   150,   151,   152,   131,   139,   138,   133,     0,
+   134,   136,     8,   128,   123,     7,     8,     8,     0,     0,
+     0,     0,     0,    10,    18,     0,    99,    66,     8,    67,
+     0,     0,     5,     0,    66,    54,    55,    64,    75,    76,
+     8,     0,    70,   108,   104,     8,     0,     8,   106,     0,
+     8,     0,   157,     0,   132,   125,   124,   122,    32,    31,
+    38,    39,     8,     0,    36,     0,     0,     8,     0,     0,
+    10,   161,    24,    25,    26,    23,    28,    29,    27,    20,
+   163,   166,     8,    85,     0,    91,    92,    93,    94,    95,
+    86,    90,     8,     0,     0,    72,     0,    74,     8,   111,
+     0,   110,   107,     0,     0,     8,    42,    35,    34,     0,
+     0,   162,     0,    42,     0,     0,    22,     0,     8,     0,
+     0,    59,    73,   109,     8,     0,   113,   156,     8,     0,
+     0,    43,    37,     8,    51,    50,     0,    53,    52,   160,
+   159,   100,    88,     8,    97,    96,     8,   112,   115,    49,
+    30,    45,     8,     0,     8,     0,     0,     0,    33,    47,
+     8,    87,    44,    66,     0,    46,     8,    89,    48,     0,
+     0,     0
 };
 
-static const short yydefgoto[] = {   308,
-     5,     6,     7,   222,    17,     8,    28,    91,   163,   211,
-    92,   164,   249,   203,   268,   269,   212,   302,   270,   213,
-   214,   109,    84,    37,    38,    39,    40,    41,    42,    43,
-    44,    45,   172,    46,   231,   285,    47,    51,    52,    53,
-    54,    55,    85,   159,    86,    87,    88,    89,   216,   217,
-    94,    95
+static const short yydefgoto[] = {   310,
+     5,     6,     7,   224,    17,     8,    28,    91,   163,   211,
+    92,   164,   251,   203,   270,   271,   213,   304,   272,   214,
+   215,   109,    84,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,   172,    46,   233,   287,    47,    51,    52,    53,
+    54,    55,    85,   159,    86,    87,    88,    89,   217,   218,
+   219,    94,    95
 };
 
-static const short yypact[] = {   372,
-    22,   -39,   -22,   -15,-32768,-32768,-32768,-32768,     3,    21,
--32768,-32768,-32768,    37,    37,    37,   185,    43,-32768,-32768,
--32768,-32768,   288,   173,   532,-32768,-32768,   104,   143,   110,
-    58,-32768,   108,   112,-32768,    70,-32768,    46,   227,    77,
--32768,   274,   200,-32768,-32768,-32768,-32768,    89,-32768,-32768,
-   101,    99,   121,    16,-32768,-32768,-32768,-32768,-32768,-32768,
+static const short yypact[] = {   172,
+    22,   -32,   -19,   -15,-32768,-32768,-32768,-32768,    73,    14,
+-32768,-32768,-32768,    37,    37,    37,   106,    43,-32768,-32768,
+-32768,-32768,   136,   222,   534,-32768,-32768,    31,   140,     4,
+    -6,-32768,   130,    42,-32768,    49,-32768,    51,   229,    58,
+-32768,   276,   202,-32768,-32768,-32768,-32768,   150,-32768,-32768,
+    75,   115,   156,    13,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   606,   388,-32768,-32768,-32768,-32768,   223,
-   149,-32768,-32768,-32768,   161,-32768,-32768,   171,-32768,-32768,
-    35,    47,-32768,-32768,-32768,-32768,-32768,-32768,   346,   395,
-    37,   200,-32768,    37,-32768,-32768,   199,    37,    37,-32768,
-   127,   155,-32768,    38,-32768,-32768,    37,    37,    37,    37,
+-32768,-32768,-32768,   608,   390,-32768,-32768,-32768,-32768,   395,
+   116,-32768,-32768,-32768,   145,-32768,-32768,   151,-32768,-32768,
+    35,   135,-32768,-32768,-32768,-32768,-32768,-32768,   290,   348,
+    37,   202,-32768,    37,-32768,-32768,   170,    37,    37,-32768,
+   176,   127,-32768,    38,-32768,-32768,    37,    37,    37,    37,
     37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
-    37,    37,    37,    37,    37,    37,    37,    37,    37,   487,
-    37,    37,-32768,-32768,-32768,-32768,-32768,-32768,   570,   156,
-   102,   262,   117,-32768,   185,   147,-32768,   288,    58,-32768,
-   153,   136,-32768,   173,   288,    37,    37,-32768,-32768,-32768,
-   274,   200,    37,    37,   177,-32768,   209,-32768,    37,   170,
--32768,   336,-32768,   435,    37,    37,    37,-32768,-32768,-32768,
--32768,-32768,-32768,   181,    17,   170,   218,-32768,   244,   248,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   185,-32768,-32768,
--32768,    37,   239,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   205,   539,    37,   200,    37,-32768,    37,   187,    37,
-    37,   570,   284,-32768,     4,-32768,-32768,   254,   141,-32768,
-   210,   135,   219,   226,   185,    24,-32768,   159,    98,-32768,
-    37,    37,-32768,   284,-32768,    37,-32768,   211,    42,-32768,
--32768,-32768,-32768,-32768,    51,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,    37,-32768,    37,-32768,-32768,
--32768,   113,-32768,    98,    27,   135,-32768,    37,-32768,-32768,
--32768,   338,    34,-32768,-32768,-32768,    37,   264,   270,-32768
+    37,    37,    37,    37,    37,    37,    37,    37,    37,   489,
+    37,    37,-32768,-32768,-32768,-32768,-32768,-32768,   572,   179,
+   183,   264,   117,-32768,   106,   163,-32768,   136,    -6,-32768,
+   152,    87,-32768,   222,   136,    37,    37,-32768,-32768,-32768,
+   276,   202,    37,    37,   187,-32768,   200,-32768,    37,   191,
+-32768,   338,-32768,   437,    37,    37,    37,-32768,-32768,-32768,
+-32768,-32768,-32768,   212,    17,   191,   219,-32768,   230,   250,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   106,
+-32768,-32768,-32768,    37,   241,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,   207,   541,    37,   202,    37,-32768,    37,
+   228,    37,    37,   572,   286,-32768,   171,-32768,-32768,   256,
+   165,-32768,   245,    32,   260,   294,   106,    24,-32768,   161,
+   109,-32768,    37,    37,-32768,   286,-32768,    37,-32768,   213,
+    50,-32768,-32768,-32768,-32768,-32768,   112,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,    37,-32768,    37,
+-32768,-32768,-32768,   105,-32768,   109,    28,    32,-32768,    37,
+-32768,-32768,-32768,   340,    34,-32768,-32768,-32768,    37,   266,
+   269,-32768
 };
 
 static const short yypgoto[] = {-32768,
 -32768,-32768,-32768,    -1,   -84,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,    28,-32768,    41,-32768,-32768,     1,-32768,
--32768,-32768,-32768,  -162,-32768,   130,   207,   -87,   196,   -23,
-   -27,-32768,   118,-32768,    82,    48,-32768,   180,-32768,   303,
--32768,  -229,  -147,-32768,   197,   307,-32768,-32768,-32768,-32768,
-    -7,   -35
+   144,-32768,-32768,    48,-32768,    25,-32768,-32768,    45,-32768,
+-32768,-32768,-32768,  -162,-32768,   181,   257,   -87,   247,   -23,
+   -28,-32768,   168,-32768,   134,   101,-32768,   232,-32768,   352,
+-32768,  -236,  -147,-32768,   248,   324,-32768,-32768,-32768,-32768,
+-32768,    -7,   -35
 };
 
 
-#define        YYLAST          650
+#define        YYLAST          652
 
 
 static const short yytable[] = {    10,
-   215,    20,   194,    14,    15,    16,    21,   165,    11,    23,
-    24,    25,   117,   265,   267,   115,   125,   124,   112,    21,
-    30,   178,     9,    21,    -8,    12,    21,   248,   126,    21,
-    22,    -8,    13,   101,   287,   102,    21,    21,   190,    21,
-   111,   114,   290,    29,   243,   169,   103,   118,   119,    21,
-    18,   290,    19,   -39,   127,   128,   129,   130,   131,   132,
+   216,    20,   194,    14,    15,    16,    21,   165,   267,    23,
+    24,    25,   117,   125,   115,    11,    21,   124,   112,    21,
+    30,   178,     9,    22,    -8,   126,    21,   250,    12,   289,
+    21,    -8,    13,   101,    21,   102,    21,    21,   190,    21,
+   111,   114,   269,    29,   245,   169,    90,   118,   119,   -68,
+   292,   103,   100,    96,   127,   128,   129,   130,   131,   132,
    133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-   143,   144,   145,   146,   147,   148,   149,   150,   151,   218,
-   221,   152,   280,   300,   115,   187,   182,   191,   161,   170,
-   306,   -40,   291,   104,   264,   173,   105,   168,   293,   121,
-    21,   291,   174,   175,    21,   176,   177,   283,   284,    49,
-   183,   201,    21,   -67,   184,    21,    -1,   206,    97,    90,
-    98,   189,   100,    50,   192,   -66,   255,    31,    32,    33,
-    34,    35,   110,   207,   208,   209,    18,    21,   116,   305,
-   224,   225,   226,   227,   228,   267,   202,  -102,  -119,   120,
-   201,   195,   200,    99,   115,   196,   197,   235,   220,    96,
-   205,   166,   297,   224,   225,   226,   227,   228,    18,   162,
-   123,    36,   -65,    48,    18,    21,   186,   220,   210,   234,
-   236,   167,   220,    49,   238,   202,   240,    26,    27,   241,
-    18,    93,   229,   230,    18,   219,   247,    50,   250,   185,
-   113,   245,    -8,    18,   188,   199,   252,   115,   223,   239,
-    -8,    32,    33,    34,    35,   281,   230,    18,   251,   256,
-  -119,  -119,  -119,   160,    18,    -8,   237,   106,    18,   259,
-   246,   220,    -8,   261,    18,   262,   263,   -55,   -55,   -55,
-   -55,   -55,   266,   274,   253,   277,   279,    -8,   254,   257,
-    -8,    -8,    -8,   260,    -8,    -8,   271,    18,    -8,   273,
-   289,   286,   204,   309,    -8,   288,    18,    -8,   276,   310,
-   292,    -8,    -8,    18,   -59,   278,   272,   -59,   107,   108,
-   294,   -55,   -55,   295,   155,    32,    33,    34,    35,   296,
-    21,   298,   275,  -125,  -125,  -125,   301,   303,    31,    32,
-    33,    34,    35,   307,   233,   181,    -8,   171,    50,  -125,
-  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -119,  -119,  -119,   157,  -125,   242,  -125,    21,   282,
-   258,   299,    36,   158,  -125,    56,    57,    58,    31,    32,
-    33,    34,    35,   232,   122,   198,    31,    32,    33,    34,
-    35,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-    68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-    78,    79,    80,  -116,  -116,  -116,   304,    81,   155,    82,
-   154,     1,    36,     2,     3,     4,    83,  -125,  -125,  -125,
-    36,     0,     0,     0,     0,   179,    32,    33,    34,    35,
-     0,     0,     0,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -125,  -125,  -125,  -125,   155,   156,     0,   157,  -125,
-     0,  -125,     0,     0,  -125,  -125,  -125,   158,  -125,   180,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,
-  -125,  -125,     0,     0,     0,   157,  -125,   193,  -125,    21,
-     0,     0,     0,   244,   158,  -125,    56,    57,    58,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    59,    60,    61,    62,    63,    64,    65,    66,
-    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-    77,    78,    79,    80,    21,     0,     0,     0,    81,   106,
-    82,    56,    57,    58,     0,     0,     0,    83,     0,   -55,
-   -55,   -55,   -55,   -55,     0,     0,     0,    59,    60,    61,
+   143,   144,   145,   146,   147,   148,   149,   150,   151,   220,
+   223,   152,   282,   115,   302,   187,   182,   191,   161,   170,
+   308,   226,   227,   228,   229,   230,   266,   168,   104,   -41,
+   293,   105,   174,   175,   -67,   176,   177,    21,    26,    27,
+   183,    21,   292,   110,   184,   121,    -1,   206,   285,   286,
+    18,   189,    19,   120,   192,    49,   257,    31,    32,    33,
+    34,    35,    90,   207,   208,   209,   162,    21,    21,    50,
+    97,   307,    98,   231,   232,   166,    31,    32,    33,    34,
+    35,   195,   200,   115,   299,   196,   197,   237,   222,   295,
+   205,   167,   293,  -103,  -120,   226,   227,   228,   229,   230,
+   185,    36,   -66,    21,   201,    99,   188,   222,   210,   236,
+   238,   269,   222,   173,   240,    21,   242,    18,    93,   243,
+    36,     1,   201,     2,     3,     4,   249,    18,   252,   116,
+   241,   247,   113,    18,    -8,   123,   254,   225,   115,   202,
+    18,   221,    -8,    32,    33,    34,    35,   283,   232,   253,
+   -40,   258,    48,    18,    21,   186,    18,   202,   199,   106,
+   255,   261,    49,   222,    18,   263,   239,   264,    18,   -56,
+   -56,   -56,   -56,   -56,   268,   276,    50,   279,   281,    -8,
+   256,   259,    -8,    -8,    -8,   262,    -8,    -8,   273,    18,
+    -8,   248,   291,   288,   204,   311,    -8,   290,   312,  -120,
+  -120,  -120,   294,    -8,    -8,    18,   -60,   265,   277,   -60,
+   107,   108,   296,   -56,   -56,   297,   155,    32,    33,    34,
+    35,   298,    18,   300,   275,  -126,  -126,  -126,   274,   305,
+    31,    32,    33,    34,    35,   309,   212,    18,    -8,   278,
+    50,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -120,  -120,  -120,   157,  -126,   244,  -126,
+    21,    18,   303,   280,    36,   158,  -126,    56,    57,    58,
+    31,    32,    33,    34,    35,   235,   181,   171,   179,    32,
+    33,    34,    35,    59,    60,    61,    62,    63,    64,    65,
+    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+    76,    77,    78,    79,    80,  -117,  -117,  -117,   306,    81,
+   155,    82,   260,   284,    36,   160,   301,    -8,    83,  -126,
+  -126,  -126,   180,   122,    -8,   234,   198,   154,     0,     0,
+     0,     0,     0,     0,     0,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,  -126,  -126,  -126,   155,   156,    -8,
+   157,  -126,     0,  -126,     0,     0,  -126,  -126,  -126,   158,
+  -126,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,  -126,
+  -126,  -126,  -126,  -126,     0,     0,     0,   157,  -126,   193,
+  -126,    21,     0,     0,     0,   246,   158,  -126,    56,    57,
+    58,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    59,    60,    61,    62,    63,    64,
+    65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+    75,    76,    77,    78,    79,    80,    21,     0,     0,     0,
+    81,   106,    82,    56,    57,    58,     0,     0,     0,    83,
+     0,   -56,   -56,   -56,   -56,   -56,     0,     0,     0,    59,
+    60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+    70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+    80,    56,    57,    58,     0,    81,     0,    82,   -61,     0,
+     0,   -61,   107,   108,    83,   -56,   -56,    59,    60,    61,
     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-    72,    73,    74,    75,    76,    77,    78,    79,    80,    56,
-    57,    58,     0,    81,     0,    82,   -60,     0,     0,   -60,
-   107,   108,    83,   -55,   -55,    59,    60,    61,    62,    63,
-    64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-    74,    75,    76,    77,    78,    79,    80,     0,     0,     0,
-     0,    81,     0,    82,     0,     0,     0,     0,     0,     0,
-    83,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-    68,    69,    70,    71,    72,    73,    74,   153,    76,    77
+    72,    73,    74,    75,    76,    77,    78,    79,    80,     0,
+     0,     0,     0,    81,     0,    82,     0,     0,     0,     0,
+     0,     0,    83,    59,    60,    61,    62,    63,    64,    65,
+    66,    67,    68,    69,    70,    71,    72,    73,    74,   153,
+    76,    77
 };
 
 static const short yycheck[] = {     1,
-   163,     9,   150,     5,     6,     7,     3,    92,    48,    11,
-    12,    13,    48,   243,    11,    43,     1,    53,    42,     3,
-    22,   109,     1,     3,     3,    48,     3,    11,    13,     3,
-    10,    10,    48,    35,   264,    37,     3,     3,     1,     3,
-    42,    43,     1,     1,   192,    11,     1,    49,    50,     3,
-    48,     1,    50,    50,    56,    57,    58,    59,    60,    61,
+   163,     9,   150,     5,     6,     7,     3,    92,   245,    11,
+    12,    13,    48,     1,    43,    48,     3,    53,    42,     3,
+    22,   109,     1,    10,     3,    13,     3,    11,    48,   266,
+     3,    10,    48,    35,     3,    37,     3,     3,     1,     3,
+    42,    43,    11,     1,   192,    11,    16,    49,    50,    56,
+     1,     1,    11,    50,    56,    57,    58,    59,    60,    61,
     62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
     72,    73,    74,    75,    76,    77,    78,    79,    80,   164,
-   168,    83,    59,    57,   112,   121,   110,    50,    90,    55,
-    57,    50,    51,    48,   242,    49,    51,    99,    48,     1,
-     3,    51,   104,   105,     3,   107,   108,    10,    11,    11,
-   112,    10,     3,    56,   116,     3,     0,     1,    11,    16,
-    13,   123,    11,    25,   126,    56,   211,    11,    12,    13,
-    14,    15,    56,    17,    18,    19,    48,     3,    50,   302,
-     5,     6,     7,     8,     9,    11,    45,    49,    50,    49,
-    10,   153,   160,    46,   182,   157,   158,   181,   166,    50,
-   162,     1,    50,     5,     6,     7,     8,     9,    48,    21,
-    50,    55,    56,     1,    48,     3,    50,   185,    62,   181,
-   182,    11,   190,    11,   186,    45,   188,     3,     4,   191,
-    48,    49,    57,    58,    48,    49,   204,    25,   206,     1,
-     1,   203,     3,    48,    50,    50,   208,   235,    56,     1,
-    11,    12,    13,    14,    15,    57,    58,    48,     1,   221,
-    48,    49,    50,     1,    48,     3,    50,     1,    48,   231,
-    50,   239,    10,   235,    48,   237,    50,    11,    12,    13,
-    14,    15,   244,   251,     1,   253,   254,    48,     1,    11,
-    51,    52,    53,    49,    55,    56,     3,    48,    59,    50,
-    50,   263,     1,     0,     3,   267,    48,    45,    50,     0,
-   272,    10,    11,    48,    48,    50,   249,    51,    52,    53,
-   282,    55,    56,   285,     1,    12,    13,    14,    15,   291,
-     3,   293,   252,    10,    11,    12,   296,   299,    11,    12,
-    13,    14,    15,   305,   175,   110,    45,   101,    25,    26,
-    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,     1,    54,     3,   258,
-   223,   294,    55,    60,    61,    10,    11,    12,    11,    12,
-    13,    14,    15,   174,    52,   159,    11,    12,    13,    14,
-    15,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+   168,    83,    59,   112,    57,   121,   110,    50,    90,    55,
+    57,     5,     6,     7,     8,     9,   244,    99,    48,    50,
+    51,    51,   104,   105,    56,   107,   108,     3,     3,     4,
+   112,     3,     1,    56,   116,     1,     0,     1,    10,    11,
+    48,   123,    50,    49,   126,    11,   211,    11,    12,    13,
+    14,    15,    16,    17,    18,    19,    21,     3,     3,    25,
+    11,   304,    13,    57,    58,     1,    11,    12,    13,    14,
+    15,   153,   160,   182,    50,   157,   158,   181,   166,    48,
+   162,    11,    51,    49,    50,     5,     6,     7,     8,     9,
+     1,    55,    56,     3,    10,    46,    50,   185,    62,   181,
+   182,    11,   190,    49,   186,     3,   188,    48,    49,   191,
+    55,    20,    10,    22,    23,    24,   204,    48,   206,    50,
+     1,   203,     1,    48,     3,    50,   208,    56,   237,    45,
+    48,    49,    11,    12,    13,    14,    15,    57,    58,     1,
+    50,   223,     1,    48,     3,    50,    48,    45,    50,     1,
+     1,   233,    11,   241,    48,   237,    50,   239,    48,    11,
+    12,    13,    14,    15,   246,   253,    25,   255,   256,    48,
+     1,    11,    51,    52,    53,    49,    55,    56,     3,    48,
+    59,    50,    50,   265,     1,     0,     3,   269,     0,    48,
+    49,    50,   274,    10,    11,    48,    48,    50,   254,    51,
+    52,    53,   284,    55,    56,   287,     1,    12,    13,    14,
+    15,   293,    48,   295,    50,    10,    11,    12,   251,   301,
+    11,    12,    13,    14,    15,   307,   163,    48,    45,    50,
+    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-    45,    46,    47,    48,    49,    50,    49,    52,     1,    54,
-    84,    20,    55,    22,    23,    24,    61,    10,    11,    12,
-    55,    -1,    -1,    -1,    -1,    11,    12,    13,    14,    15,
-    -1,    -1,    -1,    26,    27,    28,    29,    30,    31,    32,
+    45,    46,    47,    48,    49,    50,    51,    52,     1,    54,
+     3,    48,   298,    50,    55,    60,    61,    10,    11,    12,
+    11,    12,    13,    14,    15,   175,   110,   101,    11,    12,
+    13,    14,    15,    26,    27,    28,    29,    30,    31,    32,
     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-    43,    44,    45,    46,    47,     1,    49,    -1,    51,    52,
-    -1,    54,    -1,    -1,    10,    11,    12,    60,    61,    55,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-    46,    47,    -1,    -1,    -1,    51,    52,     1,    54,     3,
-    -1,    -1,    -1,    59,    60,    61,    10,    11,    12,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    43,    44,    45,    46,    47,    48,    49,    50,    49,    52,
+     1,    54,   225,   260,    55,     1,   296,     3,    61,    10,
+    11,    12,    55,    52,    10,   174,   159,    84,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    26,    27,    28,    29,    30,
+    31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+    41,    42,    43,    44,    45,    46,    47,     1,    49,    45,
+    51,    52,    -1,    54,    -1,    -1,    10,    11,    12,    60,
+    61,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
     34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-    44,    45,    46,    47,     3,    -1,    -1,    -1,    52,     1,
-    54,    10,    11,    12,    -1,    -1,    -1,    61,    -1,    11,
-    12,    13,    14,    15,    -1,    -1,    -1,    26,    27,    28,
+    44,    45,    46,    47,    -1,    -1,    -1,    51,    52,     1,
+    54,     3,    -1,    -1,    -1,    59,    60,    61,    10,    11,
+    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    26,    27,    28,    29,    30,    31,
+    32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+    42,    43,    44,    45,    46,    47,     3,    -1,    -1,    -1,
+    52,     1,    54,    10,    11,    12,    -1,    -1,    -1,    61,
+    -1,    11,    12,    13,    14,    15,    -1,    -1,    -1,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    10,    11,    12,    -1,    52,    -1,    54,    48,    -1,
+    -1,    51,    52,    53,    61,    55,    56,    26,    27,    28,
     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-    39,    40,    41,    42,    43,    44,    45,    46,    47,    10,
-    11,    12,    -1,    52,    -1,    54,    48,    -1,    -1,    51,
-    52,    53,    61,    55,    56,    26,    27,    28,    29,    30,
-    31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-    41,    42,    43,    44,    45,    46,    47,    -1,    -1,    -1,
-    -1,    52,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,
-    61,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-    35,    36,    37,    38,    39,    40,    41,    42,    43,    44
+    39,    40,    41,    42,    43,    44,    45,    46,    47,    -1,
+    -1,    -1,    -1,    52,    -1,    54,    -1,    -1,    -1,    -1,
+    -1,    -1,    61,    26,    27,    28,    29,    30,    31,    32,
+    33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+    43,    44
 };
 #define YYPURE 1
 
@@ -1158,20 +1162,20 @@ yyreduce:
   switch (yyn) {
 
 case 5:
-#line 244 "parser.y"
+#line 245 "parser.y"
 {
         CSSParser *p = static_cast<CSSParser *>(parser);
         p->rule = yyvsp[-2].rule;
     ;
     break;}
 case 6:
-#line 251 "parser.y"
+#line 252 "parser.y"
 {
        /* can be empty */
     ;
     break;}
 case 7:
-#line 257 "parser.y"
+#line 258 "parser.y"
 {
        CSSParser *p = static_cast<CSSParser *>(parser);
        if ( yyvsp[-1].valueList ) {
@@ -1196,7 +1200,7 @@ case 7:
     ;
     break;}
 case 14:
-#line 294 "parser.y"
+#line 295 "parser.y"
 {
 #ifdef CSS_DEBUG
      kdDebug( 6080 ) << "charset rule: " << qString(yyvsp[-2].string) << endl;
@@ -1204,7 +1208,7 @@ case 14:
  ;
     break;}
 case 18:
-#line 305 "parser.y"
+#line 306 "parser.y"
 {
      CSSParser *p = static_cast<CSSParser *>(parser);
      if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) {
@@ -1215,7 +1219,7 @@ case 18:
  ;
     break;}
 case 22:
-#line 322 "parser.y"
+#line 323 "parser.y"
 {
      CSSParser *p = static_cast<CSSParser *>(parser);
      if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) {
@@ -1225,8 +1229,8 @@ case 22:
      }
  ;
     break;}
-case 29:
-#line 342 "parser.y"
+case 30:
+#line 344 "parser.y"
 {
 #ifdef CSS_DEBUG
        kdDebug( 6080 ) << "@import: " << qString(yyvsp[-3].string) << endl;
@@ -1240,20 +1244,20 @@ case 29:
         }
     ;
     break;}
-case 30:
-#line 354 "parser.y"
+case 31:
+#line 356 "parser.y"
 {
         yyval.rule = 0;
     ;
     break;}
-case 31:
-#line 357 "parser.y"
+case 32:
+#line 359 "parser.y"
 {
         yyval.rule = 0;
     ;
     break;}
-case 32:
-#line 363 "parser.y"
+case 33:
+#line 365 "parser.y"
 {
 #ifdef CSS_DEBUG
     kdDebug( 6080 ) << "@namespace: " << qString(yyvsp[-2].string) << endl;
@@ -1263,50 +1267,50 @@ case 32:
         static_cast<CSSStyleSheetImpl*>(p->styleElement)->addNamespace(p, domString(yyvsp[-3].string), domString(yyvsp[-2].string));
 ;
     break;}
-case 35:
-#line 376 "parser.y"
+case 36:
+#line 378 "parser.y"
 { yyval.string.string = 0; ;
     break;}
-case 36:
-#line 377 "parser.y"
+case 37:
+#line 379 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
-case 39:
-#line 386 "parser.y"
+case 40:
+#line 388 "parser.y"
 {
         yyval.mediaList = new MediaListImpl();
      ;
     break;}
-case 41:
-#line 394 "parser.y"
+case 42:
+#line 396 "parser.y"
 {
        yyval.mediaList = 0;
     ;
     break;}
-case 42:
-#line 397 "parser.y"
+case 43:
+#line 399 "parser.y"
 {
        yyval.mediaList = new MediaListImpl();
        yyval.mediaList->appendMedium( domString(yyvsp[0].string).lower() );
     ;
     break;}
-case 43:
-#line 401 "parser.y"
+case 44:
+#line 403 "parser.y"
 {
        yyval.mediaList = yyvsp[-3].mediaList;
         if (yyval.mediaList)
            yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
     ;
     break;}
-case 44:
-#line 406 "parser.y"
+case 45:
+#line 408 "parser.y"
 {
         delete yyvsp[-1].mediaList;
         yyval.mediaList = 0;
     ;
     break;}
-case 45:
-#line 413 "parser.y"
+case 46:
+#line 415 "parser.y"
 {
        CSSParser *p = static_cast<CSSParser *>(parser);
        if ( yyvsp[-4].mediaList && yyvsp[-1].ruleList &&
@@ -1319,12 +1323,12 @@ case 45:
        }
     ;
     break;}
-case 46:
-#line 427 "parser.y"
+case 47:
+#line 429 "parser.y"
 { yyval.ruleList = 0; ;
     break;}
-case 47:
-#line 428 "parser.y"
+case 48:
+#line 430 "parser.y"
 {
       yyval.ruleList = yyvsp[-2].ruleList;
       if ( yyvsp[-1].rule ) {
@@ -1333,58 +1337,58 @@ case 47:
       }
   ;
     break;}
-case 48:
-#line 438 "parser.y"
+case 49:
+#line 440 "parser.y"
 {
       yyval.string = yyvsp[-1].string;
   ;
     break;}
-case 49:
-#line 460 "parser.y"
-{
-      yyval.rule = 0;
-    ;
-    break;}
 case 50:
-#line 463 "parser.y"
+#line 462 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 51:
-#line 469 "parser.y"
+#line 465 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 52:
-#line 472 "parser.y"
+#line 471 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
 case 53:
-#line 478 "parser.y"
-{ yyval.relation = CSSSelector::Sibling; ;
+#line 474 "parser.y"
+{
+      yyval.rule = 0;
+    ;
     break;}
 case 54:
-#line 479 "parser.y"
-{ yyval.relation = CSSSelector::Child; ;
+#line 480 "parser.y"
+{ yyval.relation = CSSSelector::Sibling; ;
     break;}
 case 55:
-#line 480 "parser.y"
-{ yyval.relation = CSSSelector::Descendant; ;
+#line 481 "parser.y"
+{ yyval.relation = CSSSelector::Child; ;
     break;}
 case 56:
-#line 484 "parser.y"
-{ yyval.val = -1; ;
+#line 482 "parser.y"
+{ yyval.relation = CSSSelector::Descendant; ;
     break;}
 case 57:
-#line 485 "parser.y"
-{ yyval.val = 1; ;
+#line 486 "parser.y"
+{ yyval.val = -1; ;
     break;}
 case 58:
-#line 489 "parser.y"
+#line 487 "parser.y"
+{ yyval.val = 1; ;
+    break;}
+case 59:
+#line 491 "parser.y"
 {
 #ifdef CSS_DEBUG
        kdDebug( 6080 ) << "got ruleset" << endl << "  selector:" << endl;
@@ -1402,8 +1406,8 @@ case 58:
        }
     ;
     break;}
-case 59:
-#line 508 "parser.y"
+case 60:
+#line 510 "parser.y"
 {
        if ( yyvsp[0].selector ) {
            yyval.selector = yyvsp[0].selector;
@@ -1416,8 +1420,8 @@ case 59:
        }
     ;
     break;}
-case 60:
-#line 519 "parser.y"
+case 61:
+#line 521 "parser.y"
 {
        if ( yyvsp[-3].selector && yyvsp[0].selector ) {
            yyval.selector = yyvsp[-3].selector;
@@ -1433,21 +1437,21 @@ case 60:
         }
     ;
     break;}
-case 61:
-#line 533 "parser.y"
+case 62:
+#line 535 "parser.y"
 {
         delete yyvsp[-1].selector;
         yyval.selector = 0;
     ;
     break;}
-case 62:
-#line 540 "parser.y"
+case 63:
+#line 542 "parser.y"
 {
        yyval.selector = yyvsp[0].selector;
     ;
     break;}
-case 63:
-#line 543 "parser.y"
+case 64:
+#line 545 "parser.y"
 {
        yyval.selector = yyvsp[0].selector;
         if (!yyvsp[-2].selector) {
@@ -1478,50 +1482,50 @@ case 63:
         }
     ;
     break;}
-case 64:
-#line 572 "parser.y"
+case 65:
+#line 574 "parser.y"
 {
         delete yyvsp[-1].selector;
         yyval.selector = 0;
     ;
     break;}
-case 65:
-#line 579 "parser.y"
+case 66:
+#line 581 "parser.y"
 { yyval.string.string = 0; yyval.string.length = 0; ;
     break;}
-case 66:
-#line 580 "parser.y"
+case 67:
+#line 582 "parser.y"
 { static unsigned short star = '*'; yyval.string.string = &star; yyval.string.length = 1; ;
     break;}
-case 67:
-#line 581 "parser.y"
+case 68:
+#line 583 "parser.y"
 { yyval.string = yyvsp[0].string; ;
     break;}
-case 68:
-#line 585 "parser.y"
+case 69:
+#line 587 "parser.y"
 {
        yyval.selector = new CSSSelector();
        yyval.selector->tag = yyvsp[-1].element;
     ;
     break;}
-case 69:
-#line 589 "parser.y"
+case 70:
+#line 591 "parser.y"
 {
        yyval.selector = yyvsp[-1].selector;
        if ( yyval.selector )
             yyval.selector->tag = yyvsp[-2].element;
     ;
     break;}
-case 70:
-#line 594 "parser.y"
+case 71:
+#line 596 "parser.y"
 {
        yyval.selector = yyvsp[-1].selector;
         if (yyval.selector)
             yyval.selector->tag = makeId(static_cast<CSSParser*>(parser)->defaultNamespace, anyLocalName);;
     ;
     break;}
-case 71:
-#line 599 "parser.y"
+case 72:
+#line 601 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->tag = yyvsp[-1].element;
@@ -1530,8 +1534,8 @@ case 71:
             static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->tag, domString(yyvsp[-3].string));
     ;
     break;}
-case 72:
-#line 606 "parser.y"
+case 73:
+#line 608 "parser.y"
 {
         yyval.selector = yyvsp[-1].selector;
         if (yyval.selector) {
@@ -1542,8 +1546,8 @@ case 72:
         }
     ;
     break;}
-case 73:
-#line 615 "parser.y"
+case 74:
+#line 617 "parser.y"
 {
         yyval.selector = yyvsp[-1].selector;
         if (yyval.selector) {
@@ -1554,8 +1558,8 @@ case 73:
         }
     ;
     break;}
-case 74:
-#line 627 "parser.y"
+case 75:
+#line 629 "parser.y"
 {
        CSSParser *p = static_cast<CSSParser *>(parser);
        DOM::DocumentImpl *doc = p->document();
@@ -1573,20 +1577,20 @@ case 74:
        }
     ;
     break;}
-case 75:
-#line 643 "parser.y"
+case 76:
+#line 645 "parser.y"
 {
        yyval.element = makeId(static_cast<CSSParser*>(parser)->defaultNamespace, anyLocalName);
     ;
     break;}
-case 76:
-#line 649 "parser.y"
+case 77:
+#line 651 "parser.y"
 {
        yyval.selector = yyvsp[0].selector;
     ;
     break;}
-case 77:
-#line 652 "parser.y"
+case 78:
+#line 654 "parser.y"
 {
        yyval.selector = yyvsp[-1].selector;
         if (yyval.selector) {
@@ -1598,15 +1602,15 @@ case 77:
         }
     ;
     break;}
-case 78:
-#line 662 "parser.y"
+case 79:
+#line 664 "parser.y"
 {
         delete yyvsp[-1].selector;
         yyval.selector = 0;
     ;
     break;}
-case 79:
-#line 669 "parser.y"
+case 80:
+#line 671 "parser.y"
 {
        yyval.selector = new CSSSelector();
        yyval.selector->match = CSSSelector::Id;
@@ -1617,8 +1621,8 @@ case 79:
        yyval.selector->value = atomicString(yyvsp[0].string);
     ;
     break;}
-case 83:
-#line 684 "parser.y"
+case 84:
+#line 686 "parser.y"
 {
         yyval.selector = new CSSSelector();
        yyval.selector->match = CSSSelector::Class;
@@ -1629,8 +1633,8 @@ case 83:
        yyval.selector->value = atomicString(yyvsp[0].string);
     ;
     break;}
-case 84:
-#line 696 "parser.y"
+case 85:
+#line 698 "parser.y"
 {
        CSSParser *p = static_cast<CSSParser *>(parser);
        DOM::DocumentImpl *doc = p->document();
@@ -1649,16 +1653,16 @@ case 84:
         }
     ;
     break;}
-case 85:
-#line 716 "parser.y"
+case 86:
+#line 718 "parser.y"
 {
        yyval.selector = new CSSSelector();
        yyval.selector->attr = yyvsp[-1].attribute;
        yyval.selector->match = CSSSelector::Set;
     ;
     break;}
-case 86:
-#line 721 "parser.y"
+case 87:
+#line 723 "parser.y"
 {
        yyval.selector = new CSSSelector();
        yyval.selector->attr = yyvsp[-5].attribute;
@@ -1666,8 +1670,8 @@ case 86:
        yyval.selector->value = atomicString(yyvsp[-2].string);
     ;
     break;}
-case 87:
-#line 727 "parser.y"
+case 88:
+#line 729 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->attr = yyvsp[-1].attribute;
@@ -1677,8 +1681,8 @@ case 87:
             static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->attr, domString(yyvsp[-3].string));
     ;
     break;}
-case 88:
-#line 735 "parser.y"
+case 89:
+#line 737 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->attr = yyvsp[-5].attribute;
@@ -1689,44 +1693,44 @@ case 88:
             static_cast<CSSStyleSheetImpl*>(p->styleElement)->determineNamespace(yyval.selector->attr, domString(yyvsp[-7].string));
     ;
     break;}
-case 89:
-#line 747 "parser.y"
+case 90:
+#line 749 "parser.y"
 {
        yyval.val = CSSSelector::Exact;
     ;
     break;}
-case 90:
-#line 750 "parser.y"
+case 91:
+#line 752 "parser.y"
 {
        yyval.val = CSSSelector::List;
     ;
     break;}
-case 91:
-#line 753 "parser.y"
+case 92:
+#line 755 "parser.y"
 {
        yyval.val = CSSSelector::Hyphen;
     ;
     break;}
-case 92:
-#line 756 "parser.y"
+case 93:
+#line 758 "parser.y"
 {
        yyval.val = CSSSelector::Begin;
     ;
     break;}
-case 93:
-#line 759 "parser.y"
+case 94:
+#line 761 "parser.y"
 {
        yyval.val = CSSSelector::End;
     ;
     break;}
-case 94:
-#line 762 "parser.y"
+case 95:
+#line 764 "parser.y"
 {
        yyval.val = CSSSelector::Contain;
     ;
     break;}
-case 97:
-#line 773 "parser.y"
+case 98:
+#line 775 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->match = CSSSelector::Pseudo;
@@ -1741,8 +1745,8 @@ case 97:
         }
     ;
     break;}
-case 98:
-#line 787 "parser.y"
+case 99:
+#line 789 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->match = CSSSelector::Pseudo;
@@ -1750,8 +1754,8 @@ case 98:
         yyval.selector->value = atomicString(yyvsp[0].string);
     ;
     break;}
-case 99:
-#line 793 "parser.y"
+case 100:
+#line 795 "parser.y"
 {
         yyval.selector = new CSSSelector();
         yyval.selector->match = CSSSelector::Pseudo;
@@ -1760,28 +1764,28 @@ case 99:
         yyval.selector->value = atomicString(yyvsp[-4].string);
     ;
     break;}
-case 100:
-#line 803 "parser.y"
+case 101:
+#line 805 "parser.y"
 {
        yyval.ok = yyvsp[0].ok;
     ;
     break;}
-case 101:
-#line 806 "parser.y"
+case 102:
+#line 808 "parser.y"
 {
        yyval.ok = yyvsp[-1].ok;
        if ( yyvsp[0].ok )
            yyval.ok = yyvsp[0].ok;
     ;
     break;}
-case 102:
-#line 811 "parser.y"
+case 103:
+#line 813 "parser.y"
 {
        yyval.ok = yyvsp[0].ok;
     ;
     break;}
-case 103:
-#line 814 "parser.y"
+case 104:
+#line 816 "parser.y"
 {
        yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1789,8 +1793,8 @@ case 103:
 #endif
     ;
     break;}
-case 104:
-#line 820 "parser.y"
+case 105:
+#line 822 "parser.y"
 {
        yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1798,20 +1802,20 @@ case 104:
 #endif
     ;
     break;}
-case 105:
-#line 829 "parser.y"
+case 106:
+#line 831 "parser.y"
 {
        yyval.ok = yyvsp[-2].ok;
     ;
     break;}
-case 106:
-#line 832 "parser.y"
+case 107:
+#line 834 "parser.y"
 {
         yyval.ok = false;
     ;
     break;}
-case 107:
-#line 835 "parser.y"
+case 108:
+#line 837 "parser.y"
 {
        yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1819,8 +1823,8 @@ case 107:
 #endif
     ;
     break;}
-case 108:
-#line 841 "parser.y"
+case 109:
+#line 843 "parser.y"
 {
        yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1828,16 +1832,16 @@ case 108:
 #endif
     ;
     break;}
-case 109:
-#line 847 "parser.y"
+case 110:
+#line 849 "parser.y"
 {
        yyval.ok = yyvsp[-3].ok;
        if ( yyvsp[-2].ok )
            yyval.ok = yyvsp[-2].ok;
     ;
     break;}
-case 110:
-#line 852 "parser.y"
+case 111:
+#line 854 "parser.y"
 {
        yyval.ok = yyvsp[-3].ok;
 #ifdef CSS_DEBUG
@@ -1845,8 +1849,8 @@ case 110:
 #endif
     ;
     break;}
-case 111:
-#line 858 "parser.y"
+case 112:
+#line 860 "parser.y"
 {
        yyval.ok = yyvsp[-5].ok;
 #ifdef CSS_DEBUG
@@ -1854,8 +1858,8 @@ case 111:
 #endif
     ;
     break;}
-case 112:
-#line 867 "parser.y"
+case 113:
+#line 869 "parser.y"
 {
        yyval.ok = false;
        CSSParser *p = static_cast<CSSParser *>(parser);
@@ -1879,14 +1883,14 @@ case 112:
        p->valueList = 0;
     ;
     break;}
-case 113:
-#line 890 "parser.y"
+case 114:
+#line 892 "parser.y"
 {
         yyval.ok = false;
     ;
     break;}
-case 114:
-#line 894 "parser.y"
+case 115:
+#line 896 "parser.y"
 {
         /* The default movable type template has letter-spacing: .none;  Handle this by looking for
         error tokens at the start of an expr, recover the expr and then treat as an error, cleaning
@@ -1895,44 +1899,44 @@ case 114:
         yyval.ok = false;
     ;
     break;}
-case 115:
-#line 902 "parser.y"
+case 116:
+#line 904 "parser.y"
 {
         /* Handle this case: div { text-align: center; !important } Just reduce away the stray !important. */
         yyval.ok = false;
     ;
     break;}
-case 116:
-#line 907 "parser.y"
+case 117:
+#line 909 "parser.y"
 {
         /* div { font-family: } Just reduce away this property with no value. */
         yyval.ok = false;
     ;
     break;}
-case 117:
-#line 914 "parser.y"
+case 118:
+#line 916 "parser.y"
 {
        QString str = qString(yyvsp[-1].string);
        yyval.prop_id = getPropertyID( str.lower().latin1(), str.length() );
     ;
     break;}
-case 118:
-#line 921 "parser.y"
+case 119:
+#line 923 "parser.y"
 { yyval.b = true; ;
     break;}
-case 119:
-#line 922 "parser.y"
+case 120:
+#line 924 "parser.y"
 { yyval.b = false; ;
     break;}
-case 120:
-#line 926 "parser.y"
+case 121:
+#line 928 "parser.y"
 {
        yyval.valueList = new ValueList;
        yyval.valueList->addValue( yyvsp[0].value );
     ;
     break;}
-case 121:
-#line 930 "parser.y"
+case 122:
+#line 932 "parser.y"
 {
         yyval.valueList = yyvsp[-2].valueList;
        if ( yyval.valueList ) {
@@ -1947,45 +1951,45 @@ case 121:
         }
     ;
     break;}
-case 122:
-#line 943 "parser.y"
+case 123:
+#line 945 "parser.y"
 {
         delete yyvsp[-1].valueList;
         yyval.valueList = 0;
     ;
     break;}
-case 123:
-#line 950 "parser.y"
+case 124:
+#line 952 "parser.y"
 {
        yyval.tok = '/';
     ;
     break;}
-case 124:
-#line 953 "parser.y"
+case 125:
+#line 955 "parser.y"
 {
        yyval.tok = ',';
     ;
     break;}
-case 125:
-#line 956 "parser.y"
+case 126:
+#line 958 "parser.y"
 {
         yyval.tok = 0;
   ;
     break;}
-case 126:
-#line 962 "parser.y"
+case 127:
+#line 964 "parser.y"
 { yyval.value = yyvsp[0].value; ;
     break;}
-case 127:
-#line 963 "parser.y"
+case 128:
+#line 965 "parser.y"
 { yyval.value = yyvsp[0].value; yyval.value.fValue *= yyvsp[-1].val; ;
     break;}
-case 128:
-#line 964 "parser.y"
+case 129:
+#line 966 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_STRING; ;
     break;}
-case 129:
-#line 965 "parser.y"
+case 130:
+#line 967 "parser.y"
 {
       QString str = qString( yyvsp[-1].string );
       yyval.value.id = getValueID( str.lower().latin1(), str.length() );
@@ -1993,110 +1997,110 @@ case 129:
       yyval.value.string = yyvsp[-1].string;
   ;
     break;}
-case 130:
-#line 972 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
-    break;}
 case 131:
-#line 973 "parser.y"
+#line 974 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
     break;}
 case 132:
-#line 974 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
+#line 975 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_DIMENSION ;
     break;}
 case 133:
-#line 975 "parser.y"
-{ yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
+#line 976 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = CSSPrimitiveValue::CSS_URI; ;
     break;}
 case 134:
-#line 976 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
+#line 977 "parser.y"
+{ yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;
     break;}
 case 135:
-#line 977 "parser.y"
-{ yyval.value.id = 0; yyval.value.string = ParseString(); yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
+#line 978 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
     break;}
 case 136:
 #line 979 "parser.y"
+{ yyval.value.id = 0; yyval.value.string = ParseString(); yyval.value.unit = CSSPrimitiveValue::CSS_RGBCOLOR; ;
+    break;}
+case 137:
+#line 981 "parser.y"
 {
       yyval.value = yyvsp[0].value;
   ;
     break;}
-case 137:
-#line 985 "parser.y"
+case 138:
+#line 987 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_NUMBER; ;
     break;}
-case 138:
-#line 986 "parser.y"
+case 139:
+#line 988 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PERCENTAGE; ;
     break;}
-case 139:
-#line 987 "parser.y"
+case 140:
+#line 989 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PX; ;
     break;}
-case 140:
-#line 988 "parser.y"
+case 141:
+#line 990 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_CM; ;
     break;}
-case 141:
-#line 989 "parser.y"
+case 142:
+#line 991 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MM; ;
     break;}
-case 142:
-#line 990 "parser.y"
+case 143:
+#line 992 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_IN; ;
     break;}
-case 143:
-#line 991 "parser.y"
+case 144:
+#line 993 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PT; ;
     break;}
-case 144:
-#line 992 "parser.y"
+case 145:
+#line 994 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_PC; ;
     break;}
-case 145:
-#line 993 "parser.y"
+case 146:
+#line 995 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_DEG; ;
     break;}
-case 146:
-#line 994 "parser.y"
+case 147:
+#line 996 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_RAD; ;
     break;}
-case 147:
-#line 995 "parser.y"
+case 148:
+#line 997 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_GRAD; ;
     break;}
-case 148:
-#line 996 "parser.y"
+case 149:
+#line 998 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_MS; ;
     break;}
-case 149:
-#line 997 "parser.y"
+case 150:
+#line 999 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_S; ;
     break;}
-case 150:
-#line 998 "parser.y"
+case 151:
+#line 1000 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_HZ; ;
     break;}
-case 151:
-#line 999 "parser.y"
+case 152:
+#line 1001 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_KHZ; ;
     break;}
-case 152:
-#line 1000 "parser.y"
+case 153:
+#line 1002 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EMS; ;
     break;}
-case 153:
-#line 1001 "parser.y"
+case 154:
+#line 1003 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = Value::Q_EMS; ;
     break;}
-case 154:
-#line 1002 "parser.y"
+case 155:
+#line 1004 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = CSSPrimitiveValue::CSS_EXS; ;
     break;}
-case 155:
-#line 1007 "parser.y"
+case 156:
+#line 1009 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-4].string;
@@ -2106,8 +2110,8 @@ case 155:
       yyval.value.function = f;
   ;
     break;}
-case 156:
-#line 1015 "parser.y"
+case 157:
+#line 1017 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-2].string;
@@ -2117,12 +2121,12 @@ case 156:
       yyval.value.function = f;
   ;
     break;}
-case 157:
-#line 1030 "parser.y"
+case 158:
+#line 1032 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
-case 158:
-#line 1037 "parser.y"
+case 159:
+#line 1039 "parser.y"
 {
        yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2130,8 +2134,8 @@ case 158:
 #endif
     ;
     break;}
-case 159:
-#line 1043 "parser.y"
+case 160:
+#line 1045 "parser.y"
 {
        yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2139,8 +2143,18 @@ case 159:
 #endif
     ;
     break;}
-case 160:
-#line 1052 "parser.y"
+case 161:
+#line 1054 "parser.y"
+{
+        delete yyvsp[0].rule;
+        yyval.rule = 0;
+#ifdef CSS_DEBUG
+        kdDebug( 6080 ) << "skipped invalid import" << endl;
+#endif
+    ;
+    break;}
+case 162:
+#line 1064 "parser.y"
 {
        yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -2370,6 +2384,6 @@ yyerrhandle:
     }
   return 1;
 }
-#line 1087 "parser.y"
+#line 1099 "parser.y"
 
 
index b2ae85d..f142875 100644 (file)
@@ -185,6 +185,7 @@ static int cssyylex( YYSTYPE *yylval ) {
 %type <rule> font_face
 %type <rule> invalid_rule
 %type <rule> invalid_at
+%type <rule> invalid_import
 %type <rule> rule
 
 %type <string> maybe_ns_prefix
@@ -336,6 +337,7 @@ rule:
   | font_face
   | invalid_rule
   | invalid_at
+  | invalid_import
     ;
 
 import:
@@ -1048,6 +1050,16 @@ invalid_at:
     }
     ;
 
+invalid_import:
+    import {
+        delete $1;
+        $$ = 0;
+#ifdef CSS_DEBUG
+        kdDebug( 6080 ) << "skipped invalid import" << endl;
+#endif
+    }
+    ;
+
 invalid_rule:
     error invalid_block {
        $$ = 0;