You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mu...@apache.org on 2023/04/14 05:37:24 UTC

[xalan-java] branch xalan-j_2_7_1_maint updated: resetting state of the branch, appropriate for git clone. deleting certain java files, that are generated by the tools during build.

This is an automated email from the ASF dual-hosted git repository.

mukulg pushed a commit to branch xalan-j_2_7_1_maint
in repository https://gitbox.apache.org/repos/asf/xalan-java.git


The following commit(s) were added to refs/heads/xalan-j_2_7_1_maint by this push:
     new f51fdd9e resetting state of the branch, appropriate for git clone. deleting certain java files, that are generated by the tools during build.
f51fdd9e is described below

commit f51fdd9e72b596ddba4894257f1990846be2fe63
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Fri Apr 14 11:06:58 2023 +0530

    resetting state of the branch, appropriate for git clone. deleting certain java files, that are generated by the tools during build.
---
 .classpath                                         |    9 +-
 src/org/apache/xalan/Version.java                  |  153 -
 .../xalan/processor/XSLProcessorVersion.java       |  116 -
 .../apache/xalan/xsltc/compiler/XPathLexer.java    | 1643 ----------
 .../apache/xalan/xsltc/compiler/XPathParser.java   | 3149 --------------------
 src/org/apache/xalan/xsltc/compiler/sym.java       |   68 -
 src/org/apache/xml/serializer/Version.java         |  150 -
 7 files changed, 6 insertions(+), 5282 deletions(-)

diff --git a/.classpath b/.classpath
index 61d3a4bd..b4678427 100644
--- a/.classpath
+++ b/.classpath
@@ -1,13 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="lib" path="lib/BCEL.jar"/>
 	<classpathentry kind="lib" path="lib/runtime.jar"/>
 	<classpathentry kind="lib" path="lib/regexp.jar"/>
 	<classpathentry kind="lib" path="tools/java_cup.jar"/>
 	<classpathentry kind="lib" path="tools/JLex.jar"/>
-	<classpathentry kind="lib" path="lib/endorsed/xercesImpl.jar"/>
+	<classpathentry kind="lib" path="lib/bcel-6.7.0.jar"/>
 	<classpathentry kind="lib" path="lib/endorsed/xml-apis.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="lib" path="lib/endorsed/xercesImpl.jar"/>
+	<classpathentry kind="lib" path="lib/bsf.jar"/>
+	<classpathentry kind="lib" path="lib/commons-logging-1.2.jar"/>
+	<classpathentry kind="lib" path="lib/rhino-1.7.14.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="build/classes"/>
 </classpath>
diff --git a/src/org/apache/xalan/Version.java b/src/org/apache/xalan/Version.java
deleted file mode 100644
index 7b4a3953..00000000
--- a/src/org/apache/xalan/Version.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the  "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id$
- */
-package org.apache.xalan;
-
-/**
- * Administrative class to keep track of the version number of
- * the Xalan release.
- * <P>This class implements the upcoming standard of having
- * org.apache.project-name.Version.getVersion() be a standard way 
- * to get version information.  This class will replace the older 
- * org.apache.xalan.processor.Version class.</P>
- * <P>See also: org/apache/xalan/res/XSLTInfo.properties for 
- * information about the version of the XSLT spec we support.</P>
- * @xsl.usage general
- */
-public class Version
-{
-
-  /**
-   * Get the basic version string for the current Xalan release.
-   * Version String formatted like 
-   * <CODE>"<B>Xalan</B> <B>Java</B> v.r[.dd| <B>D</B>nn]"</CODE>.
-   *
-   * Futurework: have this read version info from jar manifest.
-   *
-   * @return String denoting our current version
-   */
-  public static String getVersion()
-  {
-     return getProduct()+" "+getImplementationLanguage()+" "
-           +getMajorVersionNum()+"."+getReleaseVersionNum()+"."
-           +( (getDevelopmentVersionNum() > 0) ? 
-               ("D"+getDevelopmentVersionNum()) : (""+getMaintenanceVersionNum()));  
-  }
-
-  /**
-   * Print the processor version to the command line.
-   *
-   * @param argv command line arguments, unused.
-   */
-  public static void main(String argv[])
-  {
-    System.out.println(getVersion());
-  }
-  
-  /**
-   * Name of product: Xalan.
-   */
-  public static String getProduct()
-  {
-    return "Xalan";
-  }
-
-  /**
-   * Implementation Language: Java.
-   */
-  public static String getImplementationLanguage()
-  {
-    return "Java";
-  }
-  
-  
-  /**
-   * Major version number.
-   * Version number. This changes only when there is a
-   *          significant, externally apparent enhancement from
-   *          the previous release. 'n' represents the n'th
-   *          version.
-   *
-   *          Clients should carefully consider the implications
-   *          of new versions as external interfaces and behaviour
-   *          may have changed.
-   */
-  public static int getMajorVersionNum()
-  {
-    return 2;
-    
-  }  
-
-  /**
-   * Release Number.
-   * Release number. This changes when:
-   *            -  a new set of functionality is to be added, eg,
-   *               implementation of a new W3C specification.
-   *            -  API or behaviour change.
-   *            -  its designated as a reference release.
-   */
-  public static int getReleaseVersionNum()
-  {
-    return 7;
-  }
-  
-  /**
-   * Maintenance Drop Number.
-   * Optional identifier used to designate maintenance
-   *          drop applied to a specific release and contains
-   *          fixes for defects reported. It maintains compatibility
-   *          with the release and contains no API changes.
-   *          When missing, it designates the final and complete
-   *          development drop for a release.
-   */
-  public static int getMaintenanceVersionNum()
-  {
-    return 3;
-  }
-
-  /**
-   * Development Drop Number.
-   * Optional identifier designates development drop of
-   *          a specific release. D01 is the first development drop
-   *          of a new release.
-   *
-   *          Development drops are works in progress towards a
-   *          compeleted, final release. A specific development drop
-   *          may not completely implement all aspects of a new
-   *          feature, which may take several development drops to
-   *          complete. At the point of the final drop for the
-   *          release, the D suffix will be omitted.
-   *
-   *          Each 'D' drops can contain functional enhancements as
-   *          well as defect fixes. 'D' drops may not be as stable as
-   *          the final releases.
-   */
-  public static int getDevelopmentVersionNum()
-  { 
-    try {   
-        if ((new String("")).length() == 0)
-          return 0;
-        else  
-          return Integer.parseInt("");
-    } catch (NumberFormatException nfe) {
-           return 0;
-    }    
-  }      
-}
diff --git a/src/org/apache/xalan/processor/XSLProcessorVersion.java b/src/org/apache/xalan/processor/XSLProcessorVersion.java
deleted file mode 100644
index 27c22409..00000000
--- a/src/org/apache/xalan/processor/XSLProcessorVersion.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the  "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id$
- */
-package org.apache.xalan.processor;
-
-/**
- * Administrative class to keep track of the version number of
- * the Xalan release.
- * <P>See also: org/apache/xalan/res/XSLTInfo.properties</P>
- * @deprecated To be replaced by org.apache.xalan.Version.getVersion()
- * @xsl.usage general
- */
-public class XSLProcessorVersion
-{
-
-  /**
-   * Print the processor version to the command line.
-   *
-   * @param argv command line arguments, unused.
-   */
-  public static void main(String argv[])
-  {
-    System.out.println(S_VERSION);
-  }
-
-  /**
-   * Constant name of product.
-   */
-  public static final String PRODUCT = "Xalan";
-
-  /**
-   * Implementation Language.
-   */
-  public static final String LANGUAGE = "Java";
-
-  /**
-   * Major version number.
-   * Version number. This changes only when there is a
-   *          significant, externally apparent enhancement from
-   *          the previous release. 'n' represents the n'th
-   *          version.
-   *
-   *          Clients should carefully consider the implications
-   *          of new versions as external interfaces and behaviour
-   *          may have changed.
-   */
-  public static final int VERSION = 2;
-
-  /**
-   * Release Number.
-   * Release number. This changes when:
-   *            -  a new set of functionality is to be added, eg,
-   *               implementation of a new W3C specification.
-   *            -  API or behaviour change.
-   *            -  its designated as a reference release.
-   */
-  public static final int RELEASE = 7;
-
-  /**
-   * Maintenance Drop Number.
-   * Optional identifier used to designate maintenance
-   *          drop applied to a specific release and contains
-   *          fixes for defects reported. It maintains compatibility
-   *          with the release and contains no API changes.
-   *          When missing, it designates the final and complete
-   *          development drop for a release.
-   */
-  public static final int MAINTENANCE = 3;
-
-  /**
-   * Development Drop Number.
-   * Optional identifier designates development drop of
-   *          a specific release. D01 is the first development drop
-   *          of a new release.
-   *
-   *          Development drops are works in progress towards a
-   *          compeleted, final release. A specific development drop
-   *          may not completely implement all aspects of a new
-   *          feature, which may take several development drops to
-   *          complete. At the point of the final drop for the
-   *          release, the D suffix will be omitted.
-   *
-   *          Each 'D' drops can contain functional enhancements as
-   *          well as defect fixes. 'D' drops may not be as stable as
-   *          the final releases.
-   */
-  public static final int DEVELOPMENT = 0;
-  
-  /**
-   * Version String like <CODE>"<B>Xalan</B> <B>Language</B>
-   * v.r[.dd| <B>D</B>nn]"</CODE>.
-   * <P>Semantics of the version string are identical to the Xerces project.</P>
-   */
-  public static final String S_VERSION = PRODUCT+" "+LANGUAGE+" "
-                                   +VERSION+"."+RELEASE+"."
-                                   +(DEVELOPMENT > 0 ? ("D"+DEVELOPMENT)
-                                     : (""+MAINTENANCE));
-
-}
diff --git a/src/org/apache/xalan/xsltc/compiler/XPathLexer.java b/src/org/apache/xalan/xsltc/compiler/XPathLexer.java
deleted file mode 100644
index 1db26b28..00000000
--- a/src/org/apache/xalan/xsltc/compiler/XPathLexer.java
+++ /dev/null
@@ -1,1643 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id$
- */
-/*
- * @author Jacek Ambroziak
- * @author Santiago Pericas-Geertsen
- * @author Morten Jorgensen
- *
- */
-package org.apache.xalan.xsltc.compiler;
-import java_cup.runtime.Symbol;
-
-
-class XPathLexer implements java_cup.runtime.Scanner {
-	private final int YY_BUFFER_SIZE = 512;
-	private final int YY_F = -1;
-	private final int YY_NO_STATE = -1;
-	private final int YY_NOT_ACCEPT = 0;
-	private final int YY_START = 1;
-	private final int YY_END = 2;
-	private final int YY_NO_ANCHOR = 4;
-	private final int YY_BOL = 65536;
-	private final int YY_EOF = 65537;
-	public final int YYEOF = -1;
-
-        int last;
-        void initialize() {
-            last = -1;
-        }
-        static boolean isWhitespace(int c) {
-            return (c == ' ' || c == '\t' || c == '\r' || c == '\n'  || c == '\f');
-        }
-        /**
-         * If symbol is not followed by '::' or '(', then treat it as a
-         * name instead of an axis or function (Jira-1912).
-         */ 
-        Symbol disambiguateAxisOrFunction(int ss) throws Exception {
-            // Peek in the input buffer without changing the internal state
-            int index = yy_buffer_index;
-            // Skip whitespace
-            while (index < yy_buffer_read && isWhitespace(yy_buffer[index])) {
-                index++;
-            }
-            // If end of buffer, can't disambiguate :(
-            if (index >= yy_buffer_read) {
-                // Can't disambiguate, so return as symbol
-                return new Symbol(ss);
-            }
-            // Return symbol if next token is '::' or '('
-            return (yy_buffer[index] == ':' && yy_buffer[index+1] == ':' ||
-                    yy_buffer[index] == '(') ?
-                    newSymbol(ss) : newSymbol(sym.QNAME, yytext());
-        }
-        /**
-         * If symbol is first token or if it follows any of the operators
-         * listed in http://www.w3.org/TR/xpath#exprlex then treat as a 
-         * name instead of a keyword (Jira-1912).
-         */ 
-        Symbol disambiguateOperator(int ss) throws Exception {
-            switch (last) {
-            case -1:    // first token
-            case sym.ATSIGN:
-            case sym.DCOLON:
-            case sym.LPAREN:
-            case sym.LBRACK:
-            case sym.COMMA:
-            case sym.AND:
-            case sym.OR:
-            case sym.MOD:
-            case sym.DIV:
-            case sym.MULT:
-            case sym.SLASH:
-            case sym.DSLASH:
-            case sym.VBAR:
-            case sym.PLUS:
-            case sym.MINUS:
-            case sym.EQ:
-            case sym.NE:
-            case sym.LT:
-            case sym.LE:
-            case sym.GT:
-            case sym.GE:
-                return newSymbol(sym.QNAME, yytext());
-            }
-            return newSymbol(ss);
-        }
-        /**
-         * If symbol is first token or if it follows any of the operators
-         * listed in http://www.w3.org/TR/xpath#exprlex then treat as a
-         * wildcard instead of a multiplication operator
-         */
-        Symbol disambiguateStar() throws Exception {
-            switch (last) {
-            case -1:    // first token
-            case sym.ATSIGN:
-            case sym.DCOLON:
-            case sym.LPAREN:
-            case sym.LBRACK:
-            case sym.COMMA:
-            case sym.AND:
-            case sym.OR:
-            case sym.MOD:
-            case sym.DIV:
-            case sym.MULT:
-            case sym.SLASH:
-            case sym.DSLASH:
-            case sym.VBAR:
-            case sym.PLUS:
-            case sym.MINUS:
-            case sym.EQ:
-            case sym.NE:
-            case sym.LT:
-            case sym.LE:
-            case sym.GT:
-            case sym.GE:
-                return newSymbol(sym.STAR);
-            }
-            return newSymbol(sym.MULT);
-        }
-        Symbol newSymbol(int ss) {
-            last = ss;
-            return new Symbol(ss);
-        }
-        Symbol newSymbol(int ss, String value) {
-            last = ss;
-            return new Symbol(ss, value);
-        }
-        Symbol newSymbol(int ss, Long value) {
-            last = ss;
-            return new Symbol(ss, value);
-        }
-        Symbol newSymbol(int ss, Double value) {
-            last = ss;
-            return new Symbol(ss, value);
-        }
-	private java.io.BufferedReader yy_reader;
-	private int yy_buffer_index;
-	private int yy_buffer_read;
-	private int yy_buffer_start;
-	private int yy_buffer_end;
-	private char yy_buffer[];
-	private boolean yy_at_bol;
-	private int yy_lexical_state;
-
-	XPathLexer (java.io.Reader reader) {
-		this ();
-		if (null == reader) {
-			throw (new Error("Error: Bad input stream initializer."));
-		}
-		yy_reader = new java.io.BufferedReader(reader);
-	}
-
-	XPathLexer (java.io.InputStream instream) {
-		this ();
-		if (null == instream) {
-			throw (new Error("Error: Bad input stream initializer."));
-		}
-		yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
-	}
-
-	private XPathLexer () {
-		yy_buffer = new char[YY_BUFFER_SIZE];
-		yy_buffer_read = 0;
-		yy_buffer_index = 0;
-		yy_buffer_start = 0;
-		yy_buffer_end = 0;
-		yy_at_bol = true;
-		yy_lexical_state = YYINITIAL;
-	}
-
-	private boolean yy_eof_done = false;
-	private final int YYINITIAL = 0;
-	private final int yy_state_dtrans[] = {
-		0
-	};
-	private void yybegin (int state) {
-		yy_lexical_state = state;
-	}
-	private int yy_advance ()
-		throws java.io.IOException {
-		int next_read;
-		int i;
-		int j;
-
-		if (yy_buffer_index < yy_buffer_read) {
-			return yy_buffer[yy_buffer_index++];
-		}
-
-		if (0 != yy_buffer_start) {
-			i = yy_buffer_start;
-			j = 0;
-			while (i < yy_buffer_read) {
-				yy_buffer[j] = yy_buffer[i];
-				++i;
-				++j;
-			}
-			yy_buffer_end = yy_buffer_end - yy_buffer_start;
-			yy_buffer_start = 0;
-			yy_buffer_read = j;
-			yy_buffer_index = j;
-			next_read = yy_reader.read(yy_buffer,
-					yy_buffer_read,
-					yy_buffer.length - yy_buffer_read);
-			if (-1 == next_read) {
-				return YY_EOF;
-			}
-			yy_buffer_read = yy_buffer_read + next_read;
-		}
-
-		while (yy_buffer_index >= yy_buffer_read) {
-			if (yy_buffer_index >= yy_buffer.length) {
-				yy_buffer = yy_double(yy_buffer);
-			}
-			next_read = yy_reader.read(yy_buffer,
-					yy_buffer_read,
-					yy_buffer.length - yy_buffer_read);
-			if (-1 == next_read) {
-				return YY_EOF;
-			}
-			yy_buffer_read = yy_buffer_read + next_read;
-		}
-		return yy_buffer[yy_buffer_index++];
-	}
-	private void yy_move_end () {
-		if (yy_buffer_end > yy_buffer_start &&
-		    '\n' == yy_buffer[yy_buffer_end-1])
-			yy_buffer_end--;
-		if (yy_buffer_end > yy_buffer_start &&
-		    '\r' == yy_buffer[yy_buffer_end-1])
-			yy_buffer_end--;
-	}
-	private boolean yy_last_was_cr=false;
-	private void yy_mark_start () {
-		yy_buffer_start = yy_buffer_index;
-	}
-	private void yy_mark_end () {
-		yy_buffer_end = yy_buffer_index;
-	}
-	private void yy_to_mark () {
-		yy_buffer_index = yy_buffer_end;
-		yy_at_bol = (yy_buffer_end > yy_buffer_start) &&
-		            ('\r' == yy_buffer[yy_buffer_end-1] ||
-		             '\n' == yy_buffer[yy_buffer_end-1] ||
-		             2028/*LS*/ == yy_buffer[yy_buffer_end-1] ||
-		             2029/*PS*/ == yy_buffer[yy_buffer_end-1]);
-	}
-	private java.lang.String yytext () {
-		return (new java.lang.String(yy_buffer,
-			yy_buffer_start,
-			yy_buffer_end - yy_buffer_start));
-	}
-	private int yylength () {
-		return yy_buffer_end - yy_buffer_start;
-	}
-	private char[] yy_double (char buf[]) {
-		int i;
-		char newbuf[];
-		newbuf = new char[2*buf.length];
-		for (i = 0; i < buf.length; ++i) {
-			newbuf[i] = buf[i];
-		}
-		return newbuf;
-	}
-	private final int YY_E_INTERNAL = 0;
-	private final int YY_E_MATCH = 1;
-	private java.lang.String yy_error_string[] = {
-		"Error: Internal error.\n",
-		"Error: Unmatched input.\n"
-	};
-	private void yy_error (int code,boolean fatal) {
-		java.lang.System.out.print(yy_error_string[code]);
-		java.lang.System.out.flush();
-		if (fatal) {
-			throw new Error("Fatal Error.\n");
-		}
-	}
-	static private int[][] unpackFromString(int size1, int size2, String st) {
-		int colonIndex = -1;
-		String lengthString;
-		int sequenceLength = 0;
-		int sequenceInteger = 0;
-
-		int commaIndex;
-		String workString;
-
-		int res[][] = new int[size1][size2];
-		for (int i= 0; i < size1; i++) {
-			for (int j= 0; j < size2; j++) {
-				if (sequenceLength != 0) {
-					res[i][j] = sequenceInteger;
-					sequenceLength--;
-					continue;
-				}
-				commaIndex = st.indexOf(',');
-				workString = (commaIndex==-1) ? st :
-					st.substring(0, commaIndex);
-				st = st.substring(commaIndex+1);
-				colonIndex = workString.indexOf(':');
-				if (colonIndex == -1) {
-					res[i][j]=Integer.parseInt(workString);
-					continue;
-				}
-				lengthString =
-					workString.substring(colonIndex+1);
-				sequenceLength=Integer.parseInt(lengthString);
-				workString=workString.substring(0,colonIndex);
-				sequenceInteger=Integer.parseInt(workString);
-				res[i][j] = sequenceInteger;
-				sequenceLength--;
-			}
-		}
-		return res;
-	}
-	private int yy_acpt[] = {
-		/* 0 */ YY_NOT_ACCEPT,
-		/* 1 */ YY_NO_ANCHOR,
-		/* 2 */ YY_NO_ANCHOR,
-		/* 3 */ YY_NO_ANCHOR,
-		/* 4 */ YY_NO_ANCHOR,
-		/* 5 */ YY_NO_ANCHOR,
-		/* 6 */ YY_NO_ANCHOR,
-		/* 7 */ YY_NO_ANCHOR,
-		/* 8 */ YY_NO_ANCHOR,
-		/* 9 */ YY_NO_ANCHOR,
-		/* 10 */ YY_NO_ANCHOR,
-		/* 11 */ YY_NO_ANCHOR,
-		/* 12 */ YY_NO_ANCHOR,
-		/* 13 */ YY_NO_ANCHOR,
-		/* 14 */ YY_NO_ANCHOR,
-		/* 15 */ YY_NO_ANCHOR,
-		/* 16 */ YY_NO_ANCHOR,
-		/* 17 */ YY_NO_ANCHOR,
-		/* 18 */ YY_NO_ANCHOR,
-		/* 19 */ YY_NO_ANCHOR,
-		/* 20 */ YY_NO_ANCHOR,
-		/* 21 */ YY_NO_ANCHOR,
-		/* 22 */ YY_NO_ANCHOR,
-		/* 23 */ YY_NO_ANCHOR,
-		/* 24 */ YY_NO_ANCHOR,
-		/* 25 */ YY_NO_ANCHOR,
-		/* 26 */ YY_NO_ANCHOR,
-		/* 27 */ YY_NO_ANCHOR,
-		/* 28 */ YY_NO_ANCHOR,
-		/* 29 */ YY_NO_ANCHOR,
-		/* 30 */ YY_NO_ANCHOR,
-		/* 31 */ YY_NO_ANCHOR,
-		/* 32 */ YY_NO_ANCHOR,
-		/* 33 */ YY_NO_ANCHOR,
-		/* 34 */ YY_NO_ANCHOR,
-		/* 35 */ YY_NO_ANCHOR,
-		/* 36 */ YY_NO_ANCHOR,
-		/* 37 */ YY_NO_ANCHOR,
-		/* 38 */ YY_NO_ANCHOR,
-		/* 39 */ YY_NO_ANCHOR,
-		/* 40 */ YY_NO_ANCHOR,
-		/* 41 */ YY_NO_ANCHOR,
-		/* 42 */ YY_NO_ANCHOR,
-		/* 43 */ YY_NO_ANCHOR,
-		/* 44 */ YY_NO_ANCHOR,
-		/* 45 */ YY_NO_ANCHOR,
-		/* 46 */ YY_NO_ANCHOR,
-		/* 47 */ YY_NO_ANCHOR,
-		/* 48 */ YY_NO_ANCHOR,
-		/* 49 */ YY_NO_ANCHOR,
-		/* 50 */ YY_NO_ANCHOR,
-		/* 51 */ YY_NO_ANCHOR,
-		/* 52 */ YY_NO_ANCHOR,
-		/* 53 */ YY_NO_ANCHOR,
-		/* 54 */ YY_NO_ANCHOR,
-		/* 55 */ YY_NO_ANCHOR,
-		/* 56 */ YY_NO_ANCHOR,
-		/* 57 */ YY_NO_ANCHOR,
-		/* 58 */ YY_NO_ANCHOR,
-		/* 59 */ YY_NO_ANCHOR,
-		/* 60 */ YY_NO_ANCHOR,
-		/* 61 */ YY_NO_ANCHOR,
-		/* 62 */ YY_NO_ANCHOR,
-		/* 63 */ YY_NO_ANCHOR,
-		/* 64 */ YY_NOT_ACCEPT,
-		/* 65 */ YY_NO_ANCHOR,
-		/* 66 */ YY_NO_ANCHOR,
-		/* 67 */ YY_NO_ANCHOR,
-		/* 68 */ YY_NO_ANCHOR,
-		/* 69 */ YY_NOT_ACCEPT,
-		/* 70 */ YY_NO_ANCHOR,
-		/* 71 */ YY_NO_ANCHOR,
-		/* 72 */ YY_NOT_ACCEPT,
-		/* 73 */ YY_NO_ANCHOR,
-		/* 74 */ YY_NO_ANCHOR,
-		/* 75 */ YY_NOT_ACCEPT,
-		/* 76 */ YY_NO_ANCHOR,
-		/* 77 */ YY_NO_ANCHOR,
-		/* 78 */ YY_NOT_ACCEPT,
-		/* 79 */ YY_NO_ANCHOR,
-		/* 80 */ YY_NOT_ACCEPT,
-		/* 81 */ YY_NO_ANCHOR,
-		/* 82 */ YY_NOT_ACCEPT,
-		/* 83 */ YY_NO_ANCHOR,
-		/* 84 */ YY_NOT_ACCEPT,
-		/* 85 */ YY_NO_ANCHOR,
-		/* 86 */ YY_NOT_ACCEPT,
-		/* 87 */ YY_NO_ANCHOR,
-		/* 88 */ YY_NOT_ACCEPT,
-		/* 89 */ YY_NO_ANCHOR,
-		/* 90 */ YY_NOT_ACCEPT,
-		/* 91 */ YY_NO_ANCHOR,
-		/* 92 */ YY_NOT_ACCEPT,
-		/* 93 */ YY_NO_ANCHOR,
-		/* 94 */ YY_NOT_ACCEPT,
-		/* 95 */ YY_NO_ANCHOR,
-		/* 96 */ YY_NOT_ACCEPT,
-		/* 97 */ YY_NO_ANCHOR,
-		/* 98 */ YY_NOT_ACCEPT,
-		/* 99 */ YY_NO_ANCHOR,
-		/* 100 */ YY_NOT_ACCEPT,
-		/* 101 */ YY_NO_ANCHOR,
-		/* 102 */ YY_NOT_ACCEPT,
-		/* 103 */ YY_NO_ANCHOR,
-		/* 104 */ YY_NOT_ACCEPT,
-		/* 105 */ YY_NO_ANCHOR,
-		/* 106 */ YY_NOT_ACCEPT,
-		/* 107 */ YY_NO_ANCHOR,
-		/* 108 */ YY_NOT_ACCEPT,
-		/* 109 */ YY_NO_ANCHOR,
-		/* 110 */ YY_NOT_ACCEPT,
-		/* 111 */ YY_NO_ANCHOR,
-		/* 112 */ YY_NOT_ACCEPT,
-		/* 113 */ YY_NO_ANCHOR,
-		/* 114 */ YY_NOT_ACCEPT,
-		/* 115 */ YY_NO_ANCHOR,
-		/* 116 */ YY_NOT_ACCEPT,
-		/* 117 */ YY_NO_ANCHOR,
-		/* 118 */ YY_NOT_ACCEPT,
-		/* 119 */ YY_NO_ANCHOR,
-		/* 120 */ YY_NOT_ACCEPT,
-		/* 121 */ YY_NO_ANCHOR,
-		/* 122 */ YY_NOT_ACCEPT,
-		/* 123 */ YY_NO_ANCHOR,
-		/* 124 */ YY_NOT_ACCEPT,
-		/* 125 */ YY_NO_ANCHOR,
-		/* 126 */ YY_NOT_ACCEPT,
-		/* 127 */ YY_NO_ANCHOR,
-		/* 128 */ YY_NO_ANCHOR,
-		/* 129 */ YY_NO_ANCHOR,
-		/* 130 */ YY_NO_ANCHOR,
-		/* 131 */ YY_NO_ANCHOR,
-		/* 132 */ YY_NO_ANCHOR,
-		/* 133 */ YY_NO_ANCHOR,
-		/* 134 */ YY_NO_ANCHOR,
-		/* 135 */ YY_NO_ANCHOR,
-		/* 136 */ YY_NO_ANCHOR,
-		/* 137 */ YY_NO_ANCHOR,
-		/* 138 */ YY_NO_ANCHOR,
-		/* 139 */ YY_NO_ANCHOR,
-		/* 140 */ YY_NO_ANCHOR,
-		/* 141 */ YY_NO_ANCHOR,
-		/* 142 */ YY_NO_ANCHOR,
-		/* 143 */ YY_NO_ANCHOR,
-		/* 144 */ YY_NO_ANCHOR,
-		/* 145 */ YY_NO_ANCHOR,
-		/* 146 */ YY_NO_ANCHOR,
-		/* 147 */ YY_NO_ANCHOR,
-		/* 148 */ YY_NO_ANCHOR,
-		/* 149 */ YY_NO_ANCHOR,
-		/* 150 */ YY_NO_ANCHOR,
-		/* 151 */ YY_NO_ANCHOR,
-		/* 152 */ YY_NO_ANCHOR,
-		/* 153 */ YY_NO_ANCHOR,
-		/* 154 */ YY_NO_ANCHOR,
-		/* 155 */ YY_NO_ANCHOR,
-		/* 156 */ YY_NO_ANCHOR,
-		/* 157 */ YY_NO_ANCHOR,
-		/* 158 */ YY_NO_ANCHOR,
-		/* 159 */ YY_NO_ANCHOR,
-		/* 160 */ YY_NO_ANCHOR,
-		/* 161 */ YY_NO_ANCHOR,
-		/* 162 */ YY_NO_ANCHOR,
-		/* 163 */ YY_NO_ANCHOR,
-		/* 164 */ YY_NO_ANCHOR,
-		/* 165 */ YY_NO_ANCHOR,
-		/* 166 */ YY_NO_ANCHOR,
-		/* 167 */ YY_NO_ANCHOR,
-		/* 168 */ YY_NO_ANCHOR,
-		/* 169 */ YY_NO_ANCHOR,
-		/* 170 */ YY_NO_ANCHOR,
-		/* 171 */ YY_NO_ANCHOR,
-		/* 172 */ YY_NO_ANCHOR,
-		/* 173 */ YY_NO_ANCHOR,
-		/* 174 */ YY_NO_ANCHOR,
-		/* 175 */ YY_NO_ANCHOR,
-		/* 176 */ YY_NO_ANCHOR,
-		/* 177 */ YY_NO_ANCHOR,
-		/* 178 */ YY_NO_ANCHOR,
-		/* 179 */ YY_NO_ANCHOR,
-		/* 180 */ YY_NO_ANCHOR,
-		/* 181 */ YY_NO_ANCHOR,
-		/* 182 */ YY_NO_ANCHOR,
-		/* 183 */ YY_NO_ANCHOR,
-		/* 184 */ YY_NO_ANCHOR,
-		/* 185 */ YY_NOT_ACCEPT,
-		/* 186 */ YY_NOT_ACCEPT,
-		/* 187 */ YY_NO_ANCHOR,
-		/* 188 */ YY_NOT_ACCEPT,
-		/* 189 */ YY_NO_ANCHOR,
-		/* 190 */ YY_NOT_ACCEPT,
-		/* 191 */ YY_NO_ANCHOR,
-		/* 192 */ YY_NO_ANCHOR,
-		/* 193 */ YY_NO_ANCHOR,
-		/* 194 */ YY_NO_ANCHOR,
-		/* 195 */ YY_NO_ANCHOR,
-		/* 196 */ YY_NO_ANCHOR,
-		/* 197 */ YY_NO_ANCHOR,
-		/* 198 */ YY_NO_ANCHOR,
-		/* 199 */ YY_NO_ANCHOR,
-		/* 200 */ YY_NO_ANCHOR,
-		/* 201 */ YY_NO_ANCHOR,
-		/* 202 */ YY_NO_ANCHOR,
-		/* 203 */ YY_NO_ANCHOR,
-		/* 204 */ YY_NO_ANCHOR,
-		/* 205 */ YY_NO_ANCHOR,
-		/* 206 */ YY_NO_ANCHOR,
-		/* 207 */ YY_NO_ANCHOR,
-		/* 208 */ YY_NO_ANCHOR,
-		/* 209 */ YY_NO_ANCHOR,
-		/* 210 */ YY_NO_ANCHOR,
-		/* 211 */ YY_NO_ANCHOR,
-		/* 212 */ YY_NO_ANCHOR,
-		/* 213 */ YY_NO_ANCHOR,
-		/* 214 */ YY_NO_ANCHOR,
-		/* 215 */ YY_NO_ANCHOR,
-		/* 216 */ YY_NO_ANCHOR,
-		/* 217 */ YY_NO_ANCHOR,
-		/* 218 */ YY_NO_ANCHOR,
-		/* 219 */ YY_NO_ANCHOR,
-		/* 220 */ YY_NO_ANCHOR,
-		/* 221 */ YY_NO_ANCHOR,
-		/* 222 */ YY_NO_ANCHOR,
-		/* 223 */ YY_NO_ANCHOR,
-		/* 224 */ YY_NO_ANCHOR,
-		/* 225 */ YY_NO_ANCHOR,
-		/* 226 */ YY_NO_ANCHOR,
-		/* 227 */ YY_NO_ANCHOR,
-		/* 228 */ YY_NO_ANCHOR,
-		/* 229 */ YY_NO_ANCHOR,
-		/* 230 */ YY_NO_ANCHOR,
-		/* 231 */ YY_NO_ANCHOR,
-		/* 232 */ YY_NO_ANCHOR,
-		/* 233 */ YY_NO_ANCHOR
-	};
-	static private int yy_cmap[] = unpackFromString(1,65538,
-"54:9,27:2,54,27:2,54:18,27,17,53,54,15,54:2,55,25,26,1,3,11,4,13,2,56:10,10" +
-",54,18,16,19,54,12,44,57:3,46,57:3,51,57:4,48,52,43,57,47,50,45,57:3,49,57:" +
-"2,41,54,42,54,58,54,35,38,29,5,21,39,33,36,6,57,20,37,8,28,9,30,57,31,32,23" +
-",34,7,40,24,22,57,54,14,54:58,60,54:8,57:23,54,57:31,54,57:58,58:2,57:11,58" +
-":2,57:8,58,57:53,58,57:68,58:9,57:36,58:3,57:2,58:4,57:30,58:56,57:89,58:18" +
-",57:7,58:62,60:70,54:26,60:2,54:14,58:14,54,58:7,57,58,57:3,58,57,58,57:20," +
-"58,57:44,58,57:7,58:3,57,58,57,58,57,58,57,58,57:18,58:13,57:12,58,57:66,58" +
-",57:12,58,57:36,58:14,57:53,58:2,57:2,58:2,57:2,58:3,57:28,58:2,57:8,58:2,5" +
-"7:2,58:55,57:38,58:2,57,58:7,57:38,58:73,57:27,58:5,57:3,58:46,57:26,58:6,5" +
-"7:10,58:21,59:10,58:7,57:71,58:2,57:5,58,57:15,58,57:4,58,57,58:15,57:2,58:" +
-"9,59:10,58:523,57:53,58:3,57,58:26,57:10,58:4,59:10,58:21,57:8,58:2,57:2,58" +
-":2,57:22,58,57:7,58,57,58:3,57:4,58:34,57:2,58,57:3,58:4,59:10,57:2,58:19,5" +
-"7:6,58:4,57:2,58:2,57:22,58,57:7,58,57:2,58,57:2,58,57:2,58:31,57:4,58,57,5" +
-"8:7,59:10,58:2,57:3,58:16,57:7,58,57,58,57:3,58,57:22,58,57:7,58,57:2,58,57" +
-":5,58:3,57,58:34,57,58:5,59:10,58:21,57:8,58:2,57:2,58:2,57:22,58,57:7,58,5" +
-"7:2,58:2,57:4,58:3,57,58:30,57:2,58,57:3,58:4,59:10,58:21,57:6,58:3,57:3,58" +
-",57:4,58:3,57:2,58,57,58,57:2,58:3,57:2,58:3,57:3,58:3,57:8,58,57:3,58:45,5" +
-"9:9,58:21,57:8,58,57:3,58,57:23,58,57:10,58,57:5,58:38,57:2,58:4,59:10,58:2" +
-"1,57:8,58,57:3,58,57:23,58,57:10,58,57:5,58:36,57,58,57:2,58:4,59:10,58:21," +
-"57:8,58,57:3,58,57:23,58,57:16,58:38,57:2,58:4,59:10,58:145,57:46,58,57,58," +
-"57:2,58:12,57:6,58:10,59:10,58:39,57:2,58,57,58:2,57:2,58,57,58:2,57,58:6,5" +
-"7:4,58,57:7,58,57:3,58,57,58,57,58:2,57:2,58,57:2,58,57,58,57:2,58:9,57,58:" +
-"2,57:5,58:11,59:10,58:70,59:10,58:22,57:8,58,57:33,58:310,57:38,58:10,57:39" +
-",58:9,57,58,57:2,58,57:3,58,57,58,57:2,58,57:5,58:41,57,58,57,58,57,58:11,5" +
-"7,58,57,58,57,58:3,57:2,58:3,57,58:5,57:3,58,57,58,57,58,57,58,57,58:3,57:2" +
-",58:3,57:2,58,57,58:40,57,58:9,57,58:2,57,58:2,57:2,58:7,57:2,58,57,58,57:7" +
-",58:40,57,58:4,57,58:8,57,58:3078,57:156,58:4,57:90,58:6,57:22,58:2,57:6,58" +
-":2,57:38,58:2,57:6,58:2,57:8,58,57,58,57,58,57,58,57:31,58:2,57:53,58,57:7," +
-"58,57,58:3,57:3,58,57:7,58:3,57:4,58:2,57:6,58:4,57:13,58:5,57:3,58,57:7,58" +
-":3,54:12,58:2,54:98,58:182,57,58:3,57:2,58:2,57,58:81,57:3,58:13,54:2672,58" +
-":1008,54:17,58:64,57:84,58:12,57:90,58:10,57:40,58:31443,57:11172,58:92,54:" +
-"8448,58:1232,54:32,58:526,54:2,0:2")[0];
-
-	static private int yy_rmap[] = unpackFromString(1,234,
-"0,1:2,2,1:2,3,4,1,5,6,1:3,7,8,1:5,9,1,10:2,1:3,11,1:5,12,10,1,10:5,1:2,10,1" +
-":2,13,1,10,1,14,10,15,16,1:2,10:4,17,1:2,18,19,20,21,22,23,24,25,26,27,1,25" +
-",10,28:2,29,5,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,5" +
-"0,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,7" +
-"5,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,1" +
-"00,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118," +
-"119,120,121,122,123,124,125,126,127,128,129,130,131,132,10,133,134,135,136," +
-"137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155" +
-",156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,17" +
-"4,175,176,177,178,179,180,181")[0];
-
-	static private int yy_nxt[][] = unpackFromString(182,61,
-"1,2,3,4,5,6,65,184,204,70,7,8,9,10,11,12,13,66,14,15,211,184:2,215,184,16,1" +
-"7,18,218,220,221,184,222,184:2,223,184:3,224,184,19,20,184:10,71,74,77,21,1" +
-"84:2,67,74,-1:63,22,-1:62,184:2,73,184:3,64,-1:2,76,-1:6,184,79,184:3,-1:3," +
-"184:13,-1:2,184:10,-1:3,76,184,76:3,-1:10,25,-1:51,26,-1:72,27,-1:42,28,-1:" +
-"2,28,-1:17,30,-1:26,69,-1:2,72,-1:30,31,-1:57,34,-1:42,21,-1:2,21,-1:5,184:" +
-"6,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:56,28,-" +
-"1:2,28,-1:57,34,-1:2,34,-1:5,155,184:5,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1" +
-":2,184:10,-1:3,76,184,76:3,-1:4,209,184:5,64,-1:2,76,-1:6,184:5,-1:3,184:13" +
-",-1:2,184:10,-1:3,76,184,76:3,-1:4,233,184:5,64,-1:2,76,-1:6,184:5,-1:3,184" +
-":13,-1:2,184:10,-1:3,76,184,76:3,-1:4,158,184:5,64,-1:2,76,-1:6,184:5,-1:3," +
-"184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,122,-1" +
-",124,183,184:12,-1:2,184:10,-1:3,76,184,76:3,-1,36,-1:3,103:5,-1:2,80,-1:7," +
-"103:5,-1:3,103:13,-1:2,103:10,-1:4,103:3,-1:5,184,23,184:4,64,-1:2,76,-1:6," +
-"184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:16,29,-1:48,184:6,64,-1:2" +
-",68,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,67,184,76,67,76,-1:4,184:6,64,-" +
-"1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,68,184,76,68,76,-1:44,82,-1:" +
-"20,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:3,24,184:9,-1:2,184:10,-1:3,76,184," +
-"76:3,-1,75:52,32,75:7,-1:49,84,-1:15,184:3,35,184:2,64,-1:2,76,-1:6,184:5,-" +
-"1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1,78:54,33,78:5,-1:4,184:6,64,-1:2" +
-",76,-1:6,184:5,-1:3,184:4,105,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:4,184,3" +
-"7,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4" +
-"5,185,-1:19,184:6,64,-1:2,76,-1:6,184:2,38,184:2,-1:3,184:13,-1:2,184:10,-1" +
-":3,76,184,76:3,-1:43,86,-1:21,184:6,64,-1:2,76,-1:6,184:4,191,-1:3,184:13,-" +
-"1:2,184:10,-1:3,76,184,76:3,-1:47,186,-1:17,184,107,184:4,64,-1:2,76,-1:6,1" +
-"84:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:46,96,-1:18,184:4,193,184," +
-"64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:26,42,-1:" +
-"38,184:2,205,184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,18" +
-"4,76:3,-1:25,100,-1,92,-1:37,184:5,192,64,-1:2,76,-1:6,184,228,184:3,-1:3,1" +
-"84:13,-1:2,184:10,-1:3,76,184,76:3,-1:26,43,-1:38,184:6,64,-1:2,76,-1:6,184" +
-":5,-1:3,184:3,206,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:47,104,-1:17,184:6," +
-"64,-1:2,76,-1:6,184:5,-1:3,184:9,111,184:3,-1:2,184:10,-1:3,76,184,76:3,-1:" +
-"50,190,-1:14,184:6,64,-1:2,76,-1:6,184:3,113,184,-1:3,184:13,-1:2,184:10,-1" +
-":3,76,184,76:3,-1:26,45,-1:38,184,39,184:4,64,-1:2,76,-1:6,184:5,-1:3,184,2" +
-"12,184:11,-1:2,184:10,-1:3,76,184,76:3,-1:26,46,-1:38,103:6,-1:3,103,-1:6,1" +
-"03:5,-1:3,103:13,-1:2,103:10,-1:3,103:5,-1:48,106,-1:16,184:6,64,-1:2,76,-1" +
-":6,184:5,-1:3,184,216,184:11,-1:2,184:10,-1:3,76,184,76:3,-1:19,48,-1:45,18" +
-"4:6,64,-1:2,76,-1:6,184,119,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3," +
-"-1:51,114,-1:13,184:4,123,184,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10" +
-",-1:3,76,184,76:3,-1:26,50,-1:38,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:11,40" +
-",184,-1:2,184:10,-1:3,76,184,76:3,-1:25,116,-1,112,-1:37,184:6,64,-1:2,76,-" +
-"1:6,184:5,-1:3,184:3,128,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:52,118,-1:12" +
-",184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,129,184:3,-1:2,184:10,-1:3,76,184,7" +
-"6:3,-1:26,55,-1:38,184:6,64,-1:2,76,-1:6,184:3,130,184,90,-1,92,184:13,-1:2" +
-",184:10,-1:3,76,184,76:3,-1:48,120,-1:16,184:6,64,-1:2,76,-1:6,184,131,184:" +
-"3,94,-1,188,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:19,56,-1:45,184:6,64,-1:" +
-"2,76,-1:6,184:5,-1:3,184:4,132,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:26,62," +
-"-1:38,184:6,64,-1:2,76,-1:6,184,208,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,1" +
-"84,76:3,-1:25,126,-1,124,-1:37,184,41,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:" +
-"13,-1:2,184:10,-1:3,76,184,76:3,-1:26,63,-1:38,184:6,64,-1:2,76,-1:6,184:5," +
-"-1:3,135,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,136,184:3,64,-1:2,7" +
-"6,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,138,64,-1:" +
-"2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2" +
-",76,-1:6,184:3,130,184,-1:2,92,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184" +
-":6,64,-1:2,76,-1:6,184,131,184:3,-1:2,188,184:13,-1:2,184:10,-1:3,76,184,76" +
-":3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:2,139,184:10,-1:2,184:10,-1:3," +
-"76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,197,184:8,-1:2,184:" +
-"10,-1:3,76,184,76:3,-1:4,184,140,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1" +
-":2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,44,184,-1:3,184" +
-":13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:" +
-"10,141,184:2,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3," +
-"142,184,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6" +
-",184:5,-1:3,184:12,225,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-" +
-"1:6,184:5,-1:3,184:7,143,184:5,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,145," +
-"184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,1" +
-"84:6,64,-1:2,76,-1:6,184:5,-1:3,184:6,146,184:6,-1:2,184:10,-1:3,76,184,76:" +
-"3,-1:4,184:5,147,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184," +
-"76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184,148,184:11,-1:2,184:10,-1:3," +
-"76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,149,184,110,-1,112,184:13,-1:2" +
-",184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,150,184:12,-" +
-"1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,151,184,-1:3,1" +
-"84:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,18" +
-"4:3,47,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,49" +
-",184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6," +
-"184:3,149,184,-1:2,112,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1" +
-":2,76,-1:6,184:5,-1:3,184:5,51,184:7,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:" +
-"6,64,-1:2,76,-1:6,184,52,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:" +
-"4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,53,184:7,-1:2,184:10,-1:3,76,184,7" +
-"6:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,54,184,-1:3,184:13,-1:2,184:10,-1:3,76" +
-",184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,156,184:7,-1:2,184:10" +
-",-1:3,76,184,76:3,-1:4,184:5,157,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184" +
-":10,-1:3,76,184,76:3,-1:4,159,184:5,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2," +
-"184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:3,160,184" +
-":9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,161,64,-1:2,76,-1:6,184:5,-1:3,1" +
-"84:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,162,184:3,64,-1:2,76,-1:6,184" +
-":5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,213,184:5,64,-1:2,76,-1:6," +
-"184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,1" +
-"84:5,-1:3,184:3,226,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,7" +
-"6,-1:6,184:5,-1:3,217,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:" +
-"2,76,-1:6,184:5,-1:3,184:10,164,184:2,-1:2,184:10,-1:3,76,184,76:3,-1:4,184" +
-":6,64,-1:2,76,-1:6,184:5,-1:3,184:9,167,184:3,-1:2,184:10,-1:3,76,184,76:3," +
-"-1:4,184:6,64,-1:2,76,-1:6,184,168,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,18" +
-"4,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,170,184,-1:3,184:13,-1:2,184:10,-1:" +
-"3,76,184,76:3,-1:4,184:2,171,184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,1" +
-"84:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,172,184:" +
-"3,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,173,184:3,-1:" +
-"3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3" +
-",184:3,174,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,18" +
-"4:5,-1:3,175,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6" +
-",184:5,-1:3,184:11,57,184,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,7" +
-"6,-1:6,184:5,-1:3,184:9,177,184:3,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,6" +
-"4,-1:2,76,-1:6,184:5,-1:3,184:6,178,184:6,-1:2,184:10,-1:3,76,184,76:3,-1:4" +
-",184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,58,184:7,-1:2,184:10,-1:3,76,184,76" +
-":3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,59,184:7,-1:2,184:10,-1:3,76" +
-",184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:11,60,184,-1:2,184:10,-" +
-"1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184,179,184:11,-1:2,1" +
-"84:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,180,184,-1:3,184:13" +
-",-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,181,184:3,64,-1:2,76,-1:6,184:5,-1" +
-":3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,182,64,-1:2,76,-1:6,184:5" +
-",-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5," +
-"-1:3,61,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:" +
-"5,-1:2,124,183,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:45,88,-1:61,98,-1:18," +
-"184:4,109,184,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:" +
-"3,-1:25,102,-1,188,-1:37,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,115,184:3,-" +
-"1:2,184:10,-1:3,76,184,76:3,-1:50,108,-1:14,184:6,64,-1:2,76,-1:6,184:3,117" +
-",184,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,18" +
-"4:5,-1:3,184,195,184:11,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76," +
-"-1:6,184,121,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-" +
-"1:2,76,-1:6,184:5,-1:3,184:4,137,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:4,18" +
-"4:6,64,-1:2,76,-1:6,184,133,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3," +
-"-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,198,184:12,-1:2,184:10,-1:3,76,184,76" +
-":3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,229,184:8,-1:2,184:10,-1:3,7" +
-"6,184,76:3,-1:4,184,200,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10" +
-",-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,144,184,-1:3,184:13,-1:2" +
-",184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:7,210,18" +
-"4:5,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,152," +
-"184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,163,184:3,64,-1:2,76,-1:6,18" +
-"4:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184" +
-":5,-1:3,176,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,81,64,-1:2,76,-1" +
-":6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:" +
-"6,184:5,-1:3,184:9,125,184:3,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:" +
-"2,76,-1:6,184,127,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6" +
-",64,-1:2,76,-1:6,184,134,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:" +
-"4,184:6,64,-1:2,76,-1:6,184:5,-1:3,199,184:12,-1:2,184:10,-1:3,76,184,76:3," +
-"-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,202,184:8,-1:2,184:10,-1:3,76,1" +
-"84,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,153,184:12,-1:2,184:10,-1:3,7" +
-"6,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,83,184:3,-1:3,184:13,-1:2,184:10," +
-"-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,194,184:3,-1:3,184:13,-1:2," +
-"184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,165,184" +
-":8,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,154,1" +
-"84:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,85,184:3," +
-"-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,196" +
-",184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6," +
-"184:5,-1:3,184:4,166,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,87,64,-1" +
-":2,76,-1:6,184:5,-1:3,184:7,89,184:5,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:" +
-"6,64,-1:2,76,-1:6,184:5,-1:3,184:4,169,184:8,-1:2,184:10,-1:3,76,184,76:3,-" +
-"1:4,184:5,187,64,-1:2,76,-1:6,184:5,-1:3,184:8,91,184:4,-1:2,184:10,-1:3,76" +
-",184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:3,93,184:3,95,184:5,-1:" +
-"2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,97,184:3,-1:3,184:" +
-"13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,99,184,-1:" +
-"3,101,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,189,64,-1:2,76,-1:6,18" +
-"4:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,201,184:3,64,-1:2,7" +
-"6,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,219,184:5,64,-1:" +
-"2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,203,184" +
-":3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:" +
-"6,64,-1:2,76,-1:6,184:5,-1:3,184,207,184:11,-1:2,184:10,-1:3,76,184,76:3,-1" +
-":4,184:2,214,184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,18" +
-"4,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,227,184:3,-1:2,184:10,-1" +
-":3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:10,230,184:2,-1:2," +
-"184:10,-1:3,76,184,76:3,-1:4,184:2,231,184:3,64,-1:2,76,-1:6,184:5,-1:3,184" +
-":13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:" +
-"4,232,184:8,-1:2,184:10,-1:3,76,184,76:3");
-
-	public java_cup.runtime.Symbol next_token ()
-		throws java.io.IOException, 
-Exception
-
-		{
-		int yy_lookahead;
-		int yy_anchor = YY_NO_ANCHOR;
-		int yy_state = yy_state_dtrans[yy_lexical_state];
-		int yy_next_state = YY_NO_STATE;
-		int yy_last_accept_state = YY_NO_STATE;
-		boolean yy_initial = true;
-		int yy_this_accept;
-
-		yy_mark_start();
-		yy_this_accept = yy_acpt[yy_state];
-		if (YY_NOT_ACCEPT != yy_this_accept) {
-			yy_last_accept_state = yy_state;
-			yy_mark_end();
-		}
-		while (true) {
-			if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL;
-			else yy_lookahead = yy_advance();
-			yy_next_state = YY_F;
-			yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
-			if (YY_EOF == yy_lookahead && true == yy_initial) {
-
-return newSymbol(sym.EOF);
-			}
-			if (YY_F != yy_next_state) {
-				yy_state = yy_next_state;
-				yy_initial = false;
-				yy_this_accept = yy_acpt[yy_state];
-				if (YY_NOT_ACCEPT != yy_this_accept) {
-					yy_last_accept_state = yy_state;
-					yy_mark_end();
-				}
-			}
-			else {
-				if (YY_NO_STATE == yy_last_accept_state) {
-					throw (new Error("Lexical Error: Unmatched Input."));
-				}
-				else {
-					yy_anchor = yy_acpt[yy_last_accept_state];
-					if (0 != (YY_END & yy_anchor)) {
-						yy_move_end();
-					}
-					yy_to_mark();
-					switch (yy_last_accept_state) {
-					case 1:
-						
-					case -2:
-						break;
-					case 2:
-						{ return disambiguateStar(); }
-					case -3:
-						break;
-					case 3:
-						{ return newSymbol(sym.SLASH); }
-					case -4:
-						break;
-					case 4:
-						{ return newSymbol(sym.PLUS); }
-					case -5:
-						break;
-					case 5:
-						{ return newSymbol(sym.MINUS); }
-					case -6:
-						break;
-					case 6:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -7:
-						break;
-					case 7:
-						{ throw new Exception(yytext()); }
-					case -8:
-						break;
-					case 8:
-						{ return newSymbol(sym.COMMA); }
-					case -9:
-						break;
-					case 9:
-						{ return newSymbol(sym.ATSIGN); }
-					case -10:
-						break;
-					case 10:
-						{ return newSymbol(sym.DOT); }
-					case -11:
-						break;
-					case 11:
-						{ return newSymbol(sym.VBAR); }
-					case -12:
-						break;
-					case 12:
-						{ return newSymbol(sym.DOLLAR); }
-					case -13:
-						break;
-					case 13:
-						{ return newSymbol(sym.EQ); }
-					case -14:
-						break;
-					case 14:
-						{ return newSymbol(sym.LT); }
-					case -15:
-						break;
-					case 15:
-						{ return newSymbol(sym.GT); }
-					case -16:
-						break;
-					case 16:
-						{ return newSymbol(sym.LPAREN); }
-					case -17:
-						break;
-					case 17:
-						{ return newSymbol(sym.RPAREN); }
-					case -18:
-						break;
-					case 18:
-						{ /* ignore white space. */ }
-					case -19:
-						break;
-					case 19:
-						{ return newSymbol(sym.LBRACK); }
-					case -20:
-						break;
-					case 20:
-						{ return newSymbol(sym.RBRACK); }
-					case -21:
-						break;
-					case 21:
-						{ return newSymbol(sym.INT, new Long(yytext())); }
-					case -22:
-						break;
-					case 22:
-						{ return newSymbol(sym.DSLASH); }
-					case -23:
-						break;
-					case 23:
-						{ return disambiguateAxisOrFunction(sym.ID); }
-					case -24:
-						break;
-					case 24:
-						{ return disambiguateOperator(sym.OR); }
-					case -25:
-						break;
-					case 25:
-						{ return newSymbol(sym.DCOLON); }
-					case -26:
-						break;
-					case 26:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -27:
-						break;
-					case 27:
-						{ return newSymbol(sym.DDOT); }
-					case -28:
-						break;
-					case 28:
-						{ return newSymbol(sym.REAL, new Double(yytext())); }
-					case -29:
-						break;
-					case 29:
-						{ return newSymbol(sym.NE); }
-					case -30:
-						break;
-					case 30:
-						{ return newSymbol(sym.LE); }
-					case -31:
-						break;
-					case 31:
-						{ return newSymbol(sym.GE); }
-					case -32:
-						break;
-					case 32:
-						{ return newSymbol(sym.Literal,
-			      yytext().substring(1, yytext().length() - 1)); }
-					case -33:
-						break;
-					case 33:
-						{ return newSymbol(sym.Literal,
-			      yytext().substring(1, yytext().length() - 1)); }
-					case -34:
-						break;
-					case 34:
-						{ return newSymbol(sym.REAL, new Double(yytext())); }
-					case -35:
-						break;
-					case 35:
-						{ return disambiguateOperator(sym.DIV); }
-					case -36:
-						break;
-					case 36:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -37:
-						break;
-					case 37:
-						{ return disambiguateOperator(sym.MOD); }
-					case -38:
-						break;
-					case 38:
-						{ return disambiguateAxisOrFunction(sym.KEY); }
-					case -39:
-						break;
-					case 39:
-						{ return disambiguateOperator(sym.AND); }
-					case -40:
-						break;
-					case 40:
-						{ return disambiguateAxisOrFunction(sym.SELF); }
-					case -41:
-						break;
-					case 41:
-						{ return disambiguateAxisOrFunction(sym.CHILD); }
-					case -42:
-						break;
-					case 42:
-						{ return newSymbol(sym.TEXT); }
-					case -43:
-						break;
-					case 43:
-						{ return newSymbol(sym.NODE); }
-					case -44:
-						break;
-					case 44:
-						{ return disambiguateAxisOrFunction(sym.PARENT); }
-					case -45:
-						break;
-					case 45:
-						{ return newSymbol(sym.TEXT); }
-					case -46:
-						break;
-					case 46:
-						{ return newSymbol(sym.NODE); }
-					case -47:
-						break;
-					case 47:
-						{ return disambiguateAxisOrFunction(sym.ANCESTOR); }
-					case -48:
-						break;
-					case 48:
-						{ initialize(); return new Symbol(sym.PATTERN); }
-					case -49:
-						break;
-					case 49:
-						{ return disambiguateAxisOrFunction(sym.NAMESPACE); }
-					case -50:
-						break;
-					case 50:
-						{ return newSymbol(sym.COMMENT); }
-					case -51:
-						break;
-					case 51:
-						{ return disambiguateAxisOrFunction(sym.PRECEDING); }
-					case -52:
-						break;
-					case 52:
-						{ return disambiguateAxisOrFunction(sym.ATTRIBUTE); }
-					case -53:
-						break;
-					case 53:
-						{ return disambiguateAxisOrFunction(sym.FOLLOWING); }
-					case -54:
-						break;
-					case 54:
-						{ return disambiguateAxisOrFunction(sym.DESCENDANT); }
-					case -55:
-						break;
-					case 55:
-						{ return newSymbol(sym.COMMENT); }
-					case -56:
-						break;
-					case 56:
-						{ initialize(); return new Symbol(sym.EXPRESSION); }
-					case -57:
-						break;
-					case 57:
-						{ return disambiguateAxisOrFunction(sym.ANCESTORORSELF); }
-					case -58:
-						break;
-					case 58:
-						{ return disambiguateAxisOrFunction(sym.PRECEDINGSIBLING); }
-					case -59:
-						break;
-					case 59:
-						{ return disambiguateAxisOrFunction(sym.FOLLOWINGSIBLING); }
-					case -60:
-						break;
-					case 60:
-						{ return disambiguateAxisOrFunction(sym.DESCENDANTORSELF); }
-					case -61:
-						break;
-					case 61:
-						{ return disambiguateAxisOrFunction(sym.PIPARAM); }
-					case -62:
-						break;
-					case 62:
-						{ return newSymbol(sym.PI); }
-					case -63:
-						break;
-					case 63:
-						{ return newSymbol(sym.PI); }
-					case -64:
-						break;
-					case 65:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -65:
-						break;
-					case 66:
-						{ throw new Exception(yytext()); }
-					case -66:
-						break;
-					case 67:
-						{ return newSymbol(sym.INT, new Long(yytext())); }
-					case -67:
-						break;
-					case 68:
-						{ return newSymbol(sym.REAL, new Double(yytext())); }
-					case -68:
-						break;
-					case 70:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -69:
-						break;
-					case 71:
-						{ throw new Exception(yytext()); }
-					case -70:
-						break;
-					case 73:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -71:
-						break;
-					case 74:
-						{ throw new Exception(yytext()); }
-					case -72:
-						break;
-					case 76:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -73:
-						break;
-					case 77:
-						{ throw new Exception(yytext()); }
-					case -74:
-						break;
-					case 79:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -75:
-						break;
-					case 81:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -76:
-						break;
-					case 83:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -77:
-						break;
-					case 85:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -78:
-						break;
-					case 87:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -79:
-						break;
-					case 89:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -80:
-						break;
-					case 91:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -81:
-						break;
-					case 93:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -82:
-						break;
-					case 95:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -83:
-						break;
-					case 97:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -84:
-						break;
-					case 99:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -85:
-						break;
-					case 101:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -86:
-						break;
-					case 103:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -87:
-						break;
-					case 105:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -88:
-						break;
-					case 107:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -89:
-						break;
-					case 109:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -90:
-						break;
-					case 111:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -91:
-						break;
-					case 113:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -92:
-						break;
-					case 115:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -93:
-						break;
-					case 117:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -94:
-						break;
-					case 119:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -95:
-						break;
-					case 121:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -96:
-						break;
-					case 123:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -97:
-						break;
-					case 125:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -98:
-						break;
-					case 127:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -99:
-						break;
-					case 128:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -100:
-						break;
-					case 129:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -101:
-						break;
-					case 130:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -102:
-						break;
-					case 131:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -103:
-						break;
-					case 132:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -104:
-						break;
-					case 133:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -105:
-						break;
-					case 134:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -106:
-						break;
-					case 135:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -107:
-						break;
-					case 136:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -108:
-						break;
-					case 137:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -109:
-						break;
-					case 138:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -110:
-						break;
-					case 139:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -111:
-						break;
-					case 140:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -112:
-						break;
-					case 141:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -113:
-						break;
-					case 142:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -114:
-						break;
-					case 143:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -115:
-						break;
-					case 144:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -116:
-						break;
-					case 145:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -117:
-						break;
-					case 146:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -118:
-						break;
-					case 147:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -119:
-						break;
-					case 148:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -120:
-						break;
-					case 149:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -121:
-						break;
-					case 150:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -122:
-						break;
-					case 151:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -123:
-						break;
-					case 152:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -124:
-						break;
-					case 153:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -125:
-						break;
-					case 154:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -126:
-						break;
-					case 155:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -127:
-						break;
-					case 156:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -128:
-						break;
-					case 157:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -129:
-						break;
-					case 158:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -130:
-						break;
-					case 159:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -131:
-						break;
-					case 160:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -132:
-						break;
-					case 161:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -133:
-						break;
-					case 162:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -134:
-						break;
-					case 163:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -135:
-						break;
-					case 164:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -136:
-						break;
-					case 165:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -137:
-						break;
-					case 166:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -138:
-						break;
-					case 167:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -139:
-						break;
-					case 168:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -140:
-						break;
-					case 169:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -141:
-						break;
-					case 170:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -142:
-						break;
-					case 171:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -143:
-						break;
-					case 172:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -144:
-						break;
-					case 173:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -145:
-						break;
-					case 174:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -146:
-						break;
-					case 175:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -147:
-						break;
-					case 176:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -148:
-						break;
-					case 177:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -149:
-						break;
-					case 178:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -150:
-						break;
-					case 179:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -151:
-						break;
-					case 180:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -152:
-						break;
-					case 181:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -153:
-						break;
-					case 182:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -154:
-						break;
-					case 183:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -155:
-						break;
-					case 184:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -156:
-						break;
-					case 187:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -157:
-						break;
-					case 189:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -158:
-						break;
-					case 191:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -159:
-						break;
-					case 192:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -160:
-						break;
-					case 193:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -161:
-						break;
-					case 194:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -162:
-						break;
-					case 195:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -163:
-						break;
-					case 196:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -164:
-						break;
-					case 197:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -165:
-						break;
-					case 198:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -166:
-						break;
-					case 199:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -167:
-						break;
-					case 200:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -168:
-						break;
-					case 201:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -169:
-						break;
-					case 202:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -170:
-						break;
-					case 203:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -171:
-						break;
-					case 204:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -172:
-						break;
-					case 205:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -173:
-						break;
-					case 206:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -174:
-						break;
-					case 207:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -175:
-						break;
-					case 208:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -176:
-						break;
-					case 209:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -177:
-						break;
-					case 210:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -178:
-						break;
-					case 211:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -179:
-						break;
-					case 212:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -180:
-						break;
-					case 213:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -181:
-						break;
-					case 214:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -182:
-						break;
-					case 215:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -183:
-						break;
-					case 216:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -184:
-						break;
-					case 217:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -185:
-						break;
-					case 218:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -186:
-						break;
-					case 219:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -187:
-						break;
-					case 220:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -188:
-						break;
-					case 221:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -189:
-						break;
-					case 222:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -190:
-						break;
-					case 223:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -191:
-						break;
-					case 224:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -192:
-						break;
-					case 225:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -193:
-						break;
-					case 226:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -194:
-						break;
-					case 227:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -195:
-						break;
-					case 228:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -196:
-						break;
-					case 229:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -197:
-						break;
-					case 230:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -198:
-						break;
-					case 231:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -199:
-						break;
-					case 232:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -200:
-						break;
-					case 233:
-						{ return newSymbol(sym.QNAME, yytext()); }
-					case -201:
-						break;
-					default:
-						yy_error(YY_E_INTERNAL,false);
-					case -1:
-					}
-					yy_initial = true;
-					yy_state = yy_state_dtrans[yy_lexical_state];
-					yy_next_state = YY_NO_STATE;
-					yy_last_accept_state = YY_NO_STATE;
-					yy_mark_start();
-					yy_this_accept = yy_acpt[yy_state];
-					if (YY_NOT_ACCEPT != yy_this_accept) {
-						yy_last_accept_state = yy_state;
-						yy_mark_end();
-					}
-				}
-			}
-		}
-	}
-}
diff --git a/src/org/apache/xalan/xsltc/compiler/XPathParser.java b/src/org/apache/xalan/xsltc/compiler/XPathParser.java
deleted file mode 100644
index 9b7688d7..00000000
--- a/src/org/apache/xalan/xsltc/compiler/XPathParser.java
+++ /dev/null
@@ -1,3149 +0,0 @@
-
-//----------------------------------------------------
-// The following code was generated by CUP v0.10k
-// Fri Sep 16 18:02:07 IST 2022
-//----------------------------------------------------
-
-package org.apache.xalan.xsltc.compiler;
-
-import java.util.Stack;
-import java.util.Vector;
-import java.io.StringReader;
-import java_cup.runtime.*;
-import org.apache.xml.dtm.DTM;
-import org.apache.xalan.xsltc.DOM;
-import org.apache.xml.dtm.Axis;
-import org.apache.xalan.xsltc.runtime.Operators;
-import org.apache.xalan.xsltc.compiler.util.ErrorMsg;
-
-/** CUP v0.10k generated parser.
-  * @version Fri Sep 16 18:02:07 IST 2022
-  */
-public class XPathParser extends java_cup.runtime.lr_parser {
-
-  /** Default constructor. */
-  public XPathParser() {super();}
-
-  /** Constructor which sets the default scanner. */
-  public XPathParser(java_cup.runtime.Scanner s) {super(s);}
-
-  /** Production table. */
-  protected static final short _production_table[][] = 
-    unpackFromStrings(new String[] {
-    "\000\215\000\002\002\004\000\002\003\004\000\002\003" +
-    "\004\000\002\036\003\000\002\036\005\000\002\037\003" +
-    "\000\002\037\004\000\002\037\003\000\002\037\005\000" +
-    "\002\037\005\000\002\037\004\000\002\037\003\000\002" +
-    "\035\006\000\002\035\010\000\002\040\006\000\002\041" +
-    "\003\000\002\041\005\000\002\041\005\000\002\042\003" +
-    "\000\002\042\004\000\002\042\003\000\002\042\004\000" +
-    "\002\042\004\000\002\042\005\000\002\042\004\000\002" +
-    "\042\005\000\002\043\003\000\002\043\003\000\002\043" +
-    "\003\000\002\043\003\000\002\043\003\000\002\044\003" +
-    "\000\002\044\003\000\002\054\003\000\002\054\004\000" +
-    "\002\054\004\000\002\045\003\000\002\045\004\000\002" +
-    "\007\005\000\002\004\003\000\002\012\003\000\002\012" +
-    "\005\000\002\013\003\000\002\013\005\000\002\014\003" +
-    "\000\002\014\005\000\002\014\005\000\002\015\003\000" +
-    "\002\015\005\000\002\015\005\000\002\015\005\000\002" +
-    "\015\005\000\002\016\003\000\002\016\005\000\002\016" +
-    "\005\000\002\017\003\000\002\017\005\000\002\017\005" +
-    "\000\002\017\005\000\002\020\003\000\002\020\004\000" +
-    "\002\024\003\000\002\024\005\000\002\025\003\000\002" +
-    "\025\003\000\002\025\005\000\002\025\005\000\002\006" +
-    "\003\000\002\006\003\000\002\027\003\000\002\027\005" +
-    "\000\002\027\003\000\002\031\003\000\002\031\004\000" +
-    "\002\031\003\000\002\030\005\000\002\032\004\000\002" +
-    "\011\003\000\002\011\004\000\002\011\005\000\002\011" +
-    "\004\000\002\011\003\000\002\053\004\000\002\053\003" +
-    "\000\002\052\003\000\002\052\003\000\002\052\003\000" +
-    "\002\052\003\000\002\052\003\000\002\052\003\000\002" +
-    "\052\003\000\002\052\003\000\002\052\003\000\002\052" +
-    "\003\000\002\052\003\000\002\052\003\000\002\052\003" +
-    "\000\002\026\003\000\002\026\003\000\002\010\003\000" +
-    "\002\010\004\000\002\023\003\000\002\023\005\000\002" +
-    "\023\003\000\002\023\003\000\002\023\003\000\002\023" +
-    "\003\000\002\021\004\000\002\022\005\000\002\022\006" +
-    "\000\002\046\003\000\002\046\005\000\002\050\003\000" +
-    "\002\051\003\000\002\005\003\000\002\033\003\000\002" +
-    "\033\003\000\002\033\003\000\002\033\003\000\002\033" +
-    "\006\000\002\033\003\000\002\034\003\000\002\034\003" +
-    "\000\002\047\003\000\002\047\003\000\002\047\003\000" +
-    "\002\047\003\000\002\047\003\000\002\047\003\000\002" +
-    "\047\003\000\002\047\003\000\002\047\003\000\002\047" +
-    "\003\000\002\047\003\000\002\047\003\000\002\047\003" +
-    "\000\002\047\003\000\002\047\003\000\002\047\003\000" +
-    "\002\047\003\000\002\047\003" });
-
-  /** Access to production table. */
-  public short[][] production_table() {return _production_table;}
-
-  /** Parse-action table. */
-  protected static final short[][] _action_table = 
-    unpackFromStrings(new String[] {
-    "\000\307\000\006\067\006\070\005\001\002\000\004\002" +
-    "\311\001\002\000\110\004\061\005\111\011\071\013\103" +
-    "\015\134\016\066\017\106\021\070\031\075\032\031\033" +
-    "\040\035\057\036\034\037\113\040\141\041\142\042\145" +
-    "\045\063\046\062\047\065\050\115\051\123\052\136\053" +
-    "\077\054\143\055\131\056\125\057\116\060\104\061\140" +
-    "\062\067\063\060\064\127\065\132\066\072\001\002\000" +
-    "\070\004\013\013\027\016\020\021\023\032\031\033\040" +
-    "\036\034\037\033\040\046\041\047\042\051\045\015\046" +
-    "\014\047\016\050\036\051\037\052\044\053\025\054\050" +
-    "\055\043\056\041\057\035\060\030\061\045\062\021\063" +
-    "\012\064\042\001\002\000\006\002\ufffe\010\306\001\002" +
-    "\000\004\002\000\001\002\000\014\002\uffe7\004\uffe7\006" +
-    "\uffe7\010\uffe7\021\uffe7\001\002\000\054\002\uff7a\004\uff7a" +
-    "\006\uff7a\007\uff7a\010\uff7a\012\uff7a\014\uff7a\021\uff7a\022" +
-    "\uff7a\023\uff7a\024\uff7a\025\uff7a\026\uff7a\027\uff7a\030\uff7a" +
-    "\031\uff7a\032\uff7a\033\uff7a\034\uff7a\043\uff7a\044\uff7a\001" +
-    "\002\000\070\002\ufffc\010\ufffc\013\027\016\020\032\031" +
-    "\033\040\036\034\037\113\040\141\041\047\042\051\045" +
-    "\015\046\014\047\016\050\036\051\037\052\044\053\025" +
-    "\054\050\055\043\056\041\057\035\060\030\061\045\062" +
-    "\021\063\012\064\042\001\002\000\014\002\uffe3\004\uffe3" +
-    "\006\uffe3\010\uffe3\021\uffe3\001\002\000\014\002\uffe4\004" +
-    "\uffe4\006\uffe4\010\uffe4\021\uffe4\001\002\000\004\011\302" +
-    "\001\002\000\012\002\ufffa\004\277\010\ufffa\021\276\001" +
-    "\002\000\062\013\uffe0\032\uffe0\033\uffe0\036\uffe0\037\uffe0" +
-    "\040\uffe0\041\uffe0\042\uffe0\045\uffe0\046\uffe0\047\uffe0\050" +
-    "\uffe0\051\uffe0\052\uffe0\053\uffe0\054\uffe0\055\uffe0\056\uffe0" +
-    "\057\uffe0\060\uffe0\061\uffe0\062\uffe0\063\uffe0\064\uffe0\001" +
-    "\002\000\054\002\uff7b\004\uff7b\006\uff7b\007\uff7b\010\uff7b" +
-    "\012\uff7b\014\uff7b\021\uff7b\022\uff7b\023\uff7b\024\uff7b\025" +
-    "\uff7b\026\uff7b\027\uff7b\030\uff7b\031\uff7b\032\uff7b\033\uff7b" +
-    "\034\uff7b\043\uff7b\044\uff7b\001\002\000\062\013\027\032" +
-    "\031\033\040\036\034\037\113\040\141\041\047\042\051" +
-    "\045\015\046\014\047\016\050\036\051\037\052\044\053" +
-    "\170\054\166\055\043\056\041\057\035\060\030\061\045" +
-    "\062\021\063\012\064\042\001\002\000\064\013\027\016" +
-    "\020\032\031\033\040\036\034\037\113\040\141\041\047" +
-    "\042\051\045\015\046\014\047\016\050\036\051\037\052" +
-    "\044\053\025\054\050\055\043\056\041\057\035\060\030" +
-    "\061\045\062\021\063\012\064\042\001\002\000\012\002" +
-    "\ufff2\004\266\010\ufff2\021\265\001\002\000\016\002\uff7f" +
-    "\004\uff7f\006\uff7f\010\uff7f\020\264\021\uff7f\001\002\000" +
-    "\006\002\ufff6\010\ufff6\001\002\000\014\002\uffe2\004\uffe2" +
-    "\006\uffe2\010\uffe2\021\uffe2\001\002\000\054\002\uff7d\004" +
-    "\uff7d\006\uff7d\007\uff7d\010\uff7d\012\uff7d\014\uff7d\021\uff7d" +
-    "\022\uff7d\023\uff7d\024\uff7d\025\uff7d\026\uff7d\027\uff7d\030" +
-    "\uff7d\031\uff7d\032\uff7d\033\uff7d\034\uff7d\043\uff7d\044\uff7d" +
-    "\001\002\000\056\002\uff85\004\uff85\006\uff85\007\uff85\010" +
-    "\uff85\011\uff85\012\uff85\014\uff85\021\uff85\022\uff85\023\uff85" +
-    "\024\uff85\025\uff85\026\uff85\027\uff85\030\uff85\031\uff85\032" +
-    "\uff85\033\uff85\034\uff85\043\uff85\044\uff85\001\002\000\014" +
-    "\002\uffed\004\uffed\006\055\010\uffed\021\uffed\001\002\000" +
-    "\016\002\uff75\004\uff75\006\uff75\010\uff75\011\260\021\uff75" +
-    "\001\002\000\056\002\uff86\004\uff86\006\uff86\007\uff86\010" +
-    "\uff86\011\uff86\012\uff86\014\uff86\021\uff86\022\uff86\023\uff86" +
-    "\024\uff86\025\uff86\026\uff86\027\uff86\030\uff86\031\uff86\032" +
-    "\uff86\033\uff86\034\uff86\043\uff86\044\uff86\001\002\000\054" +
-    "\002\uff7e\004\uff7e\006\uff7e\007\uff7e\010\uff7e\012\uff7e\014" +
-    "\uff7e\021\uff7e\022\uff7e\023\uff7e\024\uff7e\025\uff7e\026\uff7e" +
-    "\027\uff7e\030\uff7e\031\uff7e\032\uff7e\033\uff7e\034\uff7e\043" +
-    "\uff7e\044\uff7e\001\002\000\054\002\uff77\004\uff77\006\uff77" +
-    "\007\uff77\010\uff77\012\uff77\014\uff77\021\uff77\022\uff77\023" +
-    "\uff77\024\uff77\025\uff77\026\uff77\027\uff77\030\uff77\031\uff77" +
-    "\032\uff77\033\uff77\034\uff77\043\uff77\044\uff77\001\002\000" +
-    "\054\002\uff76\004\uff76\006\uff76\007\uff76\010\uff76\012\uff76" +
-    "\014\uff76\021\uff76\022\uff76\023\uff76\024\uff76\025\uff76\026" +
-    "\uff76\027\uff76\030\uff76\031\uff76\032\uff76\033\uff76\034\uff76" +
-    "\043\uff76\044\uff76\001\002\000\056\002\uff84\004\uff84\006" +
-    "\uff84\007\uff84\010\uff84\011\uff84\012\uff84\014\uff84\021\uff84" +
-    "\022\uff84\023\uff84\024\uff84\025\uff84\026\uff84\027\uff84\030" +
-    "\uff84\031\uff84\032\uff84\033\uff84\034\uff84\043\uff84\044\uff84" +
-    "\001\002\000\054\002\uff81\004\uff81\006\uff81\007\uff81\010" +
-    "\uff81\012\uff81\014\uff81\021\uff81\022\uff81\023\uff81\024\uff81" +
-    "\025\uff81\026\uff81\027\uff81\030\uff81\031\uff81\032\uff81\033" +
-    "\uff81\034\uff81\043\uff81\044\uff81\001\002\000\054\002\uff78" +
-    "\004\uff78\006\uff78\007\uff78\010\uff78\012\uff78\014\uff78\021" +
-    "\uff78\022\uff78\023\uff78\024\uff78\025\uff78\026\uff78\027\uff78" +
-    "\030\uff78\031\uff78\032\uff78\033\uff78\034\uff78\043\uff78\044" +
-    "\uff78\001\002\000\054\002\uff82\004\uff82\006\uff82\007\uff82" +
-    "\010\uff82\012\uff82\014\uff82\021\uff82\022\uff82\023\uff82\024" +
-    "\uff82\025\uff82\026\uff82\027\uff82\030\uff82\031\uff82\032\uff82" +
-    "\033\uff82\034\uff82\043\uff82\044\uff82\001\002\000\054\002" +
-    "\uff79\004\uff79\006\uff79\007\uff79\010\uff79\012\uff79\014\uff79" +
-    "\021\uff79\022\uff79\023\uff79\024\uff79\025\uff79\026\uff79\027" +
-    "\uff79\030\uff79\031\uff79\032\uff79\033\uff79\034\uff79\043\uff79" +
-    "\044\uff79\001\002\000\054\002\uff7c\004\uff7c\006\uff7c\007" +
-    "\uff7c\010\uff7c\012\uff7c\014\uff7c\021\uff7c\022\uff7c\023\uff7c" +
-    "\024\uff7c\025\uff7c\026\uff7c\027\uff7c\030\uff7c\031\uff7c\032" +
-    "\uff7c\033\uff7c\034\uff7c\043\uff7c\044\uff7c\001\002\000\016" +
-    "\002\uff83\004\uff83\006\uff83\010\uff83\011\253\021\uff83\001" +
-    "\002\000\014\002\uffe5\004\uffe5\006\uffe5\010\uffe5\021\uffe5" +
-    "\001\002\000\016\002\uff80\004\uff80\006\uff80\010\uff80\020" +
-    "\252\021\uff80\001\002\000\014\002\uffe6\004\uffe6\006\uffe6" +
-    "\010\uffe6\021\uffe6\001\002\000\014\002\uffe1\004\uffe1\006" +
-    "\uffe1\010\uffe1\021\uffe1\001\002\000\014\002\uffef\004\uffef" +
-    "\006\055\010\uffef\021\uffef\001\002\000\054\002\uffdd\004" +
-    "\uffdd\006\055\007\uffdd\010\uffdd\012\uffdd\014\uffdd\021\uffdd" +
-    "\022\uffdd\023\uffdd\024\uffdd\025\uffdd\026\uffdd\027\uffdd\030" +
-    "\uffdd\031\uffdd\032\uffdd\033\uffdd\034\uffdd\043\uffdd\044\uffdd" +
-    "\001\002\000\110\004\061\005\111\011\071\013\103\015" +
-    "\134\016\066\017\106\021\070\031\075\032\031\033\040" +
-    "\035\057\036\034\037\113\040\141\041\142\042\145\045" +
-    "\063\046\062\047\065\050\115\051\123\052\136\053\077" +
-    "\054\143\055\131\056\125\057\116\060\104\061\140\062" +
-    "\067\063\060\064\127\065\132\066\072\001\002\000\012" +
-    "\002\uffee\004\uffee\010\uffee\021\uffee\001\002\000\054\002" +
-    "\uff9a\004\uff9a\006\uff9a\007\uff9a\010\uff9a\012\uff9a\014\uff9a" +
-    "\021\uff9a\022\uff9a\023\uff9a\024\uff9a\025\uff9a\026\uff9a\027" +
-    "\uff9a\030\uff9a\031\uff9a\032\uff9a\033\uff9a\034\uff9a\043\uff9a" +
-    "\044\uff9a\001\002\000\060\002\uff7a\004\uff7a\006\uff7a\007" +
-    "\uff7a\010\uff7a\011\uff7a\012\uff7a\014\uff7a\020\uffa5\021\uff7a" +
-    "\022\uff7a\023\uff7a\024\uff7a\025\uff7a\026\uff7a\027\uff7a\030" +
-    "\uff7a\031\uff7a\032\uff7a\033\uff7a\034\uff7a\043\uff7a\044\uff7a" +
-    "\001\002\000\130\002\uffb9\005\111\007\uffb9\010\uffb9\012" +
-    "\uffb9\013\103\014\uffb9\016\066\017\106\022\uffb9\023\uffb9" +
-    "\024\uffb9\025\uffb9\026\uffb9\027\uffb9\030\uffb9\031\uffb9\032" +
-    "\031\033\040\034\uffb9\036\034\037\113\040\141\041\142" +
-    "\042\145\043\uffb9\044\uffb9\045\063\046\062\047\065\050" +
-    "\115\051\123\052\136\053\077\054\143\055\131\056\125" +
-    "\057\116\060\104\061\140\062\067\063\060\064\127\001" +
-    "\002\000\054\002\uff89\004\uff89\006\uff89\007\uff89\010\uff89" +
-    "\012\uff89\014\uff89\021\uff89\022\uff89\023\uff89\024\uff89\025" +
-    "\uff89\026\uff89\027\uff89\030\uff89\031\uff89\032\uff89\033\uff89" +
-    "\034\uff89\043\uff89\044\uff89\001\002\000\054\002\uff8b\004" +
-    "\uff8b\006\uff8b\007\uff8b\010\uff8b\012\uff8b\014\uff8b\021\uff8b" +
-    "\022\uff8b\023\uff8b\024\uff8b\025\uff8b\026\uff8b\027\uff8b\030" +
-    "\uff8b\031\uff8b\032\uff8b\033\uff8b\034\uff8b\043\uff8b\044\uff8b" +
-    "\001\002\000\032\002\uffd5\007\uffd5\012\uffd5\014\uffd5\022" +
-    "\uffd5\023\uffd5\024\221\025\222\026\223\027\224\043\uffd5" +
-    "\044\uffd5\001\002\000\004\011\245\001\002\000\062\013" +
-    "\uffae\032\uffae\033\uffae\036\uffae\037\uffae\040\uffae\041\uffae" +
-    "\042\uffae\045\uffae\046\uffae\047\uffae\050\uffae\051\uffae\052" +
-    "\uffae\053\uffae\054\uffae\055\uffae\056\uffae\057\uffae\060\uffae" +
-    "\061\uffae\062\uffae\063\uffae\064\uffae\001\002\000\060\002" +
-    "\uff7b\004\uff7b\006\uff7b\007\uff7b\010\uff7b\011\uff7b\012\uff7b" +
-    "\014\uff7b\020\uffa6\021\uff7b\022\uff7b\023\uff7b\024\uff7b\025" +
-    "\uff7b\026\uff7b\027\uff7b\030\uff7b\031\uff7b\032\uff7b\033\uff7b" +
-    "\034\uff7b\043\uff7b\044\uff7b\001\002\000\070\005\111\013" +
-    "\103\016\066\017\106\032\031\033\040\036\034\037\113" +
-    "\040\141\041\142\042\145\045\063\046\062\047\065\050" +
-    "\115\051\123\052\136\053\077\054\143\055\131\056\125" +
-    "\057\116\060\104\061\140\062\067\063\060\064\127\001" +
-    "\002\000\110\004\061\005\111\011\071\013\103\015\134" +
-    "\016\066\017\106\021\070\031\075\032\031\033\040\035" +
-    "\057\036\034\037\113\040\141\041\142\042\145\045\063" +
-    "\046\062\047\065\050\115\051\123\052\136\053\077\054" +
-    "\143\055\131\056\125\057\116\060\104\061\140\062\067" +
-    "\063\060\064\127\065\132\066\072\001\002\000\054\002" +
-    "\uff99\004\uff99\006\uff99\007\uff99\010\uff99\012\uff99\014\uff99" +
-    "\021\uff99\022\uff99\023\uff99\024\uff99\025\uff99\026\uff99\027" +
-    "\uff99\030\uff99\031\uff99\032\uff99\033\uff99\034\uff99\043\uff99" +
-    "\044\uff99\001\002\000\046\002\uffb7\007\uffb7\010\uffb7\012" +
-    "\uffb7\014\uffb7\022\uffb7\023\uffb7\024\uffb7\025\uffb7\026\uffb7" +
-    "\027\uffb7\030\uffb7\031\uffb7\032\uffb7\033\uffb7\034\uffb7\043" +
-    "\uffb7\044\uffb7\001\002\000\054\002\uff97\004\uff97\006\uff97" +
-    "\007\uff97\010\uff97\012\uff97\014\uff97\021\uff97\022\uff97\023" +
-    "\uff97\024\uff97\025\uff97\026\uff97\027\uff97\030\uff97\031\uff97" +
-    "\032\uff97\033\uff97\034\uff97\043\uff97\044\uff97\001\002\000" +
-    "\110\004\061\005\111\011\071\013\103\015\134\016\066" +
-    "\017\106\021\070\031\075\032\031\033\040\035\057\036" +
-    "\034\037\113\040\141\041\142\042\145\045\063\046\062" +
-    "\047\065\050\115\051\123\052\136\053\077\054\143\055" +
-    "\131\056\125\057\116\060\104\061\140\062\067\063\060" +
-    "\064\127\065\132\066\072\001\002\000\016\002\uffd9\007" +
-    "\uffd9\012\uffd9\014\uffd9\043\uffd9\044\234\001\002\000\060" +
-    "\002\uff7f\004\uff7f\006\uff7f\007\uff7f\010\uff7f\011\uff7f\012" +
-    "\uff7f\014\uff7f\020\uffaa\021\uff7f\022\uff7f\023\uff7f\024\uff7f" +
-    "\025\uff7f\026\uff7f\027\uff7f\030\uff7f\031\uff7f\032\uff7f\033" +
-    "\uff7f\034\uff7f\043\uff7f\044\uff7f\001\002\000\062\013\103" +
-    "\032\031\033\040\036\034\037\113\040\141\041\142\042" +
-    "\145\045\063\046\062\047\065\050\036\051\037\052\044" +
-    "\053\170\054\166\055\043\056\041\057\035\060\030\061" +
-    "\045\062\021\063\012\064\042\001\002\000\004\020\236" +
-    "\001\002\000\014\002\uffda\007\uffda\012\uffda\014\uffda\043" +
-    "\232\001\002\000\054\002\uff88\004\uff88\006\uff88\007\uff88" +
-    "\010\uff88\012\uff88\014\uff88\021\uff88\022\uff88\023\uff88\024" +
-    "\uff88\025\uff88\026\uff88\027\uff88\030\uff88\031\uff88\032\uff88" +
-    "\033\uff88\034\uff88\043\uff88\044\uff88\001\002\000\060\002" +
-    "\uff7d\004\uff7d\006\uff7d\007\uff7d\010\uff7d\011\uff7d\012\uff7d" +
-    "\014\uff7d\020\uffa8\021\uff7d\022\uff7d\023\uff7d\024\uff7d\025" +
-    "\uff7d\026\uff7d\027\uff7d\030\uff7d\031\uff7d\032\uff7d\033\uff7d" +
-    "\034\uff7d\043\uff7d\044\uff7d\001\002\000\022\002\uffd7\007" +
-    "\uffd7\012\uffd7\014\uffd7\022\216\023\217\043\uffd7\044\uffd7" +
-    "\001\002\000\052\002\uff9f\004\uff9f\007\uff9f\010\uff9f\012" +
-    "\uff9f\014\uff9f\021\uff9f\022\uff9f\023\uff9f\024\uff9f\025\uff9f" +
-    "\026\uff9f\027\uff9f\030\uff9f\031\uff9f\032\uff9f\033\uff9f\034" +
-    "\uff9f\043\uff9f\044\uff9f\001\002\000\054\002\uffb4\004\uffb4" +
-    "\006\055\007\uffb4\010\uffb4\012\uffb4\014\uffb4\021\uffb4\022" +
-    "\uffb4\023\uffb4\024\uffb4\025\uffb4\026\uffb4\027\uffb4\030\uffb4" +
-    "\031\uffb4\032\uffb4\033\uffb4\034\uffb4\043\uffb4\044\uffb4\001" +
-    "\002\000\046\002\uffbd\007\uffbd\010\uffbd\012\uffbd\014\uffbd" +
-    "\022\uffbd\023\uffbd\024\uffbd\025\uffbd\026\uffbd\027\uffbd\030" +
-    "\uffbd\031\uffbd\032\uffbd\033\uffbd\034\uffbd\043\uffbd\044\uffbd" +
-    "\001\002\000\052\002\uffa0\004\uffa0\007\uffa0\010\uffa0\012" +
-    "\uffa0\014\uffa0\021\uffa0\022\uffa0\023\uffa0\024\uffa0\025\uffa0" +
-    "\026\uffa0\027\uffa0\030\uffa0\031\uffa0\032\uffa0\033\uffa0\034" +
-    "\uffa0\043\uffa0\044\uffa0\001\002\000\036\002\uffd2\007\uffd2" +
-    "\012\uffd2\014\uffd2\022\uffd2\023\uffd2\024\uffd2\025\uffd2\026" +
-    "\uffd2\027\uffd2\030\211\031\212\043\uffd2\044\uffd2\001\002" +
-    "\000\056\002\uff75\004\uff75\006\uff75\007\uff75\010\uff75\011" +
-    "\uff75\012\uff75\014\uff75\021\uff75\022\uff75\023\uff75\024\uff75" +
-    "\025\uff75\026\uff75\027\uff75\030\uff75\031\uff75\032\uff75\033" +
-    "\uff75\034\uff75\043\uff75\044\uff75\001\002\000\044\002\uffca" +
-    "\007\uffca\012\uffca\014\uffca\022\uffca\023\uffca\024\uffca\025" +
-    "\uffca\026\uffca\027\uffca\030\uffca\031\uffca\032\uffca\033\uffca" +
-    "\034\uffca\043\uffca\044\uffca\001\002\000\060\002\uff77\004" +
-    "\uff77\006\uff77\007\uff77\010\uff77\011\uff77\012\uff77\014\uff77" +
-    "\020\uffa2\021\uff77\022\uff77\023\uff77\024\uff77\025\uff77\026" +
-    "\uff77\027\uff77\030\uff77\031\uff77\032\uff77\033\uff77\034\uff77" +
-    "\043\uff77\044\uff77\001\002\000\060\002\uff7e\004\uff7e\006" +
-    "\uff7e\007\uff7e\010\uff7e\011\uff7e\012\uff7e\014\uff7e\020\uffa9" +
-    "\021\uff7e\022\uff7e\023\uff7e\024\uff7e\025\uff7e\026\uff7e\027" +
-    "\uff7e\030\uff7e\031\uff7e\032\uff7e\033\uff7e\034\uff7e\043\uff7e" +
-    "\044\uff7e\001\002\000\004\011\201\001\002\000\052\002" +
-    "\uffbc\004\uffbc\007\uffbc\010\uffbc\012\uffbc\014\uffbc\021\uffbc" +
-    "\022\uffbc\023\uffbc\024\uffbc\025\uffbc\026\uffbc\027\uffbc\030" +
-    "\uffbc\031\uffbc\032\uffbc\033\uffbc\034\uffbc\043\uffbc\044\uffbc" +
-    "\001\002\000\046\002\uffc2\007\uffc2\010\uffc2\012\uffc2\014" +
-    "\uffc2\022\uffc2\023\uffc2\024\uffc2\025\uffc2\026\uffc2\027\uffc2" +
-    "\030\uffc2\031\uffc2\032\uffc2\033\uffc2\034\uffc2\043\uffc2\044" +
-    "\uffc2\001\002\000\054\002\uff9e\004\uff9e\006\055\007\uff9e" +
-    "\010\uff9e\012\uff9e\014\uff9e\021\uff9e\022\uff9e\023\uff9e\024" +
-    "\uff9e\025\uff9e\026\uff9e\027\uff9e\030\uff9e\031\uff9e\032\uff9e" +
-    "\033\uff9e\034\uff9e\043\uff9e\044\uff9e\001\002\000\060\002" +
-    "\uff76\004\uff76\006\uff76\007\uff76\010\uff76\011\uff76\012\uff76" +
-    "\014\uff76\020\uffa1\021\uff76\022\uff76\023\uff76\024\uff76\025" +
-    "\uff76\026\uff76\027\uff76\030\uff76\031\uff76\032\uff76\033\uff76" +
-    "\034\uff76\043\uff76\044\uff76\001\002\000\046\002\uffc4\007" +
-    "\uffc4\010\176\012\uffc4\014\uffc4\022\uffc4\023\uffc4\024\uffc4" +
-    "\025\uffc4\026\uffc4\027\uffc4\030\uffc4\031\uffc4\032\uffc4\033" +
-    "\uffc4\034\uffc4\043\uffc4\044\uffc4\001\002\000\060\002\uff81" +
-    "\004\uff81\006\uff81\007\uff81\010\uff81\011\uff81\012\uff81\014" +
-    "\uff81\020\uffac\021\uff81\022\uff81\023\uff81\024\uff81\025\uff81" +
-    "\026\uff81\027\uff81\030\uff81\031\uff81\032\uff81\033\uff81\034" +
-    "\uff81\043\uff81\044\uff81\001\002\000\054\002\uff9c\004\uff9c" +
-    "\006\uff9c\007\uff9c\010\uff9c\012\uff9c\014\uff9c\021\uff9c\022" +
-    "\uff9c\023\uff9c\024\uff9c\025\uff9c\026\uff9c\027\uff9c\030\uff9c" +
-    "\031\uff9c\032\uff9c\033\uff9c\034\uff9c\043\uff9c\044\uff9c\001" +
-    "\002\000\060\002\uff78\004\uff78\006\uff78\007\uff78\010\uff78" +
-    "\011\uff78\012\uff78\014\uff78\020\uffa3\021\uff78\022\uff78\023" +
-    "\uff78\024\uff78\025\uff78\026\uff78\027\uff78\030\uff78\031\uff78" +
-    "\032\uff78\033\uff78\034\uff78\043\uff78\044\uff78\001\002\000" +
-    "\052\002\uffc1\004\173\007\uffc1\010\uffc1\012\uffc1\014\uffc1" +
-    "\021\172\022\uffc1\023\uffc1\024\uffc1\025\uffc1\026\uffc1\027" +
-    "\uffc1\030\uffc1\031\uffc1\032\uffc1\033\uffc1\034\uffc1\043\uffc1" +
-    "\044\uffc1\001\002\000\060\002\uff82\004\uff82\006\uff82\007" +
-    "\uff82\010\uff82\011\uff82\012\uff82\014\uff82\020\uffad\021\uff82" +
-    "\022\uff82\023\uff82\024\uff82\025\uff82\026\uff82\027\uff82\030" +
-    "\uff82\031\uff82\032\uff82\033\uff82\034\uff82\043\uff82\044\uff82" +
-    "\001\002\000\054\002\uff98\004\uff98\006\uff98\007\uff98\010" +
-    "\uff98\012\uff98\014\uff98\021\uff98\022\uff98\023\uff98\024\uff98" +
-    "\025\uff98\026\uff98\027\uff98\030\uff98\031\uff98\032\uff98\033" +
-    "\uff98\034\uff98\043\uff98\044\uff98\001\002\000\004\007\171" +
-    "\001\002\000\046\032\031\033\040\036\034\037\113\040" +
-    "\141\050\036\051\037\052\044\053\170\054\166\055\043" +
-    "\056\041\057\035\060\030\061\045\062\021\063\012\064" +
-    "\042\001\002\000\052\002\uffba\004\uffba\007\uffba\010\uffba" +
-    "\012\uffba\014\uffba\021\uffba\022\uffba\023\uffba\024\uffba\025" +
-    "\uffba\026\uffba\027\uffba\030\uffba\031\uffba\032\uffba\033\uffba" +
-    "\034\uffba\043\uffba\044\uffba\001\002\000\060\002\uff79\004" +
-    "\uff79\006\uff79\007\uff79\010\uff79\011\uff79\012\uff79\014\uff79" +
-    "\020\uffa4\021\uff79\022\uff79\023\uff79\024\uff79\025\uff79\026" +
-    "\uff79\027\uff79\030\uff79\031\uff79\032\uff79\033\uff79\034\uff79" +
-    "\043\uff79\044\uff79\001\002\000\052\002\uffb0\004\uffb0\007" +
-    "\uffb0\010\uffb0\012\uffb0\014\uffb0\021\uffb0\022\uffb0\023\uffb0" +
-    "\024\uffb0\025\uffb0\026\uffb0\027\uffb0\030\uffb0\031\uffb0\032" +
-    "\uffb0\033\uffb0\034\uffb0\043\uffb0\044\uffb0\001\002\000\060" +
-    "\002\uff7c\004\uff7c\006\uff7c\007\uff7c\010\uff7c\011\uff7c\012" +
-    "\uff7c\014\uff7c\020\uffa7\021\uff7c\022\uff7c\023\uff7c\024\uff7c" +
-    "\025\uff7c\026\uff7c\027\uff7c\030\uff7c\031\uff7c\032\uff7c\033" +
-    "\uff7c\034\uff7c\043\uff7c\044\uff7c\001\002\000\056\002\uff83" +
-    "\004\uff83\006\uff83\007\uff83\010\uff83\011\uff83\012\uff83\014" +
-    "\uff83\021\uff83\022\uff83\023\uff83\024\uff83\025\uff83\026\uff83" +
-    "\027\uff83\030\uff83\031\uff83\032\uff83\033\uff83\034\uff83\043" +
-    "\uff83\044\uff83\001\002\000\054\002\uff8c\004\uff8c\006\uff8c" +
-    "\007\uff8c\010\uff8c\012\uff8c\014\uff8c\021\uff8c\022\uff8c\023" +
-    "\uff8c\024\uff8c\025\uff8c\026\uff8c\027\uff8c\030\uff8c\031\uff8c" +
-    "\032\uff8c\033\uff8c\034\uff8c\043\uff8c\044\uff8c\001\002\000" +
-    "\060\002\uff80\004\uff80\006\uff80\007\uff80\010\uff80\011\uff80" +
-    "\012\uff80\014\uff80\020\uffab\021\uff80\022\uff80\023\uff80\024" +
-    "\uff80\025\uff80\026\uff80\027\uff80\030\uff80\031\uff80\032\uff80" +
-    "\033\uff80\034\uff80\043\uff80\044\uff80\001\002\000\044\002" +
-    "\uffc6\007\uffc6\012\uffc6\014\uffc6\022\uffc6\023\uffc6\024\uffc6" +
-    "\025\uffc6\026\uffc6\027\uffc6\030\uffc6\031\uffc6\032\uffc6\033" +
-    "\uffc6\034\uffc6\043\uffc6\044\uffc6\001\002\000\054\002\uff8d" +
-    "\004\uff8d\006\uff8d\007\uff8d\010\uff8d\012\uff8d\014\uff8d\021" +
-    "\uff8d\022\uff8d\023\uff8d\024\uff8d\025\uff8d\026\uff8d\027\uff8d" +
-    "\030\uff8d\031\uff8d\032\uff8d\033\uff8d\034\uff8d\043\uff8d\044" +
-    "\uff8d\001\002\000\044\002\uffcd\007\uffcd\012\uffcd\014\uffcd" +
-    "\022\uffcd\023\uffcd\024\uffcd\025\uffcd\026\uffcd\027\uffcd\030" +
-    "\uffcd\031\uffcd\032\161\033\157\034\160\043\uffcd\044\uffcd" +
-    "\001\002\000\052\002\uffbe\004\153\007\uffbe\010\uffbe\012" +
-    "\uffbe\014\uffbe\021\152\022\uffbe\023\uffbe\024\uffbe\025\uffbe" +
-    "\026\uffbe\027\uffbe\030\uffbe\031\uffbe\032\uffbe\033\uffbe\034" +
-    "\uffbe\043\uffbe\044\uffbe\001\002\000\054\002\uff8e\004\uff8e" +
-    "\006\uff8e\007\uff8e\010\uff8e\012\uff8e\014\uff8e\021\uff8e\022" +
-    "\uff8e\023\uff8e\024\uff8e\025\uff8e\026\uff8e\027\uff8e\030\uff8e" +
-    "\031\uff8e\032\uff8e\033\uff8e\034\uff8e\043\uff8e\044\uff8e\001" +
-    "\002\000\056\002\uff87\004\uff87\006\uff87\007\uff87\010\uff87" +
-    "\011\uff91\012\uff87\014\uff87\021\uff87\022\uff87\023\uff87\024" +
-    "\uff87\025\uff87\026\uff87\027\uff87\030\uff87\031\uff87\032\uff87" +
-    "\033\uff87\034\uff87\043\uff87\044\uff87\001\002\000\070\005" +
-    "\111\013\103\016\066\017\106\032\031\033\040\036\034" +
-    "\037\113\040\141\041\142\042\145\045\063\046\062\047" +
-    "\065\050\115\051\123\052\136\053\077\054\143\055\131" +
-    "\056\125\057\116\060\104\061\140\062\067\063\060\064" +
-    "\127\001\002\000\070\005\111\013\103\016\066\017\106" +
-    "\032\031\033\040\036\034\037\113\040\141\041\142\042" +
-    "\145\045\063\046\062\047\065\050\115\051\123\052\136" +
-    "\053\077\054\143\055\131\056\125\057\116\060\104\061" +
-    "\140\062\067\063\060\064\127\001\002\000\054\002\uff87" +
-    "\004\uff87\006\uff87\007\uff87\010\uff87\012\uff87\014\uff87\021" +
-    "\uff87\022\uff87\023\uff87\024\uff87\025\uff87\026\uff87\027\uff87" +
-    "\030\uff87\031\uff87\032\uff87\033\uff87\034\uff87\043\uff87\044" +
-    "\uff87\001\002\000\052\002\uffbb\004\uffbb\007\uffbb\010\uffbb" +
-    "\012\uffbb\014\uffbb\021\uffbb\022\uffbb\023\uffbb\024\uffbb\025" +
-    "\uffbb\026\uffbb\027\uffbb\030\uffbb\031\uffbb\032\uffbb\033\uffbb" +
-    "\034\uffbb\043\uffbb\044\uffbb\001\002\000\052\002\uffb6\004" +
-    "\uffb6\007\uffb6\010\uffb6\012\uffb6\014\uffb6\021\uffb6\022\uffb6" +
-    "\023\uffb6\024\uffb6\025\uffb6\026\uffb6\027\uffb6\030\uffb6\031" +
-    "\uffb6\032\uffb6\033\uffb6\034\uffb6\043\uffb6\044\uffb6\001\002" +
-    "\000\110\004\061\005\111\011\071\013\103\015\134\016" +
-    "\066\017\106\021\070\031\075\032\031\033\040\035\057" +
-    "\036\034\037\113\040\141\041\142\042\145\045\063\046" +
-    "\062\047\065\050\115\051\123\052\136\053\077\054\143" +
-    "\055\131\056\125\057\116\060\104\061\140\062\067\063" +
-    "\060\064\127\065\132\066\072\001\002\000\110\004\061" +
-    "\005\111\011\071\013\103\015\134\016\066\017\106\021" +
-    "\070\031\075\032\031\033\040\035\057\036\034\037\113" +
-    "\040\141\041\142\042\145\045\063\046\062\047\065\050" +
-    "\115\051\123\052\136\053\077\054\143\055\131\056\125" +
-    "\057\116\060\104\061\140\062\067\063\060\064\127\065" +
-    "\132\066\072\001\002\000\110\004\061\005\111\011\071" +
-    "\013\103\015\134\016\066\017\106\021\070\031\075\032" +
-    "\031\033\040\035\057\036\034\037\113\040\141\041\142" +
-    "\042\145\045\063\046\062\047\065\050\115\051\123\052" +
-    "\136\053\077\054\143\055\131\056\125\057\116\060\104" +
-    "\061\140\062\067\063\060\064\127\065\132\066\072\001" +
-    "\002\000\044\002\uffc8\007\uffc8\012\uffc8\014\uffc8\022\uffc8" +
-    "\023\uffc8\024\uffc8\025\uffc8\026\uffc8\027\uffc8\030\uffc8\031" +
-    "\uffc8\032\uffc8\033\uffc8\034\uffc8\043\uffc8\044\uffc8\001\002" +
-    "\000\044\002\uffc9\007\uffc9\012\uffc9\014\uffc9\022\uffc9\023" +
-    "\uffc9\024\uffc9\025\uffc9\026\uffc9\027\uffc9\030\uffc9\031\uffc9" +
-    "\032\uffc9\033\uffc9\034\uffc9\043\uffc9\044\uffc9\001\002\000" +
-    "\044\002\uffc7\007\uffc7\012\uffc7\014\uffc7\022\uffc7\023\uffc7" +
-    "\024\uffc7\025\uffc7\026\uffc7\027\uffc7\030\uffc7\031\uffc7\032" +
-    "\uffc7\033\uffc7\034\uffc7\043\uffc7\044\uffc7\001\002\000\054" +
-    "\002\uff90\004\uff90\006\uff90\007\uff90\010\uff90\012\uff90\014" +
-    "\uff90\021\uff90\022\uff90\023\uff90\024\uff90\025\uff90\026\uff90" +
-    "\027\uff90\030\uff90\031\uff90\032\uff90\033\uff90\034\uff90\043" +
-    "\uff90\044\uff90\001\002\000\054\002\uff80\004\uff80\006\uff80" +
-    "\007\uff80\010\uff80\012\uff80\014\uff80\021\uff80\022\uff80\023" +
-    "\uff80\024\uff80\025\uff80\026\uff80\027\uff80\030\uff80\031\uff80" +
-    "\032\uff80\033\uff80\034\uff80\043\uff80\044\uff80\001\002\000" +
-    "\054\002\uff96\004\uff96\006\uff96\007\uff96\010\uff96\012\uff96" +
-    "\014\uff96\021\uff96\022\uff96\023\uff96\024\uff96\025\uff96\026" +
-    "\uff96\027\uff96\030\uff96\031\uff96\032\uff96\033\uff96\034\uff96" +
-    "\043\uff96\044\uff96\001\002\000\054\002\uff7f\004\uff7f\006" +
-    "\uff7f\007\uff7f\010\uff7f\012\uff7f\014\uff7f\021\uff7f\022\uff7f" +
-    "\023\uff7f\024\uff7f\025\uff7f\026\uff7f\027\uff7f\030\uff7f\031" +
-    "\uff7f\032\uff7f\033\uff7f\034\uff7f\043\uff7f\044\uff7f\001\002" +
-    "\000\054\002\uffdb\004\uffdb\006\uffdb\007\uffdb\010\uffdb\012" +
-    "\uffdb\014\uffdb\021\uffdb\022\uffdb\023\uffdb\024\uffdb\025\uffdb" +
-    "\026\uffdb\027\uffdb\030\uffdb\031\uffdb\032\uffdb\033\uffdb\034" +
-    "\uffdb\043\uffdb\044\uffdb\001\002\000\070\005\111\013\103" +
-    "\016\066\017\106\032\031\033\040\036\034\037\113\040" +
-    "\141\041\142\042\145\045\063\046\062\047\065\050\115" +
-    "\051\123\052\136\053\077\054\143\055\131\056\125\057" +
-    "\116\060\104\061\140\062\067\063\060\064\127\001\002" +
-    "\000\070\005\111\013\103\016\066\017\106\032\031\033" +
-    "\040\036\034\037\113\040\141\041\142\042\145\045\063" +
-    "\046\062\047\065\050\115\051\123\052\136\053\077\054" +
-    "\143\055\131\056\125\057\116\060\104\061\140\062\067" +
-    "\063\060\064\127\001\002\000\052\002\uffc0\004\153\007" +
-    "\uffc0\010\uffc0\012\uffc0\014\uffc0\021\152\022\uffc0\023\uffc0" +
-    "\024\uffc0\025\uffc0\026\uffc0\027\uffc0\030\uffc0\031\uffc0\032" +
-    "\uffc0\033\uffc0\034\uffc0\043\uffc0\044\uffc0\001\002\000\052" +
-    "\002\uffbf\004\153\007\uffbf\010\uffbf\012\uffbf\014\uffbf\021" +
-    "\152\022\uffbf\023\uffbf\024\uffbf\025\uffbf\026\uffbf\027\uffbf" +
-    "\030\uffbf\031\uffbf\032\uffbf\033\uffbf\034\uffbf\043\uffbf\044" +
-    "\uffbf\001\002\000\106\004\061\005\111\011\071\013\103" +
-    "\015\134\016\066\017\106\021\070\032\031\033\040\035" +
-    "\057\036\034\037\113\040\141\041\142\042\145\045\063" +
-    "\046\062\047\065\050\115\051\123\052\136\053\077\054" +
-    "\143\055\131\056\125\057\116\060\104\061\140\062\067" +
-    "\063\060\064\127\065\132\066\072\001\002\000\044\002" +
-    "\uffc3\007\uffc3\012\uffc3\014\uffc3\022\uffc3\023\uffc3\024\uffc3" +
-    "\025\uffc3\026\uffc3\027\uffc3\030\uffc3\031\uffc3\032\uffc3\033" +
-    "\uffc3\034\uffc3\043\uffc3\044\uffc3\001\002\000\052\002\uff9d" +
-    "\004\uff9d\007\uff9d\010\uff9d\012\uff9d\014\uff9d\021\uff9d\022" +
-    "\uff9d\023\uff9d\024\uff9d\025\uff9d\026\uff9d\027\uff9d\030\uff9d" +
-    "\031\uff9d\032\uff9d\033\uff9d\034\uff9d\043\uff9d\044\uff9d\001" +
-    "\002\000\112\004\061\005\111\011\071\012\202\013\103" +
-    "\015\134\016\066\017\106\021\070\031\075\032\031\033" +
-    "\040\035\057\036\034\037\113\040\141\041\142\042\145" +
-    "\045\063\046\062\047\065\050\115\051\123\052\136\053" +
-    "\077\054\143\055\131\056\125\057\116\060\104\061\140" +
-    "\062\067\063\060\064\127\065\132\066\072\001\002\000" +
-    "\054\002\uff95\004\uff95\006\uff95\007\uff95\010\uff95\012\uff95" +
-    "\014\uff95\021\uff95\022\uff95\023\uff95\024\uff95\025\uff95\026" +
-    "\uff95\027\uff95\030\uff95\031\uff95\032\uff95\033\uff95\034\uff95" +
-    "\043\uff95\044\uff95\001\002\000\006\012\uff93\014\207\001" +
-    "\002\000\006\012\uff8f\014\uff8f\001\002\000\004\012\206" +
-    "\001\002\000\054\002\uff94\004\uff94\006\uff94\007\uff94\010" +
-    "\uff94\012\uff94\014\uff94\021\uff94\022\uff94\023\uff94\024\uff94" +
-    "\025\uff94\026\uff94\027\uff94\030\uff94\031\uff94\032\uff94\033" +
-    "\uff94\034\uff94\043\uff94\044\uff94\001\002\000\110\004\061" +
-    "\005\111\011\071\013\103\015\134\016\066\017\106\021" +
-    "\070\031\075\032\031\033\040\035\057\036\034\037\113" +
-    "\040\141\041\142\042\145\045\063\046\062\047\065\050" +
-    "\115\051\123\052\136\053\077\054\143\055\131\056\125" +
-    "\057\116\060\104\061\140\062\067\063\060\064\127\065" +
-    "\132\066\072\001\002\000\004\012\uff92\001\002\000\110" +
-    "\004\061\005\111\011\071\013\103\015\134\016\066\017" +
-    "\106\021\070\031\075\032\031\033\040\035\057\036\034" +
-    "\037\113\040\141\041\142\042\145\045\063\046\062\047" +
-    "\065\050\115\051\123\052\136\053\077\054\143\055\131" +
-    "\056\125\057\116\060\104\061\140\062\067\063\060\064" +
-    "\127\065\132\066\072\001\002\000\110\004\061\005\111" +
-    "\011\071\013\103\015\134\016\066\017\106\021\070\031" +
-    "\075\032\031\033\040\035\057\036\034\037\113\040\141" +
-    "\041\142\042\145\045\063\046\062\047\065\050\115\051" +
-    "\123\052\136\053\077\054\143\055\131\056\125\057\116" +
-    "\060\104\061\140\062\067\063\060\064\127\065\132\066" +
-    "\072\001\002\000\044\002\uffcb\007\uffcb\012\uffcb\014\uffcb" +
-    "\022\uffcb\023\uffcb\024\uffcb\025\uffcb\026\uffcb\027\uffcb\030" +
-    "\uffcb\031\uffcb\032\161\033\157\034\160\043\uffcb\044\uffcb" +
-    "\001\002\000\044\002\uffcc\007\uffcc\012\uffcc\014\uffcc\022" +
-    "\uffcc\023\uffcc\024\uffcc\025\uffcc\026\uffcc\027\uffcc\030\uffcc" +
-    "\031\uffcc\032\161\033\157\034\160\043\uffcc\044\uffcc\001" +
-    "\002\000\052\002\uffb3\004\uffb3\007\uffb3\010\uffb3\012\uffb3" +
-    "\014\uffb3\021\uffb3\022\uffb3\023\uffb3\024\uffb3\025\uffb3\026" +
-    "\uffb3\027\uffb3\030\uffb3\031\uffb3\032\uffb3\033\uffb3\034\uffb3" +
-    "\043\uffb3\044\uffb3\001\002\000\110\004\061\005\111\011" +
-    "\071\013\103\015\134\016\066\017\106\021\070\031\075" +
-    "\032\031\033\040\035\057\036\034\037\113\040\141\041" +
-    "\142\042\145\045\063\046\062\047\065\050\115\051\123" +
-    "\052\136\053\077\054\143\055\131\056\125\057\116\060" +
-    "\104\061\140\062\067\063\060\064\127\065\132\066\072" +
-    "\001\002\000\110\004\061\005\111\011\071\013\103\015" +
-    "\134\016\066\017\106\021\070\031\075\032\031\033\040" +
-    "\035\057\036\034\037\113\040\141\041\142\042\145\045" +
-    "\063\046\062\047\065\050\115\051\123\052\136\053\077" +
-    "\054\143\055\131\056\125\057\116\060\104\061\140\062" +
-    "\067\063\060\064\127\065\132\066\072\001\002\000\032" +
-    "\002\uffd3\007\uffd3\012\uffd3\014\uffd3\022\uffd3\023\uffd3\024" +
-    "\221\025\222\026\223\027\224\043\uffd3\044\uffd3\001\002" +
-    "\000\110\004\061\005\111\011\071\013\103\015\134\016" +
-    "\066\017\106\021\070\031\075\032\031\033\040\035\057" +
-    "\036\034\037\113\040\141\041\142\042\145\045\063\046" +
-    "\062\047\065\050\115\051\123\052\136\053\077\054\143" +
-    "\055\131\056\125\057\116\060\104\061\140\062\067\063" +
-    "\060\064\127\065\132\066\072\001\002\000\110\004\061" +
-    "\005\111\011\071\013\103\015\134\016\066\017\106\021" +
-    "\070\031\075\032\031\033\040\035\057\036\034\037\113" +
-    "\040\141\041\142\042\145\045\063\046\062\047\065\050" +
-    "\115\051\123\052\136\053\077\054\143\055\131\056\125" +
-    "\057\116\060\104\061\140\062\067\063\060\064\127\065" +
-    "\132\066\072\001\002\000\110\004\061\005\111\011\071" +
-    "\013\103\015\134\016\066\017\106\021\070\031\075\032" +
-    "\031\033\040\035\057\036\034\037\113\040\141\041\142" +
-    "\042\145\045\063\046\062\047\065\050\115\051\123\052" +
-    "\136\053\077\054\143\055\131\056\125\057\116\060\104" +
-    "\061\140\062\067\063\060\064\127\065\132\066\072\001" +
-    "\002\000\110\004\061\005\111\011\071\013\103\015\134" +
-    "\016\066\017\106\021\070\031\075\032\031\033\040\035" +
-    "\057\036\034\037\113\040\141\041\142\042\145\045\063" +
-    "\046\062\047\065\050\115\051\123\052\136\053\077\054" +
-    "\143\055\131\056\125\057\116\060\104\061\140\062\067" +
-    "\063\060\064\127\065\132\066\072\001\002\000\036\002" +
-    "\uffce\007\uffce\012\uffce\014\uffce\022\uffce\023\uffce\024\uffce" +
-    "\025\uffce\026\uffce\027\uffce\030\211\031\212\043\uffce\044" +
-    "\uffce\001\002\000\036\002\uffcf\007\uffcf\012\uffcf\014\uffcf" +
-    "\022\uffcf\023\uffcf\024\uffcf\025\uffcf\026\uffcf\027\uffcf\030" +
-    "\211\031\212\043\uffcf\044\uffcf\001\002\000\036\002\uffd0" +
-    "\007\uffd0\012\uffd0\014\uffd0\022\uffd0\023\uffd0\024\uffd0\025" +
-    "\uffd0\026\uffd0\027\uffd0\030\211\031\212\043\uffd0\044\uffd0" +
-    "\001\002\000\036\002\uffd1\007\uffd1\012\uffd1\014\uffd1\022" +
-    "\uffd1\023\uffd1\024\uffd1\025\uffd1\026\uffd1\027\uffd1\030\211" +
-    "\031\212\043\uffd1\044\uffd1\001\002\000\032\002\uffd4\007" +
-    "\uffd4\012\uffd4\014\uffd4\022\uffd4\023\uffd4\024\221\025\222" +
-    "\026\223\027\224\043\uffd4\044\uffd4\001\002\000\110\004" +
-    "\061\005\111\011\071\013\103\015\134\016\066\017\106" +
-    "\021\070\031\075\032\031\033\040\035\057\036\034\037" +
-    "\113\040\141\041\142\042\145\045\063\046\062\047\065" +
-    "\050\115\051\123\052\136\053\077\054\143\055\131\056" +
-    "\125\057\116\060\104\061\140\062\067\063\060\064\127" +
-    "\065\132\066\072\001\002\000\016\002\uffd8\007\uffd8\012" +
-    "\uffd8\014\uffd8\043\uffd8\044\234\001\002\000\110\004\061" +
-    "\005\111\011\071\013\103\015\134\016\066\017\106\021" +
-    "\070\031\075\032\031\033\040\035\057\036\034\037\113" +
-    "\040\141\041\142\042\145\045\063\046\062\047\065\050" +
-    "\115\051\123\052\136\053\077\054\143\055\131\056\125" +
-    "\057\116\060\104\061\140\062\067\063\060\064\127\065" +
-    "\132\066\072\001\002\000\022\002\uffd6\007\uffd6\012\uffd6" +
-    "\014\uffd6\022\216\023\217\043\uffd6\044\uffd6\001\002\000" +
-    "\062\013\uffaf\032\uffaf\033\uffaf\036\uffaf\037\uffaf\040\uffaf" +
-    "\041\uffaf\042\uffaf\045\uffaf\046\uffaf\047\uffaf\050\uffaf\051" +
-    "\uffaf\052\uffaf\053\uffaf\054\uffaf\055\uffaf\056\uffaf\057\uffaf" +
-    "\060\uffaf\061\uffaf\062\uffaf\063\uffaf\064\uffaf\001\002\000" +
-    "\054\002\uffb1\004\uffb1\006\055\007\uffb1\010\uffb1\012\uffb1" +
-    "\014\uffb1\021\uffb1\022\uffb1\023\uffb1\024\uffb1\025\uffb1\026" +
-    "\uffb1\027\uffb1\030\uffb1\031\uffb1\032\uffb1\033\uffb1\034\uffb1" +
-    "\043\uffb1\044\uffb1\001\002\000\052\002\uffb2\004\uffb2\007" +
-    "\uffb2\010\uffb2\012\uffb2\014\uffb2\021\uffb2\022\uffb2\023\uffb2" +
-    "\024\uffb2\025\uffb2\026\uffb2\027\uffb2\030\uffb2\031\uffb2\032" +
-    "\uffb2\033\uffb2\034\uffb2\043\uffb2\044\uffb2\001\002\000\044" +
-    "\002\uffc5\007\uffc5\012\uffc5\014\uffc5\022\uffc5\023\uffc5\024" +
-    "\uffc5\025\uffc5\026\uffc5\027\uffc5\030\uffc5\031\uffc5\032\uffc5" +
-    "\033\uffc5\034\uffc5\043\uffc5\044\uffc5\001\002\000\004\012" +
-    "\243\001\002\000\054\002\uff9b\004\uff9b\006\uff9b\007\uff9b" +
-    "\010\uff9b\012\uff9b\014\uff9b\021\uff9b\022\uff9b\023\uff9b\024" +
-    "\uff9b\025\uff9b\026\uff9b\027\uff9b\030\uff9b\031\uff9b\032\uff9b" +
-    "\033\uff9b\034\uff9b\043\uff9b\044\uff9b\001\002\000\052\002" +
-    "\uffb5\004\153\007\uffb5\010\uffb5\012\uffb5\014\uffb5\021\152" +
-    "\022\uffb5\023\uffb5\024\uffb5\025\uffb5\026\uffb5\027\uffb5\030" +
-    "\uffb5\031\uffb5\032\uffb5\033\uffb5\034\uffb5\043\uffb5\044\uffb5" +
-    "\001\002\000\004\035\246\001\002\000\004\012\247\001" +
-    "\002\000\054\002\uff8a\004\uff8a\006\uff8a\007\uff8a\010\uff8a" +
-    "\012\uff8a\014\uff8a\021\uff8a\022\uff8a\023\uff8a\024\uff8a\025" +
-    "\uff8a\026\uff8a\027\uff8a\030\uff8a\031\uff8a\032\uff8a\033\uff8a" +
-    "\034\uff8a\043\uff8a\044\uff8a\001\002\000\052\002\uffb8\004" +
-    "\153\007\uffb8\010\uffb8\012\uffb8\014\uffb8\021\152\022\uffb8" +
-    "\023\uffb8\024\uffb8\025\uffb8\026\uffb8\027\uffb8\030\uffb8\031" +
-    "\uffb8\032\uffb8\033\uffb8\034\uffb8\043\uffb8\044\uffb8\001\002" +
-    "\000\052\002\uffdc\004\uffdc\007\uffdc\010\uffdc\012\uffdc\014" +
-    "\uffdc\021\uffdc\022\uffdc\023\uffdc\024\uffdc\025\uffdc\026\uffdc" +
-    "\027\uffdc\030\uffdc\031\uffdc\032\uffdc\033\uffdc\034\uffdc\043" +
-    "\uffdc\044\uffdc\001\002\000\062\013\uffde\032\uffde\033\uffde" +
-    "\036\uffde\037\uffde\040\uffde\041\uffde\042\uffde\045\uffde\046" +
-    "\uffde\047\uffde\050\uffde\051\uffde\052\uffde\053\uffde\054\uffde" +
-    "\055\uffde\056\uffde\057\uffde\060\uffde\061\uffde\062\uffde\063" +
-    "\uffde\064\uffde\001\002\000\004\035\254\001\002\000\004" +
-    "\014\255\001\002\000\004\035\256\001\002\000\004\012" +
-    "\257\001\002\000\012\002\ufff4\004\ufff4\010\ufff4\021\ufff4" +
-    "\001\002\000\004\035\261\001\002\000\004\012\262\001" +
-    "\002\000\012\002\ufff5\004\ufff5\010\ufff5\021\ufff5\001\002" +
-    "\000\012\002\uffec\004\uffec\010\uffec\021\uffec\001\002\000" +
-    "\062\013\uffdf\032\uffdf\033\uffdf\036\uffdf\037\uffdf\040\uffdf" +
-    "\041\uffdf\042\uffdf\045\uffdf\046\uffdf\047\uffdf\050\uffdf\051" +
-    "\uffdf\052\uffdf\053\uffdf\054\uffdf\055\uffdf\056\uffdf\057\uffdf" +
-    "\060\uffdf\061\uffdf\062\uffdf\063\uffdf\064\uffdf\001\002\000" +
-    "\064\013\027\016\020\032\031\033\040\036\034\037\113" +
-    "\040\141\041\047\042\051\045\015\046\014\047\016\050" +
-    "\036\051\037\052\044\053\025\054\050\055\043\056\041" +
-    "\057\035\060\030\061\045\062\021\063\012\064\042\001" +
-    "\002\000\064\013\027\016\020\032\031\033\040\036\034" +
-    "\037\113\040\141\041\047\042\051\045\015\046\014\047" +
-    "\016\050\036\051\037\052\044\053\025\054\050\055\043" +
-    "\056\041\057\035\060\030\061\045\062\021\063\012\064" +
-    "\042\001\002\000\006\002\ufff1\010\ufff1\001\002\000\006" +
-    "\002\ufff0\010\ufff0\001\002\000\006\002\ufff7\010\ufff7\001" +
-    "\002\000\014\002\uffe9\004\uffe9\006\055\010\uffe9\021\uffe9" +
-    "\001\002\000\014\002\uffeb\004\uffeb\006\055\010\uffeb\021" +
-    "\uffeb\001\002\000\012\002\uffea\004\uffea\010\uffea\021\uffea" +
-    "\001\002\000\012\002\uffe8\004\uffe8\010\uffe8\021\uffe8\001" +
-    "\002\000\064\013\027\016\020\032\031\033\040\036\034" +
-    "\037\113\040\141\041\047\042\051\045\015\046\014\047" +
-    "\016\050\036\051\037\052\044\053\025\054\050\055\043" +
-    "\056\041\057\035\060\030\061\045\062\021\063\012\064" +
-    "\042\001\002\000\064\013\027\016\020\032\031\033\040" +
-    "\036\034\037\113\040\141\041\047\042\051\045\015\046" +
-    "\014\047\016\050\036\051\037\052\044\053\025\054\050" +
-    "\055\043\056\041\057\035\060\030\061\045\062\021\063" +
-    "\012\064\042\001\002\000\006\002\ufff9\010\ufff9\001\002" +
-    "\000\006\002\ufff8\010\ufff8\001\002\000\004\035\303\001" +
-    "\002\000\004\012\304\001\002\000\014\002\ufff3\004\ufff3" +
-    "\006\ufff3\010\ufff3\021\ufff3\001\002\000\006\002\ufffb\010" +
-    "\ufffb\001\002\000\070\004\013\013\027\016\020\021\023" +
-    "\032\031\033\040\036\034\037\033\040\046\041\047\042" +
-    "\051\045\015\046\014\047\016\050\036\051\037\052\044" +
-    "\053\025\054\050\055\043\056\041\057\035\060\030\061" +
-    "\045\062\021\063\012\064\042\001\002\000\004\002\ufffd" +
-    "\001\002\000\004\002\uffff\001\002\000\004\002\001\001" +
-    "\002" });
-
-  /** Access to parse-action table. */
-  public short[][] action_table() {return _action_table;}
-
-  /** <code>reduce_goto</code> table. */
-  protected static final short[][] _reduce_table = 
-    unpackFromStrings(new String[] {
-    "\000\307\000\004\003\003\001\001\000\002\001\001\000" +
-    "\070\004\307\006\120\010\127\011\117\012\101\013\075" +
-    "\014\104\015\063\016\111\017\145\020\113\021\125\022" +
-    "\073\023\121\024\143\025\123\026\136\027\146\030\134" +
-    "\031\107\032\072\033\106\034\147\047\150\050\116\052" +
-    "\100\053\077\001\001\000\026\035\016\036\007\037\006" +
-    "\040\031\041\025\042\023\043\052\044\010\047\051\054" +
-    "\021\001\001\000\002\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\020\040\031\041\304\042" +
-    "\023\043\052\044\010\047\051\054\021\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\012\040\271" +
-    "\043\272\044\010\047\051\001\001\000\020\040\031\041" +
-    "\270\042\023\043\052\044\010\047\051\054\021\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\002\001\001\000\002\001\001\000\002\001\001\000\006" +
-    "\007\053\045\262\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\006\007\053\045\055\001\001" +
-    "\000\006\007\053\045\250\001\001\000\070\004\132\006" +
-    "\120\010\127\011\117\012\101\013\075\014\104\015\063" +
-    "\016\111\017\145\020\113\021\125\022\073\023\121\024" +
-    "\143\025\123\026\136\027\146\030\134\031\107\032\072" +
-    "\033\106\034\147\047\150\050\116\052\100\053\077\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\024\011\117\026\136\027\247\030\134\033\106\034" +
-    "\147\047\153\052\100\053\077\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\002\001\001\000\002\001\001\000\024\011\117\026\136" +
-    "\027\243\030\134\033\106\034\147\047\153\052\100\053" +
-    "\077\001\001\000\070\004\241\006\120\010\127\011\117" +
-    "\012\101\013\075\014\104\015\063\016\111\017\145\020" +
-    "\113\021\125\022\073\023\121\024\143\025\123\026\136" +
-    "\027\146\030\134\031\107\032\072\033\106\034\147\047" +
-    "\150\050\116\052\100\053\077\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\052\006\120\010" +
-    "\127\011\117\020\240\021\125\022\073\023\121\024\143" +
-    "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
-    "\106\034\147\047\150\050\116\052\100\053\077\001\001" +
-    "\000\002\001\001\000\002\001\001\000\010\033\236\034" +
-    "\147\047\153\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\002\001\001\000\006\007\053\045\214\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\006\007\053\045\177\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\006\047\164\051\166\001\001\000" +
-    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\020\011\155\026\136\033\106\034\147\047\153\052\100" +
-    "\053\077\001\001\000\020\011\154\026\136\033\106\034" +
-    "\147\047\153\052\100\053\077\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\052\006\120\010" +
-    "\127\011\117\020\163\021\125\022\073\023\121\024\143" +
-    "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
-    "\106\034\147\047\150\050\116\052\100\053\077\001\001" +
-    "\000\052\006\120\010\127\011\117\020\162\021\125\022" +
-    "\073\023\121\024\143\025\123\026\136\027\146\030\134" +
-    "\031\107\032\072\033\106\034\147\047\150\050\116\052" +
-    "\100\053\077\001\001\000\052\006\120\010\127\011\117" +
-    "\020\161\021\125\022\073\023\121\024\143\025\123\026" +
-    "\136\027\146\030\134\031\107\032\072\033\106\034\147" +
-    "\047\150\050\116\052\100\053\077\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\002\001\001\000\024\011\117\026\136\027\174\030\134" +
-    "\033\106\034\147\047\153\052\100\053\077\001\001\000" +
-    "\024\011\117\026\136\027\173\030\134\033\106\034\147" +
-    "\047\153\052\100\053\077\001\001\000\002\001\001\000" +
-    "\002\001\001\000\050\006\120\010\127\011\117\021\125" +
-    "\022\073\023\121\024\176\025\123\026\136\027\146\030" +
-    "\134\031\107\032\072\033\106\034\147\047\150\050\116" +
-    "\052\100\053\077\001\001\000\002\001\001\000\002\001" +
-    "\001\000\074\004\203\005\202\006\120\010\127\011\117" +
-    "\012\101\013\075\014\104\015\063\016\111\017\145\020" +
-    "\113\021\125\022\073\023\121\024\143\025\123\026\136" +
-    "\027\146\030\134\031\107\032\072\033\106\034\147\046" +
-    "\204\047\150\050\116\052\100\053\077\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\074\004\203\005\202\006\120" +
-    "\010\127\011\117\012\101\013\075\014\104\015\063\016" +
-    "\111\017\145\020\113\021\125\022\073\023\121\024\143" +
-    "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
-    "\106\034\147\046\207\047\150\050\116\052\100\053\077" +
-    "\001\001\000\002\001\001\000\054\006\120\010\127\011" +
-    "\117\017\213\020\113\021\125\022\073\023\121\024\143" +
-    "\025\123\026\136\027\146\030\134\031\107\032\072\033" +
-    "\106\034\147\047\150\050\116\052\100\053\077\001\001" +
-    "\000\054\006\120\010\127\011\117\017\212\020\113\021" +
-    "\125\022\073\023\121\024\143\025\123\026\136\027\146" +
-    "\030\134\031\107\032\072\033\106\034\147\047\150\050" +
-    "\116\052\100\053\077\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\060\006\120\010\127\011" +
-    "\117\015\230\016\111\017\145\020\113\021\125\022\073" +
-    "\023\121\024\143\025\123\026\136\027\146\030\134\031" +
-    "\107\032\072\033\106\034\147\047\150\050\116\052\100" +
-    "\053\077\001\001\000\060\006\120\010\127\011\117\015" +
-    "\217\016\111\017\145\020\113\021\125\022\073\023\121" +
-    "\024\143\025\123\026\136\027\146\030\134\031\107\032" +
-    "\072\033\106\034\147\047\150\050\116\052\100\053\077" +
-    "\001\001\000\002\001\001\000\056\006\120\010\127\011" +
-    "\117\016\227\017\145\020\113\021\125\022\073\023\121" +
-    "\024\143\025\123\026\136\027\146\030\134\031\107\032" +
-    "\072\033\106\034\147\047\150\050\116\052\100\053\077" +
-    "\001\001\000\056\006\120\010\127\011\117\016\226\017" +
-    "\145\020\113\021\125\022\073\023\121\024\143\025\123" +
-    "\026\136\027\146\030\134\031\107\032\072\033\106\034" +
-    "\147\047\150\050\116\052\100\053\077\001\001\000\056" +
-    "\006\120\010\127\011\117\016\225\017\145\020\113\021" +
-    "\125\022\073\023\121\024\143\025\123\026\136\027\146" +
-    "\030\134\031\107\032\072\033\106\034\147\047\150\050" +
-    "\116\052\100\053\077\001\001\000\056\006\120\010\127" +
-    "\011\117\016\224\017\145\020\113\021\125\022\073\023" +
-    "\121\024\143\025\123\026\136\027\146\030\134\031\107" +
-    "\032\072\033\106\034\147\047\150\050\116\052\100\053" +
-    "\077\001\001\000\002\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\064\006" +
-    "\120\010\127\011\117\013\232\014\104\015\063\016\111" +
-    "\017\145\020\113\021\125\022\073\023\121\024\143\025" +
-    "\123\026\136\027\146\030\134\031\107\032\072\033\106" +
-    "\034\147\047\150\050\116\052\100\053\077\001\001\000" +
-    "\002\001\001\000\062\006\120\010\127\011\117\014\234" +
-    "\015\063\016\111\017\145\020\113\021\125\022\073\023" +
-    "\121\024\143\025\123\026\136\027\146\030\134\031\107" +
-    "\032\072\033\106\034\147\047\150\050\116\052\100\053" +
-    "\077\001\001\000\002\001\001\000\002\001\001\000\006" +
-    "\007\053\045\237\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\002\001\001\000\002\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\002\001\001\000\002\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\002\001\001\000" +
-    "\020\040\031\041\267\042\023\043\052\044\010\047\051" +
-    "\054\021\001\001\000\020\040\031\041\266\042\023\043" +
-    "\052\044\010\047\051\054\021\001\001\000\002\001\001" +
-    "\000\002\001\001\000\002\001\001\000\006\007\053\045" +
-    "\274\001\001\000\006\007\053\045\273\001\001\000\002" +
-    "\001\001\000\002\001\001\000\020\040\031\041\300\042" +
-    "\023\043\052\044\010\047\051\054\021\001\001\000\020" +
-    "\040\031\041\277\042\023\043\052\044\010\047\051\054" +
-    "\021\001\001\000\002\001\001\000\002\001\001\000\002" +
-    "\001\001\000\002\001\001\000\002\001\001\000\002\001" +
-    "\001\000\026\035\016\036\306\037\006\040\031\041\025" +
-    "\042\023\043\052\044\010\047\051\054\021\001\001\000" +
-    "\002\001\001\000\002\001\001\000\002\001\001" });
-
-  /** Access to <code>reduce_goto</code> table. */
-  public short[][] reduce_table() {return _reduce_table;}
-
-  /** Instance of action encapsulation class. */
-  protected CUP$XPathParser$actions action_obj;
-
-  /** Action encapsulation object initializer. */
-  protected void init_actions()
-    {
-      action_obj = new CUP$XPathParser$actions(this);
-    }
-
-  /** Invoke a user supplied parse action. */
-  public java_cup.runtime.Symbol do_action(
-    int                        act_num,
-    java_cup.runtime.lr_parser parser,
-    java.util.Stack            stack,
-    int                        top)
-    throws java.lang.Exception
-  {
-    /* call code in generated class */
-    return action_obj.CUP$XPathParser$do_action(act_num, parser, stack, top);
-  }
-
-  /** Indicates start state. */
-  public int start_state() {return 0;}
-  /** Indicates start production. */
-  public int start_production() {return 0;}
-
-  /** <code>EOF</code> Symbol index. */
-  public int EOF_sym() {return 0;}
-
-  /** <code>error</code> Symbol index. */
-  public int error_sym() {return 1;}
-
-
-
-    /**
-     * Used by function calls with no args.
-     */
-    static public final Vector EmptyArgs = new Vector(0);
-
-    /**
-     * Reference to non-existing variable.
-     */
-    static public final VariableRef DummyVarRef = null;
-
-    /**
-     * Reference to the Parser class.
-     */
-    private Parser _parser;
-    private XSLTC  _xsltc;
-
-    /**
-     * String representation of the expression being parsed.
-     */
-    private String _expression;
-
-    /**
-     * Line number where this expression/pattern was declared.
-     */
-    private int _lineNumber = 0;
-
-    /**
-     * Reference to the symbol table.
-     */
-    public SymbolTable _symbolTable;
-
-    public XPathParser(Parser parser) {
-        _parser = parser;
-	_xsltc = parser.getXSLTC();
-        _symbolTable = parser.getSymbolTable();
-    }
-
-    public int getLineNumber() {
-        return _lineNumber;
-    }
-
-    public QName getQNameIgnoreDefaultNs(String name) {
-          return _parser.getQNameIgnoreDefaultNs(name);
-    }    
-
-    public QName getQName(String namespace, String prefix, String localname) {
-        return _parser.getQName(namespace, prefix, localname);
-    }        
-
-    public void setMultiDocument(boolean flag) {
-          _xsltc.setMultiDocument(flag);
-    }
-
-    public void setCallsNodeset(boolean flag) {
-          _xsltc.setCallsNodeset(flag);
-    }
-
-    public void setHasIdCall(boolean flag) {
-          _xsltc.setHasIdCall(flag); 
-    }
-    
-
-    /**
-     * This method is similar to findNodeType(int, Object) except that it
-     * creates a StepPattern instead of just returning a node type. It also 
-     * differs in the way it handles "{uri}:*" and "{uri}:@*". The last two 
-     * patterns are expanded as "*[namespace-uri() = 'uri']" and 
-     * "@*[namespace-uri() = 'uri']", respectively. This expansion considerably 
-     * simplifies the grouping of patterns in the Mode class. For this
-     * expansion to be correct, the priority of the pattern/template must be
-     * set to -0.25 (when no other predicates are present).
-     */
-    public StepPattern createStepPattern(int axis, Object test, Vector predicates) {
-	int nodeType;
-
-	if (test == null) {  // "*"
-	    nodeType = (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE : 
-		(axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
-
-	    return new StepPattern(axis, nodeType, predicates);
-        }
-        else if (test instanceof Integer) {
-	    nodeType = ((Integer) test).intValue();
-
-	    return new StepPattern(axis, nodeType, predicates);
-        }
-        else {
-	    QName name = (QName)test;
-	    boolean setPriority = false;
-
-	    if (axis == Axis.NAMESPACE) {
-		nodeType = (name.toString().equals("*")) ? -1
-				: _xsltc.registerNamespacePrefix(name);;
-            }
-	    else {
-		final String uri = name.getNamespace();
-		final String local = name.getLocalPart();
-		final QName namespace_uri = 
-		    _parser.getQNameIgnoreDefaultNs("namespace-uri");
-
-		// Expand {uri}:* to *[namespace-uri() = 'uri'] - same for @*
-		if (uri != null && (local.equals("*") || local.equals("@*"))) {
-		    if (predicates == null) {
-			predicates = new Vector(2);
-		    }
-
-		    // Priority is set by hand if no other predicates exist
-		    setPriority = (predicates.size() == 0);
-
-		    predicates.add(
-			new Predicate(
-			    new EqualityExpr(Operators.EQ, 
-				new NamespaceUriCall(namespace_uri), 
-				new LiteralExpr(uri))));
-		}
-
-		if (local.equals("*")) {
-		    nodeType = (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE
-			: NodeTest.ELEMENT;
-		}
-		else if (local.equals("@*")) {
-		    nodeType = NodeTest.ATTRIBUTE;
-		}
-		else {
-		    nodeType = (axis == Axis.ATTRIBUTE) ? _xsltc.registerAttribute(name)
-			: _xsltc.registerElement(name); 
-		}
-	    }
-
-	    final StepPattern result = new StepPattern(axis, nodeType, predicates); 
-
-	    // Set priority for case prefix:* and prefix:@* (no predicates)
-	    if (setPriority) {
-		result.setPriority(-0.25);
-	    }
-
-	    return result;
-	}
-    }
-
-    public int findNodeType(int axis, Object test) {
-	if (test == null) {  // *
-	    return (axis == Axis.ATTRIBUTE) ? 
-		NodeTest.ATTRIBUTE :
-		(axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
-        }
-        else if (test instanceof Integer) {
-            return ((Integer)test).intValue();
-        }
-        else {
-	    QName name = (QName)test;
-
-	    if (axis == Axis.NAMESPACE) {
-		return (name.toString().equals("*")) ? -1
-		    : _xsltc.registerNamespacePrefix(name);
-            }
-
-	    if (name.getNamespace() == null) {
-		final String local = name.getLocalPart();
-
-		if (local.equals("*")) {
-		    return (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE
-			: NodeTest.ELEMENT;
-		}
-		else if (local.equals("@*")) {
-		    return NodeTest.ATTRIBUTE;
-		}
-	    }
-
-	    return (axis == Axis.ATTRIBUTE) ? _xsltc.registerAttribute(name)
-		: _xsltc.registerElement(name); 
-        }
-    }
-
-    /**
-     * Parse the expression passed to the current scanner. If this
-     * expression contains references to local variables and it will be 
-     * compiled in an external module (not in the main class) request 
-     * the current template to create a new variable stack frame.
-     *
-     * @param lineNumber Line where the current expression is defined.
-     * @param external   Set to <tt>true</tt> if this expression is
-     *                   compiled in a separate module.
-     * 
-     */
-    public Symbol parse(String expression, int lineNumber) throws Exception {
-        try {
-	    _expression = expression;
-	    _lineNumber = lineNumber;
-	    return super.parse();
-        }
-        catch (IllegalCharException e) {
-            ErrorMsg err = new ErrorMsg(ErrorMsg.ILLEGAL_CHAR_ERR,
-                                        lineNumber, e.getMessage());
-            _parser.reportError(Constants.FATAL, err);
-        }
-        return null;
-    }
-
-    /**
-     * Lookup a variable or parameter in the symbol table given its name. 
-     *
-     * @param name Name of the symbol being looked up.
-     */
-    final SyntaxTreeNode lookupName(QName name) {
-        // Is it a local var or param ?
-        final SyntaxTreeNode result = _parser.lookupVariable(name);
-	if (result != null)
-            return(result);
-        else
-	    return(_symbolTable.lookupName(name));
-    }
-
-    public final void addError(ErrorMsg error) {
-	_parser.reportError(Constants.ERROR, error);
-    } 
-           
-    public void report_error(String message, Object info) {
-	final ErrorMsg err = new ErrorMsg(ErrorMsg.SYNTAX_ERR, _lineNumber, 
-	    _expression);
-	_parser.reportError(Constants.FATAL, err);
-    }
-
-    public void report_fatal_error(String message, Object info) {
-        // empty
-    }
-    
-    public RelativeLocationPath insertStep(Step step, RelativeLocationPath rlp) {
-	if (rlp instanceof Step) {
-	    return new ParentLocationPath(step, (Step) rlp);
-	}
-	else if (rlp instanceof ParentLocationPath) {
-	    final ParentLocationPath plp = (ParentLocationPath) rlp;
-	    final RelativeLocationPath newrlp = insertStep(step, plp.getPath());
-	    return new ParentLocationPath(newrlp, plp.getStep());
-	}
-	else {
-	    addError(new ErrorMsg(ErrorMsg.INTERNAL_ERR, "XPathParser.insertStep"));
-	    return rlp;
-	}
-    }
-
-    /**
-     * Returns true if the axis applies to elements only. The axes
-     * child, attribute, namespace, descendant result in non-empty
-     * nodesets only if the context node is of type element.
-     */
-    public boolean isElementAxis(int axis) {
-	return (axis == Axis.CHILD || axis == Axis.ATTRIBUTE ||
-		axis == Axis.NAMESPACE || axis == Axis.DESCENDANT);
-    }
-
-}
-
-/** Cup generated class to encapsulate user supplied action code.*/
-class CUP$XPathParser$actions {
-  private final XPathParser parser;
-
-  /** Constructor */
-  CUP$XPathParser$actions(XPathParser parser) {
-    this.parser = parser;
-  }
-
-  /** Method with the actual generated action code. */
-  public final java_cup.runtime.Symbol CUP$XPathParser$do_action(
-    int                        CUP$XPathParser$act_num,
-    java_cup.runtime.lr_parser CUP$XPathParser$parser,
-    java.util.Stack            CUP$XPathParser$stack,
-    int                        CUP$XPathParser$top)
-    throws java.lang.Exception
-    {
-      /* Symbol object for return from actions */
-      java_cup.runtime.Symbol CUP$XPathParser$result;
-
-      /* select the action based on the action number */
-      switch (CUP$XPathParser$act_num)
-        {
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 140: // QName ::= ID 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("id"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 139: // QName ::= SELF 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("self"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 138: // QName ::= PRECEDINGSIBLING 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("preceding-sibling"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 137: // QName ::= PRECEDING 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("preceding"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 136: // QName ::= PARENT 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("parent"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 135: // QName ::= NAMESPACE 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("namespace"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 134: // QName ::= FOLLOWINGSIBLING 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("following-sibling"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 133: // QName ::= FOLLOWING 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("following"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 132: // QName ::= DESCENDANTORSELF 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("decendant-or-self"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 131: // QName ::= DESCENDANT 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("decendant"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 130: // QName ::= CHILD 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("child"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 129: // QName ::= ATTRIBUTE 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("attribute"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 128: // QName ::= ANCESTORORSELF 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("ancestor-or-self"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 127: // QName ::= ANCESTOR 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("child"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 126: // QName ::= KEY 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("key"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 125: // QName ::= MOD 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("mod"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 124: // QName ::= DIV 
-            {
-              QName RESULT = null;
-		 RESULT = parser.getQNameIgnoreDefaultNs("div"); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 123: // QName ::= QNAME 
-            {
-              QName RESULT = null;
-		int qnameleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int qnameright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		String qname = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = parser.getQNameIgnoreDefaultNs(qname); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(37/*QName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 122: // NameTest ::= QName 
-            {
-              Object RESULT = null;
-		int qnleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int qnright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		QName qn = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = qn; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(26/*NameTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 121: // NameTest ::= STAR 
-            {
-              Object RESULT = null;
-		 RESULT = null; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(26/*NameTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 120: // NodeTest ::= PI 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.PI); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(25/*NodeTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 119: // NodeTest ::= PIPARAM LPAREN Literal RPAREN 
-            {
-              Object RESULT = null;
-		int lleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int lright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		String l = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		
-           QName name = parser.getQNameIgnoreDefaultNs("name");
-           Expression exp = new EqualityExpr(Operators.EQ,
-                                             new NameCall(name),
-                                             new LiteralExpr(l));
-           Vector predicates = new Vector();
-           predicates.addElement(new Predicate(exp));
-           RESULT = new Step(Axis.CHILD, NodeTest.PI, predicates);
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(25/*NodeTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 118: // NodeTest ::= COMMENT 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.COMMENT); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(25/*NodeTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 117: // NodeTest ::= TEXT 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.TEXT); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(25/*NodeTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 116: // NodeTest ::= NODE 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.ANODE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(25/*NodeTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 115: // NodeTest ::= NameTest 
-            {
-              Object RESULT = null;
-		int ntleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ntright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Object nt = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = nt; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(25/*NodeTest*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 114: // Argument ::= Expr 
-            {
-              Expression RESULT = null;
-		int exleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int exright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ex = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ex; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(3/*Argument*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 113: // VariableName ::= QName 
-            {
-              QName RESULT = null;
-		int vnameleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int vnameright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		QName vname = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	    RESULT = vname; 
-	
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(39/*VariableName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 112: // FunctionName ::= QName 
-            {
-              QName RESULT = null;
-		int fnameleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int fnameright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		QName fname = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	    RESULT = fname; 
-	
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(38/*FunctionName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 111: // NonemptyArgumentList ::= Argument COMMA NonemptyArgumentList 
-            {
-              Vector RESULT = null;
-		int argleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int argright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression arg = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int arglleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int arglright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector argl = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 argl.insertElementAt(arg, 0); RESULT = argl; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(36/*NonemptyArgumentList*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 110: // NonemptyArgumentList ::= Argument 
-            {
-              Vector RESULT = null;
-		int argleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int argright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression arg = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-            Vector temp = new Vector();
-            temp.addElement(arg);
-            RESULT = temp;
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(36/*NonemptyArgumentList*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 109: // FunctionCall ::= FunctionName LPAREN NonemptyArgumentList RPAREN 
-            {
-              Expression RESULT = null;
-		int fnameleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left;
-		int fnameright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).right;
-		QName fname = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).value;
-		int arglleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int arglright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Vector argl = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		
-          if (parser.getQNameIgnoreDefaultNs("concat").equals(fname)) {
-            RESULT = new ConcatCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("number").equals(fname)) {
-            RESULT = new NumberCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("document").equals(fname)) {
-	    parser.setMultiDocument(true);
-            RESULT = new DocumentCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("string").equals(fname)) {
-            RESULT = new StringCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("boolean").equals(fname)) {
-            RESULT = new BooleanCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("name").equals(fname)) {
-            RESULT = new NameCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("generate-id").equals(fname)) {
-            RESULT = new GenerateIdCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("not").equals(fname)) {
-            RESULT = new NotCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("format-number").equals(fname)) {
-            RESULT = new FormatNumberCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("unparsed-entity-uri").equals(fname)) {
-            RESULT = new UnparsedEntityUriCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("key").equals(fname)) {
-            RESULT = new KeyCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("id").equals(fname)) {
-            RESULT = new KeyCall(fname, argl);
-            parser.setHasIdCall(true);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("ceiling").equals(fname)) {
-            RESULT = new CeilingCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("round").equals(fname)) {
-            RESULT = new RoundCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("floor").equals(fname)) {
-            RESULT = new FloorCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("contains").equals(fname)) {
-            RESULT = new ContainsCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("string-length").equals(fname)) {
-            RESULT = new StringLengthCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("starts-with").equals(fname)) {
-            RESULT = new StartsWithCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("function-available").equals(fname)) {
-            RESULT = new FunctionAvailableCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("element-available").equals(fname)) {
-            RESULT = new ElementAvailableCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("local-name").equals(fname)) {
-            RESULT = new LocalNameCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("lang").equals(fname)) {
-            RESULT = new LangCall(fname, argl);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("namespace-uri").equals(fname)) {
-            RESULT = new NamespaceUriCall(fname, argl);
-	  }
-          else if (parser.getQName(Constants.TRANSLET_URI, "xsltc", "cast").equals(fname)) {
-            RESULT = new CastCall(fname, argl);
-	  }
-	  // Special case for extension function nodeset()
-          else if (fname.getLocalPart().equals("nodeset") || fname.getLocalPart().equals("node-set")) {
-	    parser.setCallsNodeset(true);  // implies MultiDOM
-            RESULT = new FunctionCall(fname, argl);
-	  }
-          else {
-            RESULT = new FunctionCall(fname, argl);
-	  }
-    
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(16/*FunctionCall*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 108: // FunctionCall ::= FunctionName LPAREN RPAREN 
-            {
-              Expression RESULT = null;
-		int fnameleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int fnameright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		QName fname = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		 
-
-          if (parser.getQNameIgnoreDefaultNs("current").equals(fname)) {
-            RESULT = new CurrentCall(fname);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("number").equals(fname)) {
-            RESULT = new NumberCall(fname, parser.EmptyArgs);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("string").equals(fname)) {
-            RESULT = new StringCall(fname, parser.EmptyArgs);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("concat").equals(fname)) {
-            RESULT = new ConcatCall(fname, parser.EmptyArgs);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("true").equals(fname)) {
-            RESULT = new BooleanExpr(true);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("false").equals(fname)) {
-            RESULT = new BooleanExpr(false);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("name").equals(fname)) {
-            RESULT = new NameCall(fname);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("generate-id").equals(fname)) {
-            RESULT = new GenerateIdCall(fname, parser.EmptyArgs);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("string-length").equals(fname)) {
-            RESULT = new StringLengthCall(fname, parser.EmptyArgs);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("position").equals(fname)) {
-            RESULT = new PositionCall(fname);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("last").equals(fname)) {
-            RESULT = new LastCall(fname);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("local-name").equals(fname)) {
-            RESULT = new LocalNameCall(fname);
-	  }
-          else if (parser.getQNameIgnoreDefaultNs("namespace-uri").equals(fname)) {
-            RESULT = new NamespaceUriCall(fname);
-	  }
-          else {
-            RESULT = new FunctionCall(fname, parser.EmptyArgs);
-	  }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(16/*FunctionCall*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 107: // VariableReference ::= DOLLAR VariableName 
-            {
-              Expression RESULT = null;
-		int varNameleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int varNameright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		QName varName = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-            // An empty qname prefix for a variable or parameter reference
-            // should map to the null namespace and not the default URI.
-            SyntaxTreeNode node = parser.lookupName(varName);
-
-            if (node != null) {
-                if (node instanceof Variable) {
-                    RESULT = new VariableRef((Variable)node);
-                }
-                else if (node instanceof Param) {
-                    RESULT = new ParameterRef((Param)node);
-                } 
-                else {
-                    RESULT = new UnresolvedRef(varName);
-                }
-            }
-
-            if (node == null) {
-                RESULT = new UnresolvedRef(varName);
-            }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(15/*VariableReference*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 106: // PrimaryExpr ::= FunctionCall 
-            {
-              Expression RESULT = null;
-		int fcleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int fcright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression fc = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = fc; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(17/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 105: // PrimaryExpr ::= REAL 
-            {
-              Expression RESULT = null;
-		int numleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int numright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Double num = (Double)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new RealExpr(num.doubleValue()); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(17/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 104: // PrimaryExpr ::= INT 
-            {
-              Expression RESULT = null;
-		int numleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int numright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Long num = (Long)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	   long value = num.longValue();
-	   if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
-		RESULT = new RealExpr(value);
-	   }
-	   else {
-               if (num.doubleValue() == -0)
-                   RESULT = new RealExpr(num.doubleValue());
-               else if (num.intValue() == 0)
-                   RESULT = new IntExpr(num.intValue());
-               else if (num.doubleValue() == 0.0)
-                   RESULT = new RealExpr(num.doubleValue());
-               else 
-                   RESULT = new IntExpr(num.intValue());
-	   }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(17/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 103: // PrimaryExpr ::= Literal 
-            {
-              Expression RESULT = null;
-		int stringleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int stringright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		String string = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	/*
-	* If the string appears to have the syntax of a QName, store 
-	* namespace info in the literal expression. This is used for
-	* element-available and function-available functions, among
-	* others. Also, the default namespace must be ignored.
-	*/
-	String namespace = null;
-	final int index = string.lastIndexOf(':');
-
-	if (index > 0) {
-	    final String prefix = string.substring(0, index);
-	    namespace = parser._symbolTable.lookupNamespace(prefix);
-	}
-	RESULT = (namespace == null) ? new LiteralExpr(string)
-		     : new LiteralExpr(string, namespace); 
-	
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(17/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 102: // PrimaryExpr ::= LPAREN Expr RPAREN 
-            {
-              Expression RESULT = null;
-		int exleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int exright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Expression ex = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		 RESULT = ex; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(17/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 101: // PrimaryExpr ::= VariableReference 
-            {
-              Expression RESULT = null;
-		int vrleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int vrright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression vr = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = vr; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(17/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 100: // FilterExpr ::= PrimaryExpr Predicates 
-            {
-              Expression RESULT = null;
-		int primaryleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int primaryright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new FilterExpr(primary, pp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(6/*FilterExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 99: // FilterExpr ::= PrimaryExpr 
-            {
-              Expression RESULT = null;
-		int primaryleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int primaryright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression primary = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = primary; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(6/*FilterExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 98: // AbbreviatedStep ::= DDOT 
-            {
-              Expression RESULT = null;
-		 RESULT = new Step(Axis.PARENT, NodeTest.ANODE, null); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(20/*AbbreviatedStep*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 97: // AbbreviatedStep ::= DOT 
-            {
-              Expression RESULT = null;
-		 RESULT = new Step(Axis.SELF, NodeTest.ANODE, null); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(20/*AbbreviatedStep*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 96: // AxisName ::= SELF 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.SELF); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 95: // AxisName ::= PRECEDINGSIBLING 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.PRECEDINGSIBLING); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 94: // AxisName ::= PRECEDING 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.PRECEDING); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 93: // AxisName ::= PARENT 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.PARENT); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 92: // AxisName ::= NAMESPACE 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.NAMESPACE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 91: // AxisName ::= FOLLOWINGSIBLING 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.FOLLOWINGSIBLING); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 90: // AxisName ::= FOLLOWING 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.FOLLOWING); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 89: // AxisName ::= DESCENDANTORSELF 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.DESCENDANTORSELF); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 88: // AxisName ::= DESCENDANT 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.DESCENDANT); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 87: // AxisName ::= CHILD 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.CHILD); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 86: // AxisName ::= ATTRIBUTE 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.ATTRIBUTE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 85: // AxisName ::= ANCESTORORSELF 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.ANCESTORORSELF); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 84: // AxisName ::= ANCESTOR 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.ANCESTOR); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(40/*AxisName*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 83: // AxisSpecifier ::= ATSIGN 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.ATTRIBUTE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(41/*AxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 82: // AxisSpecifier ::= AxisName DCOLON 
-            {
-              Integer RESULT = null;
-		int anleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int anright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Integer an = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		 RESULT = an; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(41/*AxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 81: // Step ::= AbbreviatedStep 
-            {
-              Expression RESULT = null;
-		int abbrevleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int abbrevright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression abbrev = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = abbrev; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(7/*Step*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 80: // Step ::= AxisSpecifier NodeTest 
-            {
-              Expression RESULT = null;
-		int axisleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int axisright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Integer axis = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ntestleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ntestright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Object ntest = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new Step(axis.intValue(),
-                             parser.findNodeType(axis.intValue(), ntest),
-                             null);
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(7/*Step*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 79: // Step ::= AxisSpecifier NodeTest Predicates 
-            {
-              Expression RESULT = null;
-		int axisleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int axisright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Integer axis = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int ntestleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int ntestright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Object ntest = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new Step(axis.intValue(),
-                             parser.findNodeType(axis.intValue(), ntest),
-                             pp);
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(7/*Step*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 78: // Step ::= NodeTest Predicates 
-            {
-              Expression RESULT = null;
-		int ntestleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int ntestright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Object ntest = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-            if (ntest instanceof Step) {
-                Step step = (Step)ntest;
-                step.addPredicates(pp);
-                RESULT = (Step)ntest;
-            }
-            else {
-                RESULT = new Step(Axis.CHILD,
-                             parser.findNodeType(Axis.CHILD, ntest), pp);
-            }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(7/*Step*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 77: // Step ::= NodeTest 
-            {
-              Expression RESULT = null;
-		int ntestleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ntestright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Object ntest = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		
-            if (ntest instanceof Step) {
-                RESULT = (Step)ntest;
-            }
-            else {
-		RESULT = new Step(Axis.CHILD,
-                             parser.findNodeType(Axis.CHILD, ntest),
-                             null);
-            }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(7/*Step*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 76: // AbbreviatedAbsoluteLocationPath ::= DSLASH RelativeLocationPath 
-            {
-              Expression RESULT = null;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		
-           // 
-	   // Expand '//' into '/descendant-or-self::node()/' or
-	   // into /descendant-or-self::*/
-	   //
-	   int nodeType = DOM.NO_TYPE;
-	   if (rlp instanceof Step && 
-	       parser.isElementAxis(((Step) rlp).getAxis())) 
-	   {
-	       nodeType = DTM.ELEMENT_NODE;
-	   }
-	   final Step step = new Step(Axis.DESCENDANTORSELF, nodeType, null);
-	   RESULT = new AbsoluteLocationPath(parser.insertStep(step, 
-				(RelativeLocationPath) rlp));
-	
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(24/*AbbreviatedAbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 75: // AbbreviatedRelativeLocationPath ::= RelativeLocationPath DSLASH Step 
-            {
-              Expression RESULT = null;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int stepleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int stepright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression step = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	   final Step right  = (Step)step;
-           final int  axis   = right.getAxis();
-           final int  type   = right.getNodeType();
-           final Vector predicates = right.getPredicates();
-
-           if ((axis == Axis.CHILD) && (type != NodeTest.ATTRIBUTE)) {
-               // Compress './/child:E' into 'descendant::E' - if possible
-               if (predicates == null) {
-                   right.setAxis(Axis.DESCENDANT);
-                   if (rlp instanceof Step && ((Step)rlp).isAbbreviatedDot()) {
-	               RESULT = right;
-                   }
-                   else {
-                       // Expand 'rlp//child::E' into 'rlp/descendant::E'
-                       RelativeLocationPath left = (RelativeLocationPath)rlp;
-	               RESULT = new ParentLocationPath(left, right);
-                   }
-               }
-               else {
-                   // Expand './/step' -> 'descendant-or-self::*/step'
-                   if (rlp instanceof Step && ((Step)rlp).isAbbreviatedDot()) {
-                       Step left = new Step(Axis.DESCENDANTORSELF, 
-			    DTM.ELEMENT_NODE, null);
-                       RESULT = new ParentLocationPath(left, right);
-                   }
-                   else {
-                       // Expand 'rlp//step' -> 'rlp/descendant-or-self::*/step'
-                       RelativeLocationPath left = (RelativeLocationPath)rlp;
-                       Step mid = new Step(Axis.DESCENDANTORSELF, 
-			    DTM.ELEMENT_NODE, null);
-                       ParentLocationPath ppl = new ParentLocationPath(mid, right);
-                       RESULT = new ParentLocationPath(left, ppl);
-                   }
-               }
-           }
-           else if ((axis == Axis.ATTRIBUTE) || (type == NodeTest.ATTRIBUTE)) {
-               // Expand 'rlp//step' -> 'rlp/descendant-or-self::*/step'
-               RelativeLocationPath left = (RelativeLocationPath)rlp;
-               Step middle = new Step(Axis.DESCENDANTORSELF, 
-		    DTM.ELEMENT_NODE, null);
-               ParentLocationPath ppl = new ParentLocationPath(middle, right);
-               RESULT = new ParentLocationPath(left, ppl);
-	   }
-	   else {
-	       // Expand 'rlp//step' -> 'rlp/descendant-or-self::node()/step'
-               RelativeLocationPath left = (RelativeLocationPath)rlp;
-	       Step middle = new Step(Axis.DESCENDANTORSELF, 
-		    DOM.NO_TYPE, null); 
-               ParentLocationPath ppl = new ParentLocationPath(middle, right);
-	       RESULT = new ParentLocationPath(left, ppl);
-	   }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(22/*AbbreviatedRelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 74: // AbsoluteLocationPath ::= AbbreviatedAbsoluteLocationPath 
-            {
-              Expression RESULT = null;
-		int aalpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aalpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression aalp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = aalp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(23/*AbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 73: // AbsoluteLocationPath ::= SLASH RelativeLocationPath 
-            {
-              Expression RESULT = null;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new AbsoluteLocationPath(rlp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(23/*AbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 72: // AbsoluteLocationPath ::= SLASH 
-            {
-              Expression RESULT = null;
-		 RESULT = new AbsoluteLocationPath(); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(23/*AbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 71: // RelativeLocationPath ::= AbbreviatedRelativeLocationPath 
-            {
-              Expression RESULT = null;
-		int arlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int arlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression arlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = arlp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(21/*RelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 70: // RelativeLocationPath ::= RelativeLocationPath SLASH Step 
-            {
-              Expression RESULT = null;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int stepleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int stepright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression step = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		     
-        if (rlp instanceof Step && ((Step) rlp).isAbbreviatedDot()) {
-              RESULT = step;       // Remove './' from the middle
-        }
-        else if (((Step) step).isAbbreviatedDot()) {
-              RESULT = rlp;        // Remove '/.' from the end
-        }
-        else {
-             RESULT =
-                new ParentLocationPath((RelativeLocationPath) rlp, step); 
-           }
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(21/*RelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 69: // RelativeLocationPath ::= Step 
-            {
-              Expression RESULT = null;
-		int stepleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int stepright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression step = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = step; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(21/*RelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 68: // LocationPath ::= AbsoluteLocationPath 
-            {
-              Expression RESULT = null;
-		int alpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int alpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression alp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = alp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(4/*LocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 67: // LocationPath ::= RelativeLocationPath 
-            {
-              Expression RESULT = null;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = rlp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(4/*LocationPath*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 66: // PathExpr ::= FilterExpr DSLASH RelativeLocationPath 
-            {
-              Expression RESULT = null;
-		int fexpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int fexpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression fexp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		
-           // 
-	   // Expand '//' into '/descendant-or-self::node()/' or
-	   // into /descendant-or-self::*/
-	   //
-	   int nodeType = DOM.NO_TYPE;
-	   if (rlp instanceof Step && 
-	       parser.isElementAxis(((Step) rlp).getAxis())) 
-	   {
-	       nodeType = DTM.ELEMENT_NODE;
-	   }
-           final Step step = new Step(Axis.DESCENDANTORSELF, nodeType, null);
-           FilterParentPath fpp = new FilterParentPath(fexp, step);
-           fpp = new FilterParentPath(fpp, rlp);
-           if (fexp instanceof KeyCall == false) {
-               fpp.setDescendantAxis();
-	   }
-           RESULT = fpp;
-        
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(19/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 65: // PathExpr ::= FilterExpr SLASH RelativeLocationPath 
-            {
-              Expression RESULT = null;
-		int fexpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int fexpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression fexp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int rlpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rlpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression rlp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new FilterParentPath(fexp, rlp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(19/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 64: // PathExpr ::= FilterExpr 
-            {
-              Expression RESULT = null;
-		int fexpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int fexpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression fexp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = fexp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(19/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 63: // PathExpr ::= LocationPath 
-            {
-              Expression RESULT = null;
-		int lpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int lpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression lp = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = lp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(19/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 62: // UnionExpr ::= PathExpr VBAR UnionExpr 
-            {
-              Expression RESULT = null;
-		int peleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int peright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression pe = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int restleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int restright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression rest = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new UnionPathExpr(pe, rest); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(18/*UnionExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 61: // UnionExpr ::= PathExpr 
-            {
-              Expression RESULT = null;
-		int peleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int peright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression pe = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = pe; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(18/*UnionExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 60: // UnaryExpr ::= MINUS UnaryExpr 
-            {
-              Expression RESULT = null;
-		int ueleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ueright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ue = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new UnaryOpExpr(ue); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(14/*UnaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 59: // UnaryExpr ::= UnionExpr 
-            {
-              Expression RESULT = null;
-		int ueleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ueright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ue = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ue; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(14/*UnaryExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 58: // MultiplicativeExpr ::= MultiplicativeExpr MOD UnaryExpr 
-            {
-              Expression RESULT = null;
-		int meleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int meright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression me = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int ueleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ueright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ue = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new BinOpExpr(BinOpExpr.MOD, me, ue); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(13/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 57: // MultiplicativeExpr ::= MultiplicativeExpr DIV UnaryExpr 
-            {
-              Expression RESULT = null;
-		int meleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int meright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression me = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int ueleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ueright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ue = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new BinOpExpr(BinOpExpr.DIV, me, ue); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(13/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 56: // MultiplicativeExpr ::= MultiplicativeExpr MULT UnaryExpr 
-            {
-              Expression RESULT = null;
-		int meleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int meright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression me = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int ueleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ueright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ue = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new BinOpExpr(BinOpExpr.TIMES, me, ue); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(13/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 55: // MultiplicativeExpr ::= UnaryExpr 
-            {
-              Expression RESULT = null;
-		int ueleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ueright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ue = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ue; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(13/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 54: // AdditiveExpr ::= AdditiveExpr MINUS MultiplicativeExpr 
-            {
-              Expression RESULT = null;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int meleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int meright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression me = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new BinOpExpr(BinOpExpr.MINUS, ae, me); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(12/*AdditiveExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 53: // AdditiveExpr ::= AdditiveExpr PLUS MultiplicativeExpr 
-            {
-              Expression RESULT = null;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int meleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int meright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression me = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new BinOpExpr(BinOpExpr.PLUS, ae, me); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(12/*AdditiveExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 52: // AdditiveExpr ::= MultiplicativeExpr 
-            {
-              Expression RESULT = null;
-		int meleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int meright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression me = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = me; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(12/*AdditiveExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 51: // RelationalExpr ::= RelationalExpr GE AdditiveExpr 
-            {
-              Expression RESULT = null;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new RelationalExpr(Operators.GE, re, ae); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(11/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 50: // RelationalExpr ::= RelationalExpr LE AdditiveExpr 
-            {
-              Expression RESULT = null;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new RelationalExpr(Operators.LE, re, ae); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(11/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 49: // RelationalExpr ::= RelationalExpr GT AdditiveExpr 
-            {
-              Expression RESULT = null;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new RelationalExpr(Operators.GT, re, ae); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(11/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 48: // RelationalExpr ::= RelationalExpr LT AdditiveExpr 
-            {
-              Expression RESULT = null;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new RelationalExpr(Operators.LT, re, ae); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(11/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 47: // RelationalExpr ::= AdditiveExpr 
-            {
-              Expression RESULT = null;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ae; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(11/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 46: // EqualityExpr ::= EqualityExpr NE RelationalExpr 
-            {
-              Expression RESULT = null;
-		int eeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int eeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression ee = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new EqualityExpr(Operators.NE, ee, re); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(10/*EqualityExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 45: // EqualityExpr ::= EqualityExpr EQ RelationalExpr 
-            {
-              Expression RESULT = null;
-		int eeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int eeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression ee = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new EqualityExpr(Operators.EQ, ee, re); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(10/*EqualityExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 44: // EqualityExpr ::= RelationalExpr 
-            {
-              Expression RESULT = null;
-		int releft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int reright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression re = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = re; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(10/*EqualityExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 43: // AndExpr ::= AndExpr AND EqualityExpr 
-            {
-              Expression RESULT = null;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int eeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int eeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ee = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new LogicalExpr(LogicalExpr.AND, ae, ee); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(9/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 42: // AndExpr ::= EqualityExpr 
-            {
-              Expression RESULT = null;
-		int eleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int eright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression e = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = e; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(9/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 41: // OrExpr ::= OrExpr OR AndExpr 
-            {
-              Expression RESULT = null;
-		int oeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int oeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Expression oe = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new LogicalExpr(LogicalExpr.OR, oe, ae); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(8/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 40: // OrExpr ::= AndExpr 
-            {
-              Expression RESULT = null;
-		int aeleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int aeright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ae = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ae; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(8/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 39: // Expr ::= OrExpr 
-            {
-              Expression RESULT = null;
-		int exleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int exright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression ex = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ex; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(2/*Expr*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 38: // Predicate ::= LBRACK Expr RBRACK 
-            {
-              Expression RESULT = null;
-		int eleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int eright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Expression e = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		
-		RESULT = new Predicate(e);
-	    
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(5/*Predicate*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 37: // Predicates ::= Predicate Predicates 
-            {
-              Vector RESULT = null;
-		int pleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int pright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Expression p = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 pp.insertElementAt(p, 0); RESULT = pp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(35/*Predicates*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 36: // Predicates ::= Predicate 
-            {
-              Vector RESULT = null;
-		int pleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int pright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression p = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-		Vector temp = new Vector();
-		temp.addElement(p);
-		RESULT = temp;     
-            
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(35/*Predicates*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 35: // ChildOrAttributeAxisSpecifier ::= ATTRIBUTE DCOLON 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.ATTRIBUTE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 34: // ChildOrAttributeAxisSpecifier ::= CHILD DCOLON 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.CHILD); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 33: // ChildOrAttributeAxisSpecifier ::= ATSIGN 
-            {
-              Integer RESULT = null;
-		 RESULT = new Integer(Axis.ATTRIBUTE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 32: // NameTestPattern ::= QName 
-            {
-              Object RESULT = null;
-		int qnleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int qnright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		QName qn = (QName)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = qn; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(34/*NameTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 31: // NameTestPattern ::= STAR 
-            {
-              Object RESULT = null;
-		 RESULT = null; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(34/*NameTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 30: // NodeTestPattern ::= PI 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.PI); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(33/*NodeTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 29: // NodeTestPattern ::= COMMENT 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.COMMENT); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(33/*NodeTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 28: // NodeTestPattern ::= TEXT 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.TEXT); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(33/*NodeTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 27: // NodeTestPattern ::= NODE 
-            {
-              Object RESULT = null;
-		 RESULT = new Integer(NodeTest.ANODE); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(33/*NodeTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 26: // NodeTestPattern ::= NameTestPattern 
-            {
-              Object RESULT = null;
-		int ntleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ntright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Object nt = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = nt; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(33/*NodeTestPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 25: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern Predicates 
-            {
-              StepPattern RESULT = null;
-		int axisleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int axisright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Integer axis = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int pipleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int pipright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		StepPattern pip = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	       // TODO: report error if axis is attribute	
-	       RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp); 
-	    
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 24: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern 
-            {
-              StepPattern RESULT = null;
-		int axisleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int axisright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Integer axis = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int pipleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int pipright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		StepPattern pip = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	       RESULT = pip; 	// TODO: report error if axis is attribute
-	    
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 23: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern Predicates 
-            {
-              StepPattern RESULT = null;
-		int axisleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int axisright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Integer axis = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int ntleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int ntright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Object nt = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	       RESULT = parser.createStepPattern(axis.intValue(), nt, pp);
-            
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 22: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern 
-            {
-              StepPattern RESULT = null;
-		int axisleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int axisright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Integer axis = (Integer)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ntleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ntright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Object nt = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-	       RESULT = parser.createStepPattern(axis.intValue(), nt, null);
-            
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 21: // StepPattern ::= ProcessingInstructionPattern Predicates 
-            {
-              StepPattern RESULT = null;
-		int pipleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int pipright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		StepPattern pip = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 20: // StepPattern ::= ProcessingInstructionPattern 
-            {
-              StepPattern RESULT = null;
-		int pipleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int pipright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		StepPattern pip = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = pip; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 19: // StepPattern ::= NodeTestPattern Predicates 
-            {
-              StepPattern RESULT = null;
-		int ntleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int ntright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		Object nt = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		int ppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Vector pp = (Vector)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-		RESULT = parser.createStepPattern(Axis.CHILD, nt, pp);
-            
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 18: // StepPattern ::= NodeTestPattern 
-            {
-              StepPattern RESULT = null;
-		int ntleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ntright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Object nt = (Object)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 
-		RESULT = parser.createStepPattern(Axis.CHILD, nt, null);
-            
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(32/*StepPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 17: // RelativePathPattern ::= StepPattern DSLASH RelativePathPattern 
-            {
-              RelativePathPattern RESULT = null;
-		int spleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int spright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		StepPattern sp = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new AncestorPattern(sp, rpp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(31/*RelativePathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 16: // RelativePathPattern ::= StepPattern SLASH RelativePathPattern 
-            {
-              RelativePathPattern RESULT = null;
-		int spleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int spright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		StepPattern sp = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new ParentPattern(sp, rpp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(31/*RelativePathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 15: // RelativePathPattern ::= StepPattern 
-            {
-              RelativePathPattern RESULT = null;
-		int spleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int spright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		StepPattern sp = (StepPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = sp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(31/*RelativePathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 14: // ProcessingInstructionPattern ::= PIPARAM LPAREN Literal RPAREN 
-            {
-              StepPattern RESULT = null;
-		int lleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int lright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		String l = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		 RESULT = new ProcessingInstructionPattern(l); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(30/*ProcessingInstructionPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 13: // IdKeyPattern ::= KEY LPAREN Literal COMMA Literal RPAREN 
-            {
-              IdKeyPattern RESULT = null;
-		int l1left = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left;
-		int l1right = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).right;
-		String l1 = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).value;
-		int l2left = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int l2right = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		String l2 = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		 RESULT = new KeyPattern(l1, l2); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(27/*IdKeyPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 12: // IdKeyPattern ::= ID LPAREN Literal RPAREN 
-            {
-              IdKeyPattern RESULT = null;
-		int lleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int lright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		String l = (String)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		 RESULT = new IdPattern(l);
-               parser.setHasIdCall(true);
-            
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(27/*IdKeyPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 11: // LocationPathPattern ::= RelativePathPattern 
-            {
-              Pattern RESULT = null;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = rpp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 10: // LocationPathPattern ::= DSLASH RelativePathPattern 
-            {
-              Pattern RESULT = null;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new AncestorPattern(rpp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 9: // LocationPathPattern ::= IdKeyPattern DSLASH RelativePathPattern 
-            {
-              Pattern RESULT = null;
-		int ikpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int ikpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		IdKeyPattern ikp = (IdKeyPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new AncestorPattern(ikp, rpp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 8: // LocationPathPattern ::= IdKeyPattern SLASH RelativePathPattern 
-            {
-              Pattern RESULT = null;
-		int ikpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int ikpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		IdKeyPattern ikp = (IdKeyPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new ParentPattern(ikp, rpp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 7: // LocationPathPattern ::= IdKeyPattern 
-            {
-              Pattern RESULT = null;
-		int ikpleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int ikpright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		IdKeyPattern ikp = (IdKeyPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = ikp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 6: // LocationPathPattern ::= SLASH RelativePathPattern 
-            {
-              Pattern RESULT = null;
-		int rppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int rppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		RelativePathPattern rpp = (RelativePathPattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new AbsolutePathPattern(rpp); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 5: // LocationPathPattern ::= SLASH 
-            {
-              Pattern RESULT = null;
-		 RESULT = new AbsolutePathPattern(null); 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(29/*LocationPathPattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 4: // Pattern ::= LocationPathPattern VBAR Pattern 
-            {
-              Pattern RESULT = null;
-		int lppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
-		int lppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
-		Pattern lpp = (Pattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
-		int pleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int pright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Pattern p = (Pattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = new AlternativePattern(lpp, p);  
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(28/*Pattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 3: // Pattern ::= LocationPathPattern 
-            {
-              Pattern RESULT = null;
-		int lppleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int lppright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Pattern lpp = (Pattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = lpp; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(28/*Pattern*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 2: // TopLevel ::= EXPRESSION Expr 
-            {
-              SyntaxTreeNode RESULT = null;
-		int exprleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int exprright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Expression expr = (Expression)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = expr; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(1/*TopLevel*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 1: // TopLevel ::= PATTERN Pattern 
-            {
-              SyntaxTreeNode RESULT = null;
-		int patternleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
-		int patternright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
-		Pattern pattern = (Pattern)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
-		 RESULT = pattern; 
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(1/*TopLevel*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          return CUP$XPathParser$result;
-
-          /*. . . . . . . . . . . . . . . . . . . .*/
-          case 0: // $START ::= TopLevel EOF 
-            {
-              Object RESULT = null;
-		int start_valleft = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
-		int start_valright = ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
-		SyntaxTreeNode start_val = (SyntaxTreeNode)((java_cup.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
-		RESULT = start_val;
-              CUP$XPathParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
-            }
-          /* ACCEPT */
-          CUP$XPathParser$parser.done_parsing();
-          return CUP$XPathParser$result;
-
-          /* . . . . . .*/
-          default:
-            throw new Exception(
-               "Invalid action number found in internal parse table");
-
-        }
-    }
-}
-
diff --git a/src/org/apache/xalan/xsltc/compiler/sym.java b/src/org/apache/xalan/xsltc/compiler/sym.java
deleted file mode 100644
index 6c68f58d..00000000
--- a/src/org/apache/xalan/xsltc/compiler/sym.java
+++ /dev/null
@@ -1,68 +0,0 @@
-
-//----------------------------------------------------
-// The following code was generated by CUP v0.10k
-// Fri Sep 16 18:02:07 IST 2022
-//----------------------------------------------------
-
-package org.apache.xalan.xsltc.compiler;
-
-/** CUP generated class containing symbol constants. */
-public class sym {
-  /* terminals */
-  public static final int MULT = 26;
-  public static final int Literal = 27;
-  public static final int GE = 21;
-  public static final int NAMESPACE = 49;
-  public static final int SLASH = 2;
-  public static final int PI = 36;
-  public static final int COMMENT = 35;
-  public static final int PIPARAM = 37;
-  public static final int FOLLOWINGSIBLING = 48;
-  public static final int ATSIGN = 12;
-  public static final int DSLASH = 15;
-  public static final int LPAREN = 7;
-  public static final int EXPRESSION = 54;
-  public static final int INT = 52;
-  public static final int CHILD = 41;
-  public static final int MINUS = 23;
-  public static final int STAR = 9;
-  public static final int DESCENDANTORSELF = 46;
-  public static final int RPAREN = 8;
-  public static final int AND = 34;
-  public static final int LT = 18;
-  public static final int OR = 33;
-  public static final int COMMA = 10;
-  public static final int DDOT = 13;
-  public static final int DIV = 24;
-  public static final int PLUS = 22;
-  public static final int DOT = 3;
-  public static final int ID = 29;
-  public static final int LE = 20;
-  public static final int QNAME = 28;
-  public static final int DESCENDANT = 45;
-  public static final int PRECEDINGSIBLING = 38;
-  public static final int EOF = 0;
-  public static final int error = 1;
-  public static final int SELF = 39;
-  public static final int VBAR = 6;
-  public static final int MOD = 25;
-  public static final int ANCESTORORSELF = 44;
-  public static final int PRECEDING = 50;
-  public static final int EQ = 16;
-  public static final int PATTERN = 53;
-  public static final int LBRACK = 4;
-  public static final int REAL = 51;
-  public static final int ANCESTOR = 43;
-  public static final int RBRACK = 5;
-  public static final int DCOLON = 14;
-  public static final int DOLLAR = 11;
-  public static final int NE = 17;
-  public static final int PARENT = 40;
-  public static final int FOLLOWING = 47;
-  public static final int KEY = 30;
-  public static final int TEXT = 31;
-  public static final int ATTRIBUTE = 42;
-  public static final int GT = 19;
-  public static final int NODE = 32;
-}
-
diff --git a/src/org/apache/xml/serializer/Version.java b/src/org/apache/xml/serializer/Version.java
deleted file mode 100644
index f973e2b5..00000000
--- a/src/org/apache/xml/serializer/Version.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the  "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * $Id$
- */
-package org.apache.xml.serializer;
-
-/**
- * Administrative class to keep track of the version number of
- * the Serializer release.
- * <P>This class implements the upcoming standard of having
- * org.apache.project-name.Version.getVersion() be a standard way 
- * to get version information.</P> 
- * @xsl.usage general
- */
-public final class Version
-{
-
-  /**
-   * Get the basic version string for the current Serializer.
-   * Version String formatted like 
-   * <CODE>"<B>Serializer</B> <B>Java</B> v.r[.dd| <B>D</B>nn]"</CODE>.
-   *
-   * Futurework: have this read version info from jar manifest.
-   *
-   * @return String denoting our current version
-   */
-  public static String getVersion()
-  {
-     return getProduct()+" "+getImplementationLanguage()+" "
-           +getMajorVersionNum()+"."+getReleaseVersionNum()+"."
-           +( (getDevelopmentVersionNum() > 0) ? 
-               ("D"+getDevelopmentVersionNum()) : (""+getMaintenanceVersionNum()));  
-  }
-
-  /**
-   * Print the processor version to the command line.
-   *
-   * @param argv command line arguments, unused.
-   */
-  public static void main(String argv[])
-  {
-    System.out.println(getVersion());
-  }
-  
-  /**
-   * Name of product: Serializer.
-   */
-  public static String getProduct()
-  {
-    return "Serializer";
-  }
-
-  /**
-   * Implementation Language: Java.
-   */
-  public static String getImplementationLanguage()
-  {
-    return "Java";
-  }
-  
-  
-  /**
-   * Major version number.
-   * Version number. This changes only when there is a
-   *          significant, externally apparent enhancement from
-   *          the previous release. 'n' represents the n'th
-   *          version.
-   *
-   *          Clients should carefully consider the implications
-   *          of new versions as external interfaces and behaviour
-   *          may have changed.
-   */
-  public static int getMajorVersionNum()
-  {
-    return 2;
-    
-  }  
-
-  /**
-   * Release Number.
-   * Release number. This changes when:
-   *            -  a new set of functionality is to be added, eg,
-   *               implementation of a new W3C specification.
-   *            -  API or behaviour change.
-   *            -  its designated as a reference release.
-   */
-  public static int getReleaseVersionNum()
-  {
-    return 7;
-  }
-  
-  /**
-   * Maintenance Drop Number.
-   * Optional identifier used to designate maintenance
-   *          drop applied to a specific release and contains
-   *          fixes for defects reported. It maintains compatibility
-   *          with the release and contains no API changes.
-   *          When missing, it designates the final and complete
-   *          development drop for a release.
-   */
-  public static int getMaintenanceVersionNum()
-  {
-    return 2;
-  }
-
-  /**
-   * Development Drop Number.
-   * Optional identifier designates development drop of
-   *          a specific release. D01 is the first development drop
-   *          of a new release.
-   *
-   *          Development drops are works in progress towards a
-   *          compeleted, final release. A specific development drop
-   *          may not completely implement all aspects of a new
-   *          feature, which may take several development drops to
-   *          complete. At the point of the final drop for the
-   *          release, the D suffix will be omitted.
-   *
-   *          Each 'D' drops can contain functional enhancements as
-   *          well as defect fixes. 'D' drops may not be as stable as
-   *          the final releases.
-   */
-  public static int getDevelopmentVersionNum()
-  { 
-    try {   
-        if ((new String("")).length() == 0)
-          return 0;
-        else  
-          return Integer.parseInt("");
-    } catch (NumberFormatException nfe) {
-           return 0;
-    }    
-  }      
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org