public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jerry James <loganjerry@gmail.com>
To: git-commits@fedoraproject.org
Subject: [rpms/stringtemplate] epel10: Add patch to fix ambiguous references to StringTemplate
Date: Thu, 20 Aug 2026 11:50:54 GMT [thread overview]
Message-ID: <178722665484.1.8644958702702118692.rpms-stringtemplate-267d370a53dc@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/stringtemplate
Branch : epel10
Commit : 267d370a53dc8e13eee235213c5c3437d39016f1
Author : Jerry James <loganjerry@gmail.com>
Date : 2025-07-05T15:35:04-06:00
Stats : +4599/-5 in 3 file(s)
URL : https://src.fedoraproject.org/rpms/stringtemplate/c/267d370a53dc8e13eee235213c5c3437d39016f1?branch=epel10
Log:
Add patch to fix ambiguous references to StringTemplate
- Add patch to avoid using deprecated "new Integer" and "new Boolean"
- Change license to BSD-3-Clause
---
diff --git a/stringtemplate-3.2.1-ambiguity.patch b/stringtemplate-3.2.1-ambiguity.patch
new file mode 100644
index 0000000..b5b8048
--- /dev/null
+++ b/stringtemplate-3.2.1-ambiguity.patch
@@ -0,0 +1,4344 @@
+--- src/org/antlr/stringtemplate/language/action.g.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/action.g 2025-07-05 13:20:23.013251965 -0600
+@@ -54,16 +54,16 @@ tokens {
+ }
+
+ {
+- protected StringTemplate self = null;
++ protected org.antlr.stringtemplate.StringTemplate self = null;
+
+- public ActionParser(TokenStream lexer, StringTemplate self) {
++ public ActionParser(TokenStream lexer, org.antlr.stringtemplate.StringTemplate self) {
+ this(lexer, 2);
+ this.self = self;
+ }
+
+ public void reportError(RecognitionException e) {
+ StringTemplateGroup group = self.getGroup();
+- if ( group==StringTemplate.defaultGroup ) {
++ if ( group==org.antlr.stringtemplate.StringTemplate.defaultGroup ) {
+ self.error("action parse error; template context is "+self.getEnclosingInstanceStackString(), e);
+ }
+ else {
+@@ -173,7 +173,7 @@ namedTemplate
+ anonymousTemplate
+ : t:ANONYMOUS_TEMPLATE
+ {
+- StringTemplate anonymous = new StringTemplate();
++ org.antlr.stringtemplate.StringTemplate anonymous = new org.antlr.stringtemplate.StringTemplate();
+ anonymous.setGroup(self.getGroup());
+ anonymous.setEnclosingInstance(self);
+ anonymous.setTemplate(t.getText());
+--- src/org/antlr/stringtemplate/language/angle.bracket.template.g.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/angle.bracket.template.g 2025-07-05 13:20:46.525142108 -0600
+@@ -45,9 +45,9 @@ options {
+
+ {
+ protected String currentIndent = null;
+-protected StringTemplate self;
++protected org.antlr.stringtemplate.StringTemplate self;
+
+-public AngleBracketTemplateLexer(StringTemplate self, Reader r) {
++public AngleBracketTemplateLexer(org.antlr.stringtemplate.StringTemplate self, Reader r) {
+ this(r);
+ this.self = self;
+ }
+--- src/org/antlr/stringtemplate/language/ASTExpr.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/ASTExpr.java 2025-07-05 13:29:38.535051589 -0600
+@@ -30,7 +30,6 @@ package org.antlr.stringtemplate.languag
+ import antlr.RecognitionException;
+ import antlr.collections.AST;
+ import org.antlr.stringtemplate.AttributeRenderer;
+-import org.antlr.stringtemplate.StringTemplate;
+ import org.antlr.stringtemplate.StringTemplateGroup;
+ import org.antlr.stringtemplate.StringTemplateWriter;
+
+@@ -54,7 +53,7 @@ public class ASTExpr extends Expr {
+ public static final String DEFAULT_MAP_KEY_NAME = "key";
+
+ /** Used to indicate "default:key" in maps within groups */
+- public static final StringTemplate MAP_KEY_VALUE = new StringTemplate();
++ public static final org.antlr.stringtemplate.StringTemplate MAP_KEY_VALUE = new org.antlr.stringtemplate.StringTemplate();
+
+ /** Using an expr option w/o value, makes options table hold EMPTY_OPTION
+ * value for that key.
+@@ -109,7 +108,7 @@ public class ASTExpr extends Expr {
+ /** A cached value of option format=expr */
+ String formatString = null;
+
+- public ASTExpr(StringTemplate enclosingTemplate, AST exprTree, Map options) {
++ public ASTExpr(org.antlr.stringtemplate.StringTemplate enclosingTemplate, AST exprTree, Map options) {
+ super(enclosingTemplate);
+ this.exprTree = exprTree;
+ this.options = options;
+@@ -130,7 +129,7 @@ public class ASTExpr extends Expr {
+ * If they set anchor option, then inform the writer to push current
+ * char position.
+ */
+- public int write(StringTemplate self, StringTemplateWriter out) throws IOException {
++ public int write(org.antlr.stringtemplate.StringTemplate self, StringTemplateWriter out) throws IOException {
+ if ( exprTree==null || self==null || out==null ) {
+ return 0;
+ }
+@@ -159,7 +158,7 @@ public class ASTExpr extends Expr {
+ }
+
+ /** Grab and cache options; verify options are valid */
+- protected void handleExprOptions(StringTemplate self) {
++ protected void handleExprOptions(org.antlr.stringtemplate.StringTemplate self) {
+ // make sure options don't use format / renderer. They are usually
+ // strings which might invoke a string renderer etc...
+ formatString = null;
+@@ -199,16 +198,16 @@ public class ASTExpr extends Expr {
+ /** For <names,phones:{n,p | ...}> treat the names, phones as lists
+ * to be walked in lock step as n=names[i], p=phones[i].
+ */
+- public Object applyTemplateToListOfAttributes(StringTemplate self,
++ public Object applyTemplateToListOfAttributes(org.antlr.stringtemplate.StringTemplate self,
+ List attributes,
+- StringTemplate templateToApply)
++ org.antlr.stringtemplate.StringTemplate templateToApply)
+ {
+ if ( attributes==null || templateToApply==null || attributes.size()==0 ) {
+ return null; // do not apply if missing templates or empty values
+ }
+ Map argumentContext = null;
+ // indicate it's an ST-created list
+- List results = new StringTemplate.STAttributeList();
++ List results = new org.antlr.stringtemplate.StringTemplate.STAttributeList();
+
+ // convert all attributes to iterators even if just one value
+ for (int a = 0; a < attributes.size(); a++) {
+@@ -266,7 +265,7 @@ public class ASTExpr extends Expr {
+ }
+ argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, new Integer(i+1));
+ argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, new Integer(i));
+- StringTemplate embedded = templateToApply.getInstanceOf();
++ org.antlr.stringtemplate.StringTemplate embedded = templateToApply.getInstanceOf();
+ embedded.setEnclosingInstance(self);
+ embedded.setArgumentContext(argumentContext);
+ results.add(embedded);
+@@ -276,14 +275,14 @@ public class ASTExpr extends Expr {
+ return results;
+ }
+
+- public Object applyListOfAlternatingTemplates(StringTemplate self,
++ public Object applyListOfAlternatingTemplates(org.antlr.stringtemplate.StringTemplate self,
+ Object attributeValue,
+ List templatesToApply)
+ {
+ if ( attributeValue==null || templatesToApply==null || templatesToApply.size()==0 ) {
+ return null; // do not apply if missing templates or empty value
+ }
+- StringTemplate embedded = null;
++ org.antlr.stringtemplate.StringTemplate embedded = null;
+ Map argumentContext = null;
+
+ // normalize collections and such to use iterators
+@@ -293,7 +292,7 @@ public class ASTExpr extends Expr {
+
+ if ( attributeValue instanceof Iterator ) {
+ // results can be treated list an attribute, indicate ST created list
+- List resultVector = new StringTemplate.STAttributeList();
++ List resultVector = new org.antlr.stringtemplate.StringTemplate.STAttributeList();
+ Iterator iter = (Iterator)attributeValue;
+ int i = 0;
+ while ( iter.hasNext() ) {
+@@ -305,7 +304,7 @@ public class ASTExpr extends Expr {
+ ithValue = nullValue;
+ }
+ int templateIndex = i % templatesToApply.size(); // rotate through
+- embedded = (StringTemplate)templatesToApply.get(templateIndex);
++ embedded = (org.antlr.stringtemplate.StringTemplate)templatesToApply.get(templateIndex);
+ // template to apply is an actual StringTemplate (created in
+ // eval.g), but that is used as the examplar. We must create
+ // a new instance of the embedded template to apply each time
+@@ -317,7 +316,7 @@ public class ASTExpr extends Expr {
+ argumentContext = new HashMap();
+ Map formalArgs = embedded.getFormalArguments();
+ boolean isAnonymous =
+- embedded.getName() == StringTemplate.ANONYMOUS_ST_NAME;
++ embedded.getName() == org.antlr.stringtemplate.StringTemplate.ANONYMOUS_ST_NAME;
+ setSoleFormalArgumentToIthValue(embedded, argumentContext, ithValue);
+ // if it's an anonymous template with a formal arg, don't set it/attr
+ if ( !(isAnonymous && formalArgs!=null && formalArgs.size()>0) ) {
+@@ -347,13 +346,13 @@ public class ASTExpr extends Expr {
+ embedded.getName()+
+ " to "+attributeValue);
+ */
+- embedded = (StringTemplate)templatesToApply.get(0);
++ embedded = (org.antlr.stringtemplate.StringTemplate)templatesToApply.get(0);
+ argumentContext = new HashMap();
+ Map formalArgs = embedded.getFormalArguments();
+ StringTemplateAST args = embedded.getArgumentsAST();
+ setSoleFormalArgumentToIthValue(embedded, argumentContext, attributeValue);
+ boolean isAnonymous =
+- embedded.getName() == StringTemplate.ANONYMOUS_ST_NAME;
++ embedded.getName() == org.antlr.stringtemplate.StringTemplate.ANONYMOUS_ST_NAME;
+ // if it's an anonymous template with a formal arg, don't set it/attr
+ if ( !(isAnonymous && formalArgs!=null && formalArgs.size()>0) ) {
+ argumentContext.put(DEFAULT_ATTRIBUTE_NAME, attributeValue);
+@@ -367,12 +366,12 @@ public class ASTExpr extends Expr {
+ }
+ }
+
+- protected void setSoleFormalArgumentToIthValue(StringTemplate embedded, Map argumentContext, Object ithValue) {
++ protected void setSoleFormalArgumentToIthValue(org.antlr.stringtemplate.StringTemplate embedded, Map argumentContext, Object ithValue) {
+ Map formalArgs = embedded.getFormalArguments();
+ if ( formalArgs!=null ) {
+ String soleArgName = null;
+ boolean isAnonymous =
+- embedded.getName() == StringTemplate.ANONYMOUS_ST_NAME;
++ embedded.getName() == org.antlr.stringtemplate.StringTemplate.ANONYMOUS_ST_NAME;
+ if ( formalArgs.size()==1 || (isAnonymous&&formalArgs.size()>0) ) {
+ if ( isAnonymous && formalArgs.size()>1 ) {
+ embedded.error("too many arguments on {...} template: "+formalArgs);
+@@ -395,7 +394,7 @@ public class ASTExpr extends Expr {
+ *
+ * Cache repeated requests for obj.prop within same group.
+ */
+- public Object getObjectProperty(StringTemplate self,
++ public Object getObjectProperty(org.antlr.stringtemplate.StringTemplate self,
+ final Object o,
+ final Object propertyName) {
+ if ( o==null || propertyName==null ) {
+@@ -421,23 +420,23 @@ public class ASTExpr extends Expr {
+ return value;
+ }
+
+- protected Object rawGetObjectProperty(StringTemplate self, Object o, Object property) {
++ protected Object rawGetObjectProperty(org.antlr.stringtemplate.StringTemplate self, Object o, Object property) {
+ Class c = o.getClass();
+ Object value = null;
+
+ // Special case: our automatically created Aggregates via
+ // attribute name: "{obj.{prop1,prop2}}"
+- if ( c==StringTemplate.Aggregate.class ) {
++ if ( c==org.antlr.stringtemplate.StringTemplate.Aggregate.class ) {
+ String propertyName = (String)property;
+- value = ((StringTemplate.Aggregate)o).get((String)propertyName);
++ value = ((org.antlr.stringtemplate.StringTemplate.Aggregate)o).get((String)propertyName);
+ return value;
+ }
+
+ // Special case: if it's a template, pull property from
+ // it's attribute table.
+ // TODO: TJP just asked himself why we can't do inherited attr here?
+- else if ( c==StringTemplate.class ) {
+- Map attributes = ((StringTemplate)o).getAttributes();
++ else if ( c==org.antlr.stringtemplate.StringTemplate.class ) {
++ Map attributes = ((org.antlr.stringtemplate.StringTemplate)o).getAttributes();
+ if ( attributes!=null ) {
+ String propertyName = (String)property;
+ value = attributes.get(propertyName);
+@@ -629,13 +628,13 @@ public class ASTExpr extends Expr {
+ * to a string yet. It may need attributes that will be available after
+ * this is inserted into another template.
+ */
+- public StringTemplate getTemplateInclude(StringTemplate enclosing,
++ public org.antlr.stringtemplate.StringTemplate getTemplateInclude(org.antlr.stringtemplate.StringTemplate enclosing,
+ String templateName,
+ StringTemplateAST argumentsAST)
+ {
+ //System.out.println("getTemplateInclude: look up "+enclosing.getGroup().getName()+"::"+templateName);
+ StringTemplateGroup group = enclosing.getGroup();
+- StringTemplate embedded = group.getEmbeddedInstanceOf(enclosing, templateName);
++ org.antlr.stringtemplate.StringTemplate embedded = group.getEmbeddedInstanceOf(enclosing, templateName);
+ if ( embedded==null ) {
+ enclosing.error("cannot make embedded instance of "+templateName+
+ " in template "+enclosing.getName());
+@@ -656,7 +655,7 @@ public class ASTExpr extends Expr {
+ * If self is an embedded template, you might have specified
+ * a separator arg; used when is a vector.
+ */
+- public int writeAttribute(StringTemplate self, Object o, StringTemplateWriter out) {
++ public int writeAttribute(org.antlr.stringtemplate.StringTemplate self, Object o, StringTemplateWriter out) {
+ return write(self,o,out);
+ }
+
+@@ -665,7 +664,7 @@ public class ASTExpr extends Expr {
+ * John Snyders fixes here for formatString. Basically, any time
+ * you are about to write a value, check formatting.
+ */
+- protected int write(StringTemplate self,
++ protected int write(org.antlr.stringtemplate.StringTemplate self,
+ Object o,
+ StringTemplateWriter out)
+ {
+@@ -677,7 +676,7 @@ public class ASTExpr extends Expr {
+ }
+ int n = 0;
+ try {
+- if ( o instanceof StringTemplate ) return writeTemplate(self, o, out);
++ if ( o instanceof org.antlr.stringtemplate.StringTemplate ) return writeTemplate(self, o, out);
+ o = convertAnythingIteratableToIterator(o); // normalize
+ if ( o instanceof Iterator ) return writeIterableValue(self, o, out);
+ return writePOJO(self, o, out);
+@@ -688,7 +687,7 @@ public class ASTExpr extends Expr {
+ return n;
+ }
+
+- protected int writePOJO(StringTemplate self, Object o, StringTemplateWriter out) throws IOException {
++ protected int writePOJO(org.antlr.stringtemplate.StringTemplate self, Object o, StringTemplateWriter out) throws IOException {
+ int n = 0;
+ AttributeRenderer renderer =
+ self.getAttributeRenderer(o.getClass());
+@@ -703,9 +702,9 @@ public class ASTExpr extends Expr {
+ return n;
+ }
+
+- protected int writeTemplate(StringTemplate self, Object o, StringTemplateWriter out) throws IOException {
++ protected int writeTemplate(org.antlr.stringtemplate.StringTemplate self, Object o, StringTemplateWriter out) throws IOException {
+ int n = 0;
+- StringTemplate stToWrite = (StringTemplate)o;
++ org.antlr.stringtemplate.StringTemplate stToWrite = (org.antlr.stringtemplate.StringTemplate)o;
+ // failsafe: perhaps enclosing instance not set
+ // Or, it could be set to another context! This occurs
+ // when you store a template instance as an attribute of more
+@@ -715,8 +714,8 @@ public class ASTExpr extends Expr {
+ stToWrite.setEnclosingInstance(self);
+ // if self is found up the enclosing instance chain, then
+ // infinite recursion
+- if ( StringTemplate.inLintMode() &&
+- StringTemplate.isRecursiveEnclosingInstance(stToWrite) )
++ if ( org.antlr.stringtemplate.StringTemplate.inLintMode() &&
++ org.antlr.stringtemplate.StringTemplate.isRecursiveEnclosingInstance(stToWrite) )
+ {
+ // throw exception since sometimes eval keeps going
+ // even after I ignore this write of o.
+@@ -752,7 +751,7 @@ public class ASTExpr extends Expr {
+ return n;
+ }
+
+- protected int writeIterableValue(StringTemplate self,
++ protected int writeIterableValue(org.antlr.stringtemplate.StringTemplate self,
+ Object o,
+ StringTemplateWriter out)
+ throws IOException
+@@ -776,8 +775,8 @@ public class ASTExpr extends Expr {
+ // if value to emit is a template, only buffer its
+ // value if it's nullable (can eval to missing).
+ // Only a sequence of IF can eval to missing.
+- if ( iterValue instanceof StringTemplate ) {
+- StringTemplate st = (StringTemplate)iterValue;
++ if ( iterValue instanceof org.antlr.stringtemplate.StringTemplate ) {
++ org.antlr.stringtemplate.StringTemplate st = (org.antlr.stringtemplate.StringTemplate)iterValue;
+ int nchunks = st.getChunks()!=null ? st.getChunks().size() : 0;
+ boolean nullable = true;
+ for (int i=0; i<nchunks; i++) {
+@@ -796,7 +795,7 @@ public class ASTExpr extends Expr {
+ }
+ }
+
+- if ( !(iterValue instanceof StringTemplate) &&
++ if ( !(iterValue instanceof org.antlr.stringtemplate.StringTemplate) &&
+ !(iterValue instanceof Iterator))
+ {
+ // if not possible to be missing, don't waste time
+@@ -845,7 +844,7 @@ public class ASTExpr extends Expr {
+ * so that we can convert to string and then reuse, don't want to compute
+ * all the time; must precompute w/o writing to output buffer.
+ */
+- public String evaluateExpression(StringTemplate self,
++ public String evaluateExpression(org.antlr.stringtemplate.StringTemplate self,
+ Object expr)
+ {
+ if ( expr ==null ) {
+@@ -880,7 +879,7 @@ public class ASTExpr extends Expr {
+ * new embedded template. For example, bold(item=item) means
+ * that bold.item should get the value of enclosing.item.
+ */
+- protected void evaluateArguments(StringTemplate self) {
++ protected void evaluateArguments(org.antlr.stringtemplate.StringTemplate self) {
+ StringTemplateAST argumentsAST = self.getArgumentsAST();
+ if ( argumentsAST==null || argumentsAST.getFirstChild()==null ) {
+ // return immediately if missing tree or no actual args
+@@ -892,8 +891,8 @@ public class ASTExpr extends Expr {
+ // available as well so we put a dummy ST between the enclosing
+ // context and the embedded context. The dummy has the predefined
+ // context as does the embedded.
+- StringTemplate enclosing = self.getEnclosingInstance();
+- StringTemplate argContextST = new StringTemplate(self.getGroup(), "");
++ org.antlr.stringtemplate.StringTemplate enclosing = self.getEnclosingInstance();
++ org.antlr.stringtemplate.StringTemplate argContextST = new org.antlr.stringtemplate.StringTemplate(self.getGroup(), "");
+ argContextST.setName("<invoke "+self.getName()+" arg context>");
+ argContextST.setEnclosingInstance(enclosing);
+ argContextST.setArgumentContext(self.getArgumentContext());
+@@ -975,7 +974,7 @@ public class ASTExpr extends Expr {
+ iter = (Iterator)o;
+ }
+ if ( iter==null ) {
+- List singleton = new StringTemplate.STAttributeList(1);
++ List singleton = new org.antlr.stringtemplate.StringTemplate.STAttributeList(1);
+ singleton.add(o);
+ return singleton.iterator();
+ }
+--- src/org/antlr/stringtemplate/language/ConditionalExpr.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/ConditionalExpr.java 2025-07-05 13:33:16.436172037 -0600
+@@ -29,7 +29,6 @@ package org.antlr.stringtemplate.languag
+
+ import antlr.RecognitionException;
+ import antlr.collections.AST;
+-import org.antlr.stringtemplate.StringTemplate;
+ import org.antlr.stringtemplate.StringTemplateWriter;
+
+ import java.io.IOException;
+@@ -38,25 +37,25 @@ import java.util.ArrayList;
+
+ /** A conditional reference to an embedded subtemplate. */
+ public class ConditionalExpr extends ASTExpr {
+- StringTemplate subtemplate = null;
++ org.antlr.stringtemplate.StringTemplate subtemplate = null;
+ List elseIfSubtemplates = null;
+- StringTemplate elseSubtemplate = null;
++ org.antlr.stringtemplate.StringTemplate elseSubtemplate = null;
+
+ protected static class ElseIfClauseData {
+ ASTExpr expr;
+- StringTemplate st;
++ org.antlr.stringtemplate.StringTemplate st;
+ }
+
+- public ConditionalExpr(StringTemplate enclosingTemplate, AST tree) {
++ public ConditionalExpr(org.antlr.stringtemplate.StringTemplate enclosingTemplate, AST tree) {
+ super(enclosingTemplate,tree,null);
+ }
+
+- public void setSubtemplate(StringTemplate subtemplate) {
++ public void setSubtemplate(org.antlr.stringtemplate.StringTemplate subtemplate) {
+ this.subtemplate = subtemplate;
+ }
+
+ public void addElseIfSubtemplate(final ASTExpr conditionalTree,
+- final StringTemplate subtemplate)
++ final org.antlr.stringtemplate.StringTemplate subtemplate)
+ {
+ if ( elseIfSubtemplates==null ) {
+ elseIfSubtemplates = new ArrayList();
+@@ -68,15 +67,15 @@ public class ConditionalExpr extends AST
+ elseIfSubtemplates.add(d);
+ }
+
+- public StringTemplate getSubtemplate() {
++ public org.antlr.stringtemplate.StringTemplate getSubtemplate() {
+ return subtemplate;
+ }
+
+- public StringTemplate getElseSubtemplate() {
++ public org.antlr.stringtemplate.StringTemplate getElseSubtemplate() {
+ return elseSubtemplate;
+ }
+
+- public void setElseSubtemplate(StringTemplate elseSubtemplate) {
++ public void setElseSubtemplate(org.antlr.stringtemplate.StringTemplate elseSubtemplate) {
+ this.elseSubtemplate = elseSubtemplate;
+ }
+
+@@ -84,7 +83,7 @@ public class ConditionalExpr extends AST
+ * to walk the condition tree computing the boolean value. If result
+ * is true, then write subtemplate.
+ */
+- public int write(StringTemplate self, StringTemplateWriter out) throws IOException {
++ public int write(org.antlr.stringtemplate.StringTemplate self, StringTemplateWriter out) throws IOException {
+ if ( exprTree==null || self==null || out==null ) {
+ return 0;
+ }
+@@ -119,7 +118,7 @@ public class ConditionalExpr extends AST
+ // ELSE
+ if ( !testedTrue && elseSubtemplate!=null ) {
+ // evaluate ELSE clause if present and IF condition failed
+- StringTemplate s = elseSubtemplate.getInstanceOf();
++ org.antlr.stringtemplate.StringTemplate s = elseSubtemplate.getInstanceOf();
+ s.setEnclosingInstance(self);
+ s.setGroup(self.getGroup());
+ s.setNativeGroup(self.getNativeGroup());
+@@ -134,9 +133,9 @@ public class ConditionalExpr extends AST
+ return n;
+ }
+
+- protected int writeSubTemplate(StringTemplate self,
++ protected int writeSubTemplate(org.antlr.stringtemplate.StringTemplate self,
+ StringTemplateWriter out,
+- StringTemplate subtemplate)
++ org.antlr.stringtemplate.StringTemplate subtemplate)
+ throws IOException
+ {
+ /* To evaluate the IF chunk, make a new instance whose enclosingInstance
+@@ -145,7 +144,7 @@ public class ConditionalExpr extends AST
+ * new template instance every time we exec this chunk to get the new
+ * "enclosing instance" pointer.
+ */
+- StringTemplate s = subtemplate.getInstanceOf();
++ org.antlr.stringtemplate.StringTemplate s = subtemplate.getInstanceOf();
+ s.setEnclosingInstance(self);
+ // make sure we evaluate in context of enclosing template's
+ // group so polymorphism works. :)
+--- src/org/antlr/stringtemplate/language/eval.g.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/eval.g 2025-07-05 13:18:54.006186164 -0600
+@@ -46,12 +46,12 @@ options {
+ public Object value;
+ };
+
+- protected StringTemplate self = null;
++ protected org.antlr.stringtemplate.StringTemplate self = null;
+ protected StringTemplateWriter out = null;
+ protected ASTExpr chunk = null;
+
+ /** Create an evaluator using attributes from self */
+- public ActionEvaluator(StringTemplate self, ASTExpr chunk, StringTemplateWriter out) {
++ public ActionEvaluator(org.antlr.stringtemplate.StringTemplate self, ASTExpr chunk, StringTemplateWriter out) {
+ this.self = self;
+ this.chunk = chunk;
+ this.out = out;
+@@ -155,7 +155,7 @@ List attributes = new ArrayList();
+ | #( MULTI_APPLY (a=expr {attributes.add(a);} )+ COLON
+ anon:ANONYMOUS_TEMPLATE
+ {
+- StringTemplate anonymous = anon.getStringTemplate();
++ org.antlr.stringtemplate.StringTemplate anonymous = anon.getStringTemplate();
+ templatesToApply.addElement(anonymous);
+ value = chunk.applyTemplateToListOfAttributes(self,
+ attributes,
+@@ -194,7 +194,7 @@ Object n = null;
+ {
+ String templateName = t.getText();
+ StringTemplateGroup group = self.getGroup();
+- StringTemplate embedded = group.getEmbeddedInstanceOf(self, templateName);
++ org.antlr.stringtemplate.StringTemplate embedded = group.getEmbeddedInstanceOf(self, templateName);
+ if ( embedded!=null ) {
+ embedded.setArgumentsAST(#args);
+ templatesToApply.addElement(embedded);
+@@ -203,7 +203,7 @@ Object n = null;
+
+ | anon:ANONYMOUS_TEMPLATE
+ {
+- StringTemplate anonymous = anon.getStringTemplate();
++ org.antlr.stringtemplate.StringTemplate anonymous = anon.getStringTemplate();
+ // to properly see overridden templates, always set
+ // anonymous' group to be self's group
+ anonymous.setGroup(self.getGroup());
+@@ -212,7 +212,7 @@ Object n = null;
+
+ | #( VALUE n=expr args2:.
+ {
+- StringTemplate embedded = null;
++ org.antlr.stringtemplate.StringTemplate embedded = null;
+ if ( n!=null ) {
+ String templateName = n.toString();
+ StringTemplateGroup group = self.getGroup();
+@@ -273,7 +273,7 @@ attribute returns [Object value=null]
+ {
+ value=at.getText();
+ if ( at.getText()!=null ) {
+- StringTemplate valueST =new StringTemplate(self.getGroup(), at.getText());
++ org.antlr.stringtemplate.StringTemplate valueST =new org.antlr.stringtemplate.StringTemplate(self.getGroup(), at.getText());
+ valueST.setEnclosingInstance(self);
+ valueST.setName("<anonymous template argument>");
+ value = valueST;
+@@ -286,7 +286,7 @@ attribute returns [Object value=null]
+ * the embedded template (the one invoked) so we can check formal args
+ * in rawSetArgumentAttribute.
+ */
+-argList[StringTemplate embedded, Map initialContext]
++argList[org.antlr.stringtemplate.StringTemplate embedded, Map initialContext]
+ returns [Map argumentContext=null]
+ {
+ argumentContext = initialContext;
+@@ -298,7 +298,7 @@ argList[StringTemplate embedded, Map ini
+ | singleTemplateArg[embedded,argumentContext]
+ ;
+
+-singleTemplateArg[StringTemplate embedded, Map argumentContext]
++singleTemplateArg[org.antlr.stringtemplate.StringTemplate embedded, Map argumentContext]
+ {
+ Object e = null;
+ }
+@@ -334,7 +334,7 @@ singleTemplateArg[StringTemplate embedde
+ }
+ ;
+
+-argumentAssignment[StringTemplate embedded, Map argumentContext]
++argumentAssignment[org.antlr.stringtemplate.StringTemplate embedded, Map argumentContext]
+ {
+ Object e = null;
+ }
+--- src/org/antlr/stringtemplate/language/Expr.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/Expr.java 2025-07-05 13:34:18.643542587 -0600
+@@ -27,7 +27,6 @@
+ */
+ package org.antlr.stringtemplate.language;
+
+-import org.antlr.stringtemplate.StringTemplate;
+ import org.antlr.stringtemplate.StringTemplateGroup;
+ import org.antlr.stringtemplate.StringTemplateWriter;
+
+@@ -45,7 +44,7 @@ import java.util.Enumeration;
+ */
+ abstract public class Expr {
+ /** The StringTemplate object surrounding this expr */
+- protected StringTemplate enclosingTemplate;
++ protected org.antlr.stringtemplate.StringTemplate enclosingTemplate;
+
+ /** Any thing spit out as a chunk (even plain text) must be indented
+ * according to whitespace before the action that generated it. So,
+@@ -56,15 +55,15 @@ abstract public class Expr {
+ */
+ protected String indentation = null;
+
+- public Expr(StringTemplate enclosingTemplate) {
++ public Expr(org.antlr.stringtemplate.StringTemplate enclosingTemplate) {
+ this.enclosingTemplate = enclosingTemplate;
+ }
+
+ /** How to write this node to output; return how many char written */
+- abstract public int write(StringTemplate self, StringTemplateWriter out)
++ abstract public int write(org.antlr.stringtemplate.StringTemplate self, StringTemplateWriter out)
+ throws IOException;
+
+- public StringTemplate getEnclosingTemplate() {
++ public org.antlr.stringtemplate.StringTemplate getEnclosingTemplate() {
+ return enclosingTemplate;
+ }
+
+--- src/org/antlr/stringtemplate/language/FormalArgument.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/FormalArgument.java 2025-07-05 13:34:44.267303857 -0600
+@@ -1,7 +1,5 @@
+ package org.antlr.stringtemplate.language;
+
+-import org.antlr.stringtemplate.StringTemplate;
+-
+ import java.util.HashMap;
+ import java.util.Map;
+ import java.util.List;
+@@ -52,13 +50,13 @@ public class FormalArgument {
+ //protected int cardinality = REQUIRED;
+
+ /** If they specified name="value", store the template here */
+- public StringTemplate defaultValueST;
++ public org.antlr.stringtemplate.StringTemplate defaultValueST;
+
+ public FormalArgument(String name) {
+ this.name = name;
+ }
+
+- public FormalArgument(String name, StringTemplate defaultValueST) {
++ public FormalArgument(String name, org.antlr.stringtemplate.StringTemplate defaultValueST) {
+ this.name = name;
+ this.defaultValueST = defaultValueST;
+ }
+--- src/org/antlr/stringtemplate/language/group.g.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/group.g 2025-07-05 13:38:01.096902572 -0600
+@@ -88,7 +88,7 @@ this.group = g;
+ template[StringTemplateGroup g]
+ {
+ Map formalArgs = null;
+- StringTemplate st = null;
++ org.antlr.stringtemplate.StringTemplate st = null;
+ boolean ignore = false;
+ String templateName=null;
+ int line = LT(1).getLine();
+@@ -99,12 +99,12 @@ template[StringTemplateGroup g]
+ if ( g.isDefinedInThisGroup(templateName) ) {
+ g.error("group "+g.getName()+" line "+line+": redefinition of template region: @"+
+ scope.getText()+"."+region.getText());
+- st = new StringTemplate(); // create bogus template to fill in
++ st = new org.antlr.stringtemplate.StringTemplate(); // create bogus template to fill in
+ }
+ else {
+ boolean err = false;
+ // @template.region() ::= "..."
+- StringTemplate scopeST = g.lookupTemplate(scope.getText());
++ org.antlr.stringtemplate.StringTemplate scopeST = g.lookupTemplate(scope.getText());
+ if ( scopeST==null ) {
+ g.error("group "+g.getName()+" line "+line+": reference to region within undefined template: "+
+ scope.getText());
+@@ -116,13 +116,13 @@ template[StringTemplateGroup g]
+ err=true;
+ }
+ if ( err ) {
+- st = new StringTemplate();
++ st = new org.antlr.stringtemplate.StringTemplate();
+ }
+ else {
+ st = g.defineRegionTemplate(scope.getText(),
+ region.getText(),
+ null,
+- StringTemplate.REGION_EXPLICIT);
++ org.antlr.stringtemplate.StringTemplate.REGION_EXPLICIT);
+ }
+ }
+ }
+@@ -130,7 +130,7 @@ template[StringTemplateGroup g]
+ {
+ if ( g.isDefinedInThisGroup(templateName) ) {
+ g.error("redefinition of template: "+templateName);
+- st = new StringTemplate(); // create bogus template to fill in
++ st = new org.antlr.stringtemplate.StringTemplate(); // create bogus template to fill in
+ }
+ else {
+ st = g.defineTemplate(templateName, null);
+@@ -150,25 +150,25 @@ template[StringTemplateGroup g]
+ {g.defineTemplateAlias(alias.getText(), target.getText());}
+ ;
+
+-args[StringTemplate st]
++args[org.antlr.stringtemplate.StringTemplate st]
+ : arg[st] ( COMMA arg[st] )*
+ ;
+
+-arg[StringTemplate st]
++arg[org.antlr.stringtemplate.StringTemplate st]
+ {
+- StringTemplate defaultValue = null;
++ org.antlr.stringtemplate.StringTemplate defaultValue = null;
+ }
+ : name:ID
+ ( ASSIGN s:STRING
+ {
+- defaultValue=new StringTemplate("$_val_$");
++ defaultValue=new org.antlr.stringtemplate.StringTemplate("$_val_$");
+ defaultValue.setAttribute("_val_", s.getText());
+ defaultValue.defineFormalArgument("_val_");
+ defaultValue.setName("<"+st.getName()+"'s arg "+name.getText()+" default value subtemplate>");
+ }
+ | ASSIGN bs:ANONYMOUS_TEMPLATE
+ {
+- defaultValue=new StringTemplate(st.getGroup(), bs.getText());
++ defaultValue=new org.antlr.stringtemplate.StringTemplate(st.getGroup(), bs.getText());
+ defaultValue.setName("<"+st.getName()+"'s arg "+name.getText()+" default value subtemplate>");
+ }
+ )?
+@@ -215,7 +215,7 @@ mapPairs [Map mapping]
+
+ defaultValuePair[Map mapping]
+ {
+-StringTemplate v = null;
++org.antlr.stringtemplate.StringTemplate v = null;
+ }
+ : "default" COLON v=keyValue
+ {mapping.put(ASTExpr.DEFAULT_MAP_VALUE_NAME, v);}
+@@ -223,14 +223,14 @@ StringTemplate v = null;
+
+ keyValuePair[Map mapping]
+ {
+-StringTemplate v = null;
++org.antlr.stringtemplate.StringTemplate v = null;
+ }
+ : key:STRING COLON v=keyValue {mapping.put(key.getText(), v);}
+ ;
+
+-keyValue returns [StringTemplate value=null]
+- : s1:BIGSTRING {value = new StringTemplate(group,s1.getText());}
+- | s2:STRING {value = new StringTemplate(group,s2.getText());}
++keyValue returns [org.antlr.stringtemplate.StringTemplate value=null]
++ : s1:BIGSTRING {value = new org.antlr.stringtemplate.StringTemplate(group,s1.getText());}
++ | s2:STRING {value = new org.antlr.stringtemplate.StringTemplate(group,s2.getText());}
+ | k:ID {k.getText().equals("key")}?
+ {value = ASTExpr.MAP_KEY_VALUE;}
+ | {value = null;}
+--- src/org/antlr/stringtemplate/language/NewlineRef.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/NewlineRef.java 2025-07-05 13:38:27.072710830 -0600
+@@ -29,7 +29,6 @@ package org.antlr.stringtemplate.languag
+
+ import org.antlr.stringtemplate.*;
+ import org.antlr.stringtemplate.language.Expr;
+-import org.antlr.stringtemplate.StringTemplate;
+
+ import java.io.Writer;
+ import java.io.IOException;
+@@ -38,7 +37,7 @@ import java.io.IOException;
+ * spitting out newlines when the only thing on a line is an attr expr.
+ */
+ public class NewlineRef extends StringRef {
+- public NewlineRef(StringTemplate enclosingTemplate, String str) {
++ public NewlineRef(org.antlr.stringtemplate.StringTemplate enclosingTemplate, String str) {
+ super(enclosingTemplate, str);
+ }
+ }
+--- src/org/antlr/stringtemplate/language/StringRef.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/StringRef.java 2025-07-05 13:38:51.608382280 -0600
+@@ -27,7 +27,6 @@
+ */
+ package org.antlr.stringtemplate.language;
+
+-import org.antlr.stringtemplate.StringTemplate;
+ import org.antlr.stringtemplate.StringTemplateWriter;
+
+ import java.io.IOException;
+@@ -36,7 +35,7 @@ import java.io.IOException;
+ public class StringRef extends Expr {
+ String str;
+
+- public StringRef(StringTemplate enclosingTemplate, String str) {
++ public StringRef(org.antlr.stringtemplate.StringTemplate enclosingTemplate, String str) {
+ super(enclosingTemplate);
+ this.str = str;
+ }
+@@ -46,7 +45,7 @@ public class StringRef extends Expr {
+ * never wrap because they are not part of an <...> expression.
+ * <"foo"; wrap="\n"> should wrap though if necessary.
+ */
+- public int write(StringTemplate self, StringTemplateWriter out) throws IOException {
++ public int write(org.antlr.stringtemplate.StringTemplate self, StringTemplateWriter out) throws IOException {
+ if ( str!=null ) {
+ int n = out.write(str);
+ return n;
+--- src/org/antlr/stringtemplate/language/StringTemplateAST.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/StringTemplateAST.java 2025-07-05 13:39:24.655864480 -0600
+@@ -28,10 +28,9 @@
+ package org.antlr.stringtemplate.language;
+
+ import antlr.CommonAST;
+-import org.antlr.stringtemplate.StringTemplate;
+
+ public class StringTemplateAST extends CommonAST {
+- protected StringTemplate st = null; // track template for ANONYMOUS blocks
++ protected org.antlr.stringtemplate.StringTemplate st = null; // track template for ANONYMOUS blocks
+
+ public StringTemplateAST() {;}
+
+@@ -40,11 +39,11 @@ public class StringTemplateAST extends C
+ this.setText(text);
+ }
+
+- public StringTemplate getStringTemplate() {
++ public org.antlr.stringtemplate.StringTemplate getStringTemplate() {
+ return st;
+ }
+
+- public void setStringTemplate(StringTemplate st) {
++ public void setStringTemplate(org.antlr.stringtemplate.StringTemplate st) {
+ this.st = st;
+ }
+ }
+--- src/org/antlr/stringtemplate/language/template.g.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/language/template.g 2025-07-05 13:40:49.143146868 -0600
+@@ -37,11 +37,11 @@ header {
+ class TemplateParser extends Parser;
+
+ {
+-protected StringTemplate self;
++protected org.antlr.stringtemplate.StringTemplate self;
+
+ public void reportError(RecognitionException e) {
+ StringTemplateGroup group = self.getGroup();
+- if ( group==StringTemplate.defaultGroup ) {
++ if ( group==org.antlr.stringtemplate.StringTemplate.defaultGroup ) {
+ self.error("template parse error; template context is "+self.getEnclosingInstanceStackString(), e);
+ }
+ else {
+@@ -50,7 +50,7 @@ public void reportError(RecognitionExcep
+ }
+ }
+
+-template[StringTemplate self]
++template[org.antlr.stringtemplate.StringTemplate self]
+ {
+ this.self = self;
+ }
+@@ -65,7 +65,7 @@ template[StringTemplate self]
+ )*
+ ;
+
+-action[StringTemplate self]
++action[org.antlr.stringtemplate.StringTemplate self]
+ : a:ACTION
+ {
+ String indent = ((ChunkToken)a).getIndentation();
+@@ -78,8 +78,8 @@ action[StringTemplate self]
+ {
+ ConditionalExpr c = (ConditionalExpr)self.parseAction(i.getText());
+ // create and precompile the subtemplate
+- StringTemplate subtemplate =
+- new StringTemplate(self.getGroup(), null);
++ org.antlr.stringtemplate.StringTemplate subtemplate =
++ new org.antlr.stringtemplate.StringTemplate(self.getGroup(), null);
+ subtemplate.setEnclosingInstance(self);
+ subtemplate.setName(i.getText()+"_subtemplate");
+ self.addChunk(c);
+@@ -91,8 +91,8 @@ action[StringTemplate self]
+ {
+ ASTExpr ec = self.parseAction(ei.getText());
+ // create and precompile the subtemplate
+- StringTemplate elseIfSubtemplate =
+- new StringTemplate(self.getGroup(), null);
++ org.antlr.stringtemplate.StringTemplate elseIfSubtemplate =
++ new org.antlr.stringtemplate.StringTemplate(self.getGroup(), null);
+ elseIfSubtemplate.setEnclosingInstance(self);
+ elseIfSubtemplate.setName(ei.getText()+"_subtemplate");
+ }
+@@ -105,8 +105,8 @@ action[StringTemplate self]
+ ( ELSE
+ {
+ // create and precompile the subtemplate
+- StringTemplate elseSubtemplate =
+- new StringTemplate(self.getGroup(), null);
++ org.antlr.stringtemplate.StringTemplate elseSubtemplate =
++ new org.antlr.stringtemplate.StringTemplate(self.getGroup(), null);
+ elseSubtemplate.setEnclosingInstance(self);
+ elseSubtemplate.setName("else_subtemplate");
+ }
+@@ -132,7 +132,7 @@ action[StringTemplate self]
+ regionName.substring("super.".length(),regionName.length());
+ String templateScope =
+ self.getGroup().getUnMangledTemplateName(self.getName());
+- StringTemplate scopeST = self.getGroup().lookupTemplate(templateScope);
++ org.antlr.stringtemplate.StringTemplate scopeST = self.getGroup().lookupTemplate(templateScope);
+ if ( scopeST==null ) {
+ self.getGroup().error("reference to region within undefined template: "+
+ templateScope);
+@@ -151,7 +151,7 @@ action[StringTemplate self]
+ }
+ else {
+ //System.out.println("region ref "+regionName);
+- StringTemplate regionST =
++ org.antlr.stringtemplate.StringTemplate regionST =
+ self.getGroup().defineImplicitRegionTemplate(self,regionName);
+ mangledRef = regionST.getName();
+ }
+@@ -174,11 +174,11 @@ action[StringTemplate self]
+ String template =
+ combinedNameTemplateStr.substring(indexOfDefSymbol+3,
+ combinedNameTemplateStr.length());
+- StringTemplate regionST =
++ org.antlr.stringtemplate.StringTemplate regionST =
+ self.getGroup().defineRegionTemplate(self,
+ regionName,
+ template,
+- StringTemplate.REGION_EMBEDDED);
++ org.antlr.stringtemplate.StringTemplate.REGION_EMBEDDED);
+ // treat as regular action: mangled template include
+ String indent = ((ChunkToken)rd).getIndentation();
+ ASTExpr c = self.parseAction(regionST.getName()+"()");
+@@ -204,9 +204,9 @@ options {
+
+ {
+ protected String currentIndent = null;
+-protected StringTemplate self;
++protected org.antlr.stringtemplate.StringTemplate self;
+
+-public DefaultTemplateLexer(StringTemplate self, Reader r) {
++public DefaultTemplateLexer(org.antlr.stringtemplate.StringTemplate self, Reader r) {
+ this(r);
+ this.self = self;
+ }
+--- src/org/antlr/stringtemplate/misc/JTreeStringTemplateModel.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/misc/JTreeStringTemplateModel.java 2025-07-05 13:51:22.935120757 -0600
+@@ -32,7 +32,6 @@ import antlr.collections.AST;
+ import javax.swing.event.*;
+ import javax.swing.tree.*;
+
+-import org.antlr.stringtemplate.StringTemplate;
+ import org.antlr.stringtemplate.StringTemplateGroup;
+ import org.antlr.stringtemplate.language.*;
+
+@@ -68,18 +67,18 @@ public class JTreeStringTemplateModel im
+ }
+
+ static class StringTemplateWrapper extends Wrapper {
+- StringTemplate st = null;
++ org.antlr.stringtemplate.StringTemplate st = null;
+ public StringTemplateWrapper(Object o) {
+- this.st = (StringTemplate)o;
++ this.st = (org.antlr.stringtemplate.StringTemplate)o;
+ }
+ public Object getWrappedObject() {
+ return getStringTemplate();
+ }
+- public StringTemplate getStringTemplate() {
++ public org.antlr.stringtemplate.StringTemplate getStringTemplate() {
+ return st;
+ }
+ public Object getChild(Object parent, int index) {
+- StringTemplate st = ((StringTemplateWrapper)parent).getStringTemplate();
++ org.antlr.stringtemplate.StringTemplate st = ((StringTemplateWrapper)parent).getStringTemplate();
+ if ( index==0 ) {
+ // System.out.println("chunk type index "+index+" is attributes");
+ // return attributes
+@@ -145,9 +144,9 @@ public class JTreeStringTemplateModel im
+ return root.getFirstChild().getNextSibling().toStringList();
+ case 1 :
+ String templateName = root.getFirstChild().getText();
+- StringTemplate enclosingST = expr.getEnclosingTemplate();
++ org.antlr.stringtemplate.StringTemplate enclosingST = expr.getEnclosingTemplate();
+ StringTemplateGroup group = enclosingST.getGroup();
+- StringTemplate embedded =
++ org.antlr.stringtemplate.StringTemplate embedded =
+ group.getEmbeddedInstanceOf(enclosingST,
+ templateName);
+ return new StringTemplateWrapper(embedded);
+@@ -336,7 +335,7 @@ public class JTreeStringTemplateModel im
+ return wrappedObject;
+ }
+
+- public JTreeStringTemplateModel(StringTemplate st) {
++ public JTreeStringTemplateModel(org.antlr.stringtemplate.StringTemplate st) {
+ if (st == null) {
+ throw new IllegalArgumentException("root is null");
+ }
+--- src/org/antlr/stringtemplate/misc/StringTemplateTreeView.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/misc/StringTemplateTreeView.java 2025-07-05 13:52:07.423317093 -0600
+@@ -52,7 +52,7 @@ public class StringTemplateTreeView exte
+ static final int WIDTH = 200;
+ static final int HEIGHT = 300;
+
+- public StringTemplateTreeView(String label, StringTemplate st) {
++ public StringTemplateTreeView(String label, org.antlr.stringtemplate.StringTemplate st) {
+ super(label);
+
+ JTreeStringTemplatePanel tp =
+@@ -72,9 +72,9 @@ public class StringTemplateTreeView exte
+
+ public static void main(String args[]) {
+ StringTemplateGroup group = new StringTemplateGroup("dummy");
+- StringTemplate bold = group.defineTemplate("bold", "<b>$attr$</b>");
+- StringTemplate banner = group.defineTemplate("banner", "the banner");
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate bold = group.defineTemplate("bold", "<b>$attr$</b>");
++ org.antlr.stringtemplate.StringTemplate banner = group.defineTemplate("banner", "the banner");
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "<html>\n" + // doesn't like the first < and doesn't show :(
+ "$banner(a=b)$"+
+--- src/org/antlr/stringtemplate/StringTemplateGroupInterface.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/StringTemplateGroupInterface.java 2025-07-05 13:41:47.438126149 -0600
+@@ -129,7 +129,7 @@ public class StringTemplateGroupInterfac
+ String name = (String)it.next();
+ TemplateDefinition d = (TemplateDefinition)templates.get(name);
+ if ( group.isDefined(d.name) ) {
+- StringTemplate defST = group.getTemplateDefinition(d.name);
++ org.antlr.stringtemplate.StringTemplate defST = group.getTemplateDefinition(d.name);
+ Map formalArgs = defST.getFormalArguments();
+ boolean ack = false;
+ if ( (d.formalArgs!=null && formalArgs==null) ||
+--- src/org/antlr/stringtemplate/StringTemplateGroup.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/StringTemplateGroup.java 2025-07-05 13:46:45.107125637 -0600
+@@ -188,8 +188,8 @@ public class StringTemplateGroup {
+ /** Used to indicate that the template doesn't exist.
+ * We don't have to check disk for it; we know it's not there.
+ */
+- protected static final StringTemplate NOT_FOUND_ST =
+- new StringTemplate();
++ protected static final org.antlr.stringtemplate.StringTemplate NOT_FOUND_ST =
++ new org.antlr.stringtemplate.StringTemplate();
+
+ /** How long before tossing out all templates in seconds. */
+ protected int refreshIntervalInSeconds = Integer.MAX_VALUE/1000; // default: no refreshing from disk
+@@ -376,22 +376,22 @@ public class StringTemplateGroup {
+ }
+
+ /** StringTemplate object factory; each group can have its own. */
+- public StringTemplate createStringTemplate() {
+- StringTemplate st = new StringTemplate();
++ public org.antlr.stringtemplate.StringTemplate createStringTemplate() {
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate();
+ return st;
+ }
+
+ /** A support routine that gets an instance of name knowing which
+ * ST encloses it for error messages.
+ */
+- protected StringTemplate getInstanceOf(StringTemplate enclosingInstance,
++ protected org.antlr.stringtemplate.StringTemplate getInstanceOf(org.antlr.stringtemplate.StringTemplate enclosingInstance,
+ String name)
+ throws IllegalArgumentException
+ {
+ //System.out.println("getInstanceOf("+getName()+"::"+name+")");
+- StringTemplate st = lookupTemplate(enclosingInstance,name);
++ org.antlr.stringtemplate.StringTemplate st = lookupTemplate(enclosingInstance,name);
+ if ( st!=null ) {
+- StringTemplate instanceST = st.getInstanceOf();
++ org.antlr.stringtemplate.StringTemplate instanceST = st.getInstanceOf();
+ return instanceST;
+ }
+ return null;
+@@ -400,7 +400,7 @@ public class StringTemplateGroup {
+ /** The primary means of getting an instance of a template from this
+ * group.
+ */
+- public StringTemplate getInstanceOf(String name) {
++ public org.antlr.stringtemplate.StringTemplate getInstanceOf(String name) {
+ return getInstanceOf(null, name);
+ }
+
+@@ -408,13 +408,13 @@ public class StringTemplateGroup {
+ * group when you have a predefined set of attributes you want to
+ * use.
+ */
+- public StringTemplate getInstanceOf(String name, Map attributes) {
+- StringTemplate st = getInstanceOf(name);
++ public org.antlr.stringtemplate.StringTemplate getInstanceOf(String name, Map attributes) {
++ org.antlr.stringtemplate.StringTemplate st = getInstanceOf(name);
+ st.attributes = attributes;
+ return st;
+ }
+
+- public StringTemplate getEmbeddedInstanceOf(StringTemplate enclosingInstance,
++ public org.antlr.stringtemplate.StringTemplate getEmbeddedInstanceOf(org.antlr.stringtemplate.StringTemplate enclosingInstance,
+ String name)
+ throws IllegalArgumentException
+ {
+@@ -423,7 +423,7 @@ public class StringTemplateGroup {
+ enclosingInstance.getGroup().getName()+
+ " with native group "+enclosingInstance.getNativeGroup().getName());
+ */
+- StringTemplate st = null;
++ org.antlr.stringtemplate.StringTemplate st = null;
+ // TODO: seems like this should go into lookupTemplate
+ if ( name.startsWith("super.") ) {
+ // for super.foo() refs, ensure that we look at the native
+@@ -450,7 +450,7 @@ public class StringTemplateGroup {
+ *
+ * If I find a template in a super group, copy an instance down here
+ */
+- public synchronized StringTemplate lookupTemplate(StringTemplate enclosingInstance,
++ public synchronized org.antlr.stringtemplate.StringTemplate lookupTemplate(org.antlr.stringtemplate.StringTemplate enclosingInstance,
+ String name)
+ throws IllegalArgumentException
+ {
+@@ -459,7 +459,7 @@ public class StringTemplateGroup {
+ if ( superGroup!=null ) {
+ int dot = name.indexOf('.');
+ name = name.substring(dot+1,name.length());
+- StringTemplate superScopeST =
++ org.antlr.stringtemplate.StringTemplate superScopeST =
+ superGroup.lookupTemplate(enclosingInstance,name);
+ /*
+ System.out.println("superScopeST is "+
+@@ -472,7 +472,7 @@ public class StringTemplateGroup {
+ " has no super group; invalid template: "+name);
+ }
+ checkRefreshInterval();
+- StringTemplate st = (StringTemplate)templates.get(name);
++ org.antlr.stringtemplate.StringTemplate st = (org.antlr.stringtemplate.StringTemplate)templates.get(name);
+ if ( st==null ) {
+ // not there? Attempt to load
+ if ( !templatesDefinedInGroupFile ) {
+@@ -516,7 +516,7 @@ public class StringTemplateGroup {
+ return st;
+ }
+
+- public StringTemplate lookupTemplate(String name) {
++ public org.antlr.stringtemplate.StringTemplate lookupTemplate(String name) {
+ return lookupTemplate(null, name);
+ }
+
+@@ -533,7 +533,7 @@ public class StringTemplateGroup {
+ }
+ }
+
+- protected StringTemplate loadTemplate(String name, BufferedReader r)
++ protected org.antlr.stringtemplate.StringTemplate loadTemplate(String name, BufferedReader r)
+ throws IOException
+ {
+ String line;
+@@ -558,9 +558,9 @@ public class StringTemplateGroup {
+ * the classpath. If there is a rootDir, try to load the file
+ * from there.
+ */
+- protected StringTemplate loadTemplateFromBeneathRootDirOrCLASSPATH(String fileName)
++ protected org.antlr.stringtemplate.StringTemplate loadTemplateFromBeneathRootDirOrCLASSPATH(String fileName)
+ {
+- StringTemplate template = null;
++ org.antlr.stringtemplate.StringTemplate template = null;
+ String name = getTemplateNameFromFileName(fileName);
+ // if no rootDir, try to load as a resource in CLASSPATH
+ if ( rootDir==null ) {
+@@ -618,10 +618,10 @@ public class StringTemplateGroup {
+ return name;
+ }
+
+- protected StringTemplate loadTemplate(String name, String fileName)
++ protected org.antlr.stringtemplate.StringTemplate loadTemplate(String name, String fileName)
+ {
+ BufferedReader br = null;
+- StringTemplate template = null;
++ org.antlr.stringtemplate.StringTemplate template = null;
+ try {
+ InputStream fin = new FileInputStream(fileName);
+ InputStreamReader isr = getInputStreamReader(fin);
+@@ -665,14 +665,14 @@ public class StringTemplateGroup {
+ /** Define an examplar template; precompiled and stored
+ * with no attributes. Remove any previous definition.
+ */
+- public synchronized StringTemplate defineTemplate(String name,
++ public synchronized org.antlr.stringtemplate.StringTemplate defineTemplate(String name,
+ String template)
+ {
+ //System.out.println("defineTemplate "+getName()+"::"+name);
+ if ( name!=null && name.indexOf('.')>=0 ) {
+ throw new IllegalArgumentException("cannot have '.' in template names");
+ }
+- StringTemplate st = createStringTemplate();
++ org.antlr.stringtemplate.StringTemplate st = createStringTemplate();
+ st.setName(name);
+ st.setGroup(this);
+ st.setNativeGroup(this);
+@@ -683,26 +683,26 @@ public class StringTemplateGroup {
+ }
+
+ /** Track all references to regions <@foo>...<@end> or <@foo()>. */
+- public StringTemplate defineRegionTemplate(String enclosingTemplateName,
++ public org.antlr.stringtemplate.StringTemplate defineRegionTemplate(String enclosingTemplateName,
+ String regionName,
+ String template,
+ int type)
+ {
+ String mangledName =
+ getMangledRegionName(enclosingTemplateName,regionName);
+- StringTemplate regionST = defineTemplate(mangledName, template);
++ org.antlr.stringtemplate.StringTemplate regionST = defineTemplate(mangledName, template);
+ regionST.setIsRegion(true);
+ regionST.setRegionDefType(type);
+ return regionST;
+ }
+
+ /** Track all references to regions <@foo>...<@end> or <@foo()>. */
+- public StringTemplate defineRegionTemplate(StringTemplate enclosingTemplate,
++ public org.antlr.stringtemplate.StringTemplate defineRegionTemplate(org.antlr.stringtemplate.StringTemplate enclosingTemplate,
+ String regionName,
+ String template,
+ int type)
+ {
+- StringTemplate regionST =
++ org.antlr.stringtemplate.StringTemplate regionST =
+ defineRegionTemplate(enclosingTemplate.getOutermostName(),
+ regionName,
+ template,
+@@ -719,13 +719,13 @@ public class StringTemplateGroup {
+ * You cannot set these manually in the same group; you have to subgroup
+ * to override.
+ */
+- public StringTemplate defineImplicitRegionTemplate(StringTemplate enclosingTemplate,
++ public org.antlr.stringtemplate.StringTemplate defineImplicitRegionTemplate(org.antlr.stringtemplate.StringTemplate enclosingTemplate,
+ String name)
+ {
+ return defineRegionTemplate(enclosingTemplate,
+ name,
+ "",
+- StringTemplate.REGION_IMPLICIT);
++ org.antlr.stringtemplate.StringTemplate.REGION_IMPLICIT);
+
+ }
+
+@@ -744,8 +744,8 @@ public class StringTemplateGroup {
+ }
+
+ /** Make name and alias for target. Replace any previous def of name */
+- public synchronized StringTemplate defineTemplateAlias(String name, String target) {
+- StringTemplate targetST=getTemplateDefinition(target);
++ public synchronized org.antlr.stringtemplate.StringTemplate defineTemplateAlias(String name, String target) {
++ org.antlr.stringtemplate.StringTemplate targetST=getTemplateDefinition(target);
+ if ( targetST==null ){
+ error("cannot alias "+name+" to undefined template: "+target);
+ return null;
+@@ -755,11 +755,11 @@ public class StringTemplateGroup {
+ }
+
+ public synchronized boolean isDefinedInThisGroup(String name) {
+- StringTemplate st = (StringTemplate)templates.get(name);
++ org.antlr.stringtemplate.StringTemplate st = (org.antlr.stringtemplate.StringTemplate)templates.get(name);
+ if ( st!=null ) {
+ if ( st.isRegion() ) {
+ // don't allow redef of @t.r() ::= "..." or <@r>...<@end>
+- if ( st.getRegionDefType()==StringTemplate.REGION_IMPLICIT ) {
++ if ( st.getRegionDefType()==org.antlr.stringtemplate.StringTemplate.REGION_IMPLICIT ) {
+ return false;
+ }
+ }
+@@ -769,8 +769,8 @@ public class StringTemplateGroup {
+ }
+
+ /** Get the ST for 'name' in this group only */
+- public synchronized StringTemplate getTemplateDefinition(String name) {
+- return (StringTemplate)templates.get(name);
++ public synchronized org.antlr.stringtemplate.StringTemplate getTemplateDefinition(String name) {
++ return (org.antlr.stringtemplate.StringTemplate)templates.get(name);
+ }
+
+ /** Is there *any* definition for template 'name' in this template
+@@ -1012,7 +1012,7 @@ public class StringTemplateGroup {
+ noDebugStartStopStrings.add(templateName);
+ }
+
+- public void emitTemplateStartDebugString(StringTemplate st,
++ public void emitTemplateStartDebugString(org.antlr.stringtemplate.StringTemplate st,
+ StringTemplateWriter out)
+ throws IOException
+ {
+@@ -1032,7 +1032,7 @@ public class StringTemplateGroup {
+ }
+ }
+
+- public void emitTemplateStopDebugString(StringTemplate st,
++ public void emitTemplateStopDebugString(org.antlr.stringtemplate.StringTemplate st,
+ StringTemplateWriter out)
+ throws IOException
+ {
+@@ -1063,10 +1063,10 @@ public class StringTemplateGroup {
+ Collections.sort(sortedNames);
+ Iterator iter = sortedNames.iterator();
+ buf.append("group "+getName()+";\n");
+- StringTemplate formalArgs = new StringTemplate("$args;separator=\",\"$");
++ org.antlr.stringtemplate.StringTemplate formalArgs = new org.antlr.stringtemplate.StringTemplate("$args;separator=\",\"$");
+ while (iter.hasNext()) {
+ String tname = (String) iter.next();
+- StringTemplate st = (StringTemplate)templates.get(tname);
++ org.antlr.stringtemplate.StringTemplate st = (org.antlr.stringtemplate.StringTemplate)templates.get(tname);
+ if ( st!=NOT_FOUND_ST ) {
+ formalArgs = formalArgs.getInstanceOf();
+ formalArgs.setAttribute("args", st.getFormalArguments());
+--- test/org/antlr/stringtemplate/test/TestStringTemplate.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ test/org/antlr/stringtemplate/test/TestStringTemplate.java 2025-07-05 15:16:42.836799197 -0600
+@@ -208,7 +208,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new FileReader(tmpdir+"/testG.stg"),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate st = group.getInstanceOf("main");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("main");
+ st.setAttribute("x", "foo");
+
+ String expecting = "*foo*";
+@@ -236,7 +236,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new FileReader(tmpdir+"/testG.stg"),
+ errors);
+- StringTemplate st = group.getInstanceOf("main");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("main");
+ st.setAttribute("x", "foo");
+
+ String expecting = "*foo*";
+@@ -338,11 +338,11 @@ public class TestStringTemplate extends
+ "t() ::= <<literal template>>"+newline;
+ assertEquals(expecting,group.toString());
+
+- StringTemplate a = group.getInstanceOf("t");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("t");
+ expecting = "literal template";
+ assertEquals(expecting,a.toString());
+
+- StringTemplate b = group.getInstanceOf("bold");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("bold");
+ b.setAttribute("item", "dork");
+ expecting = "<b>dork</b>";
+ assertEquals(expecting,b.toString());
+@@ -364,12 +364,12 @@ public class TestStringTemplate extends
+ "t() ::= <<$\"literal\":{a|$a$\\}}$ template>>"+newline;
+ assertEquals(expecting,group.toString());
+
+- StringTemplate b = group.getInstanceOf("bold");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("bold");
+ b.setAttribute("item", "dork");
+ expecting = "<b>dork</b>";
+ assertEquals(expecting,b.toString());
+
+- StringTemplate a = group.getInstanceOf("t");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("t");
+ expecting = "literal} template";
+ assertEquals(expecting,a.toString());
+ }
+@@ -388,7 +388,7 @@ public class TestStringTemplate extends
+ DefaultTemplateLexer.class);
+
+ // check setting unknown arg in empty formal list
+- StringTemplate a = group.getInstanceOf("t");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("t");
+ String error = null;
+ try {
+ a.setAttribute("foo", "x"); // want NoSuchElementException
+@@ -436,7 +436,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ t.setAttribute("title","my title");
+ t.setAttribute("font","Helvetica"); // body() will see it
+ t.toString(); // should be no problem
+@@ -450,7 +450,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ String expecting = "<font face=Times>my body</font>";
+ assertEquals(expecting, t.toString());
+ }
+@@ -463,7 +463,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ t.setAttribute("x","Times");
+ String error = "";
+ try {
+@@ -484,7 +484,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ t.setAttribute("name", "Ter");
+ String expecting = "<font face=Times><b>Ter</b></font>";
+ assertEquals(expecting, t.toString());
+@@ -498,7 +498,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ t.setAttribute("x","Times");
+ t.setAttribute("name", "Ter");
+ String error = "";
+@@ -520,7 +520,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ String error = "";
+ try {
+ t.toString();
+@@ -540,7 +540,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate t = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("page");
+ String error = "";
+ try {
+ t.toString();
+@@ -562,14 +562,14 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(
+ new StringReader(templates));
+- StringTemplate t = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("a");
+ t.setAttribute("s","Test");
+ String expecting = "case 1 : Test break;";
+ assertEquals(expecting, t.toString());
+ }
+
+ public void testAngleBracketsNoGroup() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "Tokens : <rules; separator=\"|\"> ;",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("rules", "A");
+@@ -585,7 +585,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XY";
+ assertEquals(expecting, result);
+@@ -598,7 +598,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XblortY";
+ assertEquals(expecting, result);
+@@ -610,7 +610,7 @@ public class TestStringTemplate extends
+ "a() ::= \"X<@r()>Y\"" +newline;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XY";
+ assertEquals(expecting, result);
+@@ -622,7 +622,7 @@ public class TestStringTemplate extends
+ "a() ::= \"X<@r>blort<@end>Y\"" +newline;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XblortY";
+ assertEquals(expecting, result);
+@@ -638,7 +638,7 @@ public class TestStringTemplate extends
+ "Y\"" +newline;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XblortY";
+ assertEquals(expecting, result);
+@@ -651,7 +651,7 @@ public class TestStringTemplate extends
+ "@a.r() ::= \"foo\"" +newline;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XfooY";
+ assertEquals(expecting, result);
+@@ -664,7 +664,7 @@ public class TestStringTemplate extends
+ "@a.r() ::= \"foo\"" +newline;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.setAttribute("v", "true");
+ String result = st.toString();
+ String expecting = "XAfooBY";
+@@ -680,7 +680,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ errors);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.setAttribute("v", "true");
+ String result = st.toString();
+ String expecting = "XAyoBY";
+@@ -708,7 +708,7 @@ public class TestStringTemplate extends
+ null,
+ group);
+
+- StringTemplate st = subGroup.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XfooY";
+ assertEquals(expecting, result);
+@@ -731,7 +731,7 @@ public class TestStringTemplate extends
+ null,
+ group);
+
+- StringTemplate st = subGroup.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XAfooBY";
+ assertEquals(expecting, result);
+@@ -776,7 +776,7 @@ public class TestStringTemplate extends
+ null,
+ subGroup);
+
+- StringTemplate st = subSubGroup.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = subSubGroup.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "Xfoo23Y";
+ assertEquals(expecting, result);
+@@ -798,7 +798,7 @@ public class TestStringTemplate extends
+ null,
+ group);
+
+- StringTemplate st = subGroup.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("a");
+ String result = st.toString();
+ String expecting = "XAfooY";
+ assertEquals(expecting, result);
+@@ -814,7 +814,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ errors);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.toString();
+ String result = errors.toString();
+ String expecting = "group test line 2: redefinition of template region: @a.r";
+@@ -832,7 +832,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ errors);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.toString();
+ String result = errors.toString();
+ String expecting = "group test line 4: redefinition of template region: @a.r";
+@@ -874,7 +874,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ errors);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.toString();
+ String result = errors.toString();
+ String expecting = "group test line 3: template a has no region called q";
+@@ -916,7 +916,7 @@ public class TestStringTemplate extends
+ DefaultTemplateLexer.class,
+ errors,
+ null);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.toString();
+ String result = errors.toString();
+ String expecting = "missing region r $@end$ tag";
+@@ -932,7 +932,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ errors);
+- StringTemplate st = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("a");
+ st.toString();
+ String result = errors.toString();
+ String expecting = "missing region r <@end> tag";
+@@ -948,7 +948,7 @@ public class TestStringTemplate extends
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ subgroup.setErrorListener(errors);
+ supergroup.setErrorListener(errors);
+- StringTemplate duh = new StringTemplate(subgroup, "$name:bold()$");
++ org.antlr.stringtemplate.StringTemplate duh = new org.antlr.stringtemplate.StringTemplate(subgroup, "$name:bold()$");
+ duh.setAttribute("name", "Terence");
+ String expecting = "<b>Terence</b>";
+ assertEquals(expecting,duh.toString());
+@@ -964,7 +964,7 @@ public class TestStringTemplate extends
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ subgroup.setErrorListener(errors);
+ supergroup.setErrorListener(errors);
+- StringTemplate duh = new StringTemplate(subgroup, "$name:bold()$");
++ org.antlr.stringtemplate.StringTemplate duh = new org.antlr.stringtemplate.StringTemplate(subgroup, "$name:bold()$");
+ duh.setAttribute("name", "Terence");
+ String expecting = "<strong>Terence</strong>";
+ assertEquals(expecting,duh.toString());
+@@ -982,7 +982,7 @@ public class TestStringTemplate extends
+ rootgroup.setErrorListener(errors);
+ level1.setErrorListener(errors);
+ level2.setErrorListener(errors);
+- StringTemplate duh = new StringTemplate(level2, "$name:bold()$");
++ org.antlr.stringtemplate.StringTemplate duh = new org.antlr.stringtemplate.StringTemplate(level2, "$name:bold()$");
+ duh.setAttribute("name", "Terence");
+ String expecting = "<b>Terence</b>";
+ assertEquals(expecting,duh.toString());
+@@ -1012,7 +1012,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup sub =
+ new StringTemplateGroup(new StringReader(subtemplates));
+ sub.setSuperGroup(base);
+- StringTemplate st = sub.getInstanceOf("decls");
++ org.antlr.stringtemplate.StringTemplate st = sub.getInstanceOf("decls");
+ String expecting = "DSL";
+ String result = st.toString();
+ assertEquals(expecting, result);
+@@ -1043,7 +1043,7 @@ public class TestStringTemplate extends
+ null,
+ subGroup);
+
+- StringTemplate st = subSubGroup.getInstanceOf("r");
++ org.antlr.stringtemplate.StringTemplate st = subSubGroup.getInstanceOf("r");
+ String result = st.toString();
+ String expecting = "foo23";
+ assertEquals(expecting, result);
+@@ -1052,10 +1052,10 @@ public class TestStringTemplate extends
+ public void testExprInParens() throws Exception {
+ // specify a template to apply to an attribute
+ // Use a template group so we can specify the start/stop chars
+- StringTemplateGroup group =
++ org.antlr.stringtemplate.StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate duh = new StringTemplate(group, "$(\"blort: \"+(list)):bold()$");
++ org.antlr.stringtemplate.StringTemplate duh = new org.antlr.stringtemplate.StringTemplate(group, "$(\"blort: \"+(list)):bold()$");
+ duh.setAttribute("list", "a");
+ duh.setAttribute("list", "b");
+ duh.setAttribute("list", "c");
+@@ -1067,11 +1067,11 @@ public class TestStringTemplate extends
+ public void testMultipleAdditions() throws Exception {
+ // specify a template to apply to an attribute
+ // Use a template group so we can specify the start/stop chars
+- StringTemplateGroup group =
+- new StringTemplateGroup("dummy", ".");
++ org.antlr.stringtemplate.StringTemplateGroup group =
++ new org.antlr.stringtemplate.StringTemplateGroup("dummy", ".");
+ group.defineTemplate("link", "<a href=\"$url$\"><b>$title$</b></a>");
+- StringTemplate duh =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate duh =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "$link(url=\"/member/view?ID=\"+ID+\"&x=y\"+foo, title=\"the title\")$");
+ duh.setAttribute("ID", "3321");
+ duh.setAttribute("foo", "fubar");
+@@ -1083,8 +1083,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate t =
+- new StringTemplate(group, "$data$, $data:bold()$, "+
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group, "$data$, $data:bold()$, "+
+ "$list:bold():bold()$, $array$, $a2$, $a3$, $a4$");
+ Vector v = new Vector();
+ v.addElement("1");
+@@ -1110,7 +1110,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate t = new StringTemplate(group, "$(f+l):bold()$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$(f+l):bold()$");
+ t.setAttribute("f", "Joe");
+ t.setAttribute("l", "Schmoe");
+ //System.out.println(t);
+@@ -1122,7 +1122,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /* StringTemplate bold =*/ group.defineTemplate("foobar", "foo$attr$bar");
+- StringTemplate t = new StringTemplate(group, "$data:(name+\"bar\")()$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$data:(name+\"bar\")()$");
+ t.setAttribute("data", "Ter");
+ t.setAttribute("data", "Tom");
+ t.setAttribute("name", "foo");
+@@ -1136,7 +1136,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ /*StringTemplate foobar =*/ group.defineTemplate("foobar", "foo$it$bar");
+ /*StringTemplate a =*/ group.defineTemplate("a", "$it$bar");
+- StringTemplate t = new StringTemplate(group, "$data:(\"foo\":a())()$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$data:(\"foo\":a())()$");
+ t.setAttribute("data", "Ter");
+ t.setAttribute("data", "Tom");
+ //System.out.println(t);
+@@ -1148,7 +1148,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate foo =*/ group.defineTemplate("foo", "hi there!");
+- StringTemplate t = new StringTemplate(group, "$(name)()$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$(name)()$");
+ t.setAttribute("name", "foo");
+ //System.out.println(t);
+ String expecting="hi there!";
+@@ -1160,7 +1160,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- /*StringTemplate t =*/ new StringTemplate(group, "stuff $a then more junk etc...");
++ /*StringTemplate t =*/ new org.antlr.stringtemplate.StringTemplate(group, "stuff $a then more junk etc...");
+ String expectingError="problem parsing template 'anonymous': line 1:31: expecting '$', found '<EOF>'";
+ //System.out.println("error: '"+errors+"'");
+ //System.out.println("expecting: '"+expectingError+"'");
+@@ -1168,10 +1168,10 @@ public class TestStringTemplate extends
+ }
+
+ public void testSetButNotRefd() throws Exception {
+- StringTemplate.setLintMode(true);
++ org.antlr.stringtemplate.StringTemplate.setLintMode(true);
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate t = new StringTemplate(group, "$a$ then $b$ and $c$ refs.");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$a$ then $b$ and $c$ refs.");
+ t.setAttribute("a", "Terence");
+ t.setAttribute("b", "Terence");
+ t.setAttribute("cc", "Terence"); // oops...should be 'c'
+@@ -1181,7 +1181,7 @@ public class TestStringTemplate extends
+ /*String result =*/ t.toString(); // result is irrelevant
+ //System.out.println("result error: '"+errors+"'");
+ //System.out.println("expecting: '"+expectingError+"'");
+- StringTemplate.setLintMode(false);
++ org.antlr.stringtemplate.StringTemplate.setLintMode(false);
+ assertEquals(expectingError,errors.toString());
+ }
+
+@@ -1190,7 +1190,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group, "$names:bold(x=it)$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$names:bold(x=it)$");
+ t.setAttribute("names", "Terence");
+
+ String error = null;
+@@ -1209,7 +1209,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group, "$names:bold(x=it)$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$names:bold(x=it)$");
+ t.setAttribute("names", "Terence");
+ t.setAttribute("names", "Tom");
+ //System.out.println(t);
+@@ -1228,7 +1228,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$x$</b>");
+- StringTemplate t = new StringTemplate(group, "$names:bold(x=it)$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$names:bold(x=it)$");
+ t.setAttribute("names", "Terence");
+ t.setAttribute("names", "Tom");
+ //System.out.println("'"+t.toString()+"'");
+@@ -1241,8 +1241,8 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("dummy", ".");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$item$</b>");
+ /*StringTemplate italics =*/ group.defineTemplate("italics", "<i>$it$</i>");
+- StringTemplate members =
+- new StringTemplate(group, "$members:bold(item=it):italics(it=it)$");
++ org.antlr.stringtemplate.StringTemplate members =
++ new org.antlr.stringtemplate.StringTemplate(group, "$members:bold(item=it):italics(it=it)$");
+ members.setAttribute("members", "Jim");
+ members.setAttribute("members", "Mike");
+ members.setAttribute("members", "Ashar");
+@@ -1257,8 +1257,8 @@ public class TestStringTemplate extends
+ /*StringTemplate listItem =*/ group.defineTemplate("listItem", "<li>$it$</li>");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+ /*StringTemplate italics =*/ group.defineTemplate("italics", "<i>$it$</i>");
+- StringTemplate item =
+- new StringTemplate(group, "$item:bold(),italics():listItem()$");
++ org.antlr.stringtemplate.StringTemplate item =
++ new org.antlr.stringtemplate.StringTemplate(group, "$item:bold(),italics():listItem()$");
+ item.setAttribute("item", "Jim");
+ item.setAttribute("item", "Mike");
+ item.setAttribute("item", "Ashar");
+@@ -1272,7 +1272,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ /*StringTemplate hostname =*/ group.defineTemplate("hostname", "$machine$.jguru.com");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$x$</b>");
+- StringTemplate t = new StringTemplate(group, "$bold(x=hostname(machine=\"www\"))$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$bold(x=hostname(machine=\"www\"))$");
+ String expecting="<b>www.jguru.com</b>";
+ assertEquals(expecting, t.toString());
+ }
+@@ -1283,7 +1283,7 @@ public class TestStringTemplate extends
+ /*StringTemplate hostname =*/ group.defineTemplate("hostname", "$machine$.jguru.com");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$x$</b>");
+ /*StringTemplate italics =*/ group.defineTemplate("italics", "<i>$it$</i>");
+- StringTemplate t = new StringTemplate(group, "$bold(x=hostname(machine=\"www\"):italics())$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$bold(x=hostname(machine=\"www\"):italics())$");
+ String expecting="<b><i>www.jguru.com</i></b>";
+ assertEquals(expecting, t.toString());
+ }
+@@ -1293,7 +1293,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ /*StringTemplate italics =*/ group.defineTemplate("italics", "<i>$x$</i>");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$x$</b>");
+- StringTemplate t = new StringTemplate(group, "$bold(x=italics(x=name))$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$bold(x=italics(x=name))$");
+ t.setAttribute("name", "Terence");
+ //System.out.println(t);
+ String expecting="<b><i>Terence</i></b>";
+@@ -1305,8 +1305,8 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bulletSeparator", "</li>$foo$<li>");
+ // make separator a complicated expression with args passed to included template
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "<ul>$name; separator=bulletSeparator(foo=\" \")+\" \"$</ul>");
+ t.setAttribute("name", "Ter");
+ t.setAttribute("name", "Tom");
+@@ -1319,7 +1319,7 @@ public class TestStringTemplate extends
+ public void testAttributeRefButtedUpAgainstEndifAndWhitespace() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate a = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate a = new org.antlr.stringtemplate.StringTemplate(group,
+ "$if (!firstName)$$email$$endif$");
+ a.setAttribute("email", "parrt@jguru.com");
+ String expecting = "parrt@jguru.com";
+@@ -1331,7 +1331,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+ //StringTemplate a = new StringTemplate(group, "$\" Parr\":bold()$");
+- StringTemplate b = new StringTemplate(group, "$bold(it={$name$ Parr})$");
++ org.antlr.stringtemplate.StringTemplate b = new org.antlr.stringtemplate.StringTemplate(group, "$bold(it={$name$ Parr})$");
+ //a.setAttribute("name", "Terence");
+ b.setAttribute("name", "Terence");
+ String expecting = "<b>Terence Parr</b>";
+@@ -1343,7 +1343,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate b = new StringTemplate(group, "$bold(it=name+\" Parr\")$");
++ org.antlr.stringtemplate.StringTemplate b = new org.antlr.stringtemplate.StringTemplate(group, "$bold(it=name+\" Parr\")$");
+ //a.setAttribute("name", "Terence");
+ b.setAttribute("name", "Terence");
+ String expecting = "<b>Terence Parr</b>";
+@@ -1355,7 +1355,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate b = new StringTemplate(group, "$bold(it=name+\" Parr=\")$");
++ org.antlr.stringtemplate.StringTemplate b = new org.antlr.stringtemplate.StringTemplate(group, "$bold(it=name+\" Parr=\")$");
+ //a.setAttribute("name", "Terence");
+ b.setAttribute("name", "Terence");
+ String expecting = "<b>Terence Parr=</b>";
+@@ -1400,7 +1400,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", tmpWorkDir.toString());
+
+- StringTemplate a = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("page");
+ a.setAttribute("member", new Connector());
+ String expecting = "<html><head>"+newline+
+ "</head>"+newline+
+@@ -1422,8 +1422,8 @@ public class TestStringTemplate extends
+ {
+ StringTemplateGroup tgroup =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(tgroup,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(tgroup,
+ " List:"+newline+" "+newline+"foo"+newline+newline+
+ "$names:{<br>$i$. $it$"+newline+
+ "}$");
+@@ -1446,7 +1446,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup mgroup =
+ new StringTemplateGroup("method stuff",
+ AngleBracketTemplateLexer.class);
+- StringTemplate m = mgroup.getInstanceOf("org/antlr/stringtemplate/test/method");
++ org.antlr.stringtemplate.StringTemplate m = mgroup.getInstanceOf("org/antlr/stringtemplate/test/method");
+ // "method.st" references body() so "body.st" will be loaded too
+ m.setAttribute("visibility", "public");
+ m.setAttribute("name", "foobar");
+@@ -1468,7 +1468,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$x$</b>");
+- StringTemplate name = new StringTemplate(group, "$name:bold(x=name)$");
++ org.antlr.stringtemplate.StringTemplate name = new org.antlr.stringtemplate.StringTemplate(group, "$name:bold(x=name)$");
+ name.setAttribute("name", "Terence");
+ assertEquals("<b>Terence</b>",name.toString());
+ }
+@@ -1477,7 +1477,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate name = new StringTemplate(group, "$\"Terence\":bold()$");
++ org.antlr.stringtemplate.StringTemplate name = new org.antlr.stringtemplate.StringTemplate(group, "$\"Terence\":bold()$");
+ assertEquals("<b>Terence</b>",name.toString());
+ }
+
+@@ -1485,7 +1485,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ /*StringTemplate bold =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate name = new StringTemplate(group, "$name:bold()$");
++ org.antlr.stringtemplate.StringTemplate name = new org.antlr.stringtemplate.StringTemplate(group, "$name:bold()$");
+ name.setAttribute("name", "Terence");
+ assertEquals("<b>Terence</b>",name.toString());
+ }
+@@ -1495,8 +1495,8 @@ public class TestStringTemplate extends
+ // Use a template group so we can specify the start/stop chars
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate item =
+- new StringTemplate(group, "$item:{<li>$it$</li>}$");
++ org.antlr.stringtemplate.StringTemplate item =
++ new org.antlr.stringtemplate.StringTemplate(group, "$item:{<li>$it$</li>}$");
+ item.setAttribute("item", "Terence");
+ assertEquals("<li>Terence</li>",item.toString());
+ }
+@@ -1506,11 +1506,11 @@ public class TestStringTemplate extends
+ // Use a template group so we can specify the start/stop chars
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate list =
+- new StringTemplate(group, "<ul>$items$</ul>");
++ org.antlr.stringtemplate.StringTemplate list =
++ new org.antlr.stringtemplate.StringTemplate(group, "<ul>$items$</ul>");
+ // demonstrate setting arg to anonymous subtemplate
+- StringTemplate item =
+- new StringTemplate(group, "$item:{<li>$it$</li>}; separator=\",\"$");
++ org.antlr.stringtemplate.StringTemplate item =
++ new org.antlr.stringtemplate.StringTemplate(group, "$item:{<li>$it$</li>}; separator=\",\"$");
+ item.setAttribute("item", "Terence");
+ item.setAttribute("item", "Jim");
+ item.setAttribute("item", "John");
+@@ -1520,8 +1520,8 @@ public class TestStringTemplate extends
+ }
+
+ public void testApplyAnonymousTemplateToAggregateAttribute() throws Exception {
+- StringTemplate st =
+- new StringTemplate("$items:{$it.lastName$, $it.firstName$\n}$");
++ org.antlr.stringtemplate.StringTemplate st =
++ new org.antlr.stringtemplate.StringTemplate("$items:{$it.lastName$, $it.firstName$\n}$");
+ // also testing wacky spaces in aggregate spec
+ st.setAttribute("items.{ firstName ,lastName}", "Ter", "Parr");
+ st.setAttribute("items.{firstName, lastName }", "Tom", "Burns");
+@@ -1535,8 +1535,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+ /*StringTemplate search =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate item =
+- new StringTemplate(group, "$item:bold():bold()$");
++ org.antlr.stringtemplate.StringTemplate item =
++ new org.antlr.stringtemplate.StringTemplate(group, "$item:bold():bold()$");
+ item.setAttribute("item", "Jim");
+ assertEquals("<b><b>Jim</b></b>", item.toString());
+ }
+@@ -1545,8 +1545,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+ /*StringTemplate search =*/ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate item =
+- new StringTemplate(group, "$item:bold():bold(); separator=\",\"$");
++ org.antlr.stringtemplate.StringTemplate item =
++ new org.antlr.stringtemplate.StringTemplate(group, "$item:bold():bold(); separator=\",\"$");
+ item.setAttribute("item", "Jim");
+ item.setAttribute("item", "Mike");
+ item.setAttribute("item", "Ashar");
+@@ -1559,12 +1559,12 @@ public class TestStringTemplate extends
+ // ### NEED A TEST OF obj ASSIGNED TO ARG?
+
+ public void testMultiValuedAttributeWithSeparator() throws Exception {
+- StringTemplate query;
++ org.antlr.stringtemplate.StringTemplate query;
+
+ // if column can be multi-valued, specify a separator
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- query = new StringTemplate(group, "SELECT <distinct> <column; separator=\", \"> FROM <table>;");
++ query = new org.antlr.stringtemplate.StringTemplate(group, "SELECT <distinct> <column; separator=\", \"> FROM <table>;");
+ query.setAttribute("column", "name");
+ query.setAttribute("column", "email");
+ query.setAttribute("table", "User");
+@@ -1576,8 +1576,8 @@ public class TestStringTemplate extends
+
+ public void testSingleValuedAttributes() throws Exception {
+ // all attributes are single-valued:
+- StringTemplate query =
+- new StringTemplate("SELECT $column$ FROM $table$;");
++ org.antlr.stringtemplate.StringTemplate query =
++ new org.antlr.stringtemplate.StringTemplate("SELECT $column$ FROM $table$;");
+ query.setAttribute("column", "name");
+ query.setAttribute("table", "User");
+ // System.out.println(query);
+@@ -1587,8 +1587,8 @@ public class TestStringTemplate extends
+ public void testIFTemplate() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "SELECT <column> FROM PERSON "+
+ "<if(cond)>WHERE ID=<id><endif>;");
+ t.setAttribute("column", "name");
+@@ -1600,8 +1600,8 @@ public class TestStringTemplate extends
+ public void testIFCondWithParensTemplate() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "<if(map.(type))><type> <prop>=<map.(type)>;<endif>");
+ HashMap map = new HashMap();
+ map.put("int","0");
+@@ -1614,8 +1614,8 @@ public class TestStringTemplate extends
+ public void testIFCondWithParensDollarDelimsTemplate() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "$if(map.(type))$$type$ $prop$=$map.(type)$;$endif$");
+ HashMap map = new HashMap();
+ map.put("int","0");
+@@ -1629,8 +1629,8 @@ public class TestStringTemplate extends
+ public void testIFBoolean() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "$if(b)$x$endif$ $if(!b)$y$endif$");
+ t.setAttribute("b", new Boolean(true));
+ assertEquals(t.toString(), "x ");
+@@ -1643,8 +1643,8 @@ public class TestStringTemplate extends
+ public void testNestedIFTemplate() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "ack<if(a)>"+newline+
+ "foo"+newline+
+ "<if(!b)>stuff<endif>"+newline+
+@@ -1665,8 +1665,8 @@ public class TestStringTemplate extends
+ public void testIFConditionWithTemplateApplication() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "$if(names:{$it$})$Fail!$endif$ $if(!names:{$it$})$Works!$endif$");
+ t.setAttribute("b", new Boolean(true));
+ assertEquals(t.toString(), " Works!");
+@@ -1696,8 +1696,8 @@ public class TestStringTemplate extends
+ public void testObjectPropertyReference() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "<b>Name: $p.firstName$ $p.lastName$</b><br>"+newline+
+ "<b>Email: $p.email$</b><br>"+newline+
+@@ -1718,8 +1718,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+ group.defineTemplate("link", "<a href=\"$url$\"><b>$title$</b></a>");
+- StringTemplate duh =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate duh =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "start|$p:{$link(url=\"/member/view?ID=\"+it.ID, title=it.firstName)$ $if(it.canEdit)$canEdit$endif$}:"+
+ "{$it$<br>\n}$|end");
+ duh.setAttribute("p", new Connector());
+@@ -1763,7 +1763,7 @@ public class TestStringTemplate extends
+ "<else>" +
+ "<it.text>" +
+ "<endif>");
+- StringTemplate tree = group.getInstanceOf("tree");
++ org.antlr.stringtemplate.StringTemplate tree = group.getInstanceOf("tree");
+ // build ( a b (c d) e )
+ Tree root = new Tree("a");
+ root.addChild(new Tree("b"));
+@@ -1779,8 +1779,8 @@ public class TestStringTemplate extends
+ public void testNestedAnonymousTemplates() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A:{" + newline +
+ "<i>$it:{" + newline +
+@@ -1799,8 +1799,8 @@ public class TestStringTemplate extends
+ public void testAnonymousTemplateAccessToEnclosingAttributes() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A:{" + newline +
+ "<i>$it:{" + newline +
+@@ -1821,8 +1821,8 @@ public class TestStringTemplate extends
+
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "<table>"+newline +
+ "$names:{<tr>$it:{<td>$it:{<b>$it$</b>}$</td>}$</tr>}$"+newline +
+@@ -1841,18 +1841,18 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+ group.defineTemplate("foo", "$x$ && $it$");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A:foo(x=\"dog\\\"\\\"\")$" // $A:foo("dog\"\"")$
+ );
+- StringTemplate u =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate u =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A:foo(x=\"dog\\\"g\")$" // $A:foo(x="dog\"g")$
+ );
+- StringTemplate v =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate v =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ // $A:{$attr:foo(x="\{dog\}\"")$ is cool}$
+ "$A:{$it:foo(x=\"\\{dog\\}\\\"\")$ is cool}$"
+@@ -1872,7 +1872,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testEscapesOutsideExpressions() throws Exception {
+- StringTemplate b = new StringTemplate("It\\'s ok...\\$; $a:{\\'hi\\', $it$}$");
++ org.antlr.stringtemplate.StringTemplate b = new org.antlr.stringtemplate.StringTemplate("It\\'s ok...\\$; $a:{\\'hi\\', $it$}$");
+ b.setAttribute("a", "Ter");
+ String expecting ="It\\'s ok...$; \\'hi\\', Ter";
+ String result = b.toString();
+@@ -1880,7 +1880,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testElseClause() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$if(title)$"+newline +
+ "foo"+newline +
+ "$else$"+newline +
+@@ -1897,7 +1897,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testElseIfClause() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$if(x)$"+newline +
+ "foo"+newline +
+ "$elseif(y)$"+newline +
+@@ -1910,7 +1910,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testElseIfClauseAngleBrackets() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "<if(x)>"+newline +
+ "foo"+newline +
+ "<elseif(y)>"+newline +
+@@ -1924,7 +1924,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testElseIfClause2() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$if(x)$"+newline +
+ "foo"+newline +
+ "$elseif(y)$"+newline +
+@@ -1939,7 +1939,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testElseIfClauseAndElse() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$if(x)$"+newline +
+ "foo"+newline +
+ "$elseif(y)$"+newline +
+@@ -1955,7 +1955,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testNestedIF() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$if(title)$"+newline +
+ "foo"+newline +
+ "$else$"+newline +
+@@ -1983,8 +1983,8 @@ public class TestStringTemplate extends
+ public void testEmbeddedMultiLineIF() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate main = new StringTemplate(group, "$sub$");
+- StringTemplate sub = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate main = new org.antlr.stringtemplate.StringTemplate(group, "$sub$");
++ org.antlr.stringtemplate.StringTemplate sub = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin" + newline +
+ "$if(foo)$" + newline +
+ "$foo$" + newline +
+@@ -1999,7 +1999,7 @@ public class TestStringTemplate extends
+ "stuff";
+ assertEquals(expecting, main.toString());
+
+- main = new StringTemplate(group, "$sub$");
++ main = new org.antlr.stringtemplate.StringTemplate(group, "$sub$");
+ sub = sub.getInstanceOf();
+ main.setAttribute("sub", sub);
+ expecting =
+@@ -2021,7 +2021,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate t = group.getInstanceOf("list");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("list");
+ t.setAttribute("names", "Terence");
+ t.setAttribute("names", "Jim");
+ t.setAttribute("names", "Sriram");
+@@ -2045,7 +2045,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate t = group.getInstanceOf("list");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("list");
+ t.setAttribute("names", "Terence\nis\na\nmaniac");
+ t.setAttribute("names", "Jim");
+ t.setAttribute("names", "Sriram\nis\ncool");
+@@ -2074,7 +2074,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate t = group.getInstanceOf("list");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("list");
+ t.setAttribute("names", "Terence\n\nis a maniac");
+ String expecting =
+ " Terence"+newline+
+@@ -2098,7 +2098,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate t = group.getInstanceOf("list");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("list");
+ t.setAttribute("names", "Terence");
+ t.setAttribute("names", "Jim");
+ t.setAttribute("names", "Sriram");
+@@ -2133,17 +2133,17 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate t = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("method");
+ t.setAttribute("name", "foo");
+- StringTemplate s1 = group.getInstanceOf("assign");
++ org.antlr.stringtemplate.StringTemplate s1 = group.getInstanceOf("assign");
+ s1.setAttribute("lhs", "x");
+ s1.setAttribute("expr", "0");
+- StringTemplate s2 = group.getInstanceOf("ifstat");
++ org.antlr.stringtemplate.StringTemplate s2 = group.getInstanceOf("ifstat");
+ s2.setAttribute("expr", "x>0");
+- StringTemplate s2a = group.getInstanceOf("assign");
++ org.antlr.stringtemplate.StringTemplate s2a = group.getInstanceOf("assign");
+ s2a.setAttribute("lhs", "y");
+ s2a.setAttribute("expr", "x+y");
+- StringTemplate s2b = group.getInstanceOf("assign");
++ org.antlr.stringtemplate.StringTemplate s2b = group.getInstanceOf("assign");
+ s2b.setAttribute("lhs", "z");
+ s2b.setAttribute("expr", "4");
+ s2.setAttribute("stats", s2a);
+@@ -2191,15 +2191,15 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+ group.defineTemplate("bold", "<b>$x$</b>");
+- StringTemplate name = new StringTemplate(group, "$name:bold(x=name)$");
++ org.antlr.stringtemplate.StringTemplate name = new org.antlr.stringtemplate.StringTemplate(group, "$name:bold(x=name)$");
+ name.setAttribute("name", "Terence");
+ name.write(w);
+ assertEquals("<b>Terence</b>", buf.toString());
+ }
+
+ public void testApplyAnonymousTemplateToMapAndSet() throws Exception {
+- StringTemplate st =
+- new StringTemplate("$items:{<li>$it$</li>}$");
++ org.antlr.stringtemplate.StringTemplate st =
++ new org.antlr.stringtemplate.StringTemplate("$items:{<li>$it$</li>}$");
+ Map m = new LinkedHashMap();
+ m.put("a", "1");
+ m.put("b", "2");
+@@ -2219,8 +2219,8 @@ public class TestStringTemplate extends
+ }
+
+ public void testDumpMapAndSet() throws Exception {
+- StringTemplate st =
+- new StringTemplate("$items; separator=\",\"$");
++ org.antlr.stringtemplate.StringTemplate st =
++ new org.antlr.stringtemplate.StringTemplate("$items; separator=\",\"$");
+ Map m = new LinkedHashMap();
+ m.put("a", "1");
+ m.put("b", "2");
+@@ -2247,13 +2247,13 @@ public class TestStringTemplate extends
+ }
+
+ public void testApplyAnonymousTemplateToArrayAndMapProperty() throws Exception {
+- StringTemplate st =
+- new StringTemplate("$x.values:{<li>$it$</li>}$");
++ org.antlr.stringtemplate.StringTemplate st =
++ new org.antlr.stringtemplate.StringTemplate("$x.values:{<li>$it$</li>}$");
+ st.setAttribute("x", new Connector3());
+ String expecting = "<li>1</li><li>2</li><li>3</li>";
+ assertEquals(expecting, st.toString());
+
+- st = new StringTemplate("$x.stuff:{<li>$it$</li>}$");
++ st = new org.antlr.stringtemplate.StringTemplate("$x.stuff:{<li>$it$</li>}$");
+ st.setAttribute("x", new Connector3());
+ expecting = "<li>1</li><li>2</li>";
+ assertEquals(expecting, st.toString());
+@@ -2269,7 +2269,7 @@ public class TestStringTemplate extends
+ group.defineTemplate("page", "$font()$:text");
+ group.defineTemplate("font", "Helvetica");
+ subGroup.defineTemplate("font", "$super.font()$ and Times");
+- StringTemplate st = subGroup.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("page");
+ String expecting =
+ "Helvetica and Times:text";
+ assertEquals(expecting, st.toString());
+@@ -2284,7 +2284,7 @@ public class TestStringTemplate extends
+ group.defineTemplate("bold", "<b>$it$</b>");
+ subGroup.defineTemplate("bold", "<strong>$it$</strong>");
+ subGroup.defineTemplate("page", "$name:super.bold()$");
+- StringTemplate st = subGroup.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("page");
+ st.setAttribute("name", "Ter");
+ String expecting =
+ "<b>Ter</b>";
+@@ -2308,7 +2308,7 @@ public class TestStringTemplate extends
+ // of page in group not subGroup, however, I will get
+ // an error as superGroup is null for group "group".
+ group.defineTemplate("page", "$name:super.bold()$");
+- StringTemplate st = subGroup.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("page");
+ st.setAttribute("name", "Ter");
+ String error = null;
+ try {
+@@ -2334,7 +2334,7 @@ public class TestStringTemplate extends
+ group.defineTemplate("bold", "<b>$it$</b>");
+ group.defineTemplate("page", "$name:bold()$");
+ subGroup.defineTemplate("bold", "<strong>$it$</strong>");
+- StringTemplate st = subGroup.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate st = subGroup.getInstanceOf("page");
+ st.setAttribute("name", "Ter");
+ String expecting =
+ "<strong>Ter</strong>";
+@@ -2353,10 +2353,10 @@ public class TestStringTemplate extends
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class,
+ errors);
+- StringTemplate outputST = group.getInstanceOf("output");
+- StringTemplate bodyST1 = group.getInstanceOf("mybody");
+- StringTemplate bodyST2 = group.getInstanceOf("mybody");
+- StringTemplate bodyST3 = group.getInstanceOf("mybody");
++ org.antlr.stringtemplate.StringTemplate outputST = group.getInstanceOf("output");
++ org.antlr.stringtemplate.StringTemplate bodyST1 = group.getInstanceOf("mybody");
++ org.antlr.stringtemplate.StringTemplate bodyST2 = group.getInstanceOf("mybody");
++ org.antlr.stringtemplate.StringTemplate bodyST3 = group.getInstanceOf("mybody");
+ outputST.setAttribute("items", bodyST1);
+ outputST.setAttribute("items", bodyST2);
+ outputST.setAttribute("items", bodyST3);
+@@ -2373,7 +2373,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("block");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("block");
+ b.setAttribute("stats", group.getInstanceOf("ifstat"));
+ b.setAttribute("stats", group.getInstanceOf("ifstat"));
+ String expecting = "IF true then IF true then ";
+@@ -2391,12 +2391,12 @@ public class TestStringTemplate extends
+ "block(stats) ::= \"<stats>\"" +
+ "ifstat(stats) ::= \"IF true then <stats>\""+newline
+ ;
+- StringTemplate.setLintMode(true);
+- StringTemplate.resetTemplateCounter();
++ org.antlr.stringtemplate.StringTemplate.setLintMode(true);
++ org.antlr.stringtemplate.StringTemplate.resetTemplateCounter();
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("block");
+- StringTemplate ifstat = group.getInstanceOf("ifstat");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("block");
++ org.antlr.stringtemplate.StringTemplate ifstat = group.getInstanceOf("ifstat");
+ b.setAttribute("stats", ifstat); // block has if stat
+ ifstat.setAttribute("stats", b); // but make "if" contain block
+ String expectingError =
+@@ -2418,7 +2418,7 @@ public class TestStringTemplate extends
+ }
+ //System.err.println("errors="+errors+"'");
+ //System.err.println("expecting="+expectingError+"'");
+- StringTemplate.setLintMode(false);
++ org.antlr.stringtemplate.StringTemplate.setLintMode(false);
+ assertEquals(expectingError, errors);
+ }
+
+@@ -2433,7 +2433,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("block");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("block");
+ b.setAttribute("stats", group.getInstanceOf("block"));
+ String expecting ="{{}}";
+ String result = b.toString();
+@@ -2450,7 +2450,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("other"); // alias for page
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("other"); // alias for page
+ b.setAttribute("name", "Ter");
+ String expecting ="name is Ter";
+ String result = b.toString();
+@@ -2473,9 +2473,9 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("Cfile");
+- StringTemplate f1 = group.getInstanceOf("func");
+- StringTemplate f2 = group.getInstanceOf("func");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("Cfile");
++ org.antlr.stringtemplate.StringTemplate f1 = group.getInstanceOf("func");
++ org.antlr.stringtemplate.StringTemplate f2 = group.getInstanceOf("func");
+ f1.setAttribute("name", "f");
+ f1.setAttribute("args", "");
+ f1.setAttribute("body", "i=1;");
+@@ -2512,7 +2512,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate f = group.getInstanceOf("file");
++ org.antlr.stringtemplate.StringTemplate f = group.getInstanceOf("file");
+ f.setAttribute("variables.{decl,format}", new Decl("i","int"), "intdecl");
+ f.setAttribute("variables.{decl,format}", new Decl("a","int-array"), "intarray");
+ //System.out.println("f='"+f+"'");
+@@ -2533,7 +2533,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate f = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate f = group.getInstanceOf("test");
+ f.setAttribute("name", "first");
+ String expecting = "the first";
+ assertEquals(expecting, f.toString());
+@@ -2551,7 +2551,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate f = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate f = group.getInstanceOf("test");
+ f.setAttribute("name", "first");
+ String expecting = "the first: foo";
+ assertEquals(f.toString(), expecting);
+@@ -2568,7 +2568,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate f = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate f = group.getInstanceOf("test");
+ f.setAttribute("names", "me");
+ f.setAttribute("names", "you");
+ String expecting = "";
+@@ -2587,14 +2587,14 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate f = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate f = group.getInstanceOf("test");
+ //f.setAttribute("name", "first");
+ String expecting = "";
+ assertEquals(expecting, f.toString());
+ }
+
+ public void testHashMapPropertyFetch() throws Exception {
+- StringTemplate a = new StringTemplate("$stuff.prop$");
++ org.antlr.stringtemplate.StringTemplate a = new org.antlr.stringtemplate.StringTemplate("$stuff.prop$");
+ HashMap map = new HashMap();
+ a.setAttribute("stuff", map);
+ map.put("prop", "Terence");
+@@ -2605,11 +2605,11 @@ public class TestStringTemplate extends
+ }
+
+ public void testHashMapPropertyFetchEmbeddedStringTemplate() throws Exception {
+- StringTemplate a = new StringTemplate("$stuff.prop$");
++ org.antlr.stringtemplate.StringTemplate a = new org.antlr.stringtemplate.StringTemplate("$stuff.prop$");
+ HashMap map = new HashMap();
+ a.setAttribute("stuff", map);
+ a.setAttribute("title", "ST rocks");
+- map.put("prop", new StringTemplate("embedded refers to $title$"));
++ map.put("prop", new org.antlr.stringtemplate.StringTemplate("embedded refers to $title$"));
+ String results = a.toString();
+ //System.out.println(results);
+ String expecting = "embedded refers to ST rocks";
+@@ -2617,14 +2617,14 @@ public class TestStringTemplate extends
+ }
+
+ public void testEmbeddedComments() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $! ignore !$bar" +newline
+ );
+ String expecting ="Foo bar"+newline;
+ String result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $! ignore" +newline+
+ " and a line break!$" +newline+
+ "bar" +newline
+@@ -2633,7 +2633,7 @@ public class TestStringTemplate extends
+ result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "$! start of line $ and $! ick" +newline+
+ "!$boo"+newline
+ );
+@@ -2641,7 +2641,7 @@ public class TestStringTemplate extends
+ result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "$! start of line !$" +newline+
+ "$! another to ignore !$" +newline+
+ "$! ick" +newline+
+@@ -2651,7 +2651,7 @@ public class TestStringTemplate extends
+ result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "$! back !$$! to back !$" +newline+ // can't detect; leaves \n
+ "$! ick" +newline+
+ "!$boo"+newline
+@@ -2662,7 +2662,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testEmbeddedCommentsAngleBracketed() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <! ignore !>bar" +newline,
+ AngleBracketTemplateLexer.class
+ );
+@@ -2670,7 +2670,7 @@ public class TestStringTemplate extends
+ String result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <! ignore" +newline+
+ " and a line break!>" +newline+
+ "bar" +newline,
+@@ -2680,7 +2680,7 @@ public class TestStringTemplate extends
+ result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "<! start of line $ and <! ick" +newline+
+ "!>boo"+newline,
+ AngleBracketTemplateLexer.class
+@@ -2689,7 +2689,7 @@ public class TestStringTemplate extends
+ result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "<! start of line !>" +
+ "<! another to ignore !>" +
+ "<! ick" +newline+
+@@ -2701,7 +2701,7 @@ public class TestStringTemplate extends
+ //System.out.println(result);
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "<! back !><! to back !>" +newline+ // can't detect; leaves \n
+ "<! ick" +newline+
+ "!>boo"+newline,
+@@ -2713,7 +2713,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLineBreak() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <\\\\>"+newline+
+ " \t bar" +newline,
+ AngleBracketTemplateLexer.class
+@@ -2726,7 +2726,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLineBreak2() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <\\\\> "+newline+
+ " \t bar" +newline,
+ AngleBracketTemplateLexer.class
+@@ -2739,7 +2739,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLineBreakNoWhiteSpace() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <\\\\>"+newline+
+ "bar" +newline,
+ AngleBracketTemplateLexer.class
+@@ -2752,7 +2752,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLineBreakDollar() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $\\\\$"+newline+
+ " \t bar" +newline,
+ DefaultTemplateLexer.class
+@@ -2765,7 +2765,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLineBreakDollar2() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $\\\\$ "+newline+
+ " \t bar" +newline,
+ DefaultTemplateLexer.class
+@@ -2778,7 +2778,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLineBreakNoWhiteSpaceDollar() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $\\\\$"+newline+
+ "bar" +newline,
+ DefaultTemplateLexer.class
+@@ -2791,7 +2791,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCharLiterals() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <\\r\\n><\\n><\\t> bar" +newline,
+ AngleBracketTemplateLexer.class
+ );
+@@ -2801,7 +2801,7 @@ public class TestStringTemplate extends
+ String expecting ="Foo \n\n\t bar"+newline; // expect \n in output
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $\\n$$\\t$ bar" +newline);
+ sw = new StringWriter();
+ st.write(new AutoIndentWriter(sw,"\n")); // force \n as newline
+@@ -2809,7 +2809,7 @@ public class TestStringTemplate extends
+ result = sw.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo$\\ $bar$\\n$");
+ sw = new StringWriter();
+ st.write(new AutoIndentWriter(sw,"\n")); // force \n as newline
+@@ -2819,7 +2819,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testNewlineNormalizationInTemplateString() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo\r\n"+
+ "Bar\n",
+ AngleBracketTemplateLexer.class
+@@ -2832,7 +2832,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testNewlineNormalizationInTemplateStringPC() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo\r\n"+
+ "Bar\n",
+ AngleBracketTemplateLexer.class
+@@ -2845,7 +2845,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testNewlineNormalizationInAttribute() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo\r\n"+
+ "<name>\n",
+ AngleBracketTemplateLexer.class
+@@ -2859,7 +2859,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testUnicodeLiterals() throws Exception {
+- StringTemplate st = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo <\\uFEA5\\n\\u00C2> bar" +newline,
+ AngleBracketTemplateLexer.class
+ );
+@@ -2867,13 +2867,13 @@ public class TestStringTemplate extends
+ String result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo $\\uFEA5\\n\\u00C2$ bar" +newline);
+ expecting ="Foo \ufea5"+newline+"\u00C2 bar"+newline;
+ result = st.toString();
+ assertEquals(expecting, result);
+
+- st = new StringTemplate(
++ st = new org.antlr.stringtemplate.StringTemplate(
+ "Foo$\\ $bar$\\n$");
+ expecting ="Foo bar"+newline;
+ result = st.toString();
+@@ -2886,7 +2886,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group, "$names; separator=\",\"$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$names; separator=\",\"$");
+ t.setAttribute("names", "Terence");
+ t.setAttribute("names", "");
+ t.setAttribute("names", "");
+@@ -2904,7 +2904,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$endif$}; separator=\",\"$");
+ t.setAttribute("users.{name,ok}", "Terence", new Boolean(true));
+ t.setAttribute("users.{name,ok}", "Tom", new Boolean(false));
+@@ -2921,7 +2921,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$endif$}; separator=\",\"$");
+ t.setAttribute("users.{name,ok}", "Terence", new Boolean(true));
+ t.setAttribute("users.{name,ok}", "Tom", new Boolean(false));
+@@ -2938,7 +2938,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$endif$$if(it.ok)$$it.name$$endif$}; separator=\",\"$");
+ t.setAttribute("users.{name,ok}", "Terence", new Boolean(false));
+ t.setAttribute("users.{name,ok}", "Tom", new Boolean(true));
+@@ -2955,7 +2955,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$else$$endif$}; separator=\",\"$");
+ t.setAttribute("users.{name,ok}", "Terence", new Boolean(true));
+ t.setAttribute("users.{name,ok}", "Tom", new Boolean(false));
+@@ -2969,8 +2969,8 @@ public class TestStringTemplate extends
+
+ public void testWhiteSpaceAtEndOfTemplate() throws Exception {
+ StringTemplateGroup group = new StringTemplateGroup("group");
+- StringTemplate pageST = group.getInstanceOf("org/antlr/stringtemplate/test/page");
+- StringTemplate listST = group.getInstanceOf("org/antlr/stringtemplate/test/users_list");
++ org.antlr.stringtemplate.StringTemplate pageST = group.getInstanceOf("org/antlr/stringtemplate/test/page");
++ org.antlr.stringtemplate.StringTemplate listST = group.getInstanceOf("org/antlr/stringtemplate/test/users_list");
+ // users.list references row.st which has a single blank line at the end.
+ // I.e., there are 2 \n in a row at the end
+ // ST should eat all whitespace at end
+@@ -2994,7 +2994,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin\n" +
+ "$duh.users:{name: $it$}; separator=\", \"$\n" +
+ "end\n");
+@@ -3009,7 +3009,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin\n" +
+ "$users:{name: $it$}; separator=\", \"$\n" +
+ "end\n");
+@@ -3024,7 +3024,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin\n" +
+ "$users:{name: $it$}; separator=\", \"$\n" +
+ "end\n");
+@@ -3039,7 +3039,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin\n" +
+ "$users; separator=\", \"$\n" +
+ "end\n");
+@@ -3055,7 +3055,7 @@ public class TestStringTemplate extends
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+ group.defineTemplate("bold", "<b>$it$</b>");
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users$\n" +
+ "end\n");
+ String expecting="end\n";
+@@ -3068,7 +3068,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin\n"+
+ "$name$\n"+
+ "$users:{name: $it$}$\n"+
+@@ -3084,7 +3084,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "begin\n"+
+ " $name$\n"+
+ " $users:{name: $it$}$\n"+
+@@ -3096,7 +3096,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testSimpleAutoIndent() throws Exception {
+- StringTemplate a = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate a = new org.antlr.stringtemplate.StringTemplate(
+ "$title$: {\n" +
+ " $name; separator=\"\n\"$\n" +
+ "}");
+@@ -3118,7 +3118,7 @@ public class TestStringTemplate extends
+ new StringTemplateGroup("test");
+ StringTemplateErrorListener errors = new ErrorBuffer();
+ group.setErrorListener(errors);
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "variable property $propName$=$v.(propName)$");
+ t.setAttribute("v", new Decl("i","int"));
+ t.setAttribute("propName", "type");
+@@ -3131,7 +3131,7 @@ public class TestStringTemplate extends
+ public void testNonNullButEmptyIteratorTestsFalse() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate t = new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$if(users)$\n" +
+ "Users: $users:{$it.name$ }$\n" +
+ "$endif$");
+@@ -3151,7 +3151,7 @@ public class TestStringTemplate extends
+ // somehow, it must be set.
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ String expecting = "x=y; // ";
+ String result = b.toString();
+@@ -3172,7 +3172,7 @@ public class TestStringTemplate extends
+ // is evaluated in the context of stat's arg list.
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ String expecting = "x=y; // foo";
+ String result = b.toString();
+@@ -3188,7 +3188,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ String expecting = "x=y; // foo";
+ String result = b.toString();
+@@ -3206,7 +3206,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ String expecting = "x=34; // foo";
+ String result = b.toString();
+@@ -3224,7 +3224,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ String expecting = "x=99; // foo";
+ String result = b.toString();
+@@ -3239,7 +3239,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("stat");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("stat");
+ b.setAttribute("name", "foo");
+ String expecting = "x=99; // foo";
+ String result = b.toString();
+@@ -3264,7 +3264,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate m = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate m = group.getInstanceOf("method");
+ m.setAttribute("fields", new Field());
+ String expecting = "x=parrt; // parrt";
+ String result = m.toString();
+@@ -3299,7 +3299,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate m = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate m = group.getInstanceOf("method");
+ m.setAttribute("fields", new Field());
+ String expecting = "x=parrt; // parrt";
+ String result = m.toString();
+@@ -3342,7 +3342,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ b.setAttribute("size", "2");
+ String expecting = "x=foo; // foo";
+@@ -3361,7 +3361,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ b.setAttribute("size", "2");
+ String expecting = "x= [foo] ; // foo";
+@@ -3380,7 +3380,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ String expecting = "x=34; // foo";
+ String result = b.toString();
+@@ -3399,7 +3399,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("A");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("A");
+ b.setAttribute("x", new Counter());
+ String expecting = "0 1 2 0";
+ String result = b.toString();
+@@ -3417,7 +3417,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ b.setAttribute("size", "34");
+ String expecting = "x=34;";
+@@ -3436,9 +3436,9 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate f = group.getInstanceOf("file");
++ org.antlr.stringtemplate.StringTemplate f = group.getInstanceOf("file");
+ f.setAttribute("size", "34");
+- StringTemplate m = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate m = group.getInstanceOf("method");
+ m.setAttribute("name", "foo");
+ f.setAttribute("m", m);
+ String expecting = "x=34.0;";
+@@ -3457,7 +3457,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate b = group.getInstanceOf("method");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("method");
+ b.setAttribute("name", "foo");
+ b.setAttribute("size", "34");
+ String expecting = "x=34;";
+@@ -3472,7 +3472,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate b = group.getInstanceOf("b");
++ org.antlr.stringtemplate.StringTemplate b = group.getInstanceOf("b");
+ String expecting = ".foo.";
+ String result = b.toString();
+ assertEquals(expecting, result);
+@@ -3522,7 +3522,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRendererForST() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "date: <created>",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("created",
+@@ -3534,7 +3534,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRendererWithFormat() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "date: <created; format=\"yyyy.MM.dd\">",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("created",
+@@ -3546,7 +3546,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRendererWithFormatAndList() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "The names: <names; format=\"upper\">",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("names", "ter");
+@@ -3559,7 +3559,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRendererWithFormatAndSeparator() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "The names: <names; separator=\" and \", format=\"upper\">",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("names", "ter");
+@@ -3572,7 +3572,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRendererWithFormatAndSeparatorAndNull() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "The names: <names; separator=\" and \", null=\"n/a\", format=\"upper\">",
+ AngleBracketTemplateLexer.class);
+ List names = new ArrayList();
+@@ -3589,10 +3589,10 @@ public class TestStringTemplate extends
+ public void testEmbeddedRendererSeesEnclosing() throws Exception {
+ // st is embedded in outer; set renderer on outer, st should
+ // still see it.
+- StringTemplate outer =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate outer =new org.antlr.stringtemplate.StringTemplate(
+ "X: <x>",
+ AngleBracketTemplateLexer.class);
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "date: <created>",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("created",
+@@ -3611,7 +3611,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("dateThing");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("dateThing");
+ st.setAttribute("created",
+ new GregorianCalendar(2005, 07-1, 05));
+ group.registerRenderer(GregorianCalendar.class, new DateRenderer());
+@@ -3627,7 +3627,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("dateThing");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("dateThing");
+ st.setAttribute("created",
+ new GregorianCalendar(2005, 07-1, 05));
+ group.registerRenderer(GregorianCalendar.class, new DateRenderer());
+@@ -3645,7 +3645,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "int");
+ st.setAttribute("name", "x");
+ String expecting = "int x = 0;";
+@@ -3661,7 +3661,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("w", "L");
+ st.setAttribute("type", "int");
+ st.setAttribute("name", "x");
+@@ -3681,9 +3681,9 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("w", "L");
+- st.setAttribute("type", new StringTemplate("int"));
++ st.setAttribute("type", new org.antlr.stringtemplate.StringTemplate("int"));
+ st.setAttribute("name", "x");
+ String expecting = "int x = 0L;";
+ String result = st.toString();
+@@ -3698,7 +3698,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("w", "L");
+ st.setAttribute("type", "double"); // double not in typeInit map
+ st.setAttribute("name", "x");
+@@ -3715,7 +3715,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "int");
+ st.setAttribute("name", "x");
+ String expecting = "int x = ;";
+@@ -3731,7 +3731,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "float");
+ st.setAttribute("name", "x");
+ String expecting = "float x = ;";
+@@ -3747,7 +3747,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "UserRecord");
+ st.setAttribute("name", "x");
+ String expecting = "UserRecord x = null;";
+@@ -3763,7 +3763,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "UserRecord");
+ st.setAttribute("name", "x");
+ String expecting = "UserRecord x = ;";
+@@ -3779,7 +3779,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "UserRecord");
+ st.setAttribute("name", "x");
+ String expecting = "UserRecord x = UserRecord;";
+@@ -3800,7 +3800,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("var");
+ st.setAttribute("type", "default");
+ st.setAttribute("name", "x");
+ String expecting = "default x = foo;";
+@@ -3821,7 +3821,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("t1");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("t1");
+ String expecting = "default";
+ String result = st.toString();
+ assertEquals(expecting, result);
+@@ -3836,7 +3836,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate st = group.getInstanceOf("intermediate");
++ org.antlr.stringtemplate.StringTemplate st = group.getInstanceOf("intermediate");
+ st.setAttribute("type", "int");
+ st.setAttribute("name", "x");
+ String expecting = "int x = 0;";
+@@ -3853,8 +3853,8 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate interm = group.getInstanceOf("intermediate");
+- StringTemplate var = group.getInstanceOf("var");
++ org.antlr.stringtemplate.StringTemplate interm = group.getInstanceOf("intermediate");
++ org.antlr.stringtemplate.StringTemplate var = group.getInstanceOf("var");
+ var.setAttribute("type", "int");
+ var.setAttribute("name", "x");
+ interm.setAttribute("stuff", var);
+@@ -3870,7 +3870,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate a = group.getInstanceOf("foo");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("foo");
+ String expecting = "";
+ String result = a.toString();
+ assertEquals(expecting, result);
+@@ -3884,7 +3884,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate a = group.getInstanceOf("top");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("top");
+ String expecting = "a=, b=";
+ String result = a.toString();
+ assertEquals(expecting, result);
+@@ -3899,7 +3899,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate a = group.getInstanceOf("top");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("top");
+ String expecting = "a=, b=";
+ String result = a.toString();
+ assertEquals(expecting, result);
+@@ -3911,7 +3911,7 @@ public class TestStringTemplate extends
+ * Please correct to escape the correct charcter.
+ */
+ public void test8BitEuroChars() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "Danish: \u0143 char"
+ );
+ e = e.getInstanceOf();
+@@ -3920,7 +3920,7 @@ public class TestStringTemplate extends
+ }
+
+ public void test16BitUnicodeChar() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "DINGBAT CIRCLED SANS-SERIF DIGIT ONE: \u2780"
+ );
+ e = e.getInstanceOf();
+@@ -3929,7 +3929,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testFirstOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$first(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -3941,7 +3941,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testTruncOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$trunc(names); separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -3953,7 +3953,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRestOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$rest(names); separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -3965,7 +3965,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRestOpEmptyList() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$rest(names); separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -3982,7 +3982,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate e = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("a");
+ List names = new ArrayList();
+ names.add("Ter");
+ names.add("Tom");
+@@ -3992,7 +3992,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLastOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$last(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -4005,7 +4005,7 @@ public class TestStringTemplate extends
+
+ public void testCombinedOp() throws Exception {
+ // replace first of yours with first of mine
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[first(mine),rest(yours)]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4020,7 +4020,7 @@ public class TestStringTemplate extends
+
+ public void testCatListAndSingleAttribute() throws Exception {
+ // replace first of yours with first of mine
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[mine,yours]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4040,7 +4040,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate e = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("a");
+ List mine = new ArrayList();
+ mine.add("Ter");
+ mine.add("Tom");
+@@ -4057,7 +4057,7 @@ public class TestStringTemplate extends
+ // two operands (from left to right) determine which way it
+ // goes. In this case, x+mine is a list so everything from their
+ // to the right becomes list cat.
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[x,mine,y,yours,z]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4070,7 +4070,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testNestedOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$first(rest(names))$" // gets 2nd element
+ );
+ e = e.getInstanceOf();
+@@ -4082,7 +4082,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testFirstWithOneAttributeOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$first(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -4092,7 +4092,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLastWithOneAttributeOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$last(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -4102,7 +4102,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLastWithLengthOneListAttributeOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$last(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -4112,7 +4112,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRestWithOneAttributeOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$rest(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -4122,7 +4122,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRestWithLengthOneListAttributeOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$rest(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -4132,7 +4132,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testRepeatedRestOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$rest(names)$, $rest(names)$" // gets 2nd element
+ );
+ e = e.getInstanceOf();
+@@ -4156,7 +4156,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate e = group.getInstanceOf("root");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("root");
+ List names = new ArrayList();
+ names.add("Ter");
+ names.add("Tom");
+@@ -4191,7 +4191,7 @@ public class TestStringTemplate extends
+ */
+
+ public void testIncomingLists() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$rest(names)$, $rest(names)$" // gets 2nd element
+ );
+ e = e.getInstanceOf();
+@@ -4202,7 +4202,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testIncomingListsAreNotModified() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names; separator=\", \"$" // gets 2nd element
+ );
+ e = e.getInstanceOf();
+@@ -4218,7 +4218,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testIncomingListsAreNotModified2() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names; separator=\", \"$" // gets 2nd element
+ );
+ e = e.getInstanceOf();
+@@ -4234,7 +4234,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testIncomingArraysAreOk() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names; separator=\", \"$" // gets 2nd element
+ );
+ e = e.getInstanceOf();
+@@ -4251,7 +4251,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate e = group.getInstanceOf("f");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("f");
+ e.setAttribute("x", "Ter");
+ e.setAttribute("x", "Tom");
+ String expecting = "TerTom TerTom";
+@@ -4266,7 +4266,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("names", "Ter");
+ e.setAttribute("names", "Tom");
+ String expecting = "*Ter*, *Tom* ";
+@@ -4283,7 +4283,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ AngleBracketTemplateLexer.class);
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("names", "Ter");
+ e.setAttribute("names", "Tom");
+ String expecting = "*Ter*, *Tom* ";
+@@ -4292,7 +4292,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testAnonTemplateArgs() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names:{n| $n$}; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4303,7 +4303,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testAnonTemplateWithArgHasNoITArg() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names:{n| $n$:$it$}; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4321,7 +4321,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testAnonTemplateArgs2() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names:{n| .$n$.}:{ n | _$n$_}; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4332,7 +4332,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testFirstWithCatAttribute() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$first([names,phones])$"
+ );
+ e = e.getInstanceOf();
+@@ -4345,7 +4345,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testFirstWithListOfMaps() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$first(maps).Ter$"
+ );
+ e = e.getInstanceOf();
+@@ -4388,7 +4388,7 @@ public class TestStringTemplate extends
+ }
+ */
+ public void testJustCat() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names,phones]$"
+ );
+ e = e.getInstanceOf();
+@@ -4401,7 +4401,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCat2Attributes() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names,phones]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4414,7 +4414,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCat2AttributesWithApply() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names,phones]:{a|$a$.}$"
+ );
+ e = e.getInstanceOf();
+@@ -4427,7 +4427,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCat3Attributes() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names,phones,salaries]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4442,7 +4442,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCatWithTemplateApplicationAsElement() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names:{$it$!},phones]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4455,7 +4455,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCatWithIFAsElement() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[{$if(names)$doh$endif$},phones]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4468,7 +4468,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCatWithNullTemplateApplicationAsElement() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names:{$it$!},\"foo\"]:{x}; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4479,7 +4479,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testCatWithNestedTemplateApplicationAsElement() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[names, [\"foo\",\"bar\"]:{$it$!},phones]; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4500,7 +4500,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ AngleBracketTemplateLexer.class);
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("names", "Ter");
+ e.setAttribute("names", "Tom");
+ e.setAttribute("phones", "1");
+@@ -4519,7 +4519,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ AngleBracketTemplateLexer.class);
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("name", "Ter");
+ String expecting = "*Ter*";
+ String result = e.toString();
+@@ -4538,7 +4538,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ AngleBracketTemplateLexer.class);
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("names", "Ter");
+ e.setAttribute("names", "Tom");
+ e.setAttribute("x", "ick");
+@@ -4557,7 +4557,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ AngleBracketTemplateLexer.class);
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("names", "Ter");
+ e.setAttribute("names", "Tom");
+ String expecting = "*Ter*_Tom_";
+@@ -4575,7 +4575,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ AngleBracketTemplateLexer.class, errors);
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("name", "Ter");
+ /*String result =*/ e.toString();
+ String expecting = "template bold must have exactly one formal arg in template context [test <invoke bold arg context>]";
+@@ -4591,7 +4591,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate e = group.getInstanceOf("test");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("test");
+ e.setAttribute("templateName", "italics");
+ e.setAttribute("arg", "Ter");
+ String expecting = "_Ter_";
+@@ -4600,7 +4600,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testParallelAttributeIteration() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{n,p,s | $n$@$p$: $s$\n}$"
+ );
+ e = e.getInstanceOf();
+@@ -4615,7 +4615,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testParallelAttributeIterationWithNullValue() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{n,p,s | $n$@$p$: $s$\n}$"
+ );
+ e = e.getInstanceOf();
+@@ -4633,7 +4633,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testParallelAttributeIterationHasI() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{n,p,s | $i0$. $n$@$p$: $s$\n}$"
+ );
+ e = e.getInstanceOf();
+@@ -4648,7 +4648,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testParallelAttributeIterationWithDifferentSizes() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{n,p,s | $n$@$p$: $s$}; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4663,7 +4663,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testParallelAttributeIterationWithSingletons() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{n,p,s | $n$@$p$: $s$}; separator=\", \"$"
+ );
+ e = e.getInstanceOf();
+@@ -4676,7 +4676,7 @@ public class TestStringTemplate extends
+
+ public void testParallelAttributeIterationWithMismatchArgListSizes() throws Exception {
+ StringTemplateErrorListener errors = new ErrorBuffer();
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{n,p | $n$@$p$}; separator=\", \"$"
+ );
+ e.setErrorListener(errors);
+@@ -4694,7 +4694,7 @@ public class TestStringTemplate extends
+
+ public void testParallelAttributeIterationWithMissingArgs() throws Exception {
+ StringTemplateErrorListener errors = new ErrorBuffer();
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$names,phones,salaries:{$n$@$p$}; separator=\", \"$"
+ );
+ e.setErrorListener(errors);
+@@ -4716,7 +4716,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates),
+ DefaultTemplateLexer.class);
+- StringTemplate p = group.getInstanceOf("page");
++ org.antlr.stringtemplate.StringTemplate p = group.getInstanceOf("page");
+ p.setAttribute("names", "Ter");
+ p.setAttribute("names", "Tom");
+ p.setAttribute("names", "Sriram");
+@@ -4728,7 +4728,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testAnonTemplateOnLeftOfApply() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "${foo}:{($it$)}$"
+ );
+ String expecting = "(foo)";
+@@ -4753,7 +4753,7 @@ public class TestStringTemplate extends
+ null,
+ group);
+
+- StringTemplate b = subgroup.getInstanceOf("body");
++ org.antlr.stringtemplate.StringTemplate b = subgroup.getInstanceOf("body");
+ String expecting ="bar";
+ String result = b.toString();
+ assertEquals(expecting, result);
+@@ -4764,8 +4764,8 @@ public class TestStringTemplate extends
+ }
+
+ public void testNonPublicPropertyAccess() throws Exception {
+- StringTemplate st =
+- new StringTemplate("$x.foo$:$x.bar$");
++ org.antlr.stringtemplate.StringTemplate st =
++ new org.antlr.stringtemplate.StringTemplate("$x.foo$:$x.bar$");
+ Object o = new Object() {
+ public int foo = 9;
+ public int getBar() { return 34; }
+@@ -4779,8 +4779,8 @@ public class TestStringTemplate extends
+ public void testIndexVar() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A:{$i$. $it$}; separator=\"\\n\"$"
+ );
+@@ -4795,8 +4795,8 @@ public class TestStringTemplate extends
+ public void testIndex0Var() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A:{$i0$. $it$}; separator=\"\\n\"$"
+ );
+@@ -4811,8 +4811,8 @@ public class TestStringTemplate extends
+ public void testIndexVarWithMultipleExprs() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A,B:{a,b|$i$. $a$@$b$}; separator=\"\\n\"$"
+ );
+@@ -4829,8 +4829,8 @@ public class TestStringTemplate extends
+ public void testIndex0VarWithMultipleExprs() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".");
+- StringTemplate t =
+- new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(
+ group,
+ "$A,B:{a,b|$i0$. $a$@$b$}; separator=\"\\n\"$"
+ );
+@@ -4849,7 +4849,7 @@ public class TestStringTemplate extends
+ // context. it can therefore see name.
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate main = group.defineTemplate("main", "$foo(t={Hi, $name$}, name=\"parrt\")$");
++ org.antlr.stringtemplate.StringTemplate main = group.defineTemplate("main", "$foo(t={Hi, $name$}, name=\"parrt\")$");
+ /*StringTemplate foo =*/ group.defineTemplate("foo", "$t$");
+ String expecting="Hi, parrt";
+ assertEquals(expecting, main.toString());
+@@ -4857,7 +4857,7 @@ public class TestStringTemplate extends
+
+ public void testNoDotsInAttributeNames() throws Exception {
+ StringTemplateGroup group = new StringTemplateGroup("dummy", ".");
+- StringTemplate t = new StringTemplate(group, "$user.Name$");
++ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group, "$user.Name$");
+ String error=null;
+ try {
+ t.setAttribute("user.Name", "Kunle");
+@@ -4890,7 +4890,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("array");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("array");
+ a.setAttribute("values",
+ new int[] {3,9,20,2,1,4,6,32,5,6,77,888,2,1,6,32,5,6,77,
+ 4,9,20,2,1,4,63,9,20,2,1,4,6,32,5,6,77,6,32,5,6,77,
+@@ -4910,7 +4910,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("array");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("array");
+ a.setAttribute("values",
+ new int[] {3,9,20,2,1,4,6,32,5,6,77,888,2,1,6,32,5,6,77,
+ 4,9,20,2,1,4,63,9,20,2,1,4,6,32,5,6,77,6,32,5,6,77,
+@@ -4936,7 +4936,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("array");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("array");
+ a.setAttribute("values",
+ new int[] {3,9,20,2,1,4,6,32,5,6,77,888,2,1,6,32,5,6,77,
+ 4,9,20,2,1,4,63,9,20,2,1,4,6,32,5,6,77,6,32,5,6,77,
+@@ -4957,11 +4957,11 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- final StringTemplate x = new StringTemplate(group, "<\\n>{ <stuff; anchor, separator=\",\\n\"> }<\\n>");
++ final org.antlr.stringtemplate.StringTemplate x = new org.antlr.stringtemplate.StringTemplate(group, "<\\n>{ <stuff; anchor, separator=\",\\n\"> }<\\n>");
+ x.setAttribute("stuff", "1");
+ x.setAttribute("stuff", "2");
+ x.setAttribute("stuff", "3");
+- StringTemplate a = group.getInstanceOf("array");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("array");
+ a.setAttribute("values", new ArrayList() {{
+ add("a"); add(x); add("b");
+ }});
+@@ -4981,7 +4981,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("func");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("func");
+ a.setAttribute("args",
+ new String[] {"a","b","c","d","e","f"});
+ String expecting =
+@@ -4997,7 +4997,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("array");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("array");
+ a.setAttribute("values",
+ new int[] {3,9,20,2,1,4,6,32,5,6,77,888,2,1,6,32,5,6,77,
+ 4,9,20,2,1,4,63,9,20,2,1,4,6});
+@@ -5017,7 +5017,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("chars", new String[] {"a","b","c","d","e"});
+ // lineWidth==3 implies that we can have 3 characters at most
+ String expecting =
+@@ -5033,7 +5033,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("chars", new String[] {"a","b","\n","d","e"});
+ // don't do \n if it's last element anyway
+ String expecting =
+@@ -5049,7 +5049,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("chars", new String[] {"a","b","c","\n","d","e"});
+ // Once we wrap, we must dump chars as we see them. A newline right
+ // after a wrap is just an "unfortunate" event. People will expect
+@@ -5068,7 +5068,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("data", new int[] {1,2,3,4,5,6,7,8,9});
+ String expecting =
+ "![1][2][3]\n" + // width=9 is the 3 char; don't break til after ]
+@@ -5084,7 +5084,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("data", new int[] {1,2,3,4,5,6,7,8,9});
+ String expecting =
+ "![1][2][3]\n" +
+@@ -5101,8 +5101,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate t = group.getInstanceOf("top");
+- StringTemplate s = group.getInstanceOf("str");
++ org.antlr.stringtemplate.StringTemplate t = group.getInstanceOf("top");
++ org.antlr.stringtemplate.StringTemplate s = group.getInstanceOf("str");
+ s.setAttribute("data", new int[] {1,2,3,4,5,6,7,8,9});
+ t.setAttribute("s", s);
+ String expecting =
+@@ -5121,7 +5121,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("chars", new String[] {"a","b","c","d","e"});
+ //
+ String expecting =
+@@ -5140,7 +5140,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("duh");
+ a.setAttribute("chars", new String[] {"a","b","c","d","e"});
+ //
+ String expecting =
+@@ -5159,8 +5159,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate top = group.getInstanceOf("top");
+- StringTemplate duh = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate top = group.getInstanceOf("top");
++ org.antlr.stringtemplate.StringTemplate duh = group.getInstanceOf("duh");
+ duh.setAttribute("chars", new String[] {"a","b","c","d","e"});
+ top.setAttribute("d", duh);
+ String expecting =
+@@ -5179,8 +5179,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate top = group.getInstanceOf("top");
+- StringTemplate duh = group.getInstanceOf("duh");
++ org.antlr.stringtemplate.StringTemplate top = group.getInstanceOf("top");
++ org.antlr.stringtemplate.StringTemplate duh = group.getInstanceOf("duh");
+ duh.setAttribute("chars", new String[] {"a","b","c","d","e"});
+ top.setAttribute("d", duh);
+ //
+@@ -5198,7 +5198,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate a = group.getInstanceOf("m");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("m");
+ a.setAttribute("args",
+ new String[] {"a", "b", "c"});
+ a.setAttribute("body", "i=3;");
+@@ -5216,7 +5216,7 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate m = group.getInstanceOf("m");
++ org.antlr.stringtemplate.StringTemplate m = group.getInstanceOf("m");
+ m.setAttribute("body", "i=3;");
+ // make it wrap because of ") throws Ick { " literal
+ String expecting =
+@@ -5233,8 +5233,8 @@ public class TestStringTemplate extends
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+
+- StringTemplate top = group.getInstanceOf("top");
+- StringTemplate a = group.getInstanceOf("array");
++ org.antlr.stringtemplate.StringTemplate top = group.getInstanceOf("top");
++ org.antlr.stringtemplate.StringTemplate a = group.getInstanceOf("array");
+ a.setAttribute("values",
+ new int[] {3,9,20,2,1,4,6,32,5,6,77,888,2,1,6,32,5,6,77,
+ 4,9,20,2,1,4,63,9,20,2,1,4,6,32,5,6,77,6,32,5,6,77,
+@@ -5261,7 +5261,7 @@ public class TestStringTemplate extends
+ public void testBackslash() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate t = group.defineTemplate("t", "\\");
++ org.antlr.stringtemplate.StringTemplate t = group.defineTemplate("t", "\\");
+ String expecting="\\";
+ assertEquals(expecting, t.toString());
+ }
+@@ -5269,7 +5269,7 @@ public class TestStringTemplate extends
+ public void testBackslash2() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate t = group.defineTemplate("t", "\\ ");
++ org.antlr.stringtemplate.StringTemplate t = group.defineTemplate("t", "\\ ");
+ String expecting="\\ ";
+ assertEquals(expecting, t.toString());
+ }
+@@ -5277,7 +5277,7 @@ public class TestStringTemplate extends
+ public void testEscapeEscape() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test");
+- StringTemplate t = group.defineTemplate("t", "\\\\$v$");
++ org.antlr.stringtemplate.StringTemplate t = group.defineTemplate("t", "\\\\$v$");
+ t.setAttribute("v", "Joe");
+ //System.out.println(t);
+ String expecting="\\Joe";
+@@ -5287,7 +5287,7 @@ public class TestStringTemplate extends
+ public void testEscapeEscapeNestedAngle() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t = group.defineTemplate("t", "<v:{a|\\\\<a>}>");
++ org.antlr.stringtemplate.StringTemplate t = group.defineTemplate("t", "<v:{a|\\\\<a>}>");
+ t.setAttribute("v", "Joe");
+ //System.out.println(t);
+ String expecting="\\Joe";
+@@ -5297,7 +5297,7 @@ public class TestStringTemplate extends
+ public void testListOfIntArrays() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data:array()>");
+ group.defineTemplate("array", "[<it:element(); separator=\",\">]");
+ group.defineTemplate("element", "<it>");
+@@ -5315,7 +5315,7 @@ public class TestStringTemplate extends
+ public void testNullOptionSingleNullValue() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data; null=\"0\">");
+ //System.out.println(t);
+ String expecting="0";
+@@ -5325,7 +5325,7 @@ public class TestStringTemplate extends
+ public void testNullOptionHasEmptyNullValue() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data; null=\"\", separator=\", \">");
+ List data = new ArrayList();
+ data.add(null);
+@@ -5338,7 +5338,7 @@ public class TestStringTemplate extends
+ public void testNullOptionSingleNullValueInList() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data; null=\"0\">");
+ List data = new ArrayList();
+ data.add(null);
+@@ -5351,7 +5351,7 @@ public class TestStringTemplate extends
+ public void testNullValueInList() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data; null=\"-1\", separator=\", \">");
+ List data = new ArrayList();
+ data.add(null);
+@@ -5369,7 +5369,7 @@ public class TestStringTemplate extends
+ public void testNullValueInListNoNullOption() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data; separator=\", \">");
+ List data = new ArrayList();
+ data.add(null);
+@@ -5387,7 +5387,7 @@ public class TestStringTemplate extends
+ public void testNullValueInListWithTemplateApply() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data:array(); null=\"-1\", separator=\", \">");
+ group.defineTemplate("array", "<it>");
+ List data = new ArrayList();
+@@ -5403,7 +5403,7 @@ public class TestStringTemplate extends
+ public void testNullValueInListWithTemplateApplyNullFirstValue() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data:array(); null=\"-1\", separator=\", \">");
+ group.defineTemplate("array", "<it>");
+ List data = new ArrayList();
+@@ -5419,7 +5419,7 @@ public class TestStringTemplate extends
+ public void testNullSingleValueInListWithTemplateApply() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data:array(); null=\"-1\", separator=\", \">");
+ group.defineTemplate("array", "<it>");
+ List data = new ArrayList();
+@@ -5432,7 +5432,7 @@ public class TestStringTemplate extends
+ public void testNullSingleValueWithTemplateApply() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("test", AngleBracketTemplateLexer.class);
+- StringTemplate t =
++ org.antlr.stringtemplate.StringTemplate t =
+ group.defineTemplate("t", "<data:array(); null=\"-1\", separator=\", \">");
+ group.defineTemplate("array", "<it>");
+ String expecting="-1";
+@@ -5440,7 +5440,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOp() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -5452,7 +5452,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpWithMap() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -5466,7 +5466,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpWithSet() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -5480,7 +5480,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpNull() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -5490,7 +5490,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpSingleValue() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(names)$"
+ );
+ e = e.getInstanceOf();
+@@ -5500,7 +5500,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpPrimitive() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(ints)$"
+ );
+ e = e.getInstanceOf();
+@@ -5510,7 +5510,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpOfListWithNulls() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(data)$"
+ );
+ e = e.getInstanceOf();
+@@ -5525,7 +5525,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testStripOpOfListWithNulls() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$strip(data)$"
+ );
+ e = e.getInstanceOf();
+@@ -5540,7 +5540,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testStripOpOfListOfListsWithNulls() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$strip(data):{list | $strip(list)$}; separator=\",\"$"
+ );
+ e = e.getInstanceOf();
+@@ -5562,7 +5562,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testStripOpOfSingleAlt() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$strip(data)$"
+ );
+ e = e.getInstanceOf();
+@@ -5572,7 +5572,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testStripOpOfNull() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$strip(data)$"
+ );
+ e = e.getInstanceOf();
+@@ -5588,7 +5588,7 @@ public class TestStringTemplate extends
+ ;
+ StringTemplateGroup group =
+ new StringTemplateGroup(new StringReader(templates));
+- StringTemplate e = group.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate e = group.getInstanceOf("a");
+ List names = new ArrayList();
+ names.add("Ter");
+ names.add(null);
+@@ -5599,7 +5599,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpOfStrippedListWithNulls() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(strip(data))$"
+ );
+ e = e.getInstanceOf();
+@@ -5614,7 +5614,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testLengthOpOfStrippedListWithNullsFrontAndBack() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$length(strip(data))$"
+ );
+ e = e.getInstanceOf();
+@@ -5638,8 +5638,8 @@ public class TestStringTemplate extends
+ public void testMapKeys() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "<aMap.keys:{k|<k>:<aMap.(k)>}; separator=\", \">");
+ HashMap map = new LinkedHashMap();
+ map.put("int","0");
+@@ -5651,8 +5651,8 @@ public class TestStringTemplate extends
+ public void testMapValues() throws Exception {
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "<aMap.values; separator=\", \"> <aMap.(\"i\"+\"nt\")>");
+ HashMap map = new LinkedHashMap();
+ map.put("int","0");
+@@ -5665,8 +5665,8 @@ public class TestStringTemplate extends
+ // must get back an Integer from keys not a toString()'d version
+ StringTemplateGroup group =
+ new StringTemplateGroup("dummy", ".", AngleBracketTemplateLexer.class);
+- StringTemplate t =
+- new StringTemplate(group,
++ org.antlr.stringtemplate.StringTemplate t =
++ new org.antlr.stringtemplate.StringTemplate(group,
+ "<aMap.keys:{k|<k>:<aMap.(k)>}; separator=\", \">");
+ Map map = new HashMap();
+ map.put(new Integer(1),new ArrayList(){{add("ick"); add("foo");}});
+@@ -5744,18 +5744,18 @@ public class TestStringTemplate extends
+ StringTemplateGroup subGroup = new StringTemplateGroup(
+ new StringReader(subGroupString), AngleBracketTemplateLexer.class);
+ subGroup.setSuperGroup(superGroup);
+- StringTemplate a = subGroup.getInstanceOf("a");
++ org.antlr.stringtemplate.StringTemplate a = subGroup.getInstanceOf("a");
+ a.setAttribute("x", "foo");
+ assertEquals("super.a", a.toString());
+- StringTemplate b = subGroup.getInstanceOf("b");
++ org.antlr.stringtemplate.StringTemplate b = subGroup.getInstanceOf("b");
+ assertEquals("sub.csuper.b", b.toString());
+- StringTemplate c = subGroup.getInstanceOf("c");
++ org.antlr.stringtemplate.StringTemplate c = subGroup.getInstanceOf("c");
+ assertEquals("sub.c", c.toString());
+ }
+
+ /** Added feature for ST-21 */
+ public void testListLiteralWithEmptyElements() throws Exception {
+- StringTemplate e = new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate e = new org.antlr.stringtemplate.StringTemplate(
+ "$[\"Ter\",,\"Jesse\"]:{n | $i$:$n$}; separator=\", \", null=\"\"$"
+ );
+ e = e.getInstanceOf();
+@@ -5767,7 +5767,7 @@ public class TestStringTemplate extends
+ }
+
+ public void testTemplateApplicationAsOptionValue() throws Exception {
+- StringTemplate st =new StringTemplate(
++ org.antlr.stringtemplate.StringTemplate st =new org.antlr.stringtemplate.StringTemplate(
+ "Tokens : <rules; separator=names:{<it>}> ;",
+ AngleBracketTemplateLexer.class);
+ st.setAttribute("rules", "A");
diff --git a/stringtemplate-3.2.1-deprecated.patch b/stringtemplate-3.2.1-deprecated.patch
new file mode 100644
index 0000000..b3dbaa2
--- /dev/null
+++ b/stringtemplate-3.2.1-deprecated.patch
@@ -0,0 +1,241 @@
+--- src/org/antlr/stringtemplate/language/ASTExpr.java.orig 2025-07-05 13:29:38.535051589 -0600
++++ src/org/antlr/stringtemplate/language/ASTExpr.java 2025-07-05 15:21:11.427272073 -0600
+@@ -263,8 +263,8 @@ public class ASTExpr extends Expr {
+ if ( numEmpty==numAttributes ) {
+ break;
+ }
+- argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, new Integer(i+1));
+- argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, new Integer(i));
++ argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, Integer.valueOf(i+1));
++ argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, Integer.valueOf(i));
+ org.antlr.stringtemplate.StringTemplate embedded = templateToApply.getInstanceOf();
+ embedded.setEnclosingInstance(self);
+ embedded.setArgumentContext(argumentContext);
+@@ -323,8 +323,8 @@ public class ASTExpr extends Expr {
+ argumentContext.put(DEFAULT_ATTRIBUTE_NAME, ithValue);
+ argumentContext.put(DEFAULT_ATTRIBUTE_NAME_DEPRECATED, ithValue);
+ }
+- argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, new Integer(i+1));
+- argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, new Integer(i));
++ argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, Integer.valueOf(i+1));
++ argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, Integer.valueOf(i));
+ embedded.setArgumentContext(argumentContext);
+ evaluateArguments(embedded);
+ /*
+@@ -358,8 +358,8 @@ public class ASTExpr extends Expr {
+ argumentContext.put(DEFAULT_ATTRIBUTE_NAME, attributeValue);
+ argumentContext.put(DEFAULT_ATTRIBUTE_NAME_DEPRECATED, attributeValue);
+ }
+- argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, new Integer(1));
+- argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, new Integer(0));
++ argumentContext.put(DEFAULT_INDEX_VARIABLE_NAME, Integer.valueOf(1));
++ argumentContext.put(DEFAULT_INDEX0_VARIABLE_NAME, Integer.valueOf(0));
+ embedded.setArgumentContext(argumentContext);
+ evaluateArguments(embedded);
+ return embedded;
+@@ -1093,7 +1093,7 @@ public class ASTExpr extends Expr {
+ */
+ public Object length(Object attribute) {
+ if ( attribute == null) {
+- return new Integer(0);
++ return Integer.valueOf(0);
+ }
+ int i = 1; // we have at least one of something. Iterator and arrays might be empty.
+ if (attribute instanceof Map) {
+@@ -1130,7 +1130,7 @@ public class ASTExpr extends Expr {
+ i++;
+ }
+ }
+- return new Integer(i);
++ return Integer.valueOf(i);
+ }
+
+ public Object getOption(String name) {
+--- src/org/antlr/stringtemplate/language/eval.g.orig 2025-07-05 13:18:54.006186164 -0600
++++ src/org/antlr/stringtemplate/language/eval.g 2025-07-05 15:21:51.882969554 -0600
+@@ -262,7 +262,7 @@ attribute returns [Object value=null]
+ value=self.getAttribute(i3.getText());
+ }
+
+- | i:INT {value=new Integer(i.getText());}
++ | i:INT {value=Integer.valueOf(i.getText());}
+
+ | s:STRING
+ {
+--- src/org/antlr/stringtemplate/StringTemplate.java.orig 2009-09-22 15:00:17.000000000 -0600
++++ src/org/antlr/stringtemplate/StringTemplate.java 2025-07-05 15:19:18.460303635 -0600
+@@ -541,7 +541,7 @@ public class StringTemplate {
+
+ /** Convenience method to box ints */
+ public void setAttribute(String name, int value) {
+- setAttribute(name, new Integer(value));
++ setAttribute(name, Integer.valueOf(value));
+ }
+
+ /** Set an aggregate attribute with two values. The attribute name
+--- test/org/antlr/stringtemplate/test/TestStringTemplate.java.orig 2025-07-05 15:16:42.836799197 -0600
++++ test/org/antlr/stringtemplate/test/TestStringTemplate.java 2025-07-05 15:25:30.627306739 -0600
+@@ -1632,11 +1632,11 @@ public class TestStringTemplate extends
+ org.antlr.stringtemplate.StringTemplate t =
+ new org.antlr.stringtemplate.StringTemplate(group,
+ "$if(b)$x$endif$ $if(!b)$y$endif$");
+- t.setAttribute("b", new Boolean(true));
++ t.setAttribute("b", Boolean.TRUE);
+ assertEquals(t.toString(), "x ");
+
+ t = t.getInstanceOf();
+- t.setAttribute("b", new Boolean(false));
++ t.setAttribute("b", Boolean.FALSE);
+ assertEquals(" y", t.toString());
+ }
+
+@@ -1668,7 +1668,7 @@ public class TestStringTemplate extends
+ org.antlr.stringtemplate.StringTemplate t =
+ new org.antlr.stringtemplate.StringTemplate(group,
+ "$if(names:{$it$})$Fail!$endif$ $if(!names:{$it$})$Works!$endif$");
+- t.setAttribute("b", new Boolean(true));
++ t.setAttribute("b", Boolean.TRUE);
+ assertEquals(t.toString(), " Works!");
+ }
+
+@@ -1690,7 +1690,7 @@ public class TestStringTemplate extends
+ public String getLastName() { return "Burns"; }
+ public String getEmail() { return "tombu@jguru.com"; }
+ public String getBio() { return "Superhero by day..."; }
+- public Boolean getCanEdit() { return new Boolean(true); }
++ public Boolean getCanEdit() { return Boolean.TRUE; }
+ }
+
+ public void testObjectPropertyReference() throws Exception {
+@@ -2906,10 +2906,10 @@ public class TestStringTemplate extends
+ group.setErrorListener(errors);
+ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$endif$}; separator=\",\"$");
+- t.setAttribute("users.{name,ok}", "Terence", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Tom", new Boolean(false));
+- t.setAttribute("users.{name,ok}", "Frank", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Johnny", new Boolean(false));
++ t.setAttribute("users.{name,ok}", "Terence", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Tom", Boolean.FALSE);
++ t.setAttribute("users.{name,ok}", "Frank", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Johnny", Boolean.FALSE);
+ // empty conditional values get no separator
+ String expecting="Terence,Frank";
+ String result = t.toString();
+@@ -2923,10 +2923,10 @@ public class TestStringTemplate extends
+ group.setErrorListener(errors);
+ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$endif$}; separator=\",\"$");
+- t.setAttribute("users.{name,ok}", "Terence", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Tom", new Boolean(false));
+- t.setAttribute("users.{name,ok}", "Frank", new Boolean(false));
+- t.setAttribute("users.{name,ok}", "Johnny", new Boolean(false));
++ t.setAttribute("users.{name,ok}", "Terence", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Tom", Boolean.FALSE);
++ t.setAttribute("users.{name,ok}", "Frank", Boolean.FALSE);
++ t.setAttribute("users.{name,ok}", "Johnny", Boolean.FALSE);
+ // empty conditional values get no separator
+ String expecting="Terence";
+ String result = t.toString();
+@@ -2940,10 +2940,10 @@ public class TestStringTemplate extends
+ group.setErrorListener(errors);
+ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$endif$$if(it.ok)$$it.name$$endif$}; separator=\",\"$");
+- t.setAttribute("users.{name,ok}", "Terence", new Boolean(false));
+- t.setAttribute("users.{name,ok}", "Tom", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Frank", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Johnny", new Boolean(true));
++ t.setAttribute("users.{name,ok}", "Terence", Boolean.FALSE);
++ t.setAttribute("users.{name,ok}", "Tom", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Frank", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Johnny", Boolean.TRUE);
+ // empty conditional values get no separator
+ String expecting="TomTom,FrankFrank,JohnnyJohnny";
+ String result = t.toString();
+@@ -2957,10 +2957,10 @@ public class TestStringTemplate extends
+ group.setErrorListener(errors);
+ org.antlr.stringtemplate.StringTemplate t = new org.antlr.stringtemplate.StringTemplate(group,
+ "$users:{$if(it.ok)$$it.name$$else$$endif$}; separator=\",\"$");
+- t.setAttribute("users.{name,ok}", "Terence", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Tom", new Boolean(false));
+- t.setAttribute("users.{name,ok}", "Frank", new Boolean(true));
+- t.setAttribute("users.{name,ok}", "Johnny", new Boolean(false));
++ t.setAttribute("users.{name,ok}", "Terence", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Tom", Boolean.FALSE);
++ t.setAttribute("users.{name,ok}", "Frank", Boolean.TRUE);
++ t.setAttribute("users.{name,ok}", "Johnny", Boolean.FALSE);
+ // empty conditional values get no separator
+ String expecting="Terence,,Frank,";
+ String result = t.toString();
+@@ -5329,7 +5329,7 @@ public class TestStringTemplate extends
+ group.defineTemplate("t", "<data; null=\"\", separator=\", \">");
+ List data = new ArrayList();
+ data.add(null);
+- data.add(new Integer(1));
++ data.add(Integer.valueOf(1));
+ t.setAttribute("data", data);
+ String expecting=", 1";
+ assertEquals(expecting, t.toString());
+@@ -5355,10 +5355,10 @@ public class TestStringTemplate extends
+ group.defineTemplate("t", "<data; null=\"-1\", separator=\", \">");
+ List data = new ArrayList();
+ data.add(null);
+- data.add(new Integer(1));
++ data.add(Integer.valueOf(1));
+ data.add(null);
+- data.add(new Integer(3));
+- data.add(new Integer(4));
++ data.add(Integer.valueOf(3));
++ data.add(Integer.valueOf(4));
+ data.add(null);
+ t.setAttribute("data", data);
+ //System.out.println(t);
+@@ -5373,10 +5373,10 @@ public class TestStringTemplate extends
+ group.defineTemplate("t", "<data; separator=\", \">");
+ List data = new ArrayList();
+ data.add(null);
+- data.add(new Integer(1));
++ data.add(Integer.valueOf(1));
+ data.add(null);
+- data.add(new Integer(3));
+- data.add(new Integer(4));
++ data.add(Integer.valueOf(3));
++ data.add(Integer.valueOf(4));
+ data.add(null);
+ t.setAttribute("data", data);
+ //System.out.println(t);
+@@ -5391,9 +5391,9 @@ public class TestStringTemplate extends
+ group.defineTemplate("t", "<data:array(); null=\"-1\", separator=\", \">");
+ group.defineTemplate("array", "<it>");
+ List data = new ArrayList();
+- data.add(new Integer(0));
++ data.add(Integer.valueOf(0));
+ data.add(null);
+- data.add(new Integer(2));
++ data.add(Integer.valueOf(2));
+ data.add(null);
+ t.setAttribute("data", data);
+ String expecting="0, -1, 2, -1";
+@@ -5408,9 +5408,9 @@ public class TestStringTemplate extends
+ group.defineTemplate("array", "<it>");
+ List data = new ArrayList();
+ data.add(null);
+- data.add(new Integer(0));
++ data.add(Integer.valueOf(0));
+ data.add(null);
+- data.add(new Integer(2));
++ data.add(Integer.valueOf(2));
+ t.setAttribute("data", data);
+ String expecting="-1, 0, -1, 2";
+ assertEquals(expecting, t.toString());
+@@ -5669,8 +5669,8 @@ public class TestStringTemplate extends
+ new org.antlr.stringtemplate.StringTemplate(group,
+ "<aMap.keys:{k|<k>:<aMap.(k)>}; separator=\", \">");
+ Map map = new HashMap();
+- map.put(new Integer(1),new ArrayList(){{add("ick"); add("foo");}});
+- map.put(new Integer(2),new ArrayList(){{add("x"); add("y");}});
++ map.put(Integer.valueOf(1),new ArrayList(){{add("ick"); add("foo");}});
++ map.put(Integer.valueOf(2),new ArrayList(){{add("x"); add("y");}});
+ t.setAttribute("aMap", map);
+
+ String res = t.toString();
diff --git a/stringtemplate.spec b/stringtemplate.spec
index 723411b..1972226 100644
--- a/stringtemplate.spec
+++ b/stringtemplate.spec
@@ -1,13 +1,18 @@
Summary: A Java template engine
Name: stringtemplate
Version: 3.2.1
-Release: 37%{?dist}
+Release: 38%{?dist}
+License: BSD-3-Clause
URL: http://www.stringtemplate.org/
Source0: http://www.stringtemplate.org/download/stringtemplate-%{version}.tar.gz
# Build jUnit tests + make the antlr2 generated code before preparing sources
Patch0: stringtemplate-3.1-build-junit.patch
-# Automatically converted from old format: BSD - review is highly recommended.
-License: LicenseRef-Callaway-BSD
+# With JDK 21 and later, StringTemplate is a name in java.lang, which makes a
+# bar instance of the StringTemplate name ambiguous. Only use the name fully
+# qualified to eliminate the ambiguity.
+Patch1: stringtemplate-3.2.1-ambiguity.patch
+# Update deprecated uses of "new Integer" and "new Boolean"
+Patch2: stringtemplate-3.2.1-deprecated.patch
BuildRequires: ant
BuildRequires: ant-antlr
@@ -32,8 +37,7 @@ Requires: java-javadoc
API documentation for %{name}.
%prep
-%setup -q
-%patch -P0
+%autosetup -p0
sed -i -e 's/source="1.4"/source="1.8"/g' build.xml
sed -i -e 's/target="1.4"/target="1.8"/g' build.xml
@@ -56,6 +60,11 @@ ant javadocs -Dpackages= -Djavadocs.additionalparam="-Xdoclint:none"
%{_javadocdir}/%{name}
%changelog
+* Sat Jul 05 2025 Jerry James <loganjerry@gmail.com> - 3.2.1-38
+- Add patch to fix ambiguous references to StringTemplate
+- Add patch to avoid using deprecated "new Integer" and "new Boolean"
+- Change license to BSD-3-Clause
+
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.1-37
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
reply other threads:[~2026-08-20 11:50 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178722665484.1.8644958702702118692.rpms-stringtemplate-267d370a53dc@fedoraproject.org \
--to=loganjerry@gmail.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox