public void SimpleVisualizerTest()
{
string templates =
"method(type,name,locals,args,stats) ::= <<\n" +
"public <type> <ick()> <name>(<args:{a| int <a>}; separator=\", \">) {\n" +
" <if(locals)>int locals[<locals>];<endif>\n" +
" <stats;separator=\"\\n\">\n" +
"}\n" +
">>\n" +
"assign(a,b) ::= \"<a> = <b>;\"\n" +
"return(x) ::= <<return <x>;>>\n" +
"paren(x) ::= \"(<x>)\"\n";
writeFile(tmpdir, "t.stg", templates);
TemplateGroup group = new TemplateGroupFile(Path.Combine(tmpdir, "t.stg"));
group.TrackCreationEvents = true;
Template st = group.GetInstanceOf("method");
st.impl.Dump();
st.Add("type", "float");
st.Add("name", "foo");
st.Add("locals", 3);
st.Add("args", new string[] { "x", "y", "z" });
Template s1 = group.GetInstanceOf("assign");
Template paren = group.GetInstanceOf("paren");
paren.Add("x", "x");
s1.Add("a", paren);
s1.Add("b", "y");
Template s2 = group.GetInstanceOf("assign");
s2.Add("a", "y");
s2.Add("b", "z");
Template s3 = group.GetInstanceOf("return");
s3.Add("x", "3.14159");
st.Add("stats", s1);
st.Add("stats", s2);
st.Add("stats", s3);
st.Visualize();
}