public bool parse(string wikiText, Grammar grammar) //where T : WikiText { TextParsed.Add(wikiText); if (wikiText.valid().isFalse()) { return(false); // (T)this; } //var grammar = new T1(); var Parser = new Parser(grammar); ParseTree = Parser.Parse(wikiText); Status = ParseTree.Status; ParserMessages = ParseTree.ParserMessages; if (ParserMessages.size() > 0) { "There were errors processing this WikiText".error(); foreach (var message in ParserMessages) { " - {0}: {1} at location {2}".error(message.Level.str(), message.str(), message.Location.str()); } return(false); } return(processParseTree()); //return (T)this; }
public void Publish() { TextParsed?.Invoke(RegExpParserResult, new RegExpParserResultEventArgs(RegExpParserResult)); }