Ejemplo n.º 1
0
  public void read(IntReader reader) throws IOException {
    mRoot.checkStartTag(NS_START);
    mVisitor.push(mRoot);
    mRoot.readStart(reader);

    int chunkType;

    end:
    while (true) {
      chunkType = reader.readInt();

      switch (chunkType) {
        case NODE_START:
          {
            BTagNode node = new BTagNode();
            node.checkStartTag(NODE_START);
            BXMLNode parent = mVisitor.peek();
            parent.addChild(node);
            mVisitor.push(node);

            node.readStart(reader);
          }
          break;
        case NODE_END:
          {
            BTagNode node = (BTagNode) mVisitor.pop();
            node.checkEndTag(NODE_END);
            node.readEnd(reader);
          }
          break;
        case TEXT:
          {
            System.out.println("Hello Text");
          }
          break;
        case NS_END:
          break end;
      }
    }

    if (!mRoot.equals(mVisitor.pop())) {
      throw new IOException("doc has invalid end");
    }

    mRoot.checkEndTag(chunkType);
    mRoot.readEnd(reader);
  }