public ZeroOrMore(string RuleName, SyntaxRule Terms, string Description) : base(string.Empty, stream(Terms)) { }
public ZeroOrMore(SyntaxRule Terms) : base(string.Empty, stream(Terms)) { }
public Parenthetical(SyntaxRule Rule, string Description = null) : base(string.Empty, stream(Rule), Description) { }
protected RuleGroup(string RuleName, SyntaxRule Term, string Description = null) : this(RuleName, stream(Term), Description) { }
public OptionalRule(SyntaxRule Rule, string Description = null) : base(string.Empty, stream(Rule), Description) { }
public static Parenthetical Define(SyntaxRule rule, string Description = null) => new Parenthetical(rule, Description);
public AssignmentRule(string RuleName, SyntaxRule first, SyntaxRule second, string Description = null) : base(RuleName, stream(first, second), Description) { }
public OptionalRule(string RuleName, SyntaxRule Rule, string Description = null) : base(RuleName, stream(Rule), Description) { }
public OneOrMore(SyntaxRule Rule) : base(string.Empty, stream(Rule)) { }
public RuleGroup(SyntaxRule Term, string Description = null) : base(string.Empty, Term) { }
public RuleGroup(string RuleName, SyntaxRule Term, string Description = null) : base(RuleName, Term) { }
/// <summary> /// Concatentates the supplied rules to form a <see cref="RuleSequence"/> /// </summary> /// <param name="r1">The first rule</param> /// <param name="r2">The second (composite) rule</param> /// <returns></returns> public static RuleSequence Append(SyntaxRule r1, (SyntaxRule x1, SyntaxRule x2) r2)
/// <summary> /// Concatenates two rules to form a <see cref="RuleSequence"/> /// </summary> /// <param name="r1">The first rule</param> /// <param name="r2">The second rule</param> /// <returns></returns> public static RuleSequence Append(SyntaxRule r1, SyntaxRule r2) => new RuleSequence(stream(r1, r2));