public void TestCase1()
 {
     var context = new Context("Hello World");
       var root = new NonTerminalExpression
       {
     Expression1 = new TerminalExpression(),
     Expression2 = new TerminalExpression()
       };
       root.Interpret(context);
 }
 public override void Interpret(Context context)
 {
     Console.WriteLine("Terminal Symbol {0}.", context.Name);
 }
 public override void Interpret(Context context)
 {
     Console.WriteLine("Non Terminal Symbol {0}.", context.Name);
       Expression1.Interpret(context);
       Expression2.Interpret(context);
 }
 public abstract void Interpret(Context context);