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.Debug = true; DebugTemplate st = (DebugTemplate)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(); }
public void VisualizerTestShadowTemplates() { string templates = "list(lines) ::= <<\n" + "<lines:line(); separator=\"\\n\">\n" + ">>\n" + "line(text) ::= \"<text>\"\n"; writeFile(tmpdir, "t.stg", templates); TemplateGroup group = new TemplateGroupFile(Path.Combine(tmpdir, "t.stg")); group.Debug = true; DebugTemplate template = (DebugTemplate)group.GetInstanceOf("list"); DebugTemplate line = (DebugTemplate)group.GetInstanceOf("line"); line.Add("text", "x = 3"); template.Add("lines", line); template.Add("lines", line); template.Add("lines", line); template.Visualize(); }