RailroadExpression Class

An expression of a rule of a railroad diagram: a terminal, a nonterminal, a sequence, a choice, an optional part, a repetition or a special sequence.

public abstract class RailroadExpression

Methods

NameDescription
Choice(IEnumerable<RailroadExpression>)Creates a choice: expressions of which one applies.
Nonterminal(string)Creates a nonterminal: a reference to a rule, drawn in a box.
OneOrMore(RailroadExpression)Creates a repetition of one or more times.
Optional(RailroadExpression)Creates an optional expression: zero or one time.
Sequence(IEnumerable<RailroadExpression>)Creates a sequence: expressions one after the other.
Special(string)Creates a special sequence: a description of what cannot be written in the grammar, drawn as ? text ?.
Terminal(string)Creates a terminal: a literal text, drawn in a rounded box.
ZeroOrMore(RailroadExpression)Creates a repetition of zero or more times.

Choice(IEnumerable<RailroadExpression>)

RailroadExpression.cs

Creates a choice: expressions of which one applies.

public static RailroadChoice Choice(params IEnumerable<RailroadExpression> alternatives)

Parameters

alternatives IEnumerable<RailroadExpression>
The alternatives.

Returns

RailroadChoice The choice.

Nonterminal(string)

RailroadExpression.cs

Creates a nonterminal: a reference to a rule, drawn in a box.

public static RailroadNonterminal Nonterminal(string name)

Parameters

name string
The name of the rule.

Returns

RailroadNonterminal The nonterminal.

OneOrMore(RailroadExpression)

RailroadExpression.cs

Creates a repetition of one or more times.

public static RailroadRepetition OneOrMore(RailroadExpression expression)

Parameters

expression RailroadExpression
The repeated expression.

Returns

RailroadRepetition The repetition.

Optional(RailroadExpression)

RailroadExpression.cs

Creates an optional expression: zero or one time.

public static RailroadOptional Optional(RailroadExpression expression)

Parameters

expression RailroadExpression
The expression.

Returns

RailroadOptional The optional expression.

Sequence(IEnumerable<RailroadExpression>)

RailroadExpression.cs

Creates a sequence: expressions one after the other.

public static RailroadSequence Sequence(params IEnumerable<RailroadExpression> items)

Parameters

items IEnumerable<RailroadExpression>
The expressions.

Returns

RailroadSequence The sequence.

Special(string)

RailroadExpression.cs

Creates a special sequence: a description of what cannot be written in the grammar, drawn as ? text ?.

public static RailroadSpecial Special(string text)

Parameters

text string
The description.

Returns

RailroadSpecial The special sequence.

Terminal(string)

RailroadExpression.cs

Creates a terminal: a literal text, drawn in a rounded box.

public static RailroadTerminal Terminal(string value)

Parameters

value string
The text.

Returns

RailroadTerminal The terminal.

ZeroOrMore(RailroadExpression)

RailroadExpression.cs

Creates a repetition of zero or more times.

public static RailroadRepetition ZeroOrMore(RailroadExpression expression)

Parameters

expression RailroadExpression
The repeated expression.

Returns

RailroadRepetition The repetition.