public void Parse(Stream stream, Action <string> callback) { var inputStream = new AntlrInputStream(stream); var lexer = new HTMLLexer(inputStream); lexer.RemoveErrorListeners(); var tokenStream = new CommonTokenStream(lexer); var parser = new HTMLParser(tokenStream); parser.RemoveErrorListeners(); var context = parser.htmlDocument(); var listener = new HTMLKeywordParserListener() { Emit = (x) => callback(x), MinimumLength = MinimumLength, MaximumLength = MaximumLength, IncludeChardata = IncludeChardata, IncludeComments = IncludeComments }; var walker = new ParseTreeWalker(); walker.Walk(listener, context); }