예제 #1
0
		/// <summary>
		/// Initializes a new copy of the <see cref="Eto.Parse.Grammar"/> class
		/// </summary>
		/// <param name="other">Other object to copy</param>
		/// <param name="args">Arguments for the copy</param>
		protected Grammar(Grammar other, ParserCloneArgs args)
		{
			this.EnableMatchEvents = other.EnableMatchEvents;
			this.Separator = args.Clone(other.Separator);
			this.CaseSensitive = other.CaseSensitive;
			this.Optimizations = other.Optimizations;
		}
예제 #2
0
 /// <summary>
 /// Initializes a new copy of the <see cref="Eto.Parse.Grammar"/> class
 /// </summary>
 /// <param name="other">Other object to copy</param>
 /// <param name="args">Arguments for the copy</param>
 protected Grammar(Grammar other, ParserCloneArgs args)
 {
     this.EnableMatchEvents = other.EnableMatchEvents;
     this.Separator         = args.Clone(other.Separator);
     this.CaseSensitive     = other.CaseSensitive;
     this.Optimizations     = other.Optimizations;
 }
예제 #3
0
		protected UntilParser(UntilParser other, ParserCloneArgs args)
			: base(other, args)
		{
			Minimum = other.Minimum;
			Maximum = other.Maximum;
			Skip = other.Skip;
			Capture = other.Capture;
		}
예제 #4
0
 protected RepeatParser(RepeatParser other, ParserCloneArgs args)
     : base(other, args)
 {
     Minimum = other.Minimum;
     Maximum = other.Maximum;
     Until = args.Clone(other.Until);
     SkipUntil = other.SkipUntil;
     CaptureUntil = other.CaptureUntil;
     Separator = args.Clone(other.Separator);
 }
예제 #5
0
 public abstract Parser Clone(ParserCloneArgs args);
예제 #6
0
 /// <summary>
 /// Initializes a new copy of the <see cref="Eto.Parse.Parser"/> class
 /// </summary>
 /// <param name="other">Parser to copy</param>
 /// <param name="args">Arguments for the copy</param>
 protected Parser(Parser other, ParserCloneArgs args)
 {
     AddError = other.AddError;
     args.Add(other, this);
 }
예제 #7
0
 public override Parser Clone(ParserCloneArgs args)
 {
     return new AlternativeParser(this, args);
 }
예제 #8
0
 protected AlternativeParser(AlternativeParser other, ParserCloneArgs chain)
     : base(other, chain)
 {
 }
예제 #9
0
		protected EndParser(EndParser other, ParserCloneArgs chain)
			: base(other, chain)
		{
		}
예제 #10
0
		public override Parser Clone(ParserCloneArgs args)
		{
			return new UntilParser(this, args);
		}
예제 #11
0
		protected ListParser(ListParser other, ParserCloneArgs chain)
			: base(other, chain)
		{
			Items = new List<Parser>(other.Items.Select(chain.Clone));
		}
예제 #12
0
		public override Parser Clone(ParserCloneArgs args)
		{
			return new LiteralTerminal(this, args);
		}
예제 #13
0
		protected LiteralTerminal(LiteralTerminal other, ParserCloneArgs chain)
			: base(other, chain)
		{
			CaseSensitive = other.CaseSensitive;
			Value = other.Value;
		}
예제 #14
0
파일: UnaryParser.cs 프로젝트: Myvar/Eclang
 protected UnaryParser(UnaryParser other, ParserCloneArgs args)
     : base(other, args)
 {
     Inner = args.Clone(other.Inner);
 }
예제 #15
0
 protected UnaryParser(UnaryParser other, ParserCloneArgs args)
     : base(other, args)
 {
     Inner = args.Clone(other.Inner);
 }
예제 #16
0
 public override Parser Clone(ParserCloneArgs args)
 {
     return(new UnaryParser(this, args));
 }
예제 #17
0
		public override Parser Clone(ParserCloneArgs args)
		{
			return new Grammar(this, args);
		}
예제 #18
0
 public override Parser Clone(ParserCloneArgs args)
 {
     return(new Grammar(this, args));
 }
예제 #19
0
 protected ListParser(ListParser other, ParserCloneArgs chain)
     : base(other, chain)
 {
     Items = new List <Parser>(other.Items.Select(chain.Clone));
 }
예제 #20
0
 public override Parser Clone(ParserCloneArgs args)
 {
     return new RepeatParser(this, args);
 }
예제 #21
0
		protected StartParser(StartParser other, ParserCloneArgs chain)
			: base(other, chain)
		{
		}