コード例 #1
0
ファイル: RepeatParser.cs プロジェクト: olivr70/Eto.Parse
 protected override void InnerInitialize(ParserInitializeArgs args)
 {
     if (Separator != null)
     {
         Separator.Initialize(args);
     }
     if (Until != null)
     {
         Until.Initialize(args);
     }
     separator        = Separator ?? args.Grammar.Separator;
     skipUntilMatches = (Until != null && (Until.AddMatch || Until.Children.Any(r => r.AddMatch)));
     hasChildMatch    = false;
     if (!AddMatch)
     {
         if (separator != null)
         {
             hasChildMatch |= separator.AddMatch || separator.Children.Any(r => r.AddMatch);
         }
         if (Inner != null)
         {
             hasChildMatch |= Inner.AddMatch || Inner.Children.Any(r => r.AddMatch);
         }
     }
     base.InnerInitialize(args);
 }
コード例 #2
0
 public override void Initialize(ParserInitializeArgs args)
 {
     base.Initialize(args);
     if (args.Push(this))
     {
         if (Separator != null)
         {
             Separator.Initialize(args);
         }
         if (Until != null)
         {
             Until.Initialize(args);
         }
         separator        = Separator ?? args.Grammar.Separator;
         skipUntilMatches = (Until != null && (Until.Name != null || Until.Children().Any(r => r.Name != null)));
         args.Pop();
     }
 }