/** @throws ParserException */
 private void parseHtml() throws ParserException {
   htmlTags = new ArrayList();
   Parser parser = new Parser();
   parser.setInputHTML(fDocument.get());
   for (NodeIterator e = parser.elements(); e.hasMoreNodes(); ) {
     Node node = e.nextNode();
     VHtmlNodeVisitor htmlNodeVisitor = new VHtmlNodeVisitor();
     node.accept(htmlNodeVisitor);
   }
 }
 @Override
 public CompiledTemplate compile(
     final String template, final ParserConfiguration parserConfiguration) {
   Source source = new StringSource(template);
   Page page = new Page(source);
   Lexer lexer = new Lexer(page);
   HTMLNodeVisitor visitor =
       new HTMLNodeVisitor(
           ehtAttributeprefix, expressionCompiler, inlineCompilers, parserConfiguration);
   visitor.beginParsing();
   try {
     for (Node node = lexer.nextNode(); node != null; node = lexer.nextNode()) {
       node.accept(visitor);
     }
   } catch (ParserException e) {
     throw new RuntimeException(e);
   }
   visitor.finishedParsing();
   return new CompiledTemplateImpl(visitor.getRootNode());
 }