コード例 #1
0
ファイル: SamplesTester.cs プロジェクト: windsurfer/dotless
 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;
 }
コード例 #2
0
 void GetGrammarFileNameAndSource(PegByteParser parser, int ruleId, out string grammarFileName, out byte[] src)
 {
     grammarFileName = parser.GetRuleNameFromId(ruleId);
     src             = parser.GetSource();
 }