home *** CD-ROM | disk | FTP | other *** search
- package mug.util;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.StreamTokenizer;
- import java.util.Hashtable;
-
- public class HTMLStreamTokenizer {
- public static final int EOF = 0;
- public static final int TAG = 1;
- public static final int TEXT = 2;
- private int _type;
- private String _value;
- private Hashtable _params;
- private boolean _pushedBack = false;
- private StreamTokenizer _st;
-
- public HTMLStreamTokenizer(InputStream var1) {
- this._st = new StreamTokenizer(var1);
- this._st.resetSyntax();
- this._st.whitespaceChars(0, 32);
- this._st.wordChars(33, 33);
- this._st.wordChars(35, 59);
- this._st.wordChars(63, 255);
- this._st.quoteChar(34);
- }
-
- public int getType() {
- return this._type;
- }
-
- public String getValue() {
- return this._value;
- }
-
- public Hashtable getParams() {
- return this._params;
- }
-
- public String getParamValue(String var1) {
- String var2 = var1.toUpperCase();
- if (this._params.containsKey(var2)) {
- return (String)this._params.get(var2);
- } else {
- String var3 = var1.toLowerCase();
- return this._params.containsKey(var3) ? (String)this._params.get(var3) : null;
- }
- }
-
- public boolean containsParamName(String var1) {
- String var2 = var1.toUpperCase();
- String var3 = var1.toLowerCase();
- return this._params.containsKey(var2) || this._params.containsKey(var3);
- }
-
- public int nextToken() throws IOException {
- if (this._pushedBack) {
- this._pushedBack = false;
- return this._type;
- } else {
- try {
- String var1;
- if ((var1 = this.nextStreamToken()) == null) {
- return 0;
- }
-
- if (var1.equals("<")) {
- var1 = this.nextStreamToken();
- if (var1.startsWith("!")) {
- while((var1 = this.nextStreamToken()) != null && !var1.equals(">")) {
- }
-
- return this.nextToken();
- }
-
- this._type = 1;
- this._value = var1;
- this._params = new Hashtable();
-
- while((var1 = this.nextStreamToken()) != null && !var1.equals(">")) {
- String var2 = var1;
- var1 = this.nextStreamToken();
- if (var1.equals("=")) {
- String var3 = this.nextStreamToken();
- this._params.put(var2, var3);
- } else {
- this._params.put(var2, var2);
- this._st.pushBack();
- }
- }
- } else {
- this._type = 2;
- StringBuffer var10 = new StringBuffer(var1);
-
- while((var1 = this.nextStreamToken()) != null) {
- if (var1.equals("<")) {
- this._st.pushBack();
- break;
- }
-
- var10.append(" " + var1);
- }
-
- this._value = var10.toString();
- }
- } catch (IOException var4) {
- throw (IOException)((Throwable)var4).fillInStackTrace();
- }
-
- return this._type;
- }
- }
-
- public void pushBack() {
- this._pushedBack = true;
- }
-
- public boolean nextTag() {
- return this.nextTag((String)null);
- }
-
- public boolean nextTag(String var1) {
- int var2;
- try {
- while((var2 = this.nextToken()) != 0) {
- if (var2 == 1 && (var1 == null || this._value.equalsIgnoreCase(var1))) {
- return true;
- }
- }
- } catch (IOException var3) {
- System.out.println("Caught an exception: " + ((Throwable)var3).getMessage());
- ((Throwable)var3).printStackTrace();
- }
-
- return false;
- }
-
- public boolean compareTag(String var1) {
- return this._type == 1 && this._value.equalsIgnoreCase(var1);
- }
-
- public boolean nextText() {
- int var1;
- try {
- while((var1 = this.nextToken()) != 0) {
- if (var1 == 2) {
- return true;
- }
- }
- } catch (IOException var2) {
- System.out.println("Caught an exception: " + ((Throwable)var2).getMessage());
- ((Throwable)var2).printStackTrace();
- }
-
- return false;
- }
-
- private String nextStreamToken() throws IOException {
- String var1 = null;
-
- try {
- int var2 = this._st.nextToken();
- switch (var2) {
- case -3:
- case 34:
- var1 = this._st.sval;
- case -1:
- break;
- default:
- var1 = String.valueOf((char)var2);
- }
-
- return var1;
- } catch (IOException var3) {
- throw (IOException)((Throwable)var3).fillInStackTrace();
- }
- }
- }
-