home *** CD-ROM | disk | FTP | other *** search
- package BsscXML;
-
- import java.io.IOException;
- import java.io.Reader;
-
- public class BsscXMLTokenizer {
- private static final int buffersize = 128;
- IBsscXMLParser m_out;
-
- private static final boolean isSpace(int var0) {
- return var0 == 32 || var0 == 9 || var0 == 10 || var0 == 13;
- }
-
- public int getAttribute(int var1, Reader var2) throws IOException, BsscXMLException {
- StringBuffer var3 = new StringBuffer(128);
- StringBuffer var4 = new StringBuffer(128);
- if (isSpace(var1)) {
- var1 = this.skipSpace(var2);
- }
-
- while(var1 != -1 && isNameChar(var1)) {
- var3.append((char)var1);
- var1 = var2.read();
- }
-
- if (var3.length() != 0 && var1 != -1) {
- if (isSpace(var1)) {
- var1 = this.skipSpace(var2);
- }
-
- if (var1 == 61) {
- var1 = this.skipSpace(var2);
- if (var1 == 39 || var1 == 34) {
- int var5 = var1;
-
- for(var1 = var2.read(); var1 != -1 && var1 != var5; var1 = var2.read()) {
- var4.append((char)var1);
- }
-
- if (var1 == var5) {
- this.m_out.findAttr(var3.toString(), var4.toString());
- }
-
- var1 = var2.read();
- }
- }
- }
-
- return var1;
- }
-
- BsscXMLTokenizer(IBsscXMLParser var1) {
- this.m_out = var1;
- }
-
- public int getTag(int var1, Reader var2) throws BsscXMLException, IOException {
- StringBuffer var3 = new StringBuffer(128);
- if (isSpace(var1)) {
- var1 = this.skipSpace(var2);
- }
-
- while(var1 != -1 && isNameChar(var1)) {
- var3.append((char)var1);
- var1 = var2.read();
- }
-
- if (var1 != -1) {
- this.m_out.beginElement(var3.toString());
- if (isSpace(var1)) {
- var1 = this.skipSpace(var2);
- }
-
- var1 = this.getAttributes(var1, var2);
- if (var1 == 47) {
- int var4 = var2.read();
- if (var4 == 62) {
- this.m_out.endElement("");
- var1 = var2.read();
- }
- } else if (var1 == 62) {
- return var2.read();
- }
- }
-
- return var1;
- }
-
- public int skipHeader(Reader var1) throws IOException {
- int var2 = -1;
-
- for(var2 = var1.read(); var2 != -1; var2 = var1.read()) {
- if (var2 == 63) {
- int var3 = var1.read();
- if (var3 == 62) {
- var2 = var1.read();
- break;
- }
- }
- }
-
- return var2;
- }
-
- public int getAttributes(int var1, Reader var2) throws IOException, BsscXMLException {
- while(var1 != -1 && var1 != 47 && var1 != 62) {
- if (isNameChar(var1)) {
- var1 = this.getAttribute(var1, var2);
- } else {
- var1 = -1;
- }
-
- if (isSpace(var1)) {
- var1 = this.skipSpace(var2);
- }
- }
-
- return var1;
- }
-
- public int getEndTag(Reader var1) throws IOException, BsscXMLException {
- StringBuffer var2 = new StringBuffer(128);
- int var3 = -1;
-
- for(var3 = this.skipSpace(var1); var3 != -1 && isNameChar(var3); var3 = var1.read()) {
- var2.append((char)var3);
- }
-
- if (isSpace(var3)) {
- var3 = this.skipSpace(var1);
- if (var3 != 62) {
- return -1;
- }
- }
-
- if (var3 != -1) {
- this.m_out.endElement(var2.toString());
- return this.skipSpace(var1);
- } else {
- return -1;
- }
- }
-
- private static final boolean isNameChar(int var0) {
- return 97 <= var0 && var0 <= 122 || 65 <= var0 && var0 <= 90 || 48 <= var0 && var0 <= 57 || var0 == 46 || var0 == 45 || var0 == 95;
- }
-
- void tokenize(Reader var1) {
- StringBuffer var3 = new StringBuffer(128);
-
- try {
- int var2 = this.skipHeader(var1);
- if (isSpace(var2)) {
- var2 = this.skipSpace(var1);
- }
-
- this.m_out.beginDocument();
-
- do {
- if (var2 == 60) {
- if (var3.length() != 0 && var3.length() != 0) {
- this.m_out.beginElement("#text");
- this.m_out.findValue(var3.toString());
- this.m_out.endElement("");
- var3.setLength(0);
- }
-
- int var4 = var1.read();
- if (var4 == 47) {
- var2 = this.getEndTag(var1);
- } else {
- var2 = this.getTag(var4, var1);
- }
-
- if (isSpace(var2)) {
- var2 = this.skipSpace(var1);
- }
- } else {
- var3.append((char)var2);
- var2 = var1.read();
- }
- } while(var2 != -1);
-
- this.m_out.endDocument();
- } catch (Exception var5) {
- ((Throwable)var5).printStackTrace();
- }
- }
-
- public int skipSpace(Reader var1) throws IOException {
- int var2 = -1;
-
- for(var2 = var1.read(); var2 != -1 && isSpace(var2); var2 = var1.read()) {
- }
-
- return var2;
- }
- }
-