public override void Visit(IGenerationTerm node)
        {
            if (node.Source != null)
            {
                node.Source.AcceptVisitor(this);
            }

            builder.Append("FORMSOF (");
            builder.Append(node.GenerationType.ToString().ToUpper());
            foreach (var term in node.Terms.Select(t => t.Trim()))
            {
                builder.Append(", ");
                if (term.IndexOf(' ') == -1)
                {
                    builder.Append(term);
                }
                else
                {
                    builder.AppendFormat("\"{0}\"", term);
                }
            }
            builder.Append(")");
        }
 public override void Visit(IGenerationTerm node)
 {
     throw new NotSupportedException();
 }
 public abstract void Visit(IGenerationTerm node);