home *** CD-ROM | disk | FTP | other *** search
/ Online Today 2000 January / Onto0100.iso / pc / JAVA / MSJAVX86.EXE / xmldso.cab / XML4IE3.cab / com / ms / xml / parser / Terminal.class (.txt) < prev   
Encoding:
Java Class File  |  1997-10-10  |  1.9 KB  |  68 lines

  1. package com.ms.xml.parser;
  2.  
  3. import com.ms.xml.util.Name;
  4. import com.ms.xml.util.XMLOutputStream;
  5. import java.io.IOException;
  6. import java.util.BitSet;
  7.  
  8. class Terminal extends Node {
  9.    int pos;
  10.    Name name;
  11.  
  12.    BitSet firstpos(int var1) {
  13.       if (super.first == null) {
  14.          super.first = new BitSet(var1);
  15.          super.first.set(this.pos);
  16.       }
  17.  
  18.       return super.first;
  19.    }
  20.  
  21.    BitSet lastpos(int var1) {
  22.       if (super.last == null) {
  23.          super.last = new BitSet(var1);
  24.          super.last.set(this.pos);
  25.       }
  26.  
  27.       return super.last;
  28.    }
  29.  
  30.    void save(XMLOutputStream var1, int var2, int var3, Name var4) throws IOException {
  31.       if (this.name.toString().equals("PCDATA")) {
  32.          if (var3 != 0 && (var3 != 1 || var2 != 42)) {
  33.             var1.writeChars("#PCDATA");
  34.          } else {
  35.             var1.writeChars("(#PCDATA)");
  36.          }
  37.       } else if (var2 != 35 && (var3 != 1 || var2 != 63 && var2 != 42)) {
  38.          var1.writeQualifiedName(this.name, var4);
  39.       } else {
  40.          var1.writeChars("(");
  41.          var1.writeQualifiedName(this.name, var4);
  42.          var1.writeChars(")");
  43.       }
  44.    }
  45.  
  46.    Node clone(ContentModel var1) {
  47.       return new Terminal(var1, this.name);
  48.    }
  49.  
  50.    Terminal(ContentModel var1, Name var2) {
  51.       this.name = var2;
  52.       this.pos = var1.terminalnodes.size();
  53.       var1.terminalnodes.addElement(this);
  54.       if (var2 != null && var1.symboltable.get(var2) == null) {
  55.          var1.symboltable.put(var2, new Integer(var1.symbols.size()));
  56.          var1.symbols.addElement(var2);
  57.       }
  58.  
  59.    }
  60.  
  61.    void calcfollowpos(BitSet[] var1) {
  62.    }
  63.  
  64.    boolean nullable() {
  65.       return this.name == null;
  66.    }
  67. }
  68.