[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde3alpha
Subject:    Re: [Kde3alpha] kdelibs compile failure in khtml/css (HELP PLEASE)
From:       Shawn <core () enodev ! com>
Date:       2003-02-21 20:33:46
[Download RAW message or body]

Here's the kicker... Here's a cvs version summary, going from cvsup
sources to the snapshot file. I take is that cvsup.kde.org is a crusty
mirror of the cvs server? Is it that I'm in the US?

Why is cvsup so crusty???!?!?!?

I've attached the patch I generated.

$ grep -e "\$Id" -e "^diff" css.cvsup-to-030221
diff -urN css.cvsup/css_base.cpp css.030221/css_base.cpp
diff -urN css.cvsup/css_base.h css.030221/css_base.h
- * $Id: css_base.h,v 1.5 2003/02/19 19:58:40 mueller Exp $
+ * $Id: css_base.h,v 1.6 2003/02/20 21:09:45 knoll Exp $
diff -urN css.cvsup/cssparser.h css.030221/cssparser.h
- * $Id: cssparser.h,v 1.68 2003/01/29 18:19:23 knoll Exp $
+ * $Id: cssparser.h,v 1.69 2003/02/20 21:09:45 knoll Exp $
diff -urN css.cvsup/cssstyleselector.cpp css.030221/cssstyleselector.cpp
diff -urN css.cvsup/parser.cpp css.030221/parser.cpp
- *  $Id: parser.cpp,v 1.21 2003/02/08 02:24:52 pmk Exp $
+ *  $Id: parser.cpp,v 1.22 2003/02/20 21:09:57 knoll Exp $
diff -urN css.cvsup/parser.h css.030221/parser.h
diff -urN css.cvsup/parser.y css.030221/parser.y
- *  $Id: parser.y,v 1.16 2003/02/08 02:24:52 pmk Exp $
+ *  $Id: parser.y,v 1.18 2003/02/20 21:09:45 knoll Exp $
diff -urN css.cvsup/tokenizer.cpp css.030221/tokenizer.cpp
- * $Id: tokenizer.cpp,v 1.6 2003/01/22 10:03:48 knoll Exp $
+ * $Id: tokenizer.cpp,v 1.7 2003/02/20 21:09:57 knoll Exp $
diff -urN css.cvsup/tokenizer.flex css.030221/tokenizer.flex



On Fri, 2003-02-21 at 14:17, Shawn wrote:
> And stranger yet, the kdelibs-030221.tar.bz2 compiles.
> 
> I looked, there's quite a diff between it and cvsup sources. What's the
> deal???
> 
> On Fri, 2003-02-21 at 14:08, Shawn wrote:
> > When the kdelibs build (cvsup'ed minutes ago) gets to khtml/css, the
> > build dies like this. PLEASE HELP!!!!! 
> > 
> > gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
> > bison (GNU Bison) 1.875
> > 
> > make: Entering directory `/hdg/3/03data/kde/kdelibs/khtml/css'
> > if /bin/sh ../../libtool --silent --mode=compile --tag=CXX g++
> > -DHAVE_CONFIG_H -I. -I. -I../.. -I../../kimgio -I../../kio -I../../dcop
> > -I../../khtml -I../../libltdl -I../.. -I../../dcop -I../../libltdl
> > -I../../kdefx -I../../kdecore -I../../kdeui -I../../kio -I../../kio/kio
> > -I../../kio/kfile -I../.. -I/opt/garnome/include -I/usr/X11R6/include   
> > -DQT_THREAD_SUPPORT  -D_REENTRANT -I/usr/include/pcre 
> > -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W
> > -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi
> > -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion
> > -Wchar-subscripts -O2 -Wformat-security -Wmissing-format-attribute
> > -fno-exceptions -fno-check-new -fno-common  -DQT_NO_TRANSLATION
> > -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_COMPAT   -MT
> > libkhtmlcss_la.all_cpp.lo -MD -MP -MF ".deps/libkhtmlcss_la.all_cpp.Tpo"
> > \
> >   -c -o libkhtmlcss_la.all_cpp.lo `test -f 'libkhtmlcss_la.all_cpp.cpp'
> > || echo './'`libkhtmlcss_la.all_cpp.cpp; \
> > then mv ".deps/libkhtmlcss_la.all_cpp.Tpo"
> > ".deps/libkhtmlcss_la.all_cpp.Plo"; \
> > else rm -f ".deps/libkhtmlcss_la.all_cpp.Tpo"; exit 1; \
> > fi
> > In file included from libkhtmlcss_la.all_cpp.cpp:9:
> > parser.y:97: conflicting types for `typedef union YYSTYPE YYSTYPE'
> > parser.h:19: previous declaration as `typedef union YYSTYPE YYSTYPE'
> > make: *** [libkhtmlcss_la.all_cpp.lo] Error 1
> > make: Leaving directory `/hdg/3/03data/kde/kdelibs/khtml/css'
> > 
> > _______________________________________________
> > kde3alpha mailing list
> > kde3alpha@mail.kde.org
> > http://mail.kde.org/mailman/listinfo/kde3alpha
> _______________________________________________
> kde3alpha mailing list
> kde3alpha@mail.kde.org
> http://mail.kde.org/mailman/listinfo/kde3alpha

["css.cvsup-to-030221" (css.cvsup-to-030221)]

diff -urN css.cvsup/css_base.cpp css.030221/css_base.cpp
--- css.cvsup/css_base.cpp	2003-01-20 14:47:40.000000000 -0600
+++ css.030221/css_base.cpp	2003-02-20 17:31:45.000000000 -0600
@@ -135,7 +135,7 @@
     if ( nonCSSHint )
         return 0;
 
-    int s = ((tag == -1) ? 0 : 1);
+    int s = ((tag == 0xffff) ? 0 : 1);
     switch(match)
     {
     case Id:
@@ -231,26 +231,27 @@
 
 DOMString CSSSelector::selectorText() const
 {
+    // #### fix namespace
     DOMString str;
     const CSSSelector* cs = this;
-    if ( cs->tag == -1 && cs->attr == ATTR_ID && cs->match == CSSSelector::Exact )
+    if ( cs->tag == 0xffff && cs->attr == ATTR_ID && cs->match == CSSSelector::Exact \
)  {
         str = "#";
         str += cs->value;
     }
-    else if ( cs->tag == -1 && cs->attr == ATTR_CLASS && cs->match == \
CSSSelector::List ) +    else if ( cs->tag == 0xffff && cs->attr == ATTR_CLASS && \
cs->match == CSSSelector::List )  {
         str = ".";
         str += cs->value;
     }
-    else if ( cs->tag == -1 && cs->match == CSSSelector::Pseudo )
+    else if ( cs->tag == 0xffff && cs->match == CSSSelector::Pseudo )
     {
         str = ":";
         str += cs->value;
     }
     else
     {
-        if ( cs->tag == -1 )
+        if ( cs->tag == 0xffff )
             str = "*";
         else
             str = getTagName( cs->tag );
diff -urN css.cvsup/css_base.h css.030221/css_base.h
--- css.cvsup/css_base.h	2003-02-19 13:58:40.000000000 -0600
+++ css.030221/css_base.h	2003-02-20 17:31:45.000000000 -0600
@@ -20,7 +20,7 @@
  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  *
- * $Id: css_base.h,v 1.5 2003/02/19 19:58:40 mueller Exp $
+ * $Id: css_base.h,v 1.6 2003/02/20 21:09:45 knoll Exp $
  */
 #ifndef _CSS_BASE_H
 #define _CSS_BASE_H
@@ -51,7 +51,7 @@
     {
     public:
 	CSSSelector()
-	    : tagHistory(0), attr(0), tag(-1), relation( Descendant ),
+	    : tagHistory(0), attr(0), tag(0xffff), relation( Descendant ),
 	      match( None ), nonCSSHint( false ), pseudoId( 0 ), \
_pseudoType(PseudoNotParsed) {}  
 	~CSSSelector() {
@@ -125,8 +125,8 @@
 
 	mutable DOM::DOMString value;
 	CSSSelector *tagHistory;
-	int          attr;
-	int          tag;
+	unsigned int attr;
+	unsigned int tag;
 
 	Relation relation     : 2;
 	Match 	 match         : 4;
diff -urN css.cvsup/cssparser.h css.030221/cssparser.h
--- css.cvsup/cssparser.h	2003-01-29 12:19:23.000000000 -0600
+++ css.030221/cssparser.h	2003-02-20 17:31:45.000000000 -0600
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
  *
- * $Id: cssparser.h,v 1.68 2003/01/29 18:19:23 knoll Exp $
+ * $Id: cssparser.h,v 1.69 2003/02/20 21:09:45 knoll Exp $
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -54,7 +54,7 @@
     };
 
     struct Value {
-	int id;
+	unsigned int id;
 	union {
 	    double fValue;
 	    int iValue;
@@ -127,7 +127,7 @@
 	bool strict;
 	bool important;
 	bool nonCSSHint;
-	int id;
+	unsigned int id;
 	DOM::StyleListImpl *styleElement;
 	DOM::CSSRuleImpl *rule;
 	ValueList *valueList;
diff -urN css.cvsup/cssstyleselector.cpp css.030221/cssstyleselector.cpp
--- css.cvsup/cssstyleselector.cpp	2003-02-16 04:54:10.000000000 -0600
+++ css.030221/cssstyleselector.cpp	2003-02-20 17:31:45.000000000 -0600
@@ -540,7 +540,7 @@
 
     // hack. We can't allow :hover, as it would trigger a complete
     // relayout with every mouse event.
-    bool single = ( sel->tag == -1 );
+    bool single = ( (sel->tag & 0xffff) == 0xffff );
 
     bool affectedByHover = style->affectedByHoverRules();
 
@@ -551,7 +551,7 @@
     CSSSelector::Relation relation = sel->relation;
     while((sel = sel->tagHistory))
     {
-        if (strictParsing || sel->tag != -1) single = false;
+        if (strictParsing || (sel->tag & 0xffff) != 0xffff) single = false;
         if(!n->isElementNode()) return;
         switch(relation)
         {
@@ -695,7 +695,8 @@
 //     sel->print();
 
 
-    if((e->id() & NodeImpl_IdLocalMask) != uint(sel->tag) && sel->tag != -1) return \
false; +    // ###### fix namespace
+    if((e->id() & NodeImpl_IdLocalMask) != uint(sel->tag) && sel->tag != 0xffff) \
return false;  
     if(sel->attr)
     {
diff -urN css.cvsup/parser.cpp css.030221/parser.cpp
--- css.cvsup/parser.cpp	2003-02-07 20:24:52.000000000 -0600
+++ css.030221/parser.cpp	2003-02-20 17:31:46.000000000 -0600
@@ -1,6 +1,5 @@
-
-/*  A Bison parser, made from parser.y
-    by GNU Bison version 1.28  */
+/* A Bison parser, made from parser.y
+   by GNU bison 1.33.  */
 
 #define YYBISON 1  /* Identify Bison output.  */
 
@@ -11,47 +10,48 @@
 #define yychar cssyychar
 #define yydebug cssyydebug
 #define yynerrs cssyynerrs
-#define	S	257
-#define	SGML_CD	258
-#define	INCLUDES	259
-#define	DASHMATCH	260
-#define	BEGINSWITH	261
-#define	ENDSWITH	262
-#define	CONTAINS	263
-#define	STRING	264
-#define	IDENT	265
-#define	HASH	266
-#define	IMPORT_SYM	267
-#define	PAGE_SYM	268
-#define	MEDIA_SYM	269
-#define	FONT_FACE_SYM	270
-#define	CHARSET_SYM	271
-#define	KONQ_RULE_SYM	272
-#define	KONQ_DECLS_SYM	273
-#define	KONQ_VALUE_SYM	274
-#define	IMPORTANT_SYM	275
-#define	QEMS	276
-#define	EMS	277
-#define	EXS	278
-#define	PXS	279
-#define	CMS	280
-#define	MMS	281
-#define	INS	282
-#define	PTS	283
-#define	PCS	284
-#define	DEGS	285
-#define	RADS	286
-#define	GRADS	287
-#define	MSECS	288
-#define	SECS	289
-#define	HERZ	290
-#define	KHERZ	291
-#define	DIMEN	292
-#define	PERCENTAGE	293
-#define	NUMBER	294
-#define	URI	295
-#define	FUNCTION	296
-#define	UNICODERANGE	297
+# define	S	257
+# define	SGML_CD	258
+# define	INCLUDES	259
+# define	DASHMATCH	260
+# define	BEGINSWITH	261
+# define	ENDSWITH	262
+# define	CONTAINS	263
+# define	STRING	264
+# define	IDENT	265
+# define	HASH	266
+# define	IMPORT_SYM	267
+# define	PAGE_SYM	268
+# define	MEDIA_SYM	269
+# define	FONT_FACE_SYM	270
+# define	CHARSET_SYM	271
+# define	NAMESPACE_SYM	272
+# define	KONQ_RULE_SYM	273
+# define	KONQ_DECLS_SYM	274
+# define	KONQ_VALUE_SYM	275
+# define	IMPORTANT_SYM	276
+# define	QEMS	277
+# define	EMS	278
+# define	EXS	279
+# define	PXS	280
+# define	CMS	281
+# define	MMS	282
+# define	INS	283
+# define	PTS	284
+# define	PCS	285
+# define	DEGS	286
+# define	RADS	287
+# define	GRADS	288
+# define	MSECS	289
+# define	SECS	290
+# define	HERZ	291
+# define	KHERZ	292
+# define	DIMEN	293
+# define	PERCENTAGE	294
+# define	NUMBER	295
+# define	URI	296
+# define	FUNCTION	297
+# define	UNICODERANGE	298
 
 #line 1 "parser.y"
 
@@ -74,7 +74,7 @@
  *  License along with this library; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *  $Id: parser.cpp,v 1.21 2003/02/08 02:24:52 pmk Exp $
+ *  $Id: parser.cpp,v 1.22 2003/02/20 21:09:57 knoll Exp $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -130,6 +130,7 @@
 #define YYPARSE_PARAM parser
 
 #line 79 "parser.y"
+#ifndef YYSTYPE
 typedef union {
     CSSRuleImpl *rule;
     CSSSelector *selector;
@@ -142,13 +143,15 @@
     float val;
     int prop_id;
     int attribute;
-    int element;
+    unsigned int element;
     CSSSelector::Relation relation;
     bool b;
     char tok;
     Value value;
     ValueList *valueList;
-} YYSTYPE;
+} yystype;
+# define YYSTYPE yystype
+#endif
 #line 99 "parser.y"
 
 
@@ -166,355 +169,438 @@
 }
 
 
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
+#ifndef YYDEBUG
+# define YYDEBUG 0
 #endif
 
 
 
-#define	YYFINAL		258
+#define	YYFINAL		284
 #define	YYFLAG		-32768
-#define	YYNTBASE	60
+#define	YYNTBASE	62
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 297 ? yytranslate[x] : 109)
+/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
+#define YYTRANSLATE(x) ((unsigned)(x) <= 298 ? yytranslate[x] : 118)
 
-static const char yytranslate[] = {     0,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    57,    54,    51,    50,    53,    14,    58,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,    13,    49,     2,
-    56,    52,     2,    59,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    15,     2,    55,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    47,     2,    48,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
-     7,     8,     9,    10,    11,    12,    16,    17,    18,    19,
-    20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-    30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-    40,    41,    42,    43,    44,    45,    46
+/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
+static const char yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,    59,    17,    54,    53,    56,    14,    60,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    13,    52,
+       2,    58,    55,     2,    61,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,    15,     2,    57,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,    50,    16,    51,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    18,    19,    20,
+      21,    22,    23,    24,    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
 };
 
-#if YYDEBUG != 0
-static const short yyprhs[] = {     0,
-     0,     5,     8,    11,    14,    21,    27,    33,    34,    37,
-    38,    41,    44,    45,    51,    55,    59,    60,    64,    65,
-    69,    71,    73,    75,    77,    79,    81,    88,    92,    96,
-    98,   100,   101,   103,   108,   116,   118,   123,   124,   128,
-   131,   135,   139,   143,   147,   150,   153,   154,   156,   158,
-   164,   166,   171,   173,   177,   180,   184,   187,   189,   191,
-   193,   196,   198,   200,   202,   204,   207,   210,   215,   224,
-   226,   228,   230,   232,   234,   236,   238,   240,   243,   250,
-   252,   255,   257,   261,   263,   267,   271,   277,   282,   287,
-   294,   300,   303,   306,   307,   309,   313,   316,   319,   320,
-   322,   325,   328,   331,   334,   337,   339,   341,   344,   347,
-   350,   353,   356,   359,   362,   365,   368,   371,   374,   377,
-   380,   383,   386,   389,   392,   395,   398,   404,   407,   411,
-   415,   418,   424,   428,   430
+#if YYDEBUG
+static const short yyprhs[] =
+{
+       0,     0,     6,     9,    12,    15,    22,    28,    34,    35,
+      38,    39,    42,    45,    46,    52,    56,    60,    61,    65,
+      72,    76,    80,    81,    84,    91,    93,    94,    97,    98,
+     102,   104,   106,   108,   110,   112,   114,   116,   118,   119,
+     121,   123,   128,   131,   139,   140,   144,   147,   151,   155,
+     159,   163,   166,   169,   170,   172,   174,   180,   182,   187,
+     190,   192,   196,   199,   202,   206,   209,   212,   214,   216,
+     219,   222,   224,   226,   228,   231,   234,   236,   238,   240,
+     242,   245,   248,   250,   253,   258,   267,   269,   271,   273,
+     275,   277,   279,   281,   283,   286,   293,   295,   298,   300,
+     304,   306,   310,   314,   320,   325,   330,   337,   343,   346,
+     349,   350,   352,   356,   359,   362,   365,   366,   368,   371,
+     374,   377,   380,   383,   385,   387,   390,   393,   396,   399,
+     402,   405,   408,   411,   414,   417,   420,   423,   426,   429,
+     432,   435,   438,   441,   444,   450,   453,   457,   461,   464,
+     470,   474,   476
 };
-
-static const short yyrhs[] = {    66,
-    65,    67,    68,     0,    61,    64,     0,    62,    64,     0,
-    63,    64,     0,    21,    47,    64,    81,    64,    48,     0,
-    22,    47,    64,    94,    48,     0,    23,    47,    64,    99,
-    48,     0,     0,    64,     3,     0,     0,    65,     4,     0,
-    65,     3,     0,     0,    20,    64,    10,    64,    49,     0,
-    20,     1,   107,     0,    20,     1,    49,     0,     0,    67,
-    70,    65,     0,     0,    68,    69,    65,     0,    81,     0,
-    73,     0,    77,     0,    78,     0,   106,     0,   105,     0,
-    16,    64,    71,    64,    72,    49,     0,    16,     1,   107,
-     0,    16,     1,    49,     0,    10,     0,    44,     0,     0,
-    76,     0,    72,    50,    64,    76,     0,    18,    64,    74,
-    47,    64,    75,    48,     0,    76,     0,    72,    50,    64,
-    76,     0,     0,    75,    81,    64,     0,    11,    64,     0,
-    17,     1,   107,     0,    17,     1,    49,     0,    19,     1,
-   107,     0,    19,     1,    49,     0,    51,    64,     0,    52,
-    64,     0,     0,    53,     0,    51,     0,    82,    47,    64,
-    94,    48,     0,    83,     0,    82,    50,    64,    83,     0,
-    84,     0,    83,    79,    84,     0,    85,    64,     0,    85,
-    86,    64,     0,    86,    64,     0,    11,     0,    54,     0,
-    87,     0,    86,    87,     0,    12,     0,    88,     0,    90,
-     0,    93,     0,    14,    11,     0,    11,    64,     0,    15,
-    64,    89,    55,     0,    15,    64,    89,    91,    64,    92,
-    64,    55,     0,    56,     0,     5,     0,     6,     0,     7,
-     0,     8,     0,     9,     0,    11,     0,    10,     0,    13,
-    11,     0,    13,    45,    64,    11,    64,    57,     0,    96,
-     0,    95,    96,     0,    95,     0,     1,   108,     1,     0,
-     1,     0,    96,    49,    64,     0,     1,    49,    64,     0,
-     1,   108,     1,    49,    64,     0,    95,    96,    49,    64,
-     0,    95,     1,    49,    64,     0,    95,     1,   108,     1,
-    49,    64,     0,    97,    13,    64,    99,    98,     0,    11,
-    64,     0,    24,    64,     0,     0,   101,     0,    99,   100,
-   101,     0,    58,    64,     0,    50,    64,     0,     0,   102,
-     0,    80,   102,     0,    10,    64,     0,    11,    64,     0,
-    44,    64,     0,    46,    64,     0,   104,     0,   103,     0,
-    43,    64,     0,    42,    64,     0,    28,    64,     0,    29,
-    64,     0,    30,    64,     0,    31,    64,     0,    32,    64,
-     0,    33,    64,     0,    34,    64,     0,    35,    64,     0,
-    36,    64,     0,    37,    64,     0,    38,    64,     0,    39,
-    64,     0,    40,    64,     0,    26,    64,     0,    25,    64,
-     0,    27,    64,     0,    41,    64,     0,    45,    64,    99,
-    57,    64,     0,    12,    64,     0,    59,     1,   107,     0,
-    59,     1,    49,     0,     1,   107,     0,    47,     1,   108,
-     1,    48,     0,    47,     1,    48,     0,   107,     0,   108,
-     1,   107,     0
+static const short yyrhs[] =
+{
+      68,    67,    69,    71,    75,     0,    63,    66,     0,    64,
+      66,     0,    65,    66,     0,    24,    50,    66,    87,    66,
+      51,     0,    25,    50,    66,   103,    51,     0,    26,    50,
+      66,   108,    51,     0,     0,    66,     3,     0,     0,    67,
+       4,     0,    67,     3,     0,     0,    22,    66,    10,    66,
+      52,     0,    22,     1,   116,     0,    22,     1,    52,     0,
+       0,    69,    70,    67,     0,    18,    66,    77,    66,    78,
+      52,     0,    18,     1,   116,     0,    18,     1,    52,     0,
+       0,    72,    67,     0,    23,    66,    74,    77,    66,    52,
+       0,    11,     0,     0,    73,     3,     0,     0,    75,    76,
+      67,     0,    87,     0,    80,     0,    83,     0,    84,     0,
+     115,     0,   114,     0,    10,     0,    47,     0,     0,    79,
+       0,    82,     0,    79,    53,    66,    82,     0,    79,     1,
+       0,    20,    66,    79,    50,    66,    81,    51,     0,     0,
+      81,    87,    66,     0,    11,    66,     0,    19,     1,   116,
+       0,    19,     1,    52,     0,    21,     1,   116,     0,    21,
+       1,    52,     0,    54,    66,     0,    55,    66,     0,     0,
+      56,     0,    54,     0,    88,    50,    66,   103,    51,     0,
+      89,     0,    88,    53,    66,    89,     0,    88,     1,     0,
+      90,     0,    89,    85,    90,     0,    89,     1,     0,    91,
+      66,     0,    91,    94,    66,     0,    94,    66,     0,    92,
+      93,     0,    93,     0,    16,     0,    11,    16,     0,    17,
+      16,     0,    11,     0,    17,     0,    95,     0,    94,    95,
+       0,    94,     1,     0,    12,     0,    96,     0,    99,     0,
+     102,     0,    14,    11,     0,    92,    98,     0,    98,     0,
+      11,    66,     0,    15,    66,    97,    57,     0,    15,    66,
+      97,   100,    66,   101,    66,    57,     0,    58,     0,     5,
+       0,     6,     0,     7,     0,     8,     0,     9,     0,    11,
+       0,    10,     0,    13,    11,     0,    13,    48,    66,    11,
+      66,    59,     0,   105,     0,   104,   105,     0,   104,     0,
+       1,   117,     1,     0,     1,     0,   105,    52,    66,     0,
+       1,    52,    66,     0,     1,   117,     1,    52,    66,     0,
+     104,   105,    52,    66,     0,   104,     1,    52,    66,     0,
+     104,     1,   117,     1,    52,    66,     0,   106,    13,    66,
+     108,   107,     0,    11,    66,     0,    27,    66,     0,     0,
+     110,     0,   108,   109,   110,     0,   108,     1,     0,    60,
+      66,     0,    53,    66,     0,     0,   111,     0,    86,   111,
+       0,    10,    66,     0,    11,    66,     0,    47,    66,     0,
+      49,    66,     0,   113,     0,   112,     0,    46,    66,     0,
+      45,    66,     0,    31,    66,     0,    32,    66,     0,    33,
+      66,     0,    34,    66,     0,    35,    66,     0,    36,    66,
+       0,    37,    66,     0,    38,    66,     0,    39,    66,     0,
+      40,    66,     0,    41,    66,     0,    42,    66,     0,    43,
+      66,     0,    29,    66,     0,    28,    66,     0,    30,    66,
+       0,    44,    66,     0,    48,    66,   108,    59,    66,     0,
+      12,    66,     0,    61,     1,   116,     0,    61,     1,    52,
+       0,     1,   116,     0,    50,     1,   117,     1,    51,     0,
+      50,     1,    51,     0,   116,     0,   117,     1,   116,     0
 };
 
 #endif
 
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
-   225,   227,   228,   229,   232,   239,   245,   270,   272,   275,
-   277,   278,   281,   283,   288,   289,   292,   294,   305,   307,
-   317,   319,   320,   321,   322,   323,   326,   337,   340,   345,
-   347,   350,   354,   358,   365,   379,   384,   391,   393,   402,
-   424,   428,   433,   437,   442,   444,   445,   448,   450,   453,
-   473,   487,   503,   507,   514,   519,   523,   529,   546,   551,
-   556,   564,   571,   572,   573,   576,   585,   605,   611,   619,
-   623,   626,   629,   632,   635,   640,   642,   645,   651,   659,
-   663,   668,   671,   677,   685,   689,   695,   701,   706,   712,
-   720,   743,   750,   752,   755,   760,   773,   777,   780,   785,
-   787,   788,   789,   795,   796,   797,   799,   804,   806,   807,
-   808,   809,   810,   811,   812,   813,   814,   815,   816,   817,
-   818,   819,   820,   821,   822,   823,   827,   842,   849,   856,
-   864,   890,   892,   895,   897
+#if YYDEBUG
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const short yyrline[] =
+{
+       0,   233,   235,   236,   237,   240,   247,   253,   278,   280,
+     283,   285,   286,   289,   291,   296,   297,   300,   302,   312,
+     323,   326,   332,   333,   337,   341,   344,   346,   349,   351,
+     361,   363,   364,   365,   366,   367,   370,   372,   375,   379,
+     383,   388,   392,   399,   414,   416,   425,   447,   451,   456,
+     460,   465,   467,   468,   471,   473,   476,   496,   510,   524,
+     530,   534,   539,   545,   550,   554,   560,   562,   565,   567,
+     568,   572,   589,   592,   597,   603,   609,   616,   617,   618,
+     621,   630,   632,   635,   655,   661,   669,   673,   676,   679,
+     682,   685,   690,   692,   695,   701,   709,   713,   718,   721,
+     727,   735,   739,   745,   751,   756,   762,   770,   793,   800,
+     802,   805,   810,   821,   827,   831,   834,   839,   841,   842,
+     843,   849,   850,   851,   853,   858,   860,   861,   862,   863,
+     864,   865,   866,   867,   868,   869,   870,   871,   872,   873,
+     874,   875,   876,   877,   881,   896,   903,   910,   918,   944,
+     946,   949,   951
 };
 #endif
 
 
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+#if (YYDEBUG) || defined YYERROR_VERBOSE
 
-static const char * const yytname[] = {   "$","error","$undefined.","S","SGML_CD",
-"INCLUDES","DASHMATCH","BEGINSWITH","ENDSWITH","CONTAINS","STRING","IDENT","HASH",
-"':'","'.'","'['","IMPORT_SYM","PAGE_SYM","MEDIA_SYM","FONT_FACE_SYM","CHARSET_SYM",
-"KONQ_RULE_SYM","KONQ_DECLS_SYM","KONQ_VALUE_SYM","IMPORTANT_SYM","QEMS","EMS",
-"EXS","PXS","CMS","MMS","INS","PTS","PCS","DEGS","RADS","GRADS","MSECS","SECS",
-"HERZ","KHERZ","DIMEN","PERCENTAGE","NUMBER","URI","FUNCTION","UNICODERANGE",
-"'{'","'}'","';'","','","'+'","'>'","'-'","'*'","']'","'='","')'","'/'","'@'",
-"stylesheet","konq_rule","konq_decls","konq_value","maybe_space","maybe_sgml",
-"maybe_charset","import_list","rule_list","rule","import","string_or_uri","media_list",
                
-"media","media_list2","ruleset_list","medium","page","font_face","combinator",
-"unary_operator","ruleset","selector_list","selector","simple_selector","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
+/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
+static const char *const yytname[] =
+{
+  "$", "error", "$undefined.", "S", "SGML_CD", "INCLUDES", "DASHMATCH", 
+  "BEGINSWITH", "ENDSWITH", "CONTAINS", "STRING", "IDENT", "HASH", "':'", 
+  "'.'", "'['", "'|'", "'*'", "IMPORT_SYM", "PAGE_SYM", "MEDIA_SYM", 
+  "FONT_FACE_SYM", "CHARSET_SYM", "NAMESPACE_SYM", "KONQ_RULE_SYM", 
+  "KONQ_DECLS_SYM", "KONQ_VALUE_SYM", "IMPORTANT_SYM", "QEMS", "EMS", 
+  "EXS", "PXS", "CMS", "MMS", "INS", "PTS", "PCS", "DEGS", "RADS", 
+  "GRADS", "MSECS", "SECS", "HERZ", "KHERZ", "DIMEN", "PERCENTAGE", 
+  "NUMBER", "URI", "FUNCTION", "UNICODERANGE", "'{'", "'}'", "';'", "','", 
+  "'+'", "'>'", "'-'", "']'", "'='", "')'", "'/'", "'@'", "stylesheet", 
+  "konq_rule", "konq_decls", "konq_value", "maybe_space", "maybe_sgml", 
+  "maybe_charset", "import_list", "import", "maybe_namespace", 
+  "namespace", "ns_prefix", "maybe_ns_prefix", "rule_list", "rule", 
+  "string_or_uri", "maybe_media_list", "media_list", "media", 
+  "ruleset_list", "medium", "page", "font_face", "combinator", 
+  "unary_operator", "ruleset", "selector_list", "selector", 
+  "simple_selector", "ns_element", "ns_selector", "element_name", 
+  "specifier_list", "specifier", "class", "ns_attrib_id", "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", 0
 };
 #endif
 
-static const short yyr1[] = {     0,
-    60,    60,    60,    60,    61,    62,    63,    64,    64,    65,
-    65,    65,    66,    66,    66,    66,    67,    67,    68,    68,
-    69,    69,    69,    69,    69,    69,    70,    70,    70,    71,
-    71,    72,    72,    72,    73,    74,    74,    75,    75,    76,
-    77,    77,    78,    78,    79,    79,    79,    80,    80,    81,
-    82,    82,    83,    83,    84,    84,    84,    85,    85,    86,
-    86,    87,    87,    87,    87,    88,    89,    90,    90,    91,
-    91,    91,    91,    91,    91,    92,    92,    93,    93,    94,
-    94,    94,    94,    94,    95,    95,    95,    95,    95,    95,
-    96,    97,    98,    98,    99,    99,   100,   100,   100,   101,
-   101,   101,   101,   101,   101,   101,   101,   102,   102,   102,
-   102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
-   102,   102,   102,   102,   102,   102,   103,   104,   105,   105,
-   106,   107,   107,   108,   108
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const short yyr1[] =
+{
+       0,    62,    62,    62,    62,    63,    64,    65,    66,    66,
+      67,    67,    67,    68,    68,    68,    68,    69,    69,    70,
+      70,    70,    71,    71,    72,    73,    74,    74,    75,    75,
+      76,    76,    76,    76,    76,    76,    77,    77,    78,    78,
+      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,    92,    92,
+      92,    93,    93,    94,    94,    94,    95,    95,    95,    95,
+      96,    97,    97,    98,    99,    99,   100,   100,   100,   100,
+     100,   100,   101,   101,   102,   102,   103,   103,   103,   103,
+     103,   104,   104,   104,   104,   104,   104,   105,   106,   107,
+     107,   108,   108,   108,   109,   109,   109,   110,   110,   110,
+     110,   110,   110,   110,   110,   111,   111,   111,   111,   111,
+     111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
+     111,   111,   111,   111,   112,   113,   114,   114,   115,   116,
+     116,   117,   117
 };
 
-static const short yyr2[] = {     0,
-     4,     2,     2,     2,     6,     5,     5,     0,     2,     0,
-     2,     2,     0,     5,     3,     3,     0,     3,     0,     3,
-     1,     1,     1,     1,     1,     1,     6,     3,     3,     1,
-     1,     0,     1,     4,     7,     1,     4,     0,     3,     2,
-     3,     3,     3,     3,     2,     2,     0,     1,     1,     5,
-     1,     4,     1,     3,     2,     3,     2,     1,     1,     1,
-     2,     1,     1,     1,     1,     2,     2,     4,     8,     1,
-     1,     1,     1,     1,     1,     1,     1,     2,     6,     1,
-     2,     1,     3,     1,     3,     3,     5,     4,     4,     6,
-     5,     2,     2,     0,     1,     3,     2,     2,     0,     1,
-     2,     2,     2,     2,     2,     1,     1,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     5,     2,     3,     3,
-     2,     5,     3,     1,     3
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const short yyr2[] =
+{
+       0,     5,     2,     2,     2,     6,     5,     5,     0,     2,
+       0,     2,     2,     0,     5,     3,     3,     0,     3,     6,
+       3,     3,     0,     2,     6,     1,     0,     2,     0,     3,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
+       1,     4,     2,     7,     0,     3,     2,     3,     3,     3,
+       3,     2,     2,     0,     1,     1,     5,     1,     4,     2,
+       1,     3,     2,     2,     3,     2,     2,     1,     1,     2,
+       2,     1,     1,     1,     2,     2,     1,     1,     1,     1,
+       2,     2,     1,     2,     4,     8,     1,     1,     1,     1,
+       1,     1,     1,     1,     2,     6,     1,     2,     1,     3,
+       1,     3,     3,     5,     4,     4,     6,     5,     2,     2,
+       0,     1,     3,     2,     2,     2,     0,     1,     2,     2,
+       2,     2,     2,     1,     1,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     5,     2,     3,     3,     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,     0,     0,     0,    12,    11,    19,     0,     0,
-    58,    62,     0,     0,     8,    59,     8,     0,    47,    53,
-     8,     8,    60,    63,    64,    65,    84,     8,     0,     0,
-    80,     0,     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,    49,    48,     0,
-    99,    95,   100,   107,   106,     0,     0,    10,   133,   134,
-     0,    14,    78,     8,    66,     0,     0,     8,     8,     8,
-     8,     0,    55,     8,    57,    61,     8,     0,    92,     6,
-     0,    81,     8,     8,   102,   103,   128,   124,   123,   125,
-   110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-   120,   121,   122,   126,   109,   108,   104,     0,   105,   101,
-     7,     8,     8,     0,     0,     0,     0,     0,     8,     0,
-     0,    10,    22,    23,    24,    21,    26,    25,    18,     0,
-     0,     8,     0,     5,     0,     0,    45,    46,    54,    56,
-    86,    83,     8,     0,     8,    85,     0,    99,    98,    97,
-    96,    29,    28,    30,    31,     8,   131,     0,    32,     0,
-     0,    20,   132,   135,     8,    67,    71,    72,    73,    74,
-    75,    68,    70,     8,     0,    47,     8,    89,     0,    88,
-    99,     8,    32,    42,    41,     8,     0,     0,    33,    44,
-    43,   130,   129,     0,     0,    50,    87,     8,     8,    91,
-   127,     0,    33,    40,     8,     8,    79,    77,    76,     8,
-    90,    93,    27,     8,     0,    38,     0,     0,    34,     0,
-    69,    34,    35,     8,    39,     0,     0,     0
+/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
+   doesn't specify something else to do.  Zero means the default is an
+   error. */
+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,     0,     0,     0,    12,    11,    22,     0,
+       0,    71,    76,     0,     0,     8,    68,    72,     8,     0,
+       0,    60,     8,     0,    67,     0,    73,    77,    78,    79,
+     100,     8,     0,     0,    96,     0,     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,    55,    54,     0,     0,   111,   117,   124,   123,     0,
+       8,    10,    28,    10,   150,   151,     0,    14,    69,    94,
+       8,    80,     0,    70,     0,    59,     8,     8,    62,     8,
+       8,     0,    63,     0,    71,    72,    66,    75,    65,    74,
+       8,     0,   108,     6,     0,    97,     8,     8,   119,   120,
+     145,   141,   140,   142,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   143,   126,   125,
+     121,     0,   122,   118,   113,     7,     8,     8,     0,     0,
+       0,    26,    18,     0,    23,     0,     0,     8,     0,     0,
+       0,    82,     5,     0,     0,    51,    52,    61,    64,   102,
+      99,     8,     0,     8,   101,     0,     0,   115,   114,   112,
+      21,    20,    36,    37,     8,    25,     0,     0,     0,     0,
+       8,     0,     0,    10,    31,    32,    33,    30,    35,    34,
+     149,   152,     8,    83,     8,    81,    87,    88,    89,    90,
+      91,    84,    86,     8,     0,     0,     8,   105,     0,   104,
+       0,     8,    38,    27,     8,   148,     0,     0,     0,     0,
+      29,     0,     0,    56,   103,     8,     8,   107,   144,     8,
+       0,     0,    40,     0,    48,    47,     0,    50,    49,   147,
+     146,    95,    93,    92,     8,   106,   109,    46,    19,    42,
+       8,    24,     8,     0,     0,    44,    85,    41,     0,    43,
+       8,    45,     0,     0,     0
 };
 
-static const short yydefgoto[] = {   256,
-     5,     6,     7,    10,    17,     8,    28,    87,   152,    88,
-   186,   217,   153,   218,   250,   219,   154,   155,   102,    80,
-    37,    38,    39,    40,    41,    42,    43,    44,   163,    45,
-   204,   240,    46,    49,    50,    51,    52,   230,    81,   144,
-    82,    83,    84,    85,   157,   158,    90,    91
+static const short yydefgoto[] =
+{
+     282,     5,     6,     7,   213,    17,     8,    28,    91,    92,
+      93,   196,   197,   163,   203,   194,   250,   251,   204,   278,
+     252,   205,   206,   111,    83,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,   170,   171,    48,   223,   264,
+      49,    52,    53,    54,    55,   247,    84,   158,    85,    86,
+      87,    88,   208,   209,    95,    96
 };
 
-static const short yypact[] = {   175,
-    32,   -36,    -9,    -3,-32768,-32768,-32768,-32768,    93,    97,
--32768,-32768,-32768,    79,    79,    79,   152,    87,-32768,-32768,
--32768,-32768,   117,    13,   226,-32768,-32768,    81,   153,    31,
--32768,-32768,    80,    92,-32768,-32768,-32768,    51,   128,-32768,
-   200,   200,-32768,-32768,-32768,-32768,    96,-32768,    58,    30,
-    77,   123,-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,   292,
-   -30,-32768,-32768,-32768,-32768,   173,   104,-32768,-32768,-32768,
-   145,-32768,-32768,-32768,-32768,    12,    42,-32768,-32768,-32768,
--32768,   137,    79,   200,    79,-32768,-32768,   176,    79,-32768,
-   115,   138,-32768,-32768,    79,    79,    79,    79,    79,    79,
-    79,    79,    79,    79,    79,    79,    79,    79,    79,    79,
-    79,    79,    79,    79,    79,    79,    79,   226,    79,-32768,
--32768,-32768,-32768,   263,   139,     2,   158,   208,-32768,   219,
-   221,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   152,   185,
-    18,-32768,    78,-32768,    13,   117,    79,    79,-32768,    79,
-    79,   157,-32768,   225,-32768,    79,   226,   -31,    79,    79,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,   161,    36,   169,
-   172,   152,-32768,-32768,-32768,    79,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   180,   142,-32768,    79,   178,    79,
-   111,-32768,    36,-32768,-32768,-32768,   184,   195,   196,-32768,
--32768,-32768,-32768,    19,   162,-32768,    79,-32768,-32768,-32768,
-    79,   191,-32768,    79,-32768,-32768,-32768,-32768,-32768,-32768,
-    79,    79,-32768,-32768,    36,    79,    22,    36,   197,    99,
--32768,-32768,-32768,-32768,    79,   245,   246,-32768
+static const short yypact[] =
+{
+      98,   165,   -10,     4,    60,-32768,-32768,-32768,-32768,   119,
+       6,-32768,-32768,-32768,    49,    49,    49,   150,   120,-32768,
+  -32768,-32768,-32768,   310,    19,   411,-32768,-32768,     5,   217,
+      33,   141,-32768,    91,   124,-32768,-32768,   151,-32768,    34,
+     173,-32768,   182,   159,-32768,   148,-32768,-32768,-32768,-32768,
+     127,-32768,   121,     2,   131,   179,-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,   480,   308,-32768,-32768,-32768,-32768,    93,
+  -32768,-32768,-32768,-32768,-32768,-32768,   199,-32768,-32768,-32768,
+  -32768,-32768,    15,-32768,    35,-32768,-32768,-32768,-32768,-32768,
+  -32768,   223,    49,   148,-32768,-32768,-32768,-32768,    49,-32768,
+  -32768,   208,    49,-32768,   155,   161,-32768,-32768,    49,    49,
+      49,    49,    49,    49,    49,    49,    49,    49,    49,    49,
+      49,    49,    49,    49,    49,    49,    49,    49,    49,    49,
+      49,   411,    49,-32768,-32768,-32768,-32768,-32768,   451,   156,
+     101,    16,   150,   117,   150,   222,    22,   141,   151,   213,
+      40,-32768,-32768,    19,   310,    49,    49,-32768,    49,    49,
+     160,-32768,   241,-32768,    49,   411,   359,    49,    49,-32768,
+  -32768,-32768,-32768,-32768,-32768,-32768,   243,   103,   201,   253,
+  -32768,   259,   261,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,    49,-32768,-32768,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,-32768,   219,   203,-32768,    49,   191,    49,
+     254,-32768,    90,-32768,-32768,-32768,   197,    90,   200,   209,
+     150,    21,   104,-32768,    49,-32768,-32768,-32768,    49,-32768,
+     224,    38,-32768,    48,-32768,-32768,    42,-32768,-32768,-32768,
+  -32768,-32768,-32768,-32768,-32768,    49,    49,    49,-32768,-32768,
+  -32768,-32768,-32768,    26,    90,    49,-32768,-32768,   130,-32768,
+  -32768,    49,   274,   275,-32768
 };
 
-static const short yypgoto[] = {-32768,
--32768,-32768,-32768,    -5,   -79,-32768,-32768,-32768,-32768,-32768,
--32768,    34,-32768,-32768,-32768,  -121,-32768,-32768,-32768,-32768,
-   -83,-32768,    82,   148,-32768,   235,   -29,-32768,-32768,-32768,
--32768,-32768,-32768,   113,-32768,   230,-32768,-32768,   -98,-32768,
-   140,   201,-32768,-32768,-32768,-32768,    -6,   -37
+static const short yypgoto[] =
+{
+  -32768,-32768,-32768,-32768,    -1,   -76,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,-32768,-32768,    80,-32768,    41,-32768,-32768,
+      30,-32768,-32768,-32768,-32768,  -162,-32768,   106,   204,-32768,
+     210,   268,   286,   -31,-32768,-32768,   147,-32768,-32768,-32768,
+  -32768,   144,-32768,   276,-32768,-32768,  -143,-32768,   172,   248,
+  -32768,-32768,-32768,-32768,    -7,   -43
 };
 
 
-#define	YYLAST		335
+#define	YYLAST		526
 
 
-static const short yytable[] = {    14,
-    15,    16,    20,   156,    21,    23,    24,    25,   159,   108,
-    11,   184,   106,    47,    21,    21,    30,   141,   142,   142,
-    21,    21,   162,    48,    21,   212,   143,   143,   195,    96,
-   111,    97,     9,    21,    -8,   103,   105,    12,    21,   178,
-    48,    -8,   109,    13,    21,   185,   216,   115,   116,   117,
-   118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-   128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
-   138,   139,   192,   174,   106,   237,   251,   -82,   211,    92,
-   146,    21,   197,   198,   199,   200,   201,    29,   161,   164,
-    93,   233,   165,   166,   167,   168,    86,    98,   170,    21,
-    99,   171,    95,    -1,   147,   110,    22,   176,   177,    31,
-    32,    33,    34,    35,    31,    32,    33,    34,    35,    21,
-   148,   149,   150,   249,    94,   113,   252,    31,    32,    33,
-    34,    35,   202,   203,   229,   114,   179,   180,   183,    18,
-   187,    19,    18,   189,   107,   160,   253,    31,    32,    33,
-    34,    35,    36,   194,    26,    27,   196,    36,   -94,   -94,
-   142,    18,   151,   173,    21,   194,   254,   208,   143,   210,
-    36,   238,   239,   145,   -51,    -8,   172,   -51,   100,   101,
-   213,   215,    -8,   221,   223,    18,   175,   182,   -52,   224,
-    36,   -52,   100,   101,     1,     2,     3,     4,   225,    18,
-    89,   227,   194,    18,    18,   207,   231,    18,   188,   214,
-   234,    32,    33,    34,    35,    18,    -8,   220,    18,   190,
-   222,   191,   241,   242,    18,   209,   228,   226,    21,   245,
-   246,    18,   193,   235,   247,    53,    54,    55,   248,   243,
-   244,   236,   -36,   -37,   257,   258,   232,   206,   255,   169,
-    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,    53,    54,    55,   104,    78,   205,    79,   112,
-   140,     0,     0,   181,     0,     0,     0,    56,    57,    58,
-    59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-    69,    70,    71,    72,    73,    74,    75,    76,    77,     0,
-     0,     0,     0,    78,     0,    79,    56,    57,    58,    59,
-    60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-    70,    71,    72,    73,    74
+static const short yytable[] =
+{
+      10,   207,    20,   124,    14,    15,    16,   121,   186,    21,
+      23,    24,    25,    51,   119,   162,    22,   164,    21,    21,
+      50,    30,    21,    89,    21,    21,   167,   195,    90,    21,
+      51,    36,   168,   212,   102,   105,    21,   104,    21,   269,
+      11,   112,   230,   269,   118,   216,   217,   218,   219,   220,
+     122,    21,    21,   -98,    12,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     261,   182,   119,   276,   106,    97,   172,   107,   160,   161,
+     -39,   270,   272,    21,   159,   270,    -8,   221,   222,   166,
+     271,   249,    99,    -8,    21,   173,   174,    21,   175,   176,
+      13,   192,   178,   192,   262,   263,   280,    -1,   198,   179,
+       1,    29,     2,     3,     4,   184,   185,   240,    31,    32,
+      33,    34,    35,    36,    37,   101,   199,   200,   201,   100,
+      -8,    31,    32,    33,    34,    35,    36,    37,   193,   117,
+     193,    -8,   191,    26,    27,   187,   188,    98,   211,    -8,
+      32,    33,    34,    35,    -8,    -8,     9,   103,    -8,    18,
+     114,    19,   123,   211,   108,    -8,   115,    18,   202,   120,
+     227,   279,   229,   126,   -53,   -53,   -53,   -53,   -53,   -53,
+     -53,   235,   127,   232,    32,    33,    34,    35,    -8,   237,
+     165,    -8,    -8,    -8,   108,    18,    18,   181,   190,   180,
+      18,   241,   226,   183,   -53,   -53,   -53,   -53,   -53,   -53,
+     -53,   211,   242,   -57,   214,   244,   -57,   109,   110,   255,
+     248,   258,   260,   253,    31,    32,    33,    34,    35,    36,
+      37,    18,   228,   245,   265,   266,   233,    18,   267,   254,
+      18,    18,   257,   -58,   236,   154,   -58,   109,   110,    18,
+     238,   259,   239,   273,  -116,  -116,  -116,    18,    94,   274,
+     243,   275,    18,   210,   283,   284,   268,   234,   256,   281,
+     225,   246,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,
+    -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,
+    -116,  -116,  -116,  -116,   277,  -110,  -110,   156,  -116,   154,
+    -116,   116,   169,    21,   157,   177,   215,   224,  -116,  -116,
+    -116,    31,    32,    33,    34,    35,    36,    37,   113,   125,
+     189,   153,     0,     0,     0,     0,  -116,  -116,  -116,  -116,
+    -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,
+    -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,     0,   155,
+     154,   156,  -116,     0,  -116,     0,     0,     0,   157,  -116,
+    -116,  -116,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  -116,  -116,  -116,
+    -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,
+    -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,  -116,     0,
+       0,     0,   156,  -116,    21,  -116,     0,     0,   231,   157,
+       0,    56,    57,    58,     0,     0,     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,    56,    57,    58,     0,    81,     0,    82,     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,     0,     0,     0,     0,    81,     0,    82,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77
 };
 
-static const short yycheck[] = {     5,
-     6,     7,     9,    87,     3,    11,    12,    13,    88,    47,
-    47,    10,    42,     1,     3,     3,    22,    48,    50,    50,
-     3,     3,    11,    11,     3,    57,    58,    58,    11,    35,
-     1,    37,     1,     3,     3,    41,    42,    47,     3,   138,
-    11,    10,    48,    47,     3,    44,    11,    53,    54,    55,
-    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-    76,    77,   152,   111,   104,    57,    55,    48,   177,    49,
-    86,     3,     5,     6,     7,     8,     9,     1,    94,    48,
-    11,   213,    98,    99,   100,   101,    16,    47,   104,     3,
-    50,   107,    11,     0,     1,    48,    10,   113,   114,    11,
-    12,    13,    14,    15,    11,    12,    13,    14,    15,     3,
-    17,    18,    19,   245,    45,    49,   248,    11,    12,    13,
-    14,    15,    55,    56,    24,    13,   142,   143,   145,    47,
-   147,    49,    47,   149,    49,     1,    48,    11,    12,    13,
-    14,    15,    54,   160,     3,     4,   162,    54,    48,    49,
-    50,    47,    59,    49,     3,   172,   250,   173,    58,   175,
-    54,    10,    11,     1,    47,     3,     1,    50,    51,    52,
-   186,   188,    10,   190,   191,    47,    49,    49,    47,   195,
-    54,    50,    51,    52,    20,    21,    22,    23,   204,    47,
-    48,   207,   209,    47,    47,    49,   212,    47,     1,    49,
-   216,    12,    13,    14,    15,    47,    44,    49,    47,     1,
-    49,     1,   228,   229,    47,     1,    49,    48,     3,   235,
-   236,    47,    48,    50,   240,    10,    11,    12,   244,    49,
-    50,    47,    47,    47,     0,     0,   213,   166,   254,   102,
-    25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-    45,    46,    10,    11,    12,    41,    51,   165,    53,    50,
-    80,    -1,    -1,   144,    -1,    -1,    -1,    25,    26,    27,
-    28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-    38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
-    -1,    -1,    -1,    51,    -1,    53,    25,    26,    27,    28,
-    29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-    39,    40,    41,    42,    43
+static const short yycheck[] =
+{
+       1,   163,     9,     1,     5,     6,     7,    50,   151,     3,
+      11,    12,    13,    11,    45,    91,    10,    93,     3,     3,
+       1,    22,     3,    18,     3,     3,    11,    11,    23,     3,
+      11,    16,    17,    11,    35,     1,     3,    38,     3,     1,
+      50,    42,   185,     1,    45,     5,     6,     7,     8,     9,
+      51,     3,     3,    51,    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,
+      59,   124,   113,    57,    50,    52,    51,    53,    89,    90,
+      52,    53,    50,     3,     1,    53,     3,    57,    58,   100,
+      52,    11,    11,    10,     3,   106,   107,     3,   109,   110,
+      50,    10,   113,    10,    10,    11,   278,     0,     1,   120,
+      22,     1,    24,    25,    26,   126,   127,   203,    11,    12,
+      13,    14,    15,    16,    17,    11,    19,    20,    21,    48,
+      47,    11,    12,    13,    14,    15,    16,    17,    47,     1,
+      47,     3,   159,     3,     4,   156,   157,    16,   165,    11,
+      12,    13,    14,    15,    16,    17,     1,    16,     3,    50,
+      11,    52,    51,   180,     1,    10,    17,    50,    61,    52,
+     181,    51,   183,    52,    11,    12,    13,    14,    15,    16,
+      17,   198,    13,   194,    12,    13,    14,    15,    50,   200,
+       1,    53,    54,    55,     1,    50,    50,    52,    52,     1,
+      50,   212,    52,    52,    11,    12,    13,    14,    15,    16,
+      17,   228,   223,    50,    11,   226,    53,    54,    55,   236,
+     231,   238,   239,   234,    11,    12,    13,    14,    15,    16,
+      17,    50,     1,    52,   245,   246,     3,    50,   249,    52,
+      50,    50,    52,    50,     1,     1,    53,    54,    55,    50,
+       1,    52,     1,   264,    10,    11,    12,    50,    51,   270,
+      51,   272,    50,    51,     0,     0,    52,   197,   237,   280,
+     174,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,   274,    51,    52,    53,    54,     1,
+      56,    43,   102,     3,    60,   111,   169,   173,    10,    11,
+      12,    11,    12,    13,    14,    15,    16,    17,    42,    53,
+     158,    83,    -1,    -1,    -1,    -1,    28,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    -1,    51,
+       1,    53,    54,    -1,    56,    -1,    -1,    -1,    60,    10,
+      11,    12,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    -1,
+      -1,    -1,    53,    54,     3,    56,    -1,    -1,    59,    60,
+      -1,    10,    11,    12,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    10,    11,    12,    -1,    54,    -1,    56,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    -1,    -1,    -1,    -1,    54,    -1,    56,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46
 };
 #define YYPURE 1
 
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/lib/bison.simple"
-/* This file comes from bison-1.28.  */
+#line 3 "/usr/share/bison/bison.simple"
 
 /* Skeleton output parser for bison,
-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
+   Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -536,62 +622,128 @@
    This special exception was added by the Free Software Foundation
    in version 1.24 of Bison.  */
 
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
-
-#ifndef YYSTACK_USE_ALLOCA
-#ifdef alloca
-#define YYSTACK_USE_ALLOCA
-#else /* alloca not defined */
-#ifdef __GNUC__
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined \
                (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
-#define YYSTACK_USE_ALLOCA
-#include <alloca.h>
-#else /* not sparc */
-/* We think this test detects Watcom and Microsoft C.  */
-/* This used to test MSDOS, but that is a bad idea
-   since that symbol is in the user namespace.  */
-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
-#if 0 /* No need for malloc.h, which pollutes the namespace;
-	 instead, just don't use alloca.  */
-#include <malloc.h>
-#endif
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-/* I don't know what this was needed for, but it pollutes the namespace.
-   So I turned it off.   rms, 2 May 1997.  */
-/* #include <malloc.h>  */
- #pragma alloca
-#define YYSTACK_USE_ALLOCA
-#else /* not MSDOS, or __TURBOC__, or _AIX */
-#if 0
-#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
-		 and on HPUX 10.  Eventually we can turn this on.  */
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#endif /* __hpux */
-#endif
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc */
-#endif /* not GNU C */
-#endif /* alloca not defined */
-#endif /* YYSTACK_USE_ALLOCA not defined */
+/* This is the parser code that is written into each bison parser when
+   the %semantic_parser declaration is not specified in the grammar.
+   It was written by Richard Stallman by simplifying the hairy parser
+   used when %semantic_parser is specified.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
 
-#ifdef YYSTACK_USE_ALLOCA
-#define YYSTACK_ALLOC alloca
+#ifdef __cplusplus
+# define YYSTD(x) std::x
 #else
-#define YYSTACK_ALLOC malloc
+# define YYSTD(x) x
+#endif
+
+#ifndef YYPARSE_RETURN_TYPE
+#define YYPARSE_RETURN_TYPE int
 #endif
 
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
+#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  ifdef __cplusplus
+#   include <cstdlib> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T std::size_t
+#  else
+#   ifdef __STDC__
+#    include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#    define YYSIZE_T size_t
+#   endif
+#  endif
+#  define YYSTACK_ALLOC YYSTD (malloc)
+#  define YYSTACK_FREE YYSTD (free)
+# endif
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+# if YYLSP_NEEDED
+  YYLTYPE yyls;
+# endif
+};
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# if YYLSP_NEEDED
+#  define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
+      + 2 * YYSTACK_GAP_MAX)
+# else
+#  define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
+      + YYSTACK_GAP_MAX)
+# endif
+
+/* Relocate the TYPE STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Type, Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	yymemcpy ((char *) yyptr, (char *) (Stack),			\
+		  yysize * (YYSIZE_T) sizeof (Type));			\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX;	\
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
+
+#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
+
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# ifdef __cplusplus
+#  include <cstddef> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T std::size_t
+# else
+#  ifdef __STDC__
+#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
 
 #define yyerrok		(yyerrstatus = 0)
 #define yyclearin	(yychar = YYEMPTY)
@@ -600,131 +752,194 @@
 #define YYACCEPT	goto yyacceptlab
 #define YYABORT 	goto yyabortlab
 #define YYERROR		goto yyerrlab1
-/* Like YYERROR except do call yyerror.
-   This remains here temporarily to ease the
-   transition to the new meaning of YYERROR, for GCC.
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
 #define YYFAIL		goto yyerrlab
 #define YYRECOVERING()  (!!yyerrstatus)
-#define YYBACKUP(token, value) \
+#define YYBACKUP(Token, Value)					\
 do								\
   if (yychar == YYEMPTY && yylen == 1)				\
-    { yychar = (token), yylval = (value);			\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
       yychar1 = YYTRANSLATE (yychar);				\
       YYPOPSTACK;						\
       goto yybackup;						\
     }								\
   else								\
-    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+    { 								\
+      yyerror ("syntax error: cannot back up");			\
+      YYERROR;							\
+    }								\
 while (0)
 
 #define YYTERROR	1
 #define YYERRCODE	256
 
-#ifndef YYPURE
-#define YYLEX		yylex()
-#endif
-
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX		yylex(&yylval, &yylloc)
-#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX		yylex(&yylval, YYLEX_PARAM)
-#else
-#define YYLEX		yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
-#endif
-
-/* If nonreentrant, generate the variables here */
 
-#ifndef YYPURE
+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+   are run).
 
-int	yychar;			/*  the lookahead symbol		*/
-YYSTYPE	yylval;			/*  the semantic value of the		*/
-				/*  lookahead symbol			*/
-
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc;			/*  location data for the lookahead	*/
-				/*  symbol				*/
+   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
+   first token.  By default, to implement support for ranges, extend
+   its range to the last symbol.  */
+
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)       	\
+   Current.last_line   = Rhs[N].last_line;	\
+   Current.last_column = Rhs[N].last_column;
 #endif
 
-int yynerrs;			/*  number of parse errors so far       */
-#endif  /* not YYPURE */
-
-#if YYDEBUG != 0
-int yydebug;			/*  nonzero means print parse trace	*/
-/* Since this is uninitialized, it does not stop multiple parsers
-   from coexisting.  */
-#endif
 
-/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
+#if YYPURE
+# if YYLSP_NEEDED
+#  ifdef YYLEX_PARAM
+#   define YYLEX		yylex (&yylval, &yylloc, YYLEX_PARAM)
+#  else
+#   define YYLEX		yylex (&yylval, &yylloc)
+#  endif
+# else /* !YYLSP_NEEDED */
+#  ifdef YYLEX_PARAM
+#   define YYLEX		yylex (&yylval, YYLEX_PARAM)
+#  else
+#   define YYLEX		yylex (&yylval)
+#  endif
+# endif /* !YYLSP_NEEDED */
+#else /* !YYPURE */
+# define YYLEX			yylex ()
+#endif /* !YYPURE */
+
+
+/* Enable debugging if requested.  */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+#  ifdef __cplusplus
+#   include <cstdio>  /* INFRINGES ON USER NAME SPACE */
+#  else
+#   include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  endif
+#  define YYFPRINTF YYSTD (fprintf)
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (0)
+/* Nonzero means print parse trace. [The following comment makes no
+   sense to me.  Could someone clarify it?  --akim] Since this is
+   uninitialized, it does not stop multiple parsers from coexisting.
+   */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+#endif /* !YYDEBUG */
 
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef	YYINITDEPTH
-#define YYINITDEPTH 200
+# define YYINITDEPTH 200
 #endif
 
-/*  YYMAXDEPTH is the maximum size the stacks can grow to
-    (effective only if the built-in stack extension method is used).  */
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
 
 #if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
+# undef YYMAXDEPTH
 #endif
 
 #ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
+# define YYMAXDEPTH 10000
 #endif
 
-/* Define __yy_memcpy.  Note that the size argument
-   should be passed with type unsigned int, because that is what the non-GCC
-   definitions require.  With GCC, __builtin_memcpy takes an arg
-   of type size_t, but it can handle unsigned int.  */
-
-#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
-#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
-#else				/* not GNU C or C++ */
-#ifndef __cplusplus
+#if ! defined (yyoverflow) && ! defined (yymemcpy)
+# if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#  define yymemcpy __builtin_memcpy
+# else				/* not GNU C or C++ */
 
 /* This is the most reliable way to avoid incompatibilities
    in available built-in functions on various systems.  */
 static void
-__yy_memcpy (to, from, count)
-     char *to;
-     char *from;
-     unsigned int count;
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
+#  if defined (__STDC__) || defined (__cplusplus)
+yymemcpy (char *yyto, const char *yyfrom, YYSIZE_T yycount)
+#  else
+yymemcpy (yyto, yyfrom, yycount)
+     char *yyto;
+     const char *yyfrom;
+     YYSIZE_T yycount;
+#  endif
+{
+  register const char *yyf = yyfrom;
+  register char *yyt = yyto;
+  register YYSIZE_T yyi = yycount;
 
-  while (i-- > 0)
-    *t++ = *f++;
+  while (yyi-- != 0)
+    *yyt++ = *yyf++;
 }
+# endif
+#endif
 
-#else /* __cplusplus */
+#ifdef YYERROR_VERBOSE
 
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (char *to, char *from, unsigned int count)
+# ifndef yystrlen
+#  if defined (__GLIBC__) && defined (_STRING_H)
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+#   if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+#   else
+yystrlen (yystr)
+     const char *yystr;
+#   endif
 {
-  register char *t = to;
-  register char *f = from;
-  register int i = count;
+  register const char *yys = yystr;
 
-  while (i-- > 0)
-    *t++ = *f++;
+  while (*yys++ != '\0')
+    continue;
+
+  return yys - yystr - 1;
 }
+#  endif
+# endif
 
-#endif
+# ifndef yystpcpy
+#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+static char *
+#   if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+#   else
+yystpcpy (yydest, yysrc)
+     char *yydest;
+     const char *yysrc;
+#   endif
+{
+  register char *yyd = yydest;
+  register const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
 #endif
 
-#line 217 "/usr/lib/bison.simple"
+#line 345 "/usr/share/bison/bison.simple"
+
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -733,76 +948,121 @@
    to the proper pointer type.  */
 
 #ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
+# ifdef __cplusplus
+#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#  define YYPARSE_PARAM_DECL
+# else /* !__cplusplus */
+#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+# endif /* !__cplusplus */
+#else /* !YYPARSE_PARAM */
+# define YYPARSE_PARAM_ARG
+# define YYPARSE_PARAM_DECL
+#endif /* !YYPARSE_PARAM */
 
 /* Prevent warning if -Wstrict-prototypes.  */
 #ifdef __GNUC__
-#ifdef YYPARSE_PARAM
-int yyparse (void *);
+# ifdef YYPARSE_PARAM
+YYPARSE_RETURN_TYPE yyparse (void *);
+# else
+YYPARSE_RETURN_TYPE yyparse (void);
+# endif
+#endif
+
+/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
+   variables are global, or local to YYPARSE.  */
+
+#define YY_DECL_NON_LSP_VARIABLES			\
+/* The lookahead symbol.  */				\
+int yychar;						\
+							\
+/* The semantic value of the lookahead symbol. */	\
+YYSTYPE yylval;						\
+							\
+/* Number of parse errors so far.  */			\
+int yynerrs;
+
+#if YYLSP_NEEDED
+# define YY_DECL_VARIABLES			\
+YY_DECL_NON_LSP_VARIABLES			\
+						\
+/* Location data for the lookahead symbol.  */	\
+YYLTYPE yylloc;
 #else
-int yyparse (void);
-#endif
+# define YY_DECL_VARIABLES			\
+YY_DECL_NON_LSP_VARIABLES
 #endif
 
-int
-yyparse(YYPARSE_PARAM_ARG)
+
+/* If nonreentrant, generate the variables here. */
+
+#if !YYPURE
+YY_DECL_VARIABLES
+#endif  /* !YYPURE */
+
+YYPARSE_RETURN_TYPE
+yyparse (YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
 {
+  /* If reentrant, generate the variables here. */
+#if YYPURE
+  YY_DECL_VARIABLES
+#endif  /* !YYPURE */
+
   register int yystate;
   register int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yychar1 = 0;
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack. */
+  short	yyssa[YYINITDEPTH];
+  short *yyss = yyssa;
   register short *yyssp;
-  register YYSTYPE *yyvsp;
-  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
-  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
 
-  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
-  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
-
-  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
-  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  register YYSTYPE *yyvsp;
 
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+#if YYLSP_NEEDED
+  /* The location stack.  */
+  YYLTYPE yylsa[YYINITDEPTH];
   YYLTYPE *yyls = yylsa;
   YYLTYPE *yylsp;
+#endif
 
-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#if YYLSP_NEEDED
+# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
 #else
-#define YYPOPSTACK   (yyvsp--, yyssp--)
+# define YYPOPSTACK   (yyvsp--, yyssp--)
 #endif
 
-  int yystacksize = YYINITDEPTH;
-  int yyfree_stacks = 0;
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
-#ifdef YYPURE
-  int yychar;
-  YYSTYPE yylval;
-  int yynerrs;
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylloc;
-#endif
-#endif
 
-  YYSTYPE yyval;		/*  the variable used to return		*/
-				/*  semantic values from the action	*/
-				/*  routines				*/
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
+#if YYLSP_NEEDED
+  YYLTYPE yyloc;
+#endif
 
+  /* When reducing, the number of symbols on the RHS of the reduced
+     rule. */
   int yylen;
 
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Starting parse\n");
-#endif
+  YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
@@ -814,110 +1074,106 @@
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
 
-  yyssp = yyss - 1;
+  yyssp = yyss;
   yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
+#if YYLSP_NEEDED
   yylsp = yyls;
 #endif
+  goto yysetstate;
 
-/* Push a new state, which is found in  yystate  .  */
-/* In all cases, when you get here, the value and location stacks
-   have just been pushed. so pushing a state here evens the stacks.  */
-yynewstate:
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed. so pushing a state here evens the stacks.
+     */
+  yyssp++;
 
-  *++yyssp = yystate;
+ yysetstate:
+  *yyssp = yystate;
 
   if (yyssp >= yyss + yystacksize - 1)
     {
-      /* Give user a chance to reallocate the stack */
-      /* Use copies of these so that the &'s don't force the real ones into memory. \
                */
-      YYSTYPE *yyvs1 = yyvs;
-      short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
-      YYLTYPE *yyls1 = yyls;
-#endif
-
       /* Get the current used size of the three stacks, in elements.  */
-      int size = yyssp - yyss + 1;
+      YYSIZE_T yysize = yyssp - yyss + 1;
 
 #ifdef yyoverflow
-      /* Each stack pointer address is followed by the size of
-	 the data in use in that stack, in bytes.  */
-#ifdef YYLSP_NEEDED
-      /* This used to be a conditional around just the two extra args,
-	 but that might be undefined if yyoverflow is a macro.  */
-      yyoverflow("parser stack overflow",
-		 &yyss1, size * sizeof (*yyssp),
-		 &yyvs1, size * sizeof (*yyvsp),
-		 &yyls1, size * sizeof (*yylsp),
-		 &yystacksize);
-#else
-      yyoverflow("parser stack overflow",
-		 &yyss1, size * sizeof (*yyssp),
-		 &yyvs1, size * sizeof (*yyvsp),
-		 &yystacksize);
-#endif
-
-      yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
-      yyls = yyls1;
-#endif
+      {
+	/* Give user a chance to reallocate the stack. Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	short *yyss1 = yyss;
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  */
+# if YYLSP_NEEDED
+	YYLTYPE *yyls1 = yyls;
+	/* This used to be a conditional around just the two extra args,
+	   but that might be undefined if yyoverflow is a macro.  */
+	yyoverflow ("parser stack overflow",
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+		    &yyls1, yysize * sizeof (*yylsp),
+		    &yystacksize);
+	yyls = yyls1;
+# else
+	yyoverflow ("parser stack overflow",
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+		    &yystacksize);
+# endif
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
 #else /* no yyoverflow */
       /* Extend the stack our own way.  */
       if (yystacksize >= YYMAXDEPTH)
-	{
-	  yyerror("parser stack overflow");
-	  if (yyfree_stacks)
-	    {
-	      free (yyss);
-	      free (yyvs);
-#ifdef YYLSP_NEEDED
-	      free (yyls);
-#endif
-	    }
-	  return 2;
-	}
+	goto yyoverflowlab;
       yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)
 	yystacksize = YYMAXDEPTH;
-#ifndef YYSTACK_USE_ALLOCA
-      yyfree_stacks = 1;
-#endif
-      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1,
-		   size * (unsigned int) sizeof (*yyssp));
-      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
-		   size * (unsigned int) sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1,
-		   size * (unsigned int) sizeof (*yylsp));
-#endif
+
+      {
+	short *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyoverflowlab;
+	YYSTACK_RELOCATE (short, yyss);
+	YYSTACK_RELOCATE (YYSTYPE, yyvs);
+# if YYLSP_NEEDED
+	YYSTACK_RELOCATE (YYLTYPE, yyls);
+# endif
+# undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
 #endif /* no yyoverflow */
 
-      yyssp = yyss + size - 1;
-      yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
-      yylsp = yyls + size - 1;
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
+#if YYLSP_NEEDED
+      yylsp = yyls + yysize - 1;
 #endif
 
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
 
       if (yyssp >= yyss + yystacksize - 1)
 	YYABORT;
     }
 
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Entering state %d\n", yystate);
-#endif
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
   goto yybackup;
- yybackup:
+
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
 
 /* Do appropriate processing given the current state.  */
 /* Read a lookahead token if we need one and don't already have one.  */
@@ -936,10 +1192,7 @@
 
   if (yychar == YYEMPTY)
     {
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Reading a token: ");
-#endif
+      YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
@@ -950,25 +1203,25 @@
       yychar1 = 0;
       yychar = YYEOF;		/* Don't call YYLEX any more */
 
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Now at end of input.\n");
-#endif
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE(yychar);
+      yychar1 = YYTRANSLATE (yychar);
 
-#if YYDEBUG != 0
+#if YYDEBUG
+     /* We have to keep this `#if YYDEBUG', since we use variables
+	which are defined only if `YYDEBUG' is set.  */
       if (yydebug)
 	{
-	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
-	  /* Give the individual parser a way to print the precise meaning
-	     of a token, for further debugging info.  */
-#ifdef YYPRINT
+	  YYFPRINTF (stderr, "Next token is %d (%s",
+		     yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise
+	     meaning of a token, for further debugging info.  */
+# ifdef YYPRINT
 	  YYPRINT (stderr, yychar, yylval);
-#endif
-	  fprintf (stderr, ")\n");
+# endif
+	  YYFPRINTF (stderr, ")\n");
 	}
 #endif
     }
@@ -1000,73 +1253,95 @@
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
+  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
+	      yychar, yytname[yychar1]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
+#if YYLSP_NEEDED
   *++yylsp = yylloc;
 #endif
 
-  /* count tokens shifted since error; after three, turn off error status.  */
-  if (yyerrstatus) yyerrstatus--;
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
 
   yystate = yyn;
   goto yynewstate;
 
-/* Do the default action for the current state.  */
-yydefault:
 
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
   yyn = yydefact[yystate];
   if (yyn == 0)
     goto yyerrlab;
+  goto yyreduce;
 
-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
 yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
-  if (yylen > 0)
-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
 
-#if YYDEBUG != 0
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to the semantic value of
+     the lookahead token.  This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+#if YYLSP_NEEDED
+  /* Similarly for the default location.  Let the user run additional
+     commands if for instance locations are ranges.  */
+  yyloc = yylsp[1-yylen];
+  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
+#endif
+
+#if YYDEBUG
+  /* We have to keep this `#if YYDEBUG', since we use variables which
+     are defined only if `YYDEBUG' is set.  */
   if (yydebug)
     {
-      int i;
+      int yyi;
 
-      fprintf (stderr, "Reducing via rule %d (line %d), ",
-	       yyn, yyrline[yyn]);
+      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
+		 yyn, yyrline[yyn]);
 
       /* Print the symbols being reduced, and their result.  */
-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
-	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
+	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
 
-
   switch (yyn) {
 
 case 5:
-#line 233 "parser.y"
+#line 241 "parser.y"
 {
         CSSParser *p = static_cast<CSSParser *>(parser);
 	p->rule = yyvsp[-2].rule;
     ;
     break;}
 case 6:
-#line 240 "parser.y"
+#line 248 "parser.y"
 {
 	/* can be empty */
     ;
     break;}
 case 7:
-#line 246 "parser.y"
+#line 254 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	if ( yyvsp[-1].valueList ) {
@@ -1091,7 +1366,7 @@
     ;
     break;}
 case 14:
-#line 283 "parser.y"
+#line 291 "parser.y"
 {
 #ifdef CSS_DEBUG
      kdDebug( 6080 ) << "charset rule: " << qString(yyvsp[-2].string) << endl;
@@ -1099,7 +1374,7 @@
  ;
     break;}
 case 18:
-#line 294 "parser.y"
+#line 302 "parser.y"
 {
      CSSParser *p = static_cast<CSSParser *>(parser);
      if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) \
{ @@ -1109,19 +1384,8 @@
      }
  ;
     break;}
-case 20:
-#line 307 "parser.y"
-{
-     CSSParser *p = static_cast<CSSParser *>(parser);
-     if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) \
                {
-	 p->styleElement->append( yyvsp[-1].rule );
-     } else {
-	 delete yyvsp[-1].rule;
-     }
- ;
-    break;}
-case 27:
-#line 327 "parser.y"
+case 19:
+#line 313 "parser.y"
 {
 #ifdef CSS_DEBUG
 	kdDebug( 6080 ) << "@import: " << qString(yyvsp[-3].string) << endl;
@@ -1133,41 +1397,62 @@
 	    yyval.rule = 0;
     ;
     break;}
-case 28:
-#line 337 "parser.y"
+case 20:
+#line 323 "parser.y"
 {
         yyval.rule = 0;
     ;
     break;}
-case 29:
-#line 340 "parser.y"
+case 21:
+#line 326 "parser.y"
 {
         yyval.rule = 0;
     ;
     break;}
-case 32:
+case 26:
+#line 345 "parser.y"
+{ yyval.string.string = 0; yyval.string.length = 0; ;
+    break;}
+case 29:
 #line 351 "parser.y"
 {
+     CSSParser *p = static_cast<CSSParser *>(parser);
+     if ( yyvsp[-1].rule && p->styleElement && p->styleElement->isCSSStyleSheet() ) \
{ +	 p->styleElement->append( yyvsp[-1].rule );
+     } else {
+	 delete yyvsp[-1].rule;
+     }
+ ;
+    break;}
+case 38:
+#line 376 "parser.y"
+{
 	yyval.mediaList = 0;
     ;
     break;}
-case 33:
-#line 354 "parser.y"
+case 40:
+#line 384 "parser.y"
 {
 	yyval.mediaList = new MediaListImpl();
 	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
     ;
     break;}
-case 34:
-#line 358 "parser.y"
+case 41:
+#line 388 "parser.y"
 {
 	yyval.mediaList = yyvsp[-3].mediaList;
-	if ( !yyval.mediaList ) yyval.mediaList = new MediaListImpl();
 	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
     ;
     break;}
-case 35:
-#line 366 "parser.y"
+case 42:
+#line 392 "parser.y"
+{
+	delete yyvsp[-1].mediaList;
+	yyval.mediaList = 0;
+    ;
+    break;}
+case 43:
+#line 400 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	if ( yyvsp[-4].mediaList && yyvsp[-1].ruleList &&
@@ -1180,26 +1465,12 @@
 	}
     ;
     break;}
-case 36:
-#line 380 "parser.y"
-{
-	yyval.mediaList = new MediaListImpl();
-	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
-    ;
-    break;}
-case 37:
-#line 384 "parser.y"
-{
-	yyval.mediaList = yyvsp[-3].mediaList;
-	yyval.mediaList->appendMedium( domString(yyvsp[0].string) );
-    ;
-    break;}
-case 38:
-#line 392 "parser.y"
+case 44:
+#line 415 "parser.y"
 { yyval.ruleList = 0; ;
     break;}
-case 39:
-#line 393 "parser.y"
+case 45:
+#line 416 "parser.y"
 {
       yyval.ruleList = yyvsp[-2].ruleList;
       if ( yyvsp[-1].rule ) {
@@ -1208,58 +1479,58 @@
       }
   ;
     break;}
-case 40:
-#line 403 "parser.y"
+case 46:
+#line 426 "parser.y"
 {
       yyval.string = yyvsp[-1].string;
   ;
     break;}
-case 41:
-#line 425 "parser.y"
+case 47:
+#line 448 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
-case 42:
-#line 428 "parser.y"
+case 48:
+#line 451 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
-case 43:
-#line 434 "parser.y"
+case 49:
+#line 457 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
-case 44:
-#line 437 "parser.y"
+case 50:
+#line 460 "parser.y"
 {
       yyval.rule = 0;
     ;
     break;}
-case 45:
-#line 443 "parser.y"
+case 51:
+#line 466 "parser.y"
 { yyval.relation = CSSSelector::Sibling; ;
     break;}
-case 46:
-#line 444 "parser.y"
+case 52:
+#line 467 "parser.y"
 { yyval.relation = CSSSelector::Child; ;
     break;}
-case 47:
-#line 445 "parser.y"
+case 53:
+#line 468 "parser.y"
 { yyval.relation = CSSSelector::Descendant; ;
     break;}
-case 48:
-#line 449 "parser.y"
+case 54:
+#line 472 "parser.y"
 { yyval.val = -1; ;
     break;}
-case 49:
-#line 450 "parser.y"
+case 55:
+#line 473 "parser.y"
 { yyval.val = 1; ;
     break;}
-case 50:
-#line 454 "parser.y"
+case 56:
+#line 477 "parser.y"
 {
 #ifdef CSS_DEBUG
 	kdDebug( 6080 ) << "got ruleset" << endl << "  selector:" << endl;
@@ -1278,8 +1549,8 @@
 	}
     ;
     break;}
-case 51:
-#line 474 "parser.y"
+case 57:
+#line 497 "parser.y"
 {
 	if ( yyvsp[0].selector ) {
 	    yyval.selectorList = new QPtrList<CSSSelector>;
@@ -1294,60 +1565,94 @@
 	}
     ;
     break;}
-case 52:
-#line 487 "parser.y"
+case 58:
+#line 510 "parser.y"
 {
-	yyval.selectorList = yyvsp[-3].selectorList;
-	if ( yyvsp[0].selector ) {
-	    if ( !yyval.selectorList ) {
-                yyval.selectorList = new QPtrList<CSSSelector>;
-                yyval.selectorList->setAutoDelete(true);
-            }
+	if ( yyvsp[-3].selectorList && yyvsp[0].selector ) {
+	    yyval.selectorList = yyvsp[-3].selectorList;
 	    yyval.selectorList->append( yyvsp[0].selector );
 #ifdef CSS_DEBUG
 	    kdDebug( 6080 ) << "   got simple selector:" << endl;
 	    yyvsp[0].selector->print();
 #endif
+	} else {
+	    delete yyvsp[-3].selectorList;
+	    delete yyvsp[0].selector;
+	    yyval.selectorList = 0;
 	}
     ;
     break;}
-case 53:
-#line 504 "parser.y"
+case 59:
+#line 524 "parser.y"
+{
+	delete yyvsp[-1].selectorList;
+	yyval.selectorList = 0;
+    ;
+    break;}
+case 60:
+#line 531 "parser.y"
 {
 	yyval.selector = yyvsp[0].selector;
     ;
     break;}
-case 54:
-#line 507 "parser.y"
+case 61:
+#line 534 "parser.y"
 {
 	yyval.selector = yyvsp[0].selector;
 	yyval.selector->relation = yyvsp[-1].relation;
 	yyval.selector->tagHistory = yyvsp[-2].selector;
     ;
     break;}
-case 55:
-#line 515 "parser.y"
+case 62:
+#line 539 "parser.y"
+{
+	delete yyvsp[-1].selector;
+	yyval.selector = 0;
+    ;
+    break;}
+case 63:
+#line 546 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->tag = yyvsp[-1].element;
     ;
     break;}
-case 56:
-#line 519 "parser.y"
+case 64:
+#line 550 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
 	yyval.selector->tag = yyvsp[-2].element;
     ;
     break;}
-case 57:
-#line 523 "parser.y"
+case 65:
+#line 554 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
-	yyval.selector->tag = -1;
+	yyval.selector->tag = 0xffff;
     ;
     break;}
-case 58:
-#line 530 "parser.y"
+case 66:
+#line 561 "parser.y"
+{ yyval.element = (yyvsp[-1].element<<16) | yyvsp[0].element; ;
+    break;}
+case 67:
+#line 562 "parser.y"
+{ yyval.element = yyvsp[0].element; ;
+    break;}
+case 68:
+#line 566 "parser.y"
+{ yyval.element = 0; ;
+    break;}
+case 69:
+#line 567 "parser.y"
+{ yyval.element = 1; ;
+    break;}
+case 70:
+#line 568 "parser.y"
+{ yyval.element = 0xffff; ;
+    break;}
+case 71:
+#line 573 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -1365,21 +1670,19 @@
 	}
     ;
     break;}
-case 59:
-#line 546 "parser.y"
-{
-	yyval.element = -1;
-    ;
+case 72:
+#line 589 "parser.y"
+{ yyval.element = 0xffff; ;
     break;}
-case 60:
-#line 552 "parser.y"
+case 73:
+#line 593 "parser.y"
 {
 	yyval.selector = yyvsp[0].selector;
 	yyval.selector->nonCSSHint = static_cast<CSSParser *>(parser)->nonCSSHint;
     ;
     break;}
-case 61:
-#line 556 "parser.y"
+case 74:
+#line 597 "parser.y"
 {
 	yyval.selector = yyvsp[-1].selector;
 	yyval.selector->nonCSSHint = static_cast<CSSParser *>(parser)->nonCSSHint;
@@ -1387,8 +1690,15 @@
 	yyval.selector->tagHistory = yyvsp[0].selector;
     ;
     break;}
-case 62:
-#line 565 "parser.y"
+case 75:
+#line 603 "parser.y"
+{
+	delete yyvsp[-1].selector;
+	yyval.selector = 0;
+;
+    break;}
+case 76:
+#line 610 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Id;
@@ -1396,8 +1706,8 @@
 	yyval.selector->value = domString(yyvsp[0].string);
     ;
     break;}
-case 66:
-#line 577 "parser.y"
+case 80:
+#line 622 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::List;
@@ -1405,8 +1715,16 @@
 	yyval.selector->value = domString(yyvsp[0].string);
     ;
     break;}
-case 67:
-#line 586 "parser.y"
+case 81:
+#line 631 "parser.y"
+{ yyval.attribute = (yyvsp[-1].element<<16) | yyvsp[0].attribute; ;
+    break;}
+case 82:
+#line 632 "parser.y"
+{ yyval.attribute = yyvsp[0].attribute; ;
+    break;}
+case 83:
+#line 636 "parser.y"
 {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -1425,16 +1743,16 @@
 	    }
     ;
     break;}
-case 68:
-#line 606 "parser.y"
+case 84:
+#line 656 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->attr = yyvsp[-1].attribute;
 	yyval.selector->match = CSSSelector::Set;
     ;
     break;}
-case 69:
-#line 611 "parser.y"
+case 85:
+#line 661 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->attr = yyvsp[-5].attribute;
@@ -1442,52 +1760,52 @@
 	yyval.selector->value = domString(yyvsp[-2].string);
     ;
     break;}
-case 70:
-#line 620 "parser.y"
+case 86:
+#line 670 "parser.y"
 {
 	yyval.val = CSSSelector::Exact;
     ;
     break;}
-case 71:
-#line 623 "parser.y"
+case 87:
+#line 673 "parser.y"
 {
 	yyval.val = CSSSelector::List;
     ;
     break;}
-case 72:
-#line 626 "parser.y"
+case 88:
+#line 676 "parser.y"
 {
 	yyval.val = CSSSelector::Hyphen;
     ;
     break;}
-case 73:
-#line 629 "parser.y"
+case 89:
+#line 679 "parser.y"
 {
 	yyval.val = CSSSelector::Begin;
     ;
     break;}
-case 74:
-#line 632 "parser.y"
+case 90:
+#line 682 "parser.y"
 {
 	yyval.val = CSSSelector::End;
     ;
     break;}
-case 75:
-#line 635 "parser.y"
+case 91:
+#line 685 "parser.y"
 {
 	yyval.val = CSSSelector::Contain;
     ;
     break;}
-case 78:
-#line 646 "parser.y"
+case 94:
+#line 696 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Pseudo;
 	yyval.selector->value = domString(yyvsp[0].string);
     ;
     break;}
-case 79:
-#line 651 "parser.y"
+case 95:
+#line 701 "parser.y"
 {
 	yyval.selector = new CSSSelector();
 	yyval.selector->match = CSSSelector::Pseudo;
@@ -1495,28 +1813,28 @@
 	yyval.selector->value = domString(yyvsp[-2].string);
     ;
     break;}
-case 80:
-#line 660 "parser.y"
+case 96:
+#line 710 "parser.y"
 {
 	yyval.ok = yyvsp[0].ok;
     ;
     break;}
-case 81:
-#line 663 "parser.y"
+case 97:
+#line 713 "parser.y"
 {
 	yyval.ok = yyvsp[-1].ok;
 	if ( yyvsp[0].ok )
 	    yyval.ok = yyvsp[0].ok;
     ;
     break;}
-case 82:
-#line 668 "parser.y"
+case 98:
+#line 718 "parser.y"
 {
 	yyval.ok = yyvsp[0].ok;
     ;
     break;}
-case 83:
-#line 671 "parser.y"
+case 99:
+#line 721 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1524,8 +1842,8 @@
 #endif
     ;
     break;}
-case 84:
-#line 677 "parser.y"
+case 100:
+#line 727 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1533,14 +1851,14 @@
 #endif
     ;
     break;}
-case 85:
-#line 686 "parser.y"
+case 101:
+#line 736 "parser.y"
 {
 	yyval.ok = yyvsp[-2].ok;
     ;
     break;}
-case 86:
-#line 689 "parser.y"
+case 102:
+#line 739 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1548,8 +1866,8 @@
 #endif
     ;
     break;}
-case 87:
-#line 695 "parser.y"
+case 103:
+#line 745 "parser.y"
 {
 	yyval.ok = false;
 #ifdef CSS_DEBUG
@@ -1557,16 +1875,16 @@
 #endif
     ;
     break;}
-case 88:
-#line 701 "parser.y"
+case 104:
+#line 751 "parser.y"
 {
 	yyval.ok = yyvsp[-3].ok;
 	if ( yyvsp[-2].ok )
 	    yyval.ok = yyvsp[-2].ok;
     ;
     break;}
-case 89:
-#line 706 "parser.y"
+case 105:
+#line 756 "parser.y"
 {
 	yyval.ok = yyvsp[-3].ok;
 #ifdef CSS_DEBUG
@@ -1574,8 +1892,8 @@
 #endif
     ;
     break;}
-case 90:
-#line 712 "parser.y"
+case 106:
+#line 762 "parser.y"
 {
 	yyval.ok = yyvsp[-5].ok;
 #ifdef CSS_DEBUG
@@ -1583,8 +1901,8 @@
 #endif
     ;
     break;}
-case 91:
-#line 721 "parser.y"
+case 107:
+#line 771 "parser.y"
 {
 	yyval.ok = false;
 	CSSParser *p = static_cast<CSSParser *>(parser);
@@ -1606,30 +1924,30 @@
 	p->valueList = 0;
     ;
     break;}
-case 92:
-#line 744 "parser.y"
+case 108:
+#line 794 "parser.y"
 {
 	QString str = qString(yyvsp[-1].string);
 	yyval.prop_id = getPropertyID( str.lower().latin1(), str.length() );
     ;
     break;}
-case 93:
-#line 751 "parser.y"
+case 109:
+#line 801 "parser.y"
 { yyval.b = true; ;
     break;}
-case 94:
-#line 752 "parser.y"
+case 110:
+#line 802 "parser.y"
 { yyval.b = false; ;
     break;}
-case 95:
-#line 756 "parser.y"
+case 111:
+#line 806 "parser.y"
 {
 	yyval.valueList = new ValueList;
 	yyval.valueList->addValue( yyvsp[0].value );
     ;
     break;}
-case 96:
-#line 760 "parser.y"
+case 112:
+#line 810 "parser.y"
 {
 	yyval.valueList = yyvsp[-2].valueList;
 	if ( yyvsp[-1].tok ) {
@@ -1642,38 +1960,45 @@
 	yyval.valueList->addValue( yyvsp[0].value );
     ;
     break;}
-case 97:
-#line 774 "parser.y"
+case 113:
+#line 821 "parser.y"
+{
+	delete yyvsp[-1].valueList;
+	yyval.valueList = 0;
+    ;
+    break;}
+case 114:
+#line 828 "parser.y"
 {
 	yyval.tok = '/';
     ;
     break;}
-case 98:
-#line 777 "parser.y"
+case 115:
+#line 831 "parser.y"
 {
 	yyval.tok = ',';
     ;
     break;}
-case 99:
-#line 780 "parser.y"
+case 116:
+#line 834 "parser.y"
 {
         yyval.tok = 0;
   ;
     break;}
-case 100:
-#line 786 "parser.y"
+case 117:
+#line 840 "parser.y"
 { yyval.value = yyvsp[0].value; ;
     break;}
-case 101:
-#line 787 "parser.y"
+case 118:
+#line 841 "parser.y"
 { yyval.value = yyvsp[0].value; yyval.value.fValue *= yyvsp[-1].val; ;
     break;}
-case 102:
-#line 788 "parser.y"
+case 119:
+#line 842 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = \
CSSPrimitiveValue::CSS_STRING; ;  break;}
-case 103:
-#line 789 "parser.y"
+case 120:
+#line 843 "parser.y"
 {
       QString str = qString( yyvsp[-1].string );
       yyval.value.id = getValueID( str.lower().latin1(), str.length() );
@@ -1681,102 +2006,102 @@
       yyval.value.string = yyvsp[-1].string;
   ;
     break;}
-case 104:
-#line 795 "parser.y"
+case 121:
+#line 849 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = \
CSSPrimitiveValue::CSS_URI; ;  break;}
-case 105:
-#line 796 "parser.y"
+case 122:
+#line 850 "parser.y"
 { yyval.value.id = 0; yyval.value.iValue = 0; yyval.value.unit = \
CSSPrimitiveValue::CSS_UNKNOWN;/* ### */ ;  break;}
-case 106:
-#line 797 "parser.y"
+case 123:
+#line 851 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[0].string; yyval.value.unit = \
CSSPrimitiveValue::CSS_RGBCOLOR; ;  break;}
-case 107:
-#line 799 "parser.y"
+case 124:
+#line 853 "parser.y"
 {
       yyval.value = yyvsp[0].value;
   ;
     break;}
-case 108:
-#line 805 "parser.y"
+case 125:
+#line 859 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_NUMBER; ;  break;}
-case 109:
-#line 806 "parser.y"
+case 126:
+#line 860 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_PERCENTAGE; ;  break;}
-case 110:
-#line 807 "parser.y"
+case 127:
+#line 861 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_PX; ;  break;}
-case 111:
-#line 808 "parser.y"
+case 128:
+#line 862 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_CM; ;  break;}
-case 112:
-#line 809 "parser.y"
+case 129:
+#line 863 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_MM; ;  break;}
-case 113:
-#line 810 "parser.y"
+case 130:
+#line 864 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_IN; ;  break;}
-case 114:
-#line 811 "parser.y"
+case 131:
+#line 865 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_PT; ;  break;}
-case 115:
-#line 812 "parser.y"
+case 132:
+#line 866 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_PC; ;  break;}
-case 116:
-#line 813 "parser.y"
+case 133:
+#line 867 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_DEG; ;  break;}
-case 117:
-#line 814 "parser.y"
+case 134:
+#line 868 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_RAD; ;  break;}
-case 118:
-#line 815 "parser.y"
+case 135:
+#line 869 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_GRAD; ;  break;}
-case 119:
-#line 816 "parser.y"
+case 136:
+#line 870 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_MS; ;  break;}
-case 120:
-#line 817 "parser.y"
+case 137:
+#line 871 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_S; ;  break;}
-case 121:
-#line 818 "parser.y"
+case 138:
+#line 872 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_HZ; ;  break;}
-case 122:
-#line 819 "parser.y"
+case 139:
+#line 873 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_KHZ; ;  break;}
-case 123:
-#line 820 "parser.y"
+case 140:
+#line 874 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_EMS; ;  break;}
-case 124:
-#line 821 "parser.y"
+case 141:
+#line 875 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
Value::Q_EMS; ;  break;}
-case 125:
-#line 822 "parser.y"
+case 142:
+#line 876 "parser.y"
 { yyval.value.id = 0; yyval.value.fValue = yyvsp[-1].val; yyval.value.unit = \
CSSPrimitiveValue::CSS_EXS; ;  break;}
-case 126:
-#line 823 "parser.y"
+case 143:
+#line 877 "parser.y"
 { yyval.value.id = 0; yyval.value.string = yyvsp[-1].string; yyval.value.unit = \
CSSPrimitiveValue::CSS_DIMENSION ;  break;}
-case 127:
-#line 828 "parser.y"
+case 144:
+#line 882 "parser.y"
 {
       Function *f = new Function;
       f->name = yyvsp[-4].string;
@@ -1786,12 +2111,12 @@
       yyval.value.function = f;
   ;
     break;}
-case 128:
-#line 843 "parser.y"
+case 145:
+#line 897 "parser.y"
 { yyval.string = yyvsp[-1].string; ;
     break;}
-case 129:
-#line 850 "parser.y"
+case 146:
+#line 904 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1799,8 +2124,8 @@
 #endif
     ;
     break;}
-case 130:
-#line 856 "parser.y"
+case 147:
+#line 910 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1808,8 +2133,8 @@
 #endif
     ;
     break;}
-case 131:
-#line 865 "parser.y"
+case 148:
+#line 919 "parser.y"
 {
 	yyval.rule = 0;
 #ifdef CSS_DEBUG
@@ -1818,49 +2143,35 @@
     ;
     break;}
 }
-   /* the action file gets copied in in place of this dollarsign */
-#line 543 "/usr/lib/bison.simple"
+
+#line 731 "/usr/share/bison/bison.simple"
+
 
   yyvsp -= yylen;
   yyssp -= yylen;
-#ifdef YYLSP_NEEDED
+#if YYLSP_NEEDED
   yylsp -= yylen;
 #endif
 
-#if YYDEBUG != 0
+#if YYDEBUG
   if (yydebug)
     {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "state stack now");
-      while (ssp1 != yyssp)
-	fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
+      short *yyssp1 = yyss - 1;
+      YYFPRINTF (stderr, "state stack now");
+      while (yyssp1 != yyssp)
+	YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
     }
 #endif
 
   *++yyvsp = yyval;
-
-#ifdef YYLSP_NEEDED
-  yylsp++;
-  if (yylen == 0)
-    {
-      yylsp->first_line = yylloc.first_line;
-      yylsp->first_column = yylloc.first_column;
-      yylsp->last_line = (yylsp-1)->last_line;
-      yylsp->last_column = (yylsp-1)->last_column;
-      yylsp->text = 0;
-    }
-  else
-    {
-      yylsp->last_line = (yylsp+yylen-1)->last_line;
-      yylsp->last_column = (yylsp+yylen-1)->last_column;
-    }
+#if YYLSP_NEEDED
+  *++yylsp = yyloc;
 #endif
 
-  /* Now "shift" the result of the reduction.
-     Determine what state that goes to,
-     based on the state we popped back to
-     and the rule number reduced by.  */
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
 
   yyn = yyr1[yyn];
 
@@ -1872,10 +2183,13 @@
 
   goto yynewstate;
 
-yyerrlab:   /* here on detecting error */
 
-  if (! yyerrstatus)
-    /* If not already recovering from an error, report this error.  */
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
     {
       ++yynerrs;
 
@@ -1884,102 +2198,121 @@
 
       if (yyn > YYFLAG && yyn < YYLAST)
 	{
-	  int size = 0;
-	  char *msg;
-	  int x, count;
-
-	  count = 0;
-	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-	  for (x = (yyn < 0 ? -yyn : 0);
-	       x < (sizeof(yytname) / sizeof(char *)); x++)
-	    if (yycheck[x + yyn] == x)
-	      size += strlen(yytname[x]) + 15, count++;
-	  msg = (char *) malloc(size + 15);
-	  if (msg != 0)
+	  YYSIZE_T yysize = 0;
+	  char *yymsg;
+	  int yyx, yycount;
+
+	  yycount = 0;
+	  /* Start YYX at -YYN if negative to avoid negative indexes in
+	     YYCHECK.  */
+	  for (yyx = yyn < 0 ? -yyn : 0;
+	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+	    if (yycheck[yyx + yyn] == yyx)
+	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
+	  yysize += yystrlen ("parse error, unexpected ") + 1;
+	  yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+	  yymsg = (char *) YYSTACK_ALLOC (yysize);
+	  if (yymsg != 0)
 	    {
-	      strcpy(msg, "parse error");
+	      char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
+	      yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
 
-	      if (count < 5)
+	      if (yycount < 5)
 		{
-		  count = 0;
-		  for (x = (yyn < 0 ? -yyn : 0);
-		       x < (sizeof(yytname) / sizeof(char *)); x++)
-		    if (yycheck[x + yyn] == x)
+		  yycount = 0;
+		  for (yyx = yyn < 0 ? -yyn : 0;
+		       yyx < (int) (sizeof (yytname) / sizeof (char *));
+		       yyx++)
+		    if (yycheck[yyx + yyn] == yyx)
 		      {
-			strcat(msg, count == 0 ? ", expecting `" : " or `");
-			strcat(msg, yytname[x]);
-			strcat(msg, "'");
-			count++;
+			const char *yyq = ! yycount ? ", expecting " : " or ";
+			yyp = yystpcpy (yyp, yyq);
+			yyp = yystpcpy (yyp, yytname[yyx]);
+			yycount++;
 		      }
 		}
-	      yyerror(msg);
-	      free(msg);
+	      yyerror (yymsg);
+	      YYSTACK_FREE (yymsg);
 	    }
 	  else
-	    yyerror ("parse error; also virtual memory exceeded");
+	    yyerror ("parse error; also virtual memory exhausted");
 	}
       else
-#endif /* YYERROR_VERBOSE */
-	yyerror("parse error");
+#endif /* defined (YYERROR_VERBOSE) */
+	yyerror ("parse error");
     }
-
   goto yyerrlab1;
-yyerrlab1:   /* here on error raised explicitly by an action */
 
+
+/*--------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action |
+`--------------------------------------------------*/
+yyerrlab1:
   if (yyerrstatus == 3)
     {
-      /* if just tried and failed to reuse lookahead token after an error, discard \
it.  */ +      /* If just tried and failed to reuse lookahead token after an
+	 error, discard it.  */
 
       /* return failure if at end of input */
       if (yychar == YYEOF)
 	YYABORT;
-
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
+      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
+		  yychar, yytname[yychar1]));
       yychar = YYEMPTY;
     }
 
-  /* Else will try to reuse lookahead token
-     after shifting the error token.  */
+  /* Else will try to reuse lookahead token after shifting the error
+     token.  */
 
   yyerrstatus = 3;		/* Each real token shifted decrements this */
 
   goto yyerrhandle;
 
-yyerrdefault:  /* current state does not do anything special for the error token. */
 
+/*-------------------------------------------------------------------.
+| yyerrdefault -- current state does not do anything special for the |
+| error token.                                                       |
+`-------------------------------------------------------------------*/
+yyerrdefault:
 #if 0
   /* This is wrong; only states that explicitly want error tokens
      should shift them.  */
-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise \
                pop it.*/
-  if (yyn) goto yydefault;
+
+  /* If its default is to accept any token, ok.  Otherwise pop it.  */
+  yyn = yydefact[yystate];
+  if (yyn)
+    goto yydefault;
 #endif
 
-yyerrpop:   /* pop the current state because it cannot handle the error token */
 
-  if (yyssp == yyss) YYABORT;
+/*---------------------------------------------------------------.
+| yyerrpop -- pop the current state because it cannot handle the |
+| error token                                                    |
+`---------------------------------------------------------------*/
+yyerrpop:
+  if (yyssp == yyss)
+    YYABORT;
   yyvsp--;
   yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
+#if YYLSP_NEEDED
   yylsp--;
 #endif
 
-#if YYDEBUG != 0
+#if YYDEBUG
   if (yydebug)
     {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "Error: state stack now");
-      while (ssp1 != yyssp)
-	fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
+      short *yyssp1 = yyss - 1;
+      YYFPRINTF (stderr, "Error: state stack now");
+      while (yyssp1 != yyssp)
+	YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
     }
 #endif
 
+/*--------------.
+| yyerrhandle.  |
+`--------------*/
 yyerrhandle:
-
   yyn = yypact[yystate];
   if (yyn == YYFLAG)
     goto yyerrdefault;
@@ -2002,43 +2335,46 @@
   if (yyn == YYFINAL)
     YYACCEPT;
 
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting error token, ");
-#endif
+  YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
+#if YYLSP_NEEDED
   *++yylsp = yylloc;
 #endif
 
   yystate = yyn;
   goto yynewstate;
 
- yyacceptlab:
-  /* YYACCEPT comes here.  */
-  if (yyfree_stacks)
-    {
-      free (yyss);
-      free (yyvs);
-#ifdef YYLSP_NEEDED
-      free (yyls);
-#endif
-    }
-  return 0;
 
- yyabortlab:
-  /* YYABORT comes here.  */
-  if (yyfree_stacks)
-    {
-      free (yyss);
-      free (yyvs);
-#ifdef YYLSP_NEEDED
-      free (yyls);
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+/*---------------------------------------------.
+| yyoverflowab -- parser overflow comes here.  |
+`---------------------------------------------*/
+yyoverflowlab:
+  yyerror ("parser stack overflow");
+  yyresult = 2;
+  /* Fall through.  */
+
+yyreturn:
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
 #endif
-    }
-  return 1;
+  return yyresult;
 }
-#line 900 "parser.y"
+#line 954 "parser.y"
 
 
diff -urN css.cvsup/parser.h css.030221/parser.h
--- css.cvsup/parser.h	2003-01-22 04:03:48.000000000 -0600
+++ css.030221/parser.h	2003-02-20 17:31:46.000000000 -0600
@@ -1,3 +1,7 @@
+#ifndef BISON_PARSER_TAB_H
+# define BISON_PARSER_TAB_H
+
+#ifndef YYSTYPE
 typedef union {
     CSSRuleImpl *rule;
     CSSSelector *selector;
@@ -10,52 +14,57 @@
     float val;
     int prop_id;
     int attribute;
-    int element;
+    unsigned int element;
     CSSSelector::Relation relation;
     bool b;
     char tok;
     Value value;
     ValueList *valueList;
-} YYSTYPE;
-#define	S	257
-#define	SGML_CD	258
-#define	INCLUDES	259
-#define	DASHMATCH	260
-#define	BEGINSWITH	261
-#define	ENDSWITH	262
-#define	CONTAINS	263
-#define	STRING	264
-#define	IDENT	265
-#define	HASH	266
-#define	IMPORT_SYM	267
-#define	PAGE_SYM	268
-#define	MEDIA_SYM	269
-#define	FONT_FACE_SYM	270
-#define	CHARSET_SYM	271
-#define	KONQ_RULE_SYM	272
-#define	KONQ_DECLS_SYM	273
-#define	KONQ_VALUE_SYM	274
-#define	IMPORTANT_SYM	275
-#define	QEMS	276
-#define	EMS	277
-#define	EXS	278
-#define	PXS	279
-#define	CMS	280
-#define	MMS	281
-#define	INS	282
-#define	PTS	283
-#define	PCS	284
-#define	DEGS	285
-#define	RADS	286
-#define	GRADS	287
-#define	MSECS	288
-#define	SECS	289
-#define	HERZ	290
-#define	KHERZ	291
-#define	DIMEN	292
-#define	PERCENTAGE	293
-#define	NUMBER	294
-#define	URI	295
-#define	FUNCTION	296
-#define	UNICODERANGE	297
+} yystype;
+# define YYSTYPE yystype
+#endif
+# define	S	257
+# define	SGML_CD	258
+# define	INCLUDES	259
+# define	DASHMATCH	260
+# define	BEGINSWITH	261
+# define	ENDSWITH	262
+# define	CONTAINS	263
+# define	STRING	264
+# define	IDENT	265
+# define	HASH	266
+# define	IMPORT_SYM	267
+# define	PAGE_SYM	268
+# define	MEDIA_SYM	269
+# define	FONT_FACE_SYM	270
+# define	CHARSET_SYM	271
+# define	NAMESPACE_SYM	272
+# define	KONQ_RULE_SYM	273
+# define	KONQ_DECLS_SYM	274
+# define	KONQ_VALUE_SYM	275
+# define	IMPORTANT_SYM	276
+# define	QEMS	277
+# define	EMS	278
+# define	EXS	279
+# define	PXS	280
+# define	CMS	281
+# define	MMS	282
+# define	INS	283
+# define	PTS	284
+# define	PCS	285
+# define	DEGS	286
+# define	RADS	287
+# define	GRADS	288
+# define	MSECS	289
+# define	SECS	290
+# define	HERZ	291
+# define	KHERZ	292
+# define	DIMEN	293
+# define	PERCENTAGE	294
+# define	NUMBER	295
+# define	URI	296
+# define	FUNCTION	297
+# define	UNICODERANGE	298
+
 
+#endif /* not BISON_PARSER_TAB_H */
diff -urN css.cvsup/parser.y css.030221/parser.y
--- css.cvsup/parser.y	2003-02-07 20:24:52.000000000 -0600
+++ css.030221/parser.y	2003-02-20 17:31:46.000000000 -0600
@@ -18,7 +18,7 @@
  *  License along with this library; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- *  $Id: parser.y,v 1.16 2003/02/08 02:24:52 pmk Exp $
+ *  $Id: parser.y,v 1.18 2003/02/20 21:09:45 knoll Exp $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -88,7 +88,7 @@
     float val;
     int prop_id;
     int attribute;
-    int element;
+    unsigned int element;
     CSSSelector::Relation relation;
     bool b;
     char tok;
@@ -114,7 +114,7 @@
 
 %}
 
-%expect 12
+%expect 18
 
 %token S SGML_CD
 
@@ -132,12 +132,15 @@
 %token ':'
 %token '.'
 %token '['
+%token '|'
+%token '*'
 
 %token IMPORT_SYM
 %token PAGE_SYM
 %token MEDIA_SYM
 %token FONT_FACE_SYM
 %token CHARSET_SYM
+%token NAMESPACE_SYM
 %token KONQ_RULE_SYM
 %token KONQ_DECLS_SYM
 %token KONQ_VALUE_SYM
@@ -184,9 +187,12 @@
 %type <string> ident_or_string
 %type <string> medium
 %type <string> hexcolor
+%type <string> ns_prefix
+%type <string> maybe_ns_prefix
+%type <element> ns_selector
 
 %type <mediaList> media_list
-%type <mediaList> media_list2
+%type <mediaList> maybe_media_list
 
 %type <ruleList> ruleset_list
 
@@ -217,13 +223,15 @@
 %type <value> function
 
 %type <element> element_name
+%type <element> ns_element
 
 %type <attribute> attrib_id
+%type <attribute> ns_attrib_id
 
 %%
 
 stylesheet:
-    maybe_charset maybe_sgml import_list rule_list
+    maybe_charset maybe_sgml import_list maybe_namespace rule_list
   | konq_rule maybe_space
   | konq_decls maybe_space
   | konq_value maybe_space
@@ -301,6 +309,42 @@
  }
  ;
 
+import:
+    IMPORT_SYM maybe_space string_or_uri maybe_space maybe_media_list ';' {
+#ifdef CSS_DEBUG
+	kdDebug( 6080 ) << "@import: " << qString($3) << endl;
+#endif
+	CSSParser *p = static_cast<CSSParser *>(parser);
+	if ( p->styleElement && p->styleElement->isCSSStyleSheet() )
+	    $$ = new CSSImportRuleImpl( p->styleElement, domString($3), $5 );
+	else
+	    $$ = 0;
+    }
+  | IMPORT_SYM error invalid_block {
+        $$ = 0;
+    }
+  | IMPORT_SYM error ';' {
+        $$ = 0;
+    }
+  ;
+
+maybe_namespace
+  : /* empty */
+  | namespace maybe_sgml
+;
+
+namespace
+  : NAMESPACE_SYM maybe_space maybe_ns_prefix string_or_uri maybe_space ';'
+  ;
+
+ns_prefix
+  : IDENT
+  ;
+
+maybe_ns_prefix:
+    /* empty */ { $$.string = 0; $$.length = 0; }
+  | ns_prefix S
+  ;
 
 rule_list:
    /* empty */
@@ -323,47 +367,37 @@
   | invalid_at
     ;
 
-import:
-    IMPORT_SYM maybe_space string_or_uri maybe_space media_list ';' {
-#ifdef CSS_DEBUG
-	kdDebug( 6080 ) << "@import: " << qString($3) << endl;
-#endif
-	CSSParser *p = static_cast<CSSParser *>(parser);
-	if ( p->styleElement && p->styleElement->isCSSStyleSheet() )
-	    $$ = new CSSImportRuleImpl( p->styleElement, domString($3), $5 );
-	else
-	    $$ = 0;
-    }
-  | IMPORT_SYM error invalid_block {
-        $$ = 0;
-    }
-  | IMPORT_SYM error ';' {
-        $$ = 0;
-    }
-  ;
-
 string_or_uri:
     STRING
   | URI
     ;
 
-media_list:
+maybe_media_list:
     /* empty */ {
 	$$ = 0;
     }
-    | medium {
+    | media_list
+;
+
+
+media_list:
+    medium {
 	$$ = new MediaListImpl();
 	$$->appendMedium( domString($1) );
     }
     | media_list ',' maybe_space medium {
 	$$ = $1;
-	if ( !$$ ) $$ = new MediaListImpl();
 	$$->appendMedium( domString($4) );
     }
-;
+    | media_list error {
+	delete $1;
+	$$ = 0;
+    }
+    ;
+
 
 media:
-    MEDIA_SYM maybe_space media_list2 '{' maybe_space ruleset_list '}' {
+    MEDIA_SYM maybe_space media_list '{' maybe_space ruleset_list '}' {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	if ( $3 && $6 &&
 	     p->styleElement && p->styleElement->isCSSStyleSheet() ) {
@@ -376,17 +410,6 @@
     }
   ;
 
-media_list2:
-    medium {
-	$$ = new MediaListImpl();
-	$$->appendMedium( domString($1) );
-    }
-    | media_list ',' maybe_space medium {
-	$$ = $1;
-	$$->appendMedium( domString($4) );
-    }
-    ;
-
 
 ruleset_list:
     /* empty */ { $$ = 0; }
@@ -485,19 +508,23 @@
 	}
     }
     | selector_list ',' maybe_space selector {
-	$$ = $1;
-	if ( $4 ) {
-	    if ( !$$ ) {
-                $$ = new QPtrList<CSSSelector>;
-                $$->setAutoDelete(true);
-            }
+	if ( $1 && $4 ) {
+	    $$ = $1;
 	    $$->append( $4 );
 #ifdef CSS_DEBUG
 	    kdDebug( 6080 ) << "   got simple selector:" << endl;
 	    $4->print();
 #endif
+	} else {
+	    delete $1;
+	    delete $4;
+	    $$ = 0;
 	}
     }
+  | selector_list error {
+	delete $1;
+	$$ = 0;
+    }
    ;
 
 selector:
@@ -509,23 +536,39 @@
 	$$->relation = $2;
 	$$->tagHistory = $1;
     }
+    | selector error {
+	delete $1;
+	$$ = 0;
+    }
     ;
 
 simple_selector:
-    element_name maybe_space {
+    ns_element maybe_space {
 	$$ = new CSSSelector();
 	$$->tag = $1;
     }
-    | element_name specifier_list maybe_space {
+    | ns_element specifier_list maybe_space {
 	$$ = $2;
 	$$->tag = $1;
     }
     | specifier_list maybe_space {
 	$$ = $1;
-	$$->tag = -1;
+	$$->tag = 0xffff;
     }
   ;
 
+ns_element:
+    ns_selector element_name { $$ = ($1<<16) | $2; }
+  | element_name { $$ = $1; }
+;
+
+ns_selector:
+    '|' { $$ = 0; }
+  | IDENT '|' { $$ = 1; }
+  | '*' '|' { $$ = 0xffff; } 
+;
+
+
 element_name:
     IDENT {
 	CSSParser *p = static_cast<CSSParser *>(parser);
@@ -543,9 +586,7 @@
 // 	    assert($$ != 0);
 	}
     }
-    | '*' {
-	$$ = -1;
-    }
+  | '*' { $$ = 0xffff; }
   ;
 
 specifier_list:
@@ -559,6 +600,10 @@
 	$$->relation = CSSSelector::SubSelector;
 	$$->tagHistory = $2;
     }
+    | specifier_list error {
+	delete $1;
+	$$ = 0;
+}
 ;
 
 specifier:
@@ -582,7 +627,12 @@
     }
   ;
 
-attrib_id:
+ns_attrib_id:
+    ns_selector attrib_id { $$ = ($1<<16) | $2; }
+  | attrib_id { $$ = $1; }
+;
+
+attrib_id: 
     IDENT maybe_space {
 	CSSParser *p = static_cast<CSSParser *>(parser);
 	DOM::DocumentImpl *doc = p->document();
@@ -603,12 +653,12 @@
     ;
 
 attrib:
-    '[' maybe_space attrib_id ']' {
+    '[' maybe_space ns_attrib_id ']' {
 	$$ = new CSSSelector();
 	$$->attr = $3;
 	$$->match = CSSSelector::Set;
     }
-    | '[' maybe_space attrib_id match maybe_space ident_or_string maybe_space ']' {
+    | '[' maybe_space ns_attrib_id match maybe_space ident_or_string maybe_space ']' \
{  $$ = new CSSSelector();
 	$$->attr = $3;
 	$$->match = (CSSSelector::Match)$4;
@@ -768,6 +818,10 @@
 	}
 	$$->addValue( $3 );
     }
+    | expr error {
+	delete $1;
+	$$ = 0;
+    }
   ;
 
 operator:
diff -urN css.cvsup/tokenizer.cpp css.030221/tokenizer.cpp
--- css.cvsup/tokenizer.cpp	2003-01-22 04:03:48.000000000 -0600
+++ css.030221/tokenizer.cpp	2003-02-20 17:31:46.000000000 -0600
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 2003 Lars Knoll (knoll@kde.org)
  *
- * $Id: tokenizer.cpp,v 1.6 2003/01/22 10:03:48 knoll Exp $
+ * $Id: tokenizer.cpp,v 1.7 2003/02/20 21:09:57 knoll Exp $
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -41,44 +41,45 @@
 
 // --------- begin generated code -------------------
 
-#define YY_NUM_RULES 47
-#define YY_END_OF_BUFFER 48
-static yyconst short int yy_accept[304] =
+#define YY_NUM_RULES 48
+#define YY_END_OF_BUFFER 49
+static yyconst short int yy_accept[313] =
     {   0,
-        0,    0,   48,   46,    2,    2,   46,   46,   46,   46,
-       46,   46,   46,   46,   46,   40,   46,   46,   46,   46,
-       11,   11,   46,   46,    2,    0,    0,    0,   10,    0,
-       12,    0,    8,    0,    0,    9,    0,   40,    0,   39,
-        0,   40,    0,   38,   38,   38,   38,   38,   38,   38,
-       38,   38,   38,   38,   38,   35,    0,    0,    0,    0,
-        0,    0,    0,   11,   11,    7,   43,   11,    0,    0,
-       11,    6,    5,    0,    0,    0,   10,    0,    0,   12,
-       12,    0,    0,   10,    0,    0,    4,    0,    0,   38,
-       38,   38,    0,   38,   26,   38,   22,   24,   38,   36,
-
-       28,   38,   27,   34,   30,   29,   25,   38,    0,    0,
-        0,    0,    0,    0,    0,   11,   11,   11,   44,   44,
-       11,    0,    0,    0,   12,    0,    0,    0,    1,   38,
-       38,   38,   38,   31,   38,   37,   32,    3,    0,    0,
-        0,    0,    0,    0,   11,   11,    0,   44,   44,   44,
-       43,    0,    0,   12,    0,    0,    0,   38,   38,   38,
-       33,    0,    0,    0,    0,    0,   14,   11,   11,   45,
-       44,   44,   44,   44,    0,    0,    0,    0,   42,    0,
-        0,    0,   12,    0,   38,   38,   23,    0,    0,    0,
-        0,   15,   11,   11,   45,   44,   44,   44,   44,   44,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   42,
-        0,    0,    0,    0,   12,    0,   38,   38,    0,    0,
-        0,   13,   11,   11,   45,   44,   44,   44,   44,   44,
-       44,    0,   41,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   12,    0,   38,   38,
-        0,    0,    0,   17,    0,   11,   45,   44,   44,   44,
-       44,   44,   44,   44,    0,   41,    0,    0,    0,   41,
-        0,    0,    0,    0,   38,    0,    0,    0,    0,   45,
-        0,    0,    0,   21,    0,    0,    0,   16,   45,    0,
-        0,    0,    0,   18,    0,    0,    0,    0,   19,   20,
+        0,    0,   49,   47,    2,    2,   47,   47,   47,   47,
+       47,   47,   47,   47,   47,   41,   47,   47,   47,   47,
+       11,   11,   47,   47,    2,    0,    0,    0,   10,    0,
+       12,    0,    8,    0,    0,    9,    0,   41,    0,   40,
+        0,   41,    0,   39,   39,   39,   39,   39,   39,   39,
+       39,   39,   39,   39,   39,   36,    0,    0,    0,    0,
+        0,    0,    0,    0,   11,   11,    7,   44,   11,    0,
+        0,   11,    6,    5,    0,    0,    0,   10,    0,    0,
+       12,   12,    0,    0,   10,    0,    0,    4,    0,    0,
+       39,   39,   39,    0,   39,   27,   39,   23,   25,   39,
+
+       37,   29,   39,   28,   35,   31,   30,   26,   39,    0,
+        0,    0,    0,    0,    0,    0,    0,   11,   11,   11,
+       45,   45,   11,    0,    0,    0,   12,    0,    0,    0,
+        1,   39,   39,   39,   39,   32,   39,   38,   33,    3,
+        0,    0,    0,    0,    0,    0,    0,   11,   11,    0,
+       45,   45,   45,   44,    0,    0,   12,    0,    0,    0,
+       39,   39,   39,   34,    0,    0,    0,    0,    0,    0,
+       14,   11,   11,   46,   45,   45,   45,   45,    0,    0,
+        0,    0,   43,    0,    0,    0,   12,    0,   39,   39,
+       24,    0,    0,    0,    0,   15,    0,   11,   11,   46,
+
+       45,   45,   45,   45,   45,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   43,    0,    0,    0,    0,   12,
+        0,   39,   39,    0,    0,    0,   13,    0,   11,   11,
+       46,   45,   45,   45,   45,   45,   45,    0,   42,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,   12,    0,   39,   39,    0,    0,    0,   17,
+        0,    0,   11,   46,   45,   45,   45,   45,   45,   45,
+       45,    0,   42,    0,    0,    0,   42,    0,    0,    0,
+        0,   39,    0,    0,    0,    0,    0,   46,    0,    0,
+        0,   22,    0,    0,    0,   16,   18,   46,    0,    0,
 
-        0,    0,    0
+        0,    0,   19,    0,    0,    0,    0,   20,   21,    0,
+        0,    0
     } ;
 
 static yyconst int yy_ec[256] =
@@ -123,84 +124,86 @@
         8,    8,    8,    4,    4,    8
     } ;
 
-static yyconst short int yy_base[330] =
+static yyconst short int yy_base[339] =
     {   0,
-        0,    0,  723, 1578,   55,   60,   65,   64,  694,  697,
-       60,  696,  700,  683,  687,   93,  695,   57,   75,  678,
-       63,   66,  677,  676,  113,  148,  656,   70, 1578,  185,
-      670,  126, 1578,   61,  219, 1578,  659,   60,  666, 1578,
-      658,    0,  134,   55,  651,   58,   67,  121,  135,  143,
-      148,   49,  150,  151,  144,  650,  658,  622,  624,  597,
-      598,  603,  606,   84,  253, 1578, 1578,  158,  204,  268,
-      167, 1578, 1578,  590,  199,  168,  172,  302,  336,  607,
-      370,  201,  184,  200,  404,  438, 1578,  609,  185,  596,
-      472,  595,  321,  183,  594,  206,  593,  579,  214,  578,
-
-      564,  216,  555,  554,  553,  552,  551,  233,  559,  532,
-      544,  530,  527,  538,  534,  423,  234,  506,  245,  544,
-      248,  513,  237,  498,  513,  252,  521,  534, 1578,  528,
-      508,  562,  244,  499,  249,  498,  497, 1578,  480,  475,
-      472,  476,  480,  483,  554,  569,  577,  272,  491,  490,
-      611,  467,  597,  612,  618,  484,  252,  633,  639,  250,
-      471,  451,  448,  477,  440,  456, 1578,  654,  660,  675,
-      291,  459,  458,  457,  709,  735,  286,  268, 1578,  761,
-      432,  695,  721,  768,  776,  783,  453,  461,  433,  395,
-      380, 1578,  791,  798,  806,  293,  402,  394,  369,  368,
-
-      343,  288,  375,  840,  299,  874,  908,  934,  960,  986,
-     1012, 1046,  358,  825,  859,  894,  920,  946,  365,  338,
-      335, 1578,  972, 1053, 1061,  296,  339,  337,  336,  335,
-      334,  380, 1578,  316,  323,  418, 1095, 1129,  386,  401,
-     1108, 1163, 1197, 1182,  287, 1204, 1212, 1219,  458, 1227,
-      294,  277,  295, 1578,  290,  444, 1234,  302, 1578, 1578,
-     1578, 1578, 1578, 1578,  486,  384,  388, 1242, 1276,  405,
-      439, 1262, 1277,  268,  653,  259,  232,  206,  197, 1283,
-     1298, 1304, 1319, 1578,  189,  175,  134, 1578, 1578, 1325,
-     1340, 1346,  131, 1578,   87, 1361, 1367, 1382, 1578, 1578,
-
-     1388, 1403, 1578, 1437, 1440, 1447, 1452, 1456, 1463, 1468,
-     1475, 1483, 1488, 1491, 1496, 1504, 1509, 1512, 1519, 1522,
-     1528, 1531, 1537, 1544, 1551, 1554, 1560, 1567, 1570
+        0,    0,  747, 1578,   55,   60,   65,   64,  719,  722,
+       60,  721,  717,  713,  717,   93,  725,   57,   75,  708,
+       63,   66,  700,  698,  113,  148,  678,   70, 1578,  185,
+      692,  126, 1578,   61,  219, 1578,  694,   60,  688, 1578,
+      682,    0,  134,   55,  675,   59,  136,  149,  135,   58,
+      151,  144,  150,  147,  145,  674,  682,  659,  661,  653,
+      641,  648,  649,  648,  170,  253, 1578, 1578,  181,  204,
+      268,  186, 1578, 1578,  632,  177,  175,  199,  302,  336,
+      649,  370,  263,  201,  216,  404,  438, 1578,  646,   78,
+      634,  472,  614,  321,  184,  613,  206,  610,  609,  214,
+
+      608,  607,  178,  598,  596,  595,  594,  593,  176,  588,
+      561,  561,  539,  536,  547,  537,  542,  423,  233,  506,
+      243,  552,  248,  532,  237,  498,  513,  250,  521,  558,
+     1578,  528,  546,  562,  238,  545,  246,  544,  543, 1578,
+      526,  510,  501,  491,  488,  491,  490,  554,  569,  577,
+      253,  498,  497,  611,  474,  597,  612,  618,  504,  275,
+      633,  639,  254,  491,  471,  468,  497,  467,  470,  450,
+     1578,  654,  660,  675,  291,  472,  471,  470,  709,  735,
+      284,  299, 1578,  761,  438,  695,  721,  768,  776,  783,
+      457,  465,  448,  446,  431, 1578,  434,  791,  798,  806,
+
+      295,  405,  404,  402,  394,  343,  316,  375,  840,  301,
+      874,  908,  934,  960,  986, 1012, 1046,  364,  825,  859,
+      894,  920,  946,  365,  344,  358, 1578,  335,  972, 1053,
+     1061,  297,  339,  337,  336,  335,  334,  380, 1578,  384,
+      323,  418, 1095, 1129,  386,  401, 1108, 1163, 1197, 1182,
+      287, 1204, 1212, 1219,  458, 1227,  293,  275,  291, 1578,
+      287,  286,  444, 1234,  299, 1578, 1578, 1578, 1578, 1578,
+     1578,  486,  388,  459, 1242, 1276,  405,  439, 1262, 1277,
+      248,  653,  262,  241,  229,  235,  214, 1283, 1298, 1304,
+     1319, 1578,  169,  139,   98, 1578, 1578, 1578, 1325, 1340,
+
+     1346,   73, 1578,   42, 1361, 1367, 1382, 1578, 1578, 1388,
+     1403, 1578, 1437, 1440, 1447, 1452, 1456, 1463, 1468, 1475,
+     1483, 1488, 1491, 1496, 1504, 1509, 1512, 1519, 1522, 1528,
+     1531, 1537, 1544, 1551, 1554, 1560, 1567, 1570
     } ;
 
-static yyconst short int yy_def[330] =
+static yyconst short int yy_def[339] =
     {   0,
-      303,    1,  303,  303,  303,  303,  303,  304,  305,  303,
-      306,  303,  303,  303,  303,  303,  303,  303,  307,  303,
-      308,  308,  303,  303,  303,  303,  303,  304,  303,  309,
-      305,  310,  303,  306,  311,  303,  303,   16,  312,  303,
-      303,   16,  313,  314,  314,  314,  314,  314,  314,  314,
-      314,  314,  314,  314,  314,  314,  303,  303,  303,  303,
-      303,  303,  303,  308,  308,  303,  303,  308,  315,  303,
-      308,  303,  303,  303,  304,  304,  304,  304,  309,  305,
-      305,  306,  306,  306,  306,  311,  303,  312,  316,  314,
-      314,  314,  317,  314,  314,  314,  314,  314,  314,  314,
-
-      314,  314,  314,  314,  314,  314,  314,  314,  303,  303,
-      303,  303,  303,  303,  303,   65,  308,   65,  318,  303,
-      308,  303,  304,   78,   81,  306,   85,  319,  303,   91,
-      314,   91,  314,  314,  314,  314,  314,  303,  303,  303,
-      303,  303,  303,  303,   65,  118,  303,  320,  303,  303,
-      321,  303,   78,   81,   85,  319,  316,   91,  132,  314,
-      314,  303,  303,  303,  303,  303,  303,   65,  118,  303,
-      322,  303,  303,  303,  321,  321,  323,  324,  303,  325,
-      303,   78,   81,   85,   91,  132,  314,  303,  303,  303,
-      303,  303,   65,  118,  303,  326,  303,  303,  303,  303,
-
-      303,  323,  303,  327,  324,  328,  321,  321,  321,  321,
-      321,  325,  303,   78,   81,   85,   91,  132,  303,  303,
-      303,  303,   65,  118,  303,  329,  303,  303,  303,  303,
-      303,  303,  303,  323,  323,  323,  323,  327,  324,  324,
-      324,  324,  328,  211,  303,   78,   81,   85,  314,  132,
-      303,  303,  303,  303,  303,  223,  303,  303,  303,  303,
-      303,  303,  303,  303,  323,  323,  323,  237,  324,  324,
-      324,  242,  211,  303,  314,  303,  303,  303,  303,  303,
-      237,  242,  211,  303,  303,  303,  303,  303,  303,  237,
-      242,  211,  303,  303,  303,  237,  242,  211,  303,  303,
-
-      237,  242,    0,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303
+      312,    1,  312,  312,  312,  312,  312,  313,  314,  312,
+      315,  312,  312,  312,  312,  312,  312,  312,  316,  312,
+      317,  317,  312,  312,  312,  312,  312,  313,  312,  318,
+      314,  319,  312,  315,  320,  312,  312,   16,  321,  312,
+      312,   16,  322,  323,  323,  323,  323,  323,  323,  323,
+      323,  323,  323,  323,  323,  323,  312,  312,  312,  312,
+      312,  312,  312,  312,  317,  317,  312,  312,  317,  324,
+      312,  317,  312,  312,  312,  313,  313,  313,  313,  318,
+      314,  314,  315,  315,  315,  315,  320,  312,  321,  325,
+      323,  323,  323,  326,  323,  323,  323,  323,  323,  323,
+
+      323,  323,  323,  323,  323,  323,  323,  323,  323,  312,
+      312,  312,  312,  312,  312,  312,  312,   66,  317,   66,
+      327,  312,  317,  312,  313,   79,   82,  315,   86,  328,
+      312,   92,  323,   92,  323,  323,  323,  323,  323,  312,
+      312,  312,  312,  312,  312,  312,  312,   66,  120,  312,
+      329,  312,  312,  330,  312,   79,   82,   86,  328,  325,
+       92,  134,  323,  323,  312,  312,  312,  312,  312,  312,
+      312,   66,  120,  312,  331,  312,  312,  312,  330,  330,
+      332,  333,  312,  334,  312,   79,   82,   86,   92,  134,
+      323,  312,  312,  312,  312,  312,  312,   66,  120,  312,
+
+      335,  312,  312,  312,  312,  312,  332,  312,  336,  333,
+      337,  330,  330,  330,  330,  330,  334,  312,   79,   82,
+       86,   92,  134,  312,  312,  312,  312,  312,   66,  120,
+      312,  338,  312,  312,  312,  312,  312,  312,  312,  332,
+      332,  332,  332,  336,  333,  333,  333,  333,  337,  216,
+      312,   79,   82,   86,  323,  134,  312,  312,  312,  312,
+      312,  312,  229,  312,  312,  312,  312,  312,  312,  312,
+      312,  332,  332,  332,  243,  333,  333,  333,  248,  216,
+      312,  323,  312,  312,  312,  312,  312,  312,  243,  248,
+      216,  312,  312,  312,  312,  312,  312,  312,  243,  248,
+
+      216,  312,  312,  312,  243,  248,  216,  312,  312,  243,
+      248,    0,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312
     } ;
 
 static yyconst short int yy_nxt[1635] =
@@ -212,179 +215,179 @@
        21,   21,   21,   21,   21,   21,   21,   21,   21,   22,
        21,   21,   21,   23,   24,   21,   25,   25,   25,   25,
        25,   25,   25,   25,   25,   25,   26,   26,   26,   26,
-       26,   29,   29,   29,   58,   93,   67,   29,  303,   67,
-       38,   93,   70,   94,   93,  102,   35,   35,   59,   69,
-       30,   60,   69,   93,   61,   65,   30,   67,   62,   95,
-
-       96,   63,   27,   40,   65,   65,   65,   65,   65,   65,
-       69,   41,   71,   42,   25,   25,   25,   25,   25,   43,
-      300,   44,   45,   45,   46,   47,   48,   45,   49,   50,
+       26,   29,   29,   29,   58,  309,   68,   29,  312,   68,
+       38,   94,   71,   95,   94,   94,   35,   35,   59,   70,
+       30,   60,   70,   90,   61,   66,   30,  131,   62,   63,
+
+       96,   64,   27,   40,   66,   66,   66,   66,   66,   66,
+      101,   41,   72,   42,   25,   25,   25,   25,   25,   43,
+      308,   44,   45,   45,   46,   47,   48,   45,   49,   50,
        51,   45,   52,   45,   53,   45,   45,   54,   45,   55,
-       56,   45,   45,   45,   45,   45,   81,   93,   45,   26,
-       26,   26,   26,   26,   91,   81,   81,   81,   81,   81,
-       81,   93,   97,   91,   91,   91,   91,   91,   91,   93,
-       93,   67,   98,  108,   93,   29,   93,   93,  299,   29,
-       67,   99,  105,  295,   69,   27,   28,   28,   28,   75,
-      101,  103,   77,   69,   30,  100,   29,  104,   30,  106,
-
-       89,   28,  107,   34,  129,   78,   29,  121,  294,   93,
-       35,   79,   29,   29,   78,   78,   78,   78,   78,   78,
-       34,   34,   34,   82,  118,   30,   35,   35,  133,  293,
-      288,   84,   93,  118,  118,  118,  118,  118,  118,   85,
-       93,  134,   93,  135,   29,   86,  287,   67,   85,   85,
-       85,   85,   85,   85,   64,   64,   64,   64,   64,   93,
-       69,  151,  147,   30,   29,  137,   67,  157,  136,  149,
-       93,  129,  286,  116,   69,   93,   93,  160,   35,   69,
-      203,  161,  116,  116,  116,  116,  116,  116,  119,  147,
-      285,  187,  120,  203,  206,  203,  172,  119,  119,  119,
-
-      119,  119,  119,   76,  123,  123,  123,   76,  147,   29,
-      147,  203,  204,  147,  204,  197,  284,  227,  202,  147,
-      259,  279,  124,  203,  278,  206,  277,  276,   30,  274,
-      203,  124,  124,  124,  124,  124,  124,   28,   28,   28,
-       75,  132,  204,   77,  201,  201,  201,  201,  201,  204,
-      132,  132,  132,  132,  132,  132,   78,  179,  264,  263,
-      262,  261,   79,  260,  255,   78,   78,   78,   78,   78,
-       78,   80,   80,   80,   80,   80,  232,  232,  232,  232,
-      232,  232,  232,  232,  232,  232,  254,  245,  205,  233,
-      125,  203,  231,  230,  233,  203,   32,  251,  203,  125,
-
-      125,  125,  125,  125,  125,   83,  126,  126,  126,   83,
-      204,  252,  206,  203,  204,  253,   29,  203,  229,  265,
-      232,  232,  232,  265,  127,  203,  228,  206,  222,  221,
-       35,  206,  266,  127,  127,  127,  127,  127,  127,   34,
-       34,   34,   82,  145,  204,  117,  117,  117,  117,  117,
-       84,  203,  145,  145,  145,  145,  145,  145,   85,   90,
-       90,   90,   90,   90,   86,  206,  220,   85,   85,   85,
-       85,   85,   85,   90,   90,   90,   90,   90,  219,   93,
-      213,  200,  199,  198,   93,  192,  191,  265,  232,  232,
-      232,  265,  130,  203,  190,  189,  188,   93,   93,  157,
-
-      266,  130,  130,  130,  130,  130,  130,  117,  117,  117,
-      117,  117,  204,  181,  174,  173,  167,  166,  153,  165,
-      164,  163,  162,   93,   93,   93,  146,  153,  153,  153,
-      153,  153,  153,  154,   93,  146,  146,  146,  146,  146,
-      146,  155,  154,  154,  154,  154,  154,  154,  158,  157,
-      155,  155,  155,  155,  155,  155,  152,  158,  158,  158,
-      158,  158,  158,  131,  131,  131,  131,  131,  150,  144,
-      143,  142,  141,  140,  168,  139,  138,   93,   93,   93,
-       93,   93,  159,  168,  168,  168,  168,  168,  168,  169,
-       93,  159,  159,  159,  159,  159,  159,  170,  169,  169,
-
-      169,  169,  169,  169,   93,   93,  170,  170,  170,  170,
-      170,  170,  175,  175,  175,  175,  175,  182,  177,   93,
-       93,   93,   93,  178,   89,  179,  182,  182,  182,  182,
-      182,  182,  183,   32,  122,  115,  114,  180,  184,  113,
-      112,  183,  183,  183,  183,  183,  183,  184,  184,  184,
-      184,  184,  184,  185,  131,  131,  131,  131,  131,  186,
-      111,  110,  185,  185,  185,  185,  185,  185,  186,  186,
-      186,  186,  186,  186,  193,  109,   93,   93,   38,   93,
-      194,   89,   87,  193,  193,  193,  193,  193,  193,  194,
-      194,  194,  194,  194,  194,  195,   32,   74,   73,   72,
-
-       66,   57,   39,   38,  195,  195,  195,  195,  195,  195,
-      175,  175,  175,  175,  175,  214,  177,   37,   36,   33,
-       32,  178,  303,  179,  214,  214,  214,  214,  214,  214,
-      303,  303,  303,  303,  303,  180,  201,  201,  201,  201,
-      201,  215,  303,  303,  303,  303,  303,  303,  303,  179,
-      215,  215,  215,  215,  215,  215,  303,  303,  303,  303,
-      303,  180,  201,  201,  201,  201,  207,  303,  209,  303,
-      303,  303,  303,  209,  209,  210,  303,  303,  303,  303,
-      303,  211,  303,  303,  303,  303,  303,  212,  216,  303,
-      211,  211,  211,  211,  211,  211,  217,  216,  216,  216,
-
-      216,  216,  216,  218,  303,  217,  217,  217,  217,  217,
-      217,  223,  218,  218,  218,  218,  218,  218,  224,  303,
-      223,  223,  223,  223,  223,  223,  225,  224,  224,  224,
-      224,  224,  224,  303,  303,  225,  225,  225,  225,  225,
-      225,  202,  202,  202,  234,  246,  303,  236,  303,  303,
-      303,  303,  303,  303,  246,  246,  246,  246,  246,  246,
-      237,  303,  303,  303,  303,  303,  238,  303,  303,  237,
-      237,  237,  237,  237,  237,  205,  205,  205,  239,  247,
-      303,  303,  303,  303,  303,  303,  241,  303,  247,  247,
-      247,  247,  247,  247,  242,  303,  303,  303,  303,  303,
-
-      243,  303,  303,  242,  242,  242,  242,  242,  242,  201,
-      201,  201,  201,  201,  248,  303,  303,  303,  303,  303,
-      303,  303,  179,  248,  248,  248,  248,  248,  248,  303,
-      303,  303,  303,  303,  180,  201,  201,  201,  201,  201,
-      249,  303,  303,  303,  303,  303,  303,  303,  179,  249,
-      249,  249,  249,  249,  249,  303,  303,  303,  303,  303,
-      180,  201,  201,  201,  201,  201,  250,  303,  303,  303,
-      303,  303,  303,  303,  179,  250,  250,  250,  250,  250,
-      250,  303,  303,  303,  303,  303,  180,  201,  201,  201,
-      201,  201,   68,  303,  303,  303,  303,  303,  303,  303,
-
-      179,   68,   68,   68,   68,   68,   68,  303,  303,  303,
-      303,  303,  180,  207,  207,  207,  207,  207,  303,  303,
-      303,  303,  303,  303,  303,  303,  179,  303,  303,  303,
-      303,  303,  244,  303,  303,  303,  303,  303,  180,  303,
-      303,  244,  244,  244,  244,  244,  244,  201,  201,  201,
-      201,  207,  303,  209,  303,  303,  303,  303,  209,  209,
-      210,  303,  303,  303,  303,  303,  211,  303,  303,  303,
-      303,  303,  212,  256,  303,  211,  211,  211,  211,  211,
-      211,  257,  256,  256,  256,  256,  256,  256,  303,  303,
-      257,  257,  257,  257,  257,  257,  235,  267,  267,  267,
-
-      235,  303,  203,  303,  303,  303,  303,  303,  303,  269,
-      232,  232,  232,  269,  303,  268,  303,  303,  303,  303,
-      203,  204,  270,  303,  268,  268,  268,  268,  268,  268,
-      202,  202,  202,  234,  206,  303,  236,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  237,
-      303,  303,  303,  303,  303,  238,  303,  303,  237,  237,
-      237,  237,  237,  237,  240,  271,  271,  271,  240,  303,
-      303,  303,  303,  303,  303,  203,  303,  303,  303,  303,
-      303,  303,  303,  272,  303,  303,  303,  303,  303,  206,
-      303,  303,  272,  272,  272,  272,  272,  272,  205,  205,
-
-      205,  239,  273,  303,  303,  303,  303,  303,  303,  241,
-      303,  273,  273,  273,  273,  273,  273,  242,  303,  303,
-      303,  303,  303,  243,   28,  303,  242,  242,  242,  242,
-      242,  242,   31,   28,   28,   28,   28,   28,   28,   34,
-      303,   31,   31,   31,   31,   31,   31,  275,   34,   34,
-       34,   34,   34,   34,  280,  303,  275,  275,  275,  275,
-      275,  275,  281,  280,  280,  280,  280,  280,  280,  303,
-      303,  281,  281,  281,  281,  281,  281,  269,  232,  232,
-      232,  269,  282,  303,  303,  303,  303,  303,  203,  303,
-      270,  282,  282,  282,  282,  282,  282,  283,  303,  303,
-
-      303,  303,  206,  289,  303,  303,  283,  283,  283,  283,
-      283,  283,  289,  289,  289,  289,  289,  289,  290,  303,
-      303,  303,  303,  303,  291,  303,  303,  290,  290,  290,
-      290,  290,  290,  291,  291,  291,  291,  291,  291,  292,
-      303,  303,  303,  303,  303,  296,  303,  303,  292,  292,
-      292,  292,  292,  292,  296,  296,  296,  296,  296,  296,
-      297,  303,  303,  303,  303,  303,  298,  303,  303,  297,
-      297,  297,  297,  297,  297,  298,  298,  298,  298,  298,
-      298,  301,  303,  303,  303,  303,  303,  302,  303,  303,
-      301,  301,  301,  301,  301,  301,  302,  302,  302,  302,
-
-      302,  302,  176,  303,  303,  303,  303,  303,  202,  303,
-      303,  176,  176,  176,  176,  176,  176,  202,  202,  202,
-      202,  202,  202,  205,  303,  303,  303,  303,  303,  303,
-      303,  303,  205,  205,  205,  205,  205,  205,   28,  303,
-       28,   28,   28,   28,   28,   31,  303,   31,   34,  303,
-       34,   34,   34,   34,   34,   64,   64,   64,   64,   64,
-       68,   68,  303,   68,   76,   76,   76,   76,   76,   76,
-       76,   80,   80,   80,   80,   80,   83,   83,   83,   83,
-       83,   83,   83,   88,   88,   88,   88,   88,   88,   88,
-       88,   90,   90,   90,   90,   90,   92,  303,   92,  117,
-
-      117,  117,  117,  117,  128,  128,  128,  128,  128,  128,
-      128,  128,  131,  131,  131,  131,  131,  148,  148,  156,
-      156,  156,  156,  156,  156,  156,  156,  171,  171,  176,
-      176,  176,  303,  176,  176,  176,  196,  196,  202,  303,
-      202,  202,  202,  202,  202,  205,  303,  205,  205,  205,
-      205,  205,  208,  208,  208,  208,  208,  208,  208,  226,
-      226,  235,  235,  235,  235,  235,  235,  235,  240,  240,
-      240,  240,  240,  240,  240,  258,  258,    3,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303
+       56,   45,   45,   45,   45,   45,   82,  304,   45,   26,
+       26,   26,   26,   26,   92,   82,   82,   82,   82,   82,
+       82,   94,   94,   92,   92,   92,   92,   92,   92,   97,
+       94,   94,  303,   94,  109,   94,   94,   94,  106,   28,
+      103,  100,   29,   68,   29,   27,   28,   28,   28,   76,
+       98,  104,   78,  102,   68,  107,   70,  105,  108,   68,
+
+       99,   30,   94,   30,   94,   79,   29,   70,  139,  302,
+       94,   80,   70,   29,   79,   79,   79,   79,   79,   79,
+       34,   34,   34,   83,  120,   30,  123,   35,   29,  135,
+      138,   85,   94,  120,  120,  120,  120,  120,  120,   86,
+       94,  136,   35,  137,   29,   87,   68,  297,   86,   86,
+       86,   86,   86,   86,   65,   65,   65,   65,   65,   70,
+      150,  154,   29,   30,   94,   34,   68,  152,  296,  295,
+      150,  163,   94,  118,   70,   29,   35,  176,  164,   70,
+       94,  294,  118,  118,  118,  118,  118,  118,  121,   35,
+      160,  208,  122,  293,  131,  191,  292,  121,  121,  121,
+
+      121,  121,  121,   77,  125,  125,  125,   77,  150,   29,
+      209,  208,  150,  208,  150,  202,  150,  287,  286,  233,
+      285,  266,  126,  208,  284,  211,  283,  211,   30,  281,
+      208,  126,  126,  126,  126,  126,  126,   28,   28,   28,
+       76,  134,  209,   78,  206,  206,  206,  206,  206,  209,
+      134,  134,  134,  134,  134,  134,   79,  183,  271,  270,
+      269,  268,   80,  267,  262,   79,   79,   79,   79,   79,
+       79,   81,   81,   81,   81,   81,  238,  238,  238,  238,
+      238,  238,  238,  238,  238,  238,  207,  261,  210,  239,
+      127,  208,  260,  251,  239,  208,   32,  257,  208,  127,
+
+      127,  127,  127,  127,  127,   84,  128,  128,  128,   84,
+      209,  258,  211,  208,  209,  259,   29,  208,  237,  272,
+      238,  238,  238,  272,  129,  208,  236,  211,  235,  234,
+       35,  211,  273,  129,  129,  129,  129,  129,  129,   34,
+       34,   34,   83,  148,  209,  119,  119,  119,  119,  119,
+       85,  208,  148,  148,  148,  148,  148,  148,   86,   91,
+       91,   91,   91,   91,   87,  211,  208,   86,   86,   86,
+       86,   86,   86,   91,   91,   91,   91,   91,  228,  227,
+      226,  225,  224,   94,   94,  209,  218,  272,  238,  238,
+      238,  272,  132,  208,  205,  204,  203,  197,   94,  196,
+
+      273,  132,  132,  132,  132,  132,  132,  119,  119,  119,
+      119,  119,  209,  195,  194,  193,  192,   94,  156,  160,
+      185,  178,  177,  171,  170,  169,  149,  156,  156,  156,
+      156,  156,  156,  157,  168,  149,  149,  149,  149,  149,
+      149,  158,  157,  157,  157,  157,  157,  157,  161,  167,
+      158,  158,  158,  158,  158,  158,  166,  161,  161,  161,
+      161,  161,  161,  133,  133,  133,  133,  133,  165,   94,
+       94,   94,   94,  160,  172,  155,  153,  147,  146,  145,
+      144,  143,  162,  172,  172,  172,  172,  172,  172,  173,
+      142,  162,  162,  162,  162,  162,  162,  174,  173,  173,
+
+      173,  173,  173,  173,  141,  140,  174,  174,  174,  174,
+      174,  174,  179,  179,  179,  179,  179,  186,  181,   94,
+       94,   94,   94,  182,   94,  183,  186,  186,  186,  186,
+      186,  186,  187,   94,   94,   94,   94,  184,  188,   94,
+       94,  187,  187,  187,  187,  187,  187,  188,  188,  188,
+      188,  188,  188,  189,  133,  133,  133,  133,  133,  190,
+       94,   90,  189,  189,  189,  189,  189,  189,  190,  190,
+      190,  190,  190,  190,  198,   32,  124,  117,  116,   94,
+      199,  115,  114,  198,  198,  198,  198,  198,  198,  199,
+      199,  199,  199,  199,  199,  200,  113,  112,  111,  110,
+
+       94,   94,   38,   90,  200,  200,  200,  200,  200,  200,
+      179,  179,  179,  179,  179,  219,  181,   88,   32,   75,
+       74,  182,   73,  183,  219,  219,  219,  219,  219,  219,
+       67,   57,   39,   38,   37,  184,  206,  206,  206,  206,
+      206,  220,  312,   36,   33,   32,  312,  312,  312,  183,
+      220,  220,  220,  220,  220,  220,  312,  312,  312,  312,
+      312,  184,  206,  206,  206,  206,  212,  312,  214,  312,
+      312,  312,  312,  214,  214,  215,  312,  312,  312,  312,
+      312,  216,  312,  312,  312,  312,  312,  217,  221,  312,
+      216,  216,  216,  216,  216,  216,  222,  221,  221,  221,
+
+      221,  221,  221,  223,  312,  222,  222,  222,  222,  222,
+      222,  229,  223,  223,  223,  223,  223,  223,  230,  312,
+      229,  229,  229,  229,  229,  229,  231,  230,  230,  230,
+      230,  230,  230,  312,  312,  231,  231,  231,  231,  231,
+      231,  207,  207,  207,  240,  252,  312,  242,  312,  312,
+      312,  312,  312,  312,  252,  252,  252,  252,  252,  252,
+      243,  312,  312,  312,  312,  312,  244,  312,  312,  243,
+      243,  243,  243,  243,  243,  210,  210,  210,  245,  253,
+      312,  312,  312,  312,  312,  312,  247,  312,  253,  253,
+      253,  253,  253,  253,  248,  312,  312,  312,  312,  312,
+
+      249,  312,  312,  248,  248,  248,  248,  248,  248,  206,
+      206,  206,  206,  206,  254,  312,  312,  312,  312,  312,
+      312,  312,  183,  254,  254,  254,  254,  254,  254,  312,
+      312,  312,  312,  312,  184,  206,  206,  206,  206,  206,
+      255,  312,  312,  312,  312,  312,  312,  312,  183,  255,
+      255,  255,  255,  255,  255,  312,  312,  312,  312,  312,
+      184,  206,  206,  206,  206,  206,  256,  312,  312,  312,
+      312,  312,  312,  312,  183,  256,  256,  256,  256,  256,
+      256,  312,  312,  312,  312,  312,  184,  206,  206,  206,
+      206,  206,   69,  312,  312,  312,  312,  312,  312,  312,
+
+      183,   69,   69,   69,   69,   69,   69,  312,  312,  312,
+      312,  312,  184,  212,  212,  212,  212,  212,  312,  312,
+      312,  312,  312,  312,  312,  312,  183,  312,  312,  312,
+      312,  312,  250,  312,  312,  312,  312,  312,  184,  312,
+      312,  250,  250,  250,  250,  250,  250,  206,  206,  206,
+      206,  212,  312,  214,  312,  312,  312,  312,  214,  214,
+      215,  312,  312,  312,  312,  312,  216,  312,  312,  312,
+      312,  312,  217,  263,  312,  216,  216,  216,  216,  216,
+      216,  264,  263,  263,  263,  263,  263,  263,  312,  312,
+      264,  264,  264,  264,  264,  264,  241,  274,  274,  274,
+
+      241,  312,  208,  312,  312,  312,  312,  312,  312,  276,
+      238,  238,  238,  276,  312,  275,  312,  312,  312,  312,
+      208,  209,  277,  312,  275,  275,  275,  275,  275,  275,
+      207,  207,  207,  240,  211,  312,  242,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  243,
+      312,  312,  312,  312,  312,  244,  312,  312,  243,  243,
+      243,  243,  243,  243,  246,  278,  278,  278,  246,  312,
+      312,  312,  312,  312,  312,  208,  312,  312,  312,  312,
+      312,  312,  312,  279,  312,  312,  312,  312,  312,  211,
+      312,  312,  279,  279,  279,  279,  279,  279,  210,  210,
+
+      210,  245,  280,  312,  312,  312,  312,  312,  312,  247,
+      312,  280,  280,  280,  280,  280,  280,  248,  312,  312,
+      312,  312,  312,  249,   28,  312,  248,  248,  248,  248,
+      248,  248,   31,   28,   28,   28,   28,   28,   28,   34,
+      312,   31,   31,   31,   31,   31,   31,  282,   34,   34,
+       34,   34,   34,   34,  288,  312,  282,  282,  282,  282,
+      282,  282,  289,  288,  288,  288,  288,  288,  288,  312,
+      312,  289,  289,  289,  289,  289,  289,  276,  238,  238,
+      238,  276,  290,  312,  312,  312,  312,  312,  208,  312,
+      277,  290,  290,  290,  290,  290,  290,  291,  312,  312,
+
+      312,  312,  211,  298,  312,  312,  291,  291,  291,  291,
+      291,  291,  298,  298,  298,  298,  298,  298,  299,  312,
+      312,  312,  312,  312,  300,  312,  312,  299,  299,  299,
+      299,  299,  299,  300,  300,  300,  300,  300,  300,  301,
+      312,  312,  312,  312,  312,  305,  312,  312,  301,  301,
+      301,  301,  301,  301,  305,  305,  305,  305,  305,  305,
+      306,  312,  312,  312,  312,  312,  307,  312,  312,  306,
+      306,  306,  306,  306,  306,  307,  307,  307,  307,  307,
+      307,  310,  312,  312,  312,  312,  312,  311,  312,  312,
+      310,  310,  310,  310,  310,  310,  311,  311,  311,  311,
+
+      311,  311,  180,  312,  312,  312,  312,  312,  207,  312,
+      312,  180,  180,  180,  180,  180,  180,  207,  207,  207,
+      207,  207,  207,  210,  312,  312,  312,  312,  312,  312,
+      312,  312,  210,  210,  210,  210,  210,  210,   28,  312,
+       28,   28,   28,   28,   28,   31,  312,   31,   34,  312,
+       34,   34,   34,   34,   34,   65,   65,   65,   65,   65,
+       69,   69,  312,   69,   77,   77,   77,   77,   77,   77,
+       77,   81,   81,   81,   81,   81,   84,   84,   84,   84,
+       84,   84,   84,   89,   89,   89,   89,   89,   89,   89,
+       89,   91,   91,   91,   91,   91,   93,  312,   93,  119,
+
+      119,  119,  119,  119,  130,  130,  130,  130,  130,  130,
+      130,  130,  133,  133,  133,  133,  133,  151,  151,  159,
+      159,  159,  159,  159,  159,  159,  159,  175,  175,  180,
+      180,  180,  312,  180,  180,  180,  201,  201,  207,  312,
+      207,  207,  207,  207,  207,  210,  312,  210,  210,  210,
+      210,  210,  213,  213,  213,  213,  213,  213,  213,  232,
+      232,  241,  241,  241,  241,  241,  241,  241,  246,  246,
+      246,  246,  246,  246,  246,  265,  265,    3,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312
     } ;
 
 static yyconst short int yy_chk[1635] =
@@ -396,179 +399,179 @@
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    5,    5,    5,    5,
         5,    6,    6,    6,    6,    6,    7,    7,    7,    7,
-        7,    8,   11,   34,   18,   52,   21,   28,   38,   22,
-       38,   44,   22,   44,   46,   52,   11,   34,   18,   21,
-        8,   18,   22,   47,   18,   19,   28,   64,   18,   46,
-
-       47,   18,    7,   16,   19,   19,   19,   19,   19,   19,
-       64,   16,   22,   16,   25,   25,   25,   25,   25,   16,
-      295,   16,   16,   16,   16,   16,   16,   16,   16,   16,
+        7,    8,   11,   34,   18,  304,   21,   28,   38,   22,
+       38,   44,   22,   44,   50,   46,   11,   34,   18,   21,
+        8,   18,   22,   90,   18,   19,   28,   90,   18,   18,
+
+       46,   18,    7,   16,   19,   19,   19,   19,   19,   19,
+       50,   16,   22,   16,   25,   25,   25,   25,   25,   16,
+      302,   16,   16,   16,   16,   16,   16,   16,   16,   16,
        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
-       16,   16,   16,   16,   16,   16,   32,   48,   16,   26,
+       16,   16,   16,   16,   16,   16,   32,  295,   16,   26,
        26,   26,   26,   26,   43,   32,   32,   32,   32,   32,
-       32,   49,   48,   43,   43,   43,   43,   43,   43,   50,
-       55,   68,   48,   55,   51,   76,   53,   54,  293,   77,
-       71,   49,   54,  287,   68,   26,   30,   30,   30,   30,
-       51,   53,   30,   71,   76,   50,   83,   53,   77,   54,
-
-       89,   75,   54,   82,   89,   30,   75,   71,  286,   94,
-       83,   30,   84,   82,   30,   30,   30,   30,   30,   30,
-       35,   35,   35,   35,   69,   75,   84,   82,   94,  285,
-      279,   35,   96,   69,   69,   69,   69,   69,   69,   35,
-       99,   96,  102,   99,  123,   35,  278,  117,   35,   35,
-       35,   35,   35,   35,   65,   65,   65,   65,   65,  108,
-      117,  121,  119,  123,  126,  108,   65,  157,  102,  119,
-      133,  157,  277,   65,  121,  135,  160,  133,  126,   65,
-      178,  135,   65,   65,   65,   65,   65,   65,   70,  148,
-      276,  160,   70,  177,  178,  202,  148,   70,   70,   70,
-
-       70,   70,   70,   78,   78,   78,   78,   78,  171,   78,
-      196,  205,  177,  226,  202,  171,  274,  196,  234,  258,
-      226,  255,   78,  234,  253,  205,  252,  251,   78,  245,
-      235,   78,   78,   78,   78,   78,   78,   79,   79,   79,
-       79,   93,  234,   79,  201,  201,  201,  201,  201,  235,
-       93,   93,   93,   93,   93,   93,   79,  201,  231,  230,
-      229,  228,   79,  227,  221,   79,   79,   79,   79,   79,
-       79,   81,   81,   81,   81,   81,  203,  203,  203,  203,
-      203,  232,  232,  232,  232,  232,  220,  213,  239,  203,
-       81,  266,  200,  199,  232,  267,   81,  219,  239,   81,
-
-       81,   81,   81,   81,   81,   85,   85,   85,   85,   85,
-      266,  219,  239,  240,  267,  219,   85,  270,  198,  236,
-      236,  236,  236,  236,   85,  236,  197,  240,  191,  190,
-       85,  270,  236,   85,   85,   85,   85,   85,   85,   86,
-       86,   86,   86,  116,  236,  256,  256,  256,  256,  256,
-       86,  271,  116,  116,  116,  116,  116,  116,   86,  249,
-      249,  249,  249,  249,   86,  271,  189,   86,   86,   86,
-       86,   86,   86,   91,   91,   91,   91,   91,  188,  187,
-      181,  174,  173,  172,  249,  166,  165,  265,  265,  265,
-      265,  265,   91,  265,  164,  163,  162,  161,   91,  156,
-
-      265,   91,   91,   91,   91,   91,   91,  118,  118,  118,
-      118,  118,  265,  152,  150,  149,  144,  143,  124,  142,
-      141,  140,  139,  137,  136,  134,  118,  124,  124,  124,
-      124,  124,  124,  125,  131,  118,  118,  118,  118,  118,
-      118,  127,  125,  125,  125,  125,  125,  125,  130,  128,
-      127,  127,  127,  127,  127,  127,  122,  130,  130,  130,
-      130,  130,  130,  132,  132,  132,  132,  132,  120,  115,
-      114,  113,  112,  111,  145,  110,  109,  107,  106,  105,
-      104,  103,  132,  145,  145,  145,  145,  145,  145,  146,
-      101,  132,  132,  132,  132,  132,  132,  147,  146,  146,
-
-      146,  146,  146,  146,  100,   98,  147,  147,  147,  147,
-      147,  147,  151,  151,  151,  151,  151,  153,  151,   97,
-       95,   92,   90,  151,   88,  151,  153,  153,  153,  153,
-      153,  153,  154,   80,   74,   63,   62,  151,  155,   61,
-       60,  154,  154,  154,  154,  154,  154,  155,  155,  155,
-      155,  155,  155,  158,  275,  275,  275,  275,  275,  159,
-       59,   58,  158,  158,  158,  158,  158,  158,  159,  159,
-      159,  159,  159,  159,  168,   57,   56,   45,   41,  275,
-      169,   39,   37,  168,  168,  168,  168,  168,  168,  169,
-      169,  169,  169,  169,  169,  170,   31,   27,   24,   23,
-
-       20,   17,   15,   14,  170,  170,  170,  170,  170,  170,
-      175,  175,  175,  175,  175,  182,  175,   13,   12,   10,
-        9,  175,    3,  175,  182,  182,  182,  182,  182,  182,
-        0,    0,    0,    0,    0,  175,  176,  176,  176,  176,
-      176,  183,  176,    0,    0,    0,    0,  176,    0,  176,
-      183,  183,  183,  183,  183,  183,    0,    0,    0,    0,
-        0,  176,  180,  180,  180,  180,  180,    0,  180,    0,
-        0,    0,    0,  180,  180,  180,    0,    0,    0,    0,
-        0,  180,    0,    0,    0,    0,    0,  180,  184,    0,
-      180,  180,  180,  180,  180,  180,  185,  184,  184,  184,
-
-      184,  184,  184,  186,    0,  185,  185,  185,  185,  185,
-      185,  193,  186,  186,  186,  186,  186,  186,  194,    0,
-      193,  193,  193,  193,  193,  193,  195,  194,  194,  194,
-      194,  194,  194,    0,    0,  195,  195,  195,  195,  195,
-      195,  204,  204,  204,  204,  214,    0,  204,    0,    0,
-        0,    0,    0,    0,  214,  214,  214,  214,  214,  214,
-      204,    0,    0,    0,    0,    0,  204,    0,    0,  204,
-      204,  204,  204,  204,  204,  206,  206,  206,  206,  215,
-        0,    0,    0,    0,    0,    0,  206,    0,  215,  215,
-      215,  215,  215,  215,  206,    0,    0,    0,    0,    0,
-
-      206,    0,    0,  206,  206,  206,  206,  206,  206,  207,
-      207,  207,  207,  207,  216,  207,    0,    0,    0,    0,
-      207,    0,  207,  216,  216,  216,  216,  216,  216,    0,
-        0,    0,    0,    0,  207,  208,  208,  208,  208,  208,
-      217,  208,    0,    0,    0,    0,  208,    0,  208,  217,
-      217,  217,  217,  217,  217,    0,    0,    0,    0,    0,
-      208,  209,  209,  209,  209,  209,  218,  209,    0,    0,
-        0,    0,  209,    0,  209,  218,  218,  218,  218,  218,
-      218,    0,    0,    0,    0,    0,  209,  210,  210,  210,
-      210,  210,  223,  210,    0,    0,    0,    0,  210,    0,
-
-      210,  223,  223,  223,  223,  223,  223,    0,    0,    0,
-        0,    0,  210,  211,  211,  211,  211,  211,    0,  211,
-        0,    0,    0,    0,  211,    0,  211,    0,    0,    0,
-        0,    0,  211,    0,    0,    0,    0,    0,  211,    0,
-        0,  211,  211,  211,  211,  211,  211,  212,  212,  212,
-      212,  212,    0,  212,    0,    0,    0,    0,  212,  212,
-      212,    0,    0,    0,    0,    0,  212,    0,    0,    0,
-        0,    0,  212,  224,    0,  212,  212,  212,  212,  212,
-      212,  225,  224,  224,  224,  224,  224,  224,    0,    0,
-      225,  225,  225,  225,  225,  225,  237,  237,  237,  237,
-
-      237,    0,  237,    0,    0,    0,    0,    0,    0,  241,
-      241,  241,  241,  241,    0,  237,    0,    0,    0,    0,
-      241,  237,  241,    0,  237,  237,  237,  237,  237,  237,
-      238,  238,  238,  238,  241,    0,  238,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  238,
-        0,    0,    0,    0,    0,  238,    0,    0,  238,  238,
-      238,  238,  238,  238,  242,  242,  242,  242,  242,    0,
-        0,    0,    0,    0,    0,  242,    0,    0,    0,    0,
-        0,    0,    0,  242,    0,    0,    0,    0,    0,  242,
-        0,    0,  242,  242,  242,  242,  242,  242,  243,  243,
-
-      243,  243,  244,    0,    0,    0,    0,    0,    0,  243,
-        0,  244,  244,  244,  244,  244,  244,  243,    0,    0,
-        0,    0,    0,  243,  246,    0,  243,  243,  243,  243,
-      243,  243,  247,  246,  246,  246,  246,  246,  246,  248,
-        0,  247,  247,  247,  247,  247,  247,  250,  248,  248,
-      248,  248,  248,  248,  257,    0,  250,  250,  250,  250,
-      250,  250,  268,  257,  257,  257,  257,  257,  257,    0,
-        0,  268,  268,  268,  268,  268,  268,  269,  269,  269,
-      269,  269,  272,    0,    0,    0,    0,    0,  269,    0,
-      269,  272,  272,  272,  272,  272,  272,  273,    0,    0,
-
-        0,    0,  269,  280,    0,    0,  273,  273,  273,  273,
-      273,  273,  280,  280,  280,  280,  280,  280,  281,    0,
-        0,    0,    0,    0,  282,    0,    0,  281,  281,  281,
-      281,  281,  281,  282,  282,  282,  282,  282,  282,  283,
-        0,    0,    0,    0,    0,  290,    0,    0,  283,  283,
-      283,  283,  283,  283,  290,  290,  290,  290,  290,  290,
-      291,    0,    0,    0,    0,    0,  292,    0,    0,  291,
-      291,  291,  291,  291,  291,  292,  292,  292,  292,  292,
-      292,  296,    0,    0,    0,    0,    0,  297,    0,    0,
-      296,  296,  296,  296,  296,  296,  297,  297,  297,  297,
-
-      297,  297,  298,    0,    0,    0,    0,    0,  301,    0,
-        0,  298,  298,  298,  298,  298,  298,  301,  301,  301,
-      301,  301,  301,  302,    0,    0,    0,    0,    0,    0,
-        0,    0,  302,  302,  302,  302,  302,  302,  304,    0,
-      304,  304,  304,  304,  304,  305,    0,  305,  306,    0,
-      306,  306,  306,  306,  306,  307,  307,  307,  307,  307,
-      308,  308,    0,  308,  309,  309,  309,  309,  309,  309,
-      309,  310,  310,  310,  310,  310,  311,  311,  311,  311,
-      311,  311,  311,  312,  312,  312,  312,  312,  312,  312,
-      312,  313,  313,  313,  313,  313,  314,    0,  314,  315,
-
-      315,  315,  315,  315,  316,  316,  316,  316,  316,  316,
-      316,  316,  317,  317,  317,  317,  317,  318,  318,  319,
-      319,  319,  319,  319,  319,  319,  319,  320,  320,  321,
-      321,  321,    0,  321,  321,  321,  322,  322,  323,    0,
-      323,  323,  323,  323,  323,  324,    0,  324,  324,  324,
-      324,  324,  325,  325,  325,  325,  325,  325,  325,  326,
-      326,  327,  327,  327,  327,  327,  327,  327,  328,  328,
-      328,  328,  328,  328,  328,  329,  329,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
-      303,  303,  303,  303
+       32,   49,   47,   43,   43,   43,   43,   43,   43,   47,
+       52,   55,  294,   54,   55,   48,   53,   51,   54,   76,
+       52,   49,   77,   65,   76,   26,   30,   30,   30,   30,
+       48,   53,   30,   51,   69,   54,   65,   53,   54,   72,
+
+       48,   77,  109,   76,  103,   30,   78,   69,  109,  293,
+       95,   30,   72,   84,   30,   30,   30,   30,   30,   30,
+       35,   35,   35,   35,   70,   78,   72,   84,   85,   95,
+      103,   35,   97,   70,   70,   70,   70,   70,   70,   35,
+      100,   97,   85,  100,  125,   35,  119,  287,   35,   35,
+       35,   35,   35,   35,   66,   66,   66,   66,   66,  119,
+      121,  123,  128,  125,  135,   83,   66,  121,  286,  285,
+      151,  135,  137,   66,  123,   83,  128,  151,  137,   66,
+      163,  284,   66,   66,   66,   66,   66,   66,   71,   83,
+      160,  181,   71,  283,  160,  163,  281,   71,   71,   71,
+
+       71,   71,   71,   79,   79,   79,   79,   79,  175,   79,
+      181,  182,  201,  210,  232,  175,  265,  262,  261,  201,
+      259,  232,   79,  207,  258,  182,  257,  210,   79,  251,
+      241,   79,   79,   79,   79,   79,   79,   80,   80,   80,
+       80,   94,  207,   80,  206,  206,  206,  206,  206,  241,
+       94,   94,   94,   94,   94,   94,   80,  206,  237,  236,
+      235,  234,   80,  233,  228,   80,   80,   80,   80,   80,
+       80,   82,   82,   82,   82,   82,  208,  208,  208,  208,
+      208,  238,  238,  238,  238,  238,  240,  226,  245,  208,
+       82,  240,  225,  218,  238,  273,   82,  224,  245,   82,
+
+       82,   82,   82,   82,   82,   86,   86,   86,   86,   86,
+      240,  224,  245,  246,  273,  224,   86,  277,  205,  242,
+      242,  242,  242,  242,   86,  242,  204,  246,  203,  202,
+       86,  277,  242,   86,   86,   86,   86,   86,   86,   87,
+       87,   87,   87,  118,  242,  263,  263,  263,  263,  263,
+       87,  278,  118,  118,  118,  118,  118,  118,   87,  255,
+      255,  255,  255,  255,   87,  278,  274,   87,   87,   87,
+       87,   87,   87,   92,   92,   92,   92,   92,  197,  195,
+      194,  193,  192,  191,  255,  274,  185,  272,  272,  272,
+      272,  272,   92,  272,  178,  177,  176,  170,   92,  169,
+
+      272,   92,   92,   92,   92,   92,   92,  120,  120,  120,
+      120,  120,  272,  168,  167,  166,  165,  164,  126,  159,
+      155,  153,  152,  147,  146,  145,  120,  126,  126,  126,
+      126,  126,  126,  127,  144,  120,  120,  120,  120,  120,
+      120,  129,  127,  127,  127,  127,  127,  127,  132,  143,
+      129,  129,  129,  129,  129,  129,  142,  132,  132,  132,
+      132,  132,  132,  134,  134,  134,  134,  134,  141,  139,
+      138,  136,  133,  130,  148,  124,  122,  117,  116,  115,
+      114,  113,  134,  148,  148,  148,  148,  148,  148,  149,
+      112,  134,  134,  134,  134,  134,  134,  150,  149,  149,
+
+      149,  149,  149,  149,  111,  110,  150,  150,  150,  150,
+      150,  150,  154,  154,  154,  154,  154,  156,  154,  108,
+      107,  106,  105,  154,  104,  154,  156,  156,  156,  156,
+      156,  156,  157,  102,  101,   99,   98,  154,  158,   96,
+       93,  157,  157,  157,  157,  157,  157,  158,  158,  158,
+      158,  158,  158,  161,  282,  282,  282,  282,  282,  162,
+       91,   89,  161,  161,  161,  161,  161,  161,  162,  162,
+      162,  162,  162,  162,  172,   81,   75,   64,   63,  282,
+      173,   62,   61,  172,  172,  172,  172,  172,  172,  173,
+      173,  173,  173,  173,  173,  174,   60,   59,   58,   57,
+
+       56,   45,   41,   39,  174,  174,  174,  174,  174,  174,
+      179,  179,  179,  179,  179,  186,  179,   37,   31,   27,
+       24,  179,   23,  179,  186,  186,  186,  186,  186,  186,
+       20,   17,   15,   14,   13,  179,  180,  180,  180,  180,
+      180,  187,  180,   12,   10,    9,    3,  180,    0,  180,
+      187,  187,  187,  187,  187,  187,    0,    0,    0,    0,
+        0,  180,  184,  184,  184,  184,  184,    0,  184,    0,
+        0,    0,    0,  184,  184,  184,    0,    0,    0,    0,
+        0,  184,    0,    0,    0,    0,    0,  184,  188,    0,
+      184,  184,  184,  184,  184,  184,  189,  188,  188,  188,
+
+      188,  188,  188,  190,    0,  189,  189,  189,  189,  189,
+      189,  198,  190,  190,  190,  190,  190,  190,  199,    0,
+      198,  198,  198,  198,  198,  198,  200,  199,  199,  199,
+      199,  199,  199,    0,    0,  200,  200,  200,  200,  200,
+      200,  209,  209,  209,  209,  219,    0,  209,    0,    0,
+        0,    0,    0,    0,  219,  219,  219,  219,  219,  219,
+      209,    0,    0,    0,    0,    0,  209,    0,    0,  209,
+      209,  209,  209,  209,  209,  211,  211,  211,  211,  220,
+        0,    0,    0,    0,    0,    0,  211,    0,  220,  220,
+      220,  220,  220,  220,  211,    0,    0,    0,    0,    0,
+
+      211,    0,    0,  211,  211,  211,  211,  211,  211,  212,
+      212,  212,  212,  212,  221,  212,    0,    0,    0,    0,
+      212,    0,  212,  221,  221,  221,  221,  221,  221,    0,
+        0,    0,    0,    0,  212,  213,  213,  213,  213,  213,
+      222,  213,    0,    0,    0,    0,  213,    0,  213,  222,
+      222,  222,  222,  222,  222,    0,    0,    0,    0,    0,
+      213,  214,  214,  214,  214,  214,  223,  214,    0,    0,
+        0,    0,  214,    0,  214,  223,  223,  223,  223,  223,
+      223,    0,    0,    0,    0,    0,  214,  215,  215,  215,
+      215,  215,  229,  215,    0,    0,    0,    0,  215,    0,
+
+      215,  229,  229,  229,  229,  229,  229,    0,    0,    0,
+        0,    0,  215,  216,  216,  216,  216,  216,    0,  216,
+        0,    0,    0,    0,  216,    0,  216,    0,    0,    0,
+        0,    0,  216,    0,    0,    0,    0,    0,  216,    0,
+        0,  216,  216,  216,  216,  216,  216,  217,  217,  217,
+      217,  217,    0,  217,    0,    0,    0,    0,  217,  217,
+      217,    0,    0,    0,    0,    0,  217,    0,    0,    0,
+        0,    0,  217,  230,    0,  217,  217,  217,  217,  217,
+      217,  231,  230,  230,  230,  230,  230,  230,    0,    0,
+      231,  231,  231,  231,  231,  231,  243,  243,  243,  243,
+
+      243,    0,  243,    0,    0,    0,    0,    0,    0,  247,
+      247,  247,  247,  247,    0,  243,    0,    0,    0,    0,
+      247,  243,  247,    0,  243,  243,  243,  243,  243,  243,
+      244,  244,  244,  244,  247,    0,  244,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  244,
+        0,    0,    0,    0,    0,  244,    0,    0,  244,  244,
+      244,  244,  244,  244,  248,  248,  248,  248,  248,    0,
+        0,    0,    0,    0,    0,  248,    0,    0,    0,    0,
+        0,    0,    0,  248,    0,    0,    0,    0,    0,  248,
+        0,    0,  248,  248,  248,  248,  248,  248,  249,  249,
+
+      249,  249,  250,    0,    0,    0,    0,    0,    0,  249,
+        0,  250,  250,  250,  250,  250,  250,  249,    0,    0,
+        0,    0,    0,  249,  252,    0,  249,  249,  249,  249,
+      249,  249,  253,  252,  252,  252,  252,  252,  252,  254,
+        0,  253,  253,  253,  253,  253,  253,  256,  254,  254,
+      254,  254,  254,  254,  264,    0,  256,  256,  256,  256,
+      256,  256,  275,  264,  264,  264,  264,  264,  264,    0,
+        0,  275,  275,  275,  275,  275,  275,  276,  276,  276,
+      276,  276,  279,    0,    0,    0,    0,    0,  276,    0,
+      276,  279,  279,  279,  279,  279,  279,  280,    0,    0,
+
+        0,    0,  276,  288,    0,    0,  280,  280,  280,  280,
+      280,  280,  288,  288,  288,  288,  288,  288,  289,    0,
+        0,    0,    0,    0,  290,    0,    0,  289,  289,  289,
+      289,  289,  289,  290,  290,  290,  290,  290,  290,  291,
+        0,    0,    0,    0,    0,  299,    0,    0,  291,  291,
+      291,  291,  291,  291,  299,  299,  299,  299,  299,  299,
+      300,    0,    0,    0,    0,    0,  301,    0,    0,  300,
+      300,  300,  300,  300,  300,  301,  301,  301,  301,  301,
+      301,  305,    0,    0,    0,    0,    0,  306,    0,    0,
+      305,  305,  305,  305,  305,  305,  306,  306,  306,  306,
+
+      306,  306,  307,    0,    0,    0,    0,    0,  310,    0,
+        0,  307,  307,  307,  307,  307,  307,  310,  310,  310,
+      310,  310,  310,  311,    0,    0,    0,    0,    0,    0,
+        0,    0,  311,  311,  311,  311,  311,  311,  313,    0,
+      313,  313,  313,  313,  313,  314,    0,  314,  315,    0,
+      315,  315,  315,  315,  315,  316,  316,  316,  316,  316,
+      317,  317,    0,  317,  318,  318,  318,  318,  318,  318,
+      318,  319,  319,  319,  319,  319,  320,  320,  320,  320,
+      320,  320,  320,  321,  321,  321,  321,  321,  321,  321,
+      321,  322,  322,  322,  322,  322,  323,    0,  323,  324,
+
+      324,  324,  324,  324,  325,  325,  325,  325,  325,  325,
+      325,  325,  326,  326,  326,  326,  326,  327,  327,  328,
+      328,  328,  328,  328,  328,  328,  328,  329,  329,  330,
+      330,  330,    0,  330,  330,  330,  331,  331,  332,    0,
+      332,  332,  332,  332,  332,  333,    0,  333,  333,  333,
+      333,  333,  334,  334,  334,  334,  334,  334,  334,  335,
+      335,  336,  336,  336,  336,  336,  336,  336,  337,  337,
+      337,  337,  337,  337,  337,  338,  338,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
+      312,  312,  312,  312
     } ;
 
 
@@ -577,6 +580,13 @@
 	register yy_state_type yy_current_state;
 	register unsigned short *yy_cp, *yy_bp;
 	register int yy_act;
+
+#line 23 "tokenizer.flex"
+
+
+#line 989 "lex.yy.c"
+
+
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
 		yy_cp = yy_c_buf_p;
@@ -590,6 +600,7 @@
 		yy_bp = yy_cp;
 
 		yy_current_state = yy_start;
+yy_match:
 		do
 			{
 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
@@ -601,7 +612,7 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 304 )
+				if ( yy_current_state >= 313 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -621,6 +632,9 @@
 		YY_DO_BEFORE_ACTION;
 
 
+do_action:	/* This label is used only to access EOF actions. */
+
+
 		switch ( yy_act )
 	{ /* beginning of action switch */
 			case 0: /* must back up */
@@ -718,122 +732,122 @@
 case 18:
 YY_RULE_SETUP
 #line 48 "tokenizer.flex"
-{yyTok = KONQ_RULE_SYM; return yyTok; }
+{yyTok = NAMESPACE_SYM; return yyTok; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
 #line 49 "tokenizer.flex"
-{yyTok = KONQ_DECLS_SYM; return yyTok; }
+{yyTok = KONQ_RULE_SYM; return yyTok; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
 #line 50 "tokenizer.flex"
-{yyTok = KONQ_VALUE_SYM; return yyTok; }
+{yyTok = KONQ_DECLS_SYM; return yyTok; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 52 "tokenizer.flex"
-{yyTok = IMPORTANT_SYM; return yyTok;}
+#line 51 "tokenizer.flex"
+{yyTok = KONQ_VALUE_SYM; return yyTok; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 54 "tokenizer.flex"
-{yyTok = EMS; return yyTok;}
+#line 53 "tokenizer.flex"
+{yyTok = IMPORTANT_SYM; return yyTok;}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
 #line 55 "tokenizer.flex"
-{yyTok = QEMS; return yyTok;} /* quirky ems */
+{yyTok = EMS; return yyTok;}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
 #line 56 "tokenizer.flex"
-{yyTok = EXS; return yyTok;}
+{yyTok = QEMS; return yyTok;} /* quirky ems */
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
 #line 57 "tokenizer.flex"
-{yyTok = PXS; return yyTok;}
+{yyTok = EXS; return yyTok;}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
 #line 58 "tokenizer.flex"
-{yyTok = CMS; return yyTok;}
+{yyTok = PXS; return yyTok;}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
 #line 59 "tokenizer.flex"
-{yyTok = MMS; return yyTok;}
+{yyTok = CMS; return yyTok;}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
 #line 60 "tokenizer.flex"
-{yyTok = INS; return yyTok;}
+{yyTok = MMS; return yyTok;}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 61 "tokenizer.flex"
-{yyTok = PTS; return yyTok;}
+{yyTok = INS; return yyTok;}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
 #line 62 "tokenizer.flex"
-{yyTok = PCS; return yyTok;}
+{yyTok = PTS; return yyTok;}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
 #line 63 "tokenizer.flex"
-{yyTok = DEGS; return yyTok;}
+{yyTok = PCS; return yyTok;}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
 #line 64 "tokenizer.flex"
-{yyTok = RADS; return yyTok;}
+{yyTok = DEGS; return yyTok;}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
 #line 65 "tokenizer.flex"
-{yyTok = GRADS; return yyTok;}
+{yyTok = RADS; return yyTok;}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
 #line 66 "tokenizer.flex"
-{yyTok = MSECS; return yyTok;}
+{yyTok = GRADS; return yyTok;}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 67 "tokenizer.flex"
-{yyTok = SECS; return yyTok;}
+{yyTok = MSECS; return yyTok;}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
 #line 68 "tokenizer.flex"
-{yyTok = HERZ; return yyTok;}
+{yyTok = SECS; return yyTok;}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
 #line 69 "tokenizer.flex"
-{yyTok = KHERZ; return yyTok;}
+{yyTok = HERZ; return yyTok;}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
 #line 70 "tokenizer.flex"
-{yyTok = DIMEN; return yyTok;}
+{yyTok = KHERZ; return yyTok;}
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
 #line 71 "tokenizer.flex"
-{yyTok = PERCENTAGE; return yyTok;}
+{yyTok = DIMEN; return yyTok;}
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
 #line 72 "tokenizer.flex"
-{yyTok = NUMBER; return yyTok;}
+{yyTok = PERCENTAGE; return yyTok;}
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 74 "tokenizer.flex"
-{yyTok = URI; return yyTok;}
+#line 73 "tokenizer.flex"
+{yyTok = NUMBER; return yyTok;}
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
@@ -843,12 +857,12 @@
 case 43:
 YY_RULE_SETUP
 #line 76 "tokenizer.flex"
-{yyTok = FUNCTION; return yyTok;}
+{yyTok = URI; return yyTok;}
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 78 "tokenizer.flex"
-{yyTok = UNICODERANGE; return yyTok;}
+#line 77 "tokenizer.flex"
+{yyTok = FUNCTION; return yyTok;}
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
@@ -857,15 +871,20 @@
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 81 "tokenizer.flex"
-{yyTok = *yytext; return yyTok;}
+#line 80 "tokenizer.flex"
+{yyTok = UNICODERANGE; return yyTok;}
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 83 "tokenizer.flex"
+#line 82 "tokenizer.flex"
+{yyTok = *yytext; return yyTok;}
+	YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 84 "tokenizer.flex"
 ECHO;
 	YY_BREAK
-#line 1304 "lex.yy.c"
+#line 1312 "lex.yy.c"
 case YY_STATE_EOF(INITIAL):
 	case YY_END_OF_BUFFER:
 	yyterminate();
@@ -876,5 +895,3 @@
 	} /* end of action switch */
 		} /* end of scanning one token */
 	} /* end of yylex */
-
-
diff -urN css.cvsup/tokenizer.flex css.030221/tokenizer.flex
--- css.cvsup/tokenizer.flex	2003-01-22 04:03:48.000000000 -0600
+++ css.030221/tokenizer.flex	2003-02-20 17:31:46.000000000 -0600
@@ -45,6 +45,7 @@
 "@media"                {yyTok = MEDIA_SYM; return yyTok;}
 "@font-face"            {yyTok = FONT_FACE_SYM; return yyTok;}
 "@charset"              {yyTok = CHARSET_SYM; return yyTok;}
+"@namespace"		{yyTok = NAMESPACE_SYM; return yyTok; }
 "@-konq-rule"    {yyTok = KONQ_RULE_SYM; return yyTok; }
 "@-konq-decls"   {yyTok = KONQ_DECLS_SYM; return yyTok; }
 "@-konq-value"   {yyTok = KONQ_VALUE_SYM; return yyTok; }


_______________________________________________
kde3alpha mailing list
kde3alpha@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde3alpha

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic