public virtual void walkStringTemplate(StringTemplate st)
 {
     // make sure the exact ST instance has not been visited
     if (typesVisited.Contains(st))
     {
         return ;
     }
     typesVisited.Add(st, null);
     indent();
     output.Append("Template ");
     output.Append(st.getName());
     output.Append(":");
     output.Append(Environment.NewLine);
     indentation++;
     walkAttributes(st);
     indentation--;
 }