bool RunImpl(ESampleId eSampleId, byte[] src, TextWriter Fout, out PegNode tree) { SampleInfo sample = sampleGrammars.Find(si => si.grammarId == eSampleId); if (sample.startRule.Target is PegByteParser) { try { PegByteParser pg = (PegByteParser)sample.startRule.Target; pg.Construct(src, Fout); bool bMatches = sample.startRule(); tree = ((PegByteParser)sample.startRule.Target).GetRoot(); return bMatches; } catch (PegException) { tree = ((PegByteParser)sample.startRule.Target).GetRoot(); return false; } } Debug.Assert(false); tree = null; return false; }
void GetGrammarFileNameAndSource(PegByteParser parser, int ruleId, out string grammarFileName, out byte[] src) { grammarFileName = parser.GetRuleNameFromId(ruleId); src = parser.GetSource(); }