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; }
internal ServerScript(ServerProcess process, string script, DebugLocator locator) : base() { _process = process; _batches = new ServerBatches(); _messages = new ParserMessages(); _sourceContext = new SourceContext(script, locator); try { _script = _process.ParseScript(script, _messages); } catch (SyntaxException e) { e.SetLocator(locator); throw; } _messages.SetLocator(locator); if ((_script is Block) && (((Block)_script).Statements.Count > 0)) { Block block = (Block)_script; for (int index = 0; index < block.Statements.Count; index++) { _batches.Add(new ServerBatch(this, block.Statements[index])); } } else { _batches.Add(new ServerBatch(this, _script)); } }