Specifying a Grammar

Terminals

[Terminal(@"\d+")]
public class Number : Terminal
{
}
A terminal is a class that:

Nonterminals

public class BooleanOperator : Nonterminal
{
}
A nonterminal is a class that:

Rules

public class BooleanOperator : Nonterminal
{
    public static void Rule(BooleanOperator result, OperatorAddition op)
    {
      // Code
    }
}
A rule is a static method that: