/* * $Header: /home/projects/jaxen/scm/jaxen/src/java/main/org/jaxen/saxpath/base/TokenTypes.java,v 1.12 2006/02/05 21:47:42 elharo Exp $ * $Revision: 1.12 $ * $Date: 2006/02/05 21:47:42 $ * * ==================================================================== * * Copyright 2000-2004 bob mcwhirter & James Strachan. * All rights reserved. * * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the Jaxen Project nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ==================================================================== * This software consists of voluntary contributions made by many * individuals on behalf of the Jaxen Project and was originally * created by bob mcwhirter <bob@werken.com> and * James Strachan <jstrachan@apache.org>. For more information on the * Jaxen Project, please see <http://www.jaxen.org/>. * * $Id: TokenTypes.java,v 1.12 2006/02/05 21:47:42 elharo Exp $ */ package org.orbeon.jaxen.saxpath.base; class TokenTypes { static final int EOF = -1; static final int SKIP = -2; static final int ERROR = -3; static final int EQUALS = 1; static final int NOT_EQUALS = 2; static final int LESS_THAN_SIGN = 3; static final int LESS_THAN_OR_EQUALS_SIGN = 4; static final int GREATER_THAN_SIGN = 5; static final int GREATER_THAN_OR_EQUALS_SIGN = 6; static final int PLUS = 7; static final int MINUS = 8; static final int STAR = 9; static final int MOD = 10; static final int DIV = 11; static final int SLASH = 12; static final int DOUBLE_SLASH = 13; static final int DOT = 14; static final int DOT_DOT = 15; static final int IDENTIFIER = 16; static final int AT = 17; static final int PIPE = 18; static final int COLON = 19; static final int DOUBLE_COLON = 20; static final int LEFT_BRACKET = 21; static final int RIGHT_BRACKET = 22; static final int LEFT_PAREN = 23; static final int RIGHT_PAREN = 24; // 25 was NOT but there is no such token in XPath static final int DOLLAR = 25; static final int LITERAL = 26; static final int AND = 27; static final int OR = 28; // No need for an integer token type. All numbers // in XPath are doubles. static final int DOUBLE = 29; static final int COMMA = 30; static String getTokenText( int tokenType ) { switch( tokenType ) { case ERROR: return "(error)"; case SKIP: return "(skip)"; case EOF: return "(eof)"; case 0: return "Unrecognized token type: 0"; case EQUALS: return "="; case NOT_EQUALS: return "!="; case LESS_THAN_SIGN: return "<"; case LESS_THAN_OR_EQUALS_SIGN: return "<="; case GREATER_THAN_SIGN: return ">"; case GREATER_THAN_OR_EQUALS_SIGN: return ">="; case PLUS: return "+"; case MINUS: return "-"; case STAR: return "*"; case DIV: return "div"; case MOD: return "mod"; case SLASH: return "/"; case DOUBLE_SLASH: return "//"; case DOT: return "."; case DOT_DOT: return ".."; case IDENTIFIER: return "(identifier)"; case AT: return "@"; case PIPE: return "|"; case COLON: return ":"; case DOUBLE_COLON: return "::"; case LEFT_BRACKET: return "["; case RIGHT_BRACKET: return "]"; case LEFT_PAREN: return "("; case RIGHT_PAREN: return ")"; case DOLLAR: return "$"; case LITERAL: return "(literal)"; case AND: return "and"; case OR: return "or"; case DOUBLE: return "(double)"; case COMMA: return ","; default: // This method is only called from an error handler, and only // to provide an exception message. In other words, the string // returned by this method is only used in an exception message. // Something has already gone wrong, and is being reported. // Thus there's no real reason to throw another exception here. // Just return a string and this message will be reported in an // exception anyway. return("Unrecognized token type: " + tokenType); } } }