112 lines
3.4 KiB
Java
112 lines
3.4 KiB
Java
/*
|
|
* Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation. Oracle designates this
|
|
* particular file as subject to the "Classpath" exception as provided
|
|
* by Oracle in the LICENSE file that accompanied this code.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
package sun.tools.jstat;
|
|
|
|
import java.io.StreamTokenizer;
|
|
|
|
/**
|
|
* A class for encapsulating tokens returned from StreamTokenizer primarily
|
|
* for output formatting purposes.
|
|
*
|
|
* @author Brian Doherty
|
|
* @since 1.5
|
|
*/
|
|
public class Token {
|
|
public String sval;
|
|
public double nval;
|
|
public int ttype;
|
|
|
|
public Token(int ttype, String sval, double nval) {
|
|
this.ttype = ttype;
|
|
this.sval = sval;
|
|
this.nval = nval;
|
|
}
|
|
|
|
public Token(int ttype, String sval) {
|
|
this(ttype, sval, 0);
|
|
}
|
|
|
|
public Token(int ttype) {
|
|
this(ttype, null, 0);
|
|
}
|
|
|
|
public String toMessage() {
|
|
switch(ttype) {
|
|
case StreamTokenizer.TT_EOL:
|
|
return "\"EOL\"";
|
|
case StreamTokenizer.TT_EOF:
|
|
return "\"EOF\"";
|
|
case StreamTokenizer.TT_NUMBER:
|
|
return "NUMBER";
|
|
case StreamTokenizer.TT_WORD:
|
|
if (sval == null) {
|
|
return "IDENTIFIER";
|
|
} else {
|
|
return "IDENTIFIER " + sval;
|
|
}
|
|
default:
|
|
if (ttype == (int)'"') {
|
|
String msg = "QUOTED STRING";
|
|
if (sval != null)
|
|
msg = msg + " \"" + sval + "\"";
|
|
return msg;
|
|
} else {
|
|
return "CHARACTER \'" + (char)ttype + "\'";
|
|
}
|
|
}
|
|
}
|
|
|
|
public String toString() {
|
|
StringBuilder sb = new StringBuilder();
|
|
switch(ttype) {
|
|
case StreamTokenizer.TT_EOL:
|
|
sb.append("ttype=TT_EOL");
|
|
break;
|
|
case StreamTokenizer.TT_EOF:
|
|
sb.append("ttype=TT_EOF");
|
|
break;
|
|
case StreamTokenizer.TT_NUMBER:
|
|
sb.append("ttype=TT_NUM,").append("nval="+nval);
|
|
break;
|
|
case StreamTokenizer.TT_WORD:
|
|
if (sval == null) {
|
|
sb.append("ttype=TT_WORD:IDENTIFIER");
|
|
} else {
|
|
sb.append("ttype=TT_WORD:").append("sval="+sval);
|
|
}
|
|
break;
|
|
default:
|
|
if (ttype == (int)'"') {
|
|
sb.append("ttype=TT_STRING:").append("sval="+sval);
|
|
} else {
|
|
sb.append("ttype=TT_CHAR:").append((char)ttype);
|
|
}
|
|
break;
|
|
}
|
|
return sb.toString();
|
|
}
|
|
}
|