[stringtemplate-interest] Why an == operator is sometimes necessary, and how to implement it (ST3/C#)
Harald Mueller
harald_m_mueller at gmx.de
Fri Mar 12 11:23:58 PST 2010
Ahem - I mixed up two versions of my code: NameIsReplace is just the same as NameEquals.
And for those who want to try it - below is some test code - not the tersest one, but that's how we used it.
Regards
Harald M.
static void Main() {
var sb = new StringBuilder();
using (TextWriter tw = new StringWriter(sb)) {
string ressourceName = typeof(Program).Namespace + ".Templ.stg";
Stream baseStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ressourceName);
StringTemplateGroup g = new StringTemplateGroup(new StreamReader(baseStream), typeof(DefaultTemplateLexer));
StringTemplate st = g.GetTemplateDefinition("Init");
Table t1 = new Table { Name = "T1" };
Table t2 = new Table { Name = "T2" };
Table t3 = new Table { Name = "T3" };
st.SetAttribute("Tables", new[] { t1, t2, t3 });
st.SetAttribute("Target",
new Join("1", t1,
new Join("1.1", t1),
new Join("1.2", t2,
new Join("1.2.1", t1,
new Join("1.2.1.1", t1)
),
new Join("1.2.2", t2),
new Join("1.2.3", t3)
)));
st.Write(new AutoIndentWriter(tw));
}
Console.WriteLine(sb.ToString());
}
--
GMX DSL: Internet, Telefon und Entertainment für nur 19,99 EUR/mtl.!
http://portal.gmx.net/de/go/dsl01
More information about the stringtemplate-interest
mailing list