コード例 #1
0
        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;
        }
コード例 #2
0
 public void Publish()
 {
     TextParsed?.Invoke(RegExpParserResult, new RegExpParserResultEventArgs(RegExpParserResult));
 }