[stringtemplate-interest] handling of arrays

Terence Parr parrt at cs.usfca.edu
Fri Feb 2 10:20:00 PST 2007


OH!  It was an int[] array I think.  That's the issue.  How can we  
test the element type of an Array?  I don't see anything in the Class  
javadoc.
Ter
On Feb 2, 2007, at 10:18 AM, Terence Parr wrote:

> Weird....can't remember the error. Hang on.  Crap!  Now it works!
>
> import java.util.*;
> public class T {
>          Object x = new String[3];
>          List a = Arrays.asList((Object[])x);
> }
>
> Hmm....argh!  So should I remove the ArrayIterator etc...?
>
> Oh!  It was a runtime error.  Got class cast exception.  Shite!  Now
> that is working too:
>
> import java.util.*;
> public class T {
>          Object x = new String[3];
>          List a = Arrays.asList((Object[])x);
>          public static void main(String[] args) {
>                  T t = new T();
>                  System.out.println(t.a);
>          }
> }
>
> 1.4 and 1.5 allow that.  shite.
>
> Ter
>
> On Feb 1, 2007, at 12:22 PM, Nate wrote:
>
>> That was in Eclipse with the compiler compliance level set to 1.4,
>> so it should work in 1.4. It should work in the same way as...
>>
>> String string = "abc";
>> Object stringHiddenByObject = string;
>>
>> What compiler error did you get?
>>
>> -Nate
>>
>>
>> Terence Parr wrote:
>>> is that in java 1.5?  I don't it will work in 1.4.
>>>
>>> my compiler complained.
>>>
>>> ter
>>>
>>> On Feb 1, 2007, at 12:18 PM, Nate wrote:
>>>
>>>> It does work, I was wrong. In fact, you don't even need a cast...
>>>>
>>>> String[] strings = new String[] {"abc", "def", "ghi"};
>>>> Object[] stringsHiddenByObjectArray = strings;
>>>>
>>>> What I was thinking of was going the other way...
>>>>
>>>> Object[] objects = new Object[] {"jkl", "mno", "pqr"};
>>>> String[] thisDoesntWork = (String[])objects;
>>>>
>>>> -Nate
>>>>
>>>>
>>>> Harry Karadimas wrote:
>>>>> Sorry about the lengthy post, but I checked and found that the
>>>>> cast to
>>>>> (Object[])
>>>>> actually works !
>>>>>
>>>>> Below is a "small" demo  class that demonstrates various uses.
>>>>> To make it short, what works is :
>>>>>   public static Object convertArrayToList(Object value)
>>>>>   {
>>>>>     if (value==null || !value.getClass().isArray()) return value;
>>>>>     return Arrays.asList((Object[])value);
>>>>>   }
>>>>>
>>>>> --------
>>>>>
>>>>> package stringtemplate_test;
>>>>>
>>>>> import java.util.ArrayList;
>>>>> import java.util.Arrays;
>>>>> import java.util.Collection;
>>>>> import java.util.Iterator;
>>>>> import java.util.List;
>>>>>
>>>>> /**
>>>>>  * "Lots of Lists", to test various Array to List conversion
>>>>> strategies
>>>>>  * @author KARADIMAS
>>>>>  */
>>>>> public class Lol
>>>>> {
>>>>>   static Object[] myArray = {"A", "B", "C"};
>>>>>   static List myList = new ArrayList();
>>>>>   static Object[][][] threeLevels = {
>>>>>       {
>>>>>         {"1.1.1", "1.1.2", "1.1.3"},
>>>>>         {"1.2.1", "1.2.2"}
>>>>>       },
>>>>>       {
>>>>>         {"2.1.1"},
>>>>>         {"2.2.1", "2.2.2"}
>>>>>       },
>>>>>       {
>>>>>         {"3.1.1", "3.1.2"},
>>>>>         {"3.2.1"}
>>>>>       },
>>>>>       {
>>>>>         {myList}
>>>>>       },
>>>>>   };
>>>>>   static int[] myInts = {1,2,3};
>>>>>
>>>>>   public static void main(String[] args)
>>>>>   {
>>>>>     //further init of myList
>>>>>     myList.add("X");
>>>>>     myList.add(myArray);
>>>>>     myList.add("Z");
>>>>>     System.out.println("Original list :");
>>>>>     printList(threeLevels);
>>>>>     System.out.println("convertArrayToList1() :");
>>>>>     Object r = convertArrayToList1(threeLevels);
>>>>>     printList((List) r);
>>>>>     System.out.println("convertArrayToList2() :");
>>>>>     r = convertArrayToList2(threeLevels);
>>>>>     printList((List) r);
>>>>>     System.out.println("convertAllForStUsage() :");
>>>>>     r = convertAllAtOnce(threeLevels);
>>>>>     printList((List) r);
>>>>>     r = convertArrayToList1(myInts);
>>>>>     printList(r);
>>>>>   }
>>>>>
>>>>>   /**
>>>>>    * simplest, works ok if called before each use, maybe the best
>>>>> approach if
>>>>>    * used in lazy (= just in time) execution.
>>>>>    * Note here that Object[][]...[] is an instance of Object[]
>>>>> (and of
>>>>>    * Object, incidentally)
>>>>>    */
>>>>>   public static Object convertArrayToList1(Object value)
>>>>>   {
>>>>>     if (value==null || !value.getClass().isArray()) return value;
>>>>>     return Arrays.asList((Object[])value);
>>>>>   }
>>>>>
>>>>>   /**
>>>>>    * handles sub-arrays recursively at once, but what about arrays
>>>>> inside lists?
>>>>>    */
>>>>>   public static Object convertArrayToList2(Object value)
>>>>>   {
>>>>>     if (value==null || !value.getClass().isArray()) return value;
>>>>>     Object[] oa1 = (Object[]) value;
>>>>>     Object[] oa2 = new Object[oa1.length];
>>>>>     System.arraycopy(oa1, 0, oa2, 0, oa1.length);
>>>>>     for (int i = 0; i < oa2.length; i++) oa2[i] =
>>>>> convertArrayToList2(oa2[i]);
>>>>>     return Arrays.asList(oa2);
>>>>>   }
>>>>>
>>>>>   /**
>>>>>    * More complex method.
>>>>>    * Manages both lists and arrays, but what about arrays inside
>>>>> maps, for
>>>>>    * example ? And also, why convert now arrays that might never
>>>>> be used ?
>>>>>    */
>>>>>   public static Object convertAllAtOnce(Object value)
>>>>>   {
>>>>>     if ( !isListable(value) ) return value;
>>>>>     ArrayList res = new ArrayList(); //we always return a new list
>>>>>     if (value instanceof List) {
>>>>>       //process the list
>>>>>       List vList = (List) value;
>>>>>       for (Iterator iter = vList.iterator(); iter.hasNext();) {
>>>>>         res.add(convertAllAtOnce(iter.next()));
>>>>>       }
>>>>>       return res;
>>>>>     }
>>>>>     //it's an array, process its elements
>>>>>     Object[] oa = (Object[]) value;
>>>>>     for (int i = 0; i < oa.length; i++)
>>>>> res.add(convertAllAtOnce(oa[i]));
>>>>>     return res;
>>>>>   }
>>>>>
>>>>>   /** helper function to clarify code */
>>>>>   private static final boolean isListable(Object o)
>>>>>   {
>>>>>     return (o instanceof List) || (o != null && o.getClass
>>>>> ().isArray());
>>>>>   }
>>>>>
>>>>>   public static void printList(Object v) { printList("", v); }
>>>>>
>>>>>   public static void printList(String indent, Object v) {
>>>>>     if (!isListable(v)) {
>>>>>       System.out.println(indent+"v="+v);
>>>>>       return;
>>>>>     }
>>>>>     if (v instanceof List) {
>>>>>       System.out.println(indent+"(");
>>>>>       List lst = (List) v;
>>>>>       for (Iterator iter = lst.iterator(); iter.hasNext();) {
>>>>>         Object o = (Object) iter.next();
>>>>>         printList(indent+"  ", o);
>>>>>       }
>>>>>       System.out.println(indent+")");
>>>>>       return;
>>>>>     }
>>>>>     Object[] oa = (Object[]) v;
>>>>>     System.out.println(indent+"[//array");
>>>>>     for (int i = 0; i < oa.length; i++) printList(indent+"  ", oa
>>>>> [i]);
>>>>>     System.out.println(indent+"]//array");
>>>>>   }
>>>>>
>>>>> }
>>>>>
>>>>>                                                        Harry
>>>>> Karadimas
>>>>> /
>>>>> __________________________________________________________________ 
>>>>> _
>>>>> ___
>>>>> Dr Harry Karadimas  Medecin Ingenieur resp. Recherche et
>>>>> Developpement
>>>>> Departement d'Information Hospitalier
>>>>> CHU Henri Mondor 51, av. du Mal de Lattre de Tassigny   94010
>>>>> CRETEIL
>>>>> tel : (00 33 1) 49 81 21 79                fax : (00 33 1) 49 81
>>>>> 27 08
>>>>> secr.: (00 33 1) 49 81 23 82 m.el.:harry.karadimas at hmn.ap-hop-
>>>>> paris.fr
>>>>> /
>>>>>
>>>>>
>>>>> stringtemplate-interest-request at antlr.org a écrit :
>>>>>> Send stringtemplate-interest mailing list submissions to
>>>>>>     stringtemplate-interest at antlr.org
>>>>>>
>>>>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>>>>     http://www.antlr.org:8080/mailman/listinfo/stringtemplate-
>>>>>> interest
>>>>>> or, via email, send a message with subject or body 'help' to
>>>>>>     stringtemplate-interest-request at antlr.org
>>>>>>
>>>>>> You can reach the person managing the list at
>>>>>>     stringtemplate-interest-owner at antlr.org
>>>>>>
>>>>>> When replying, please edit your Subject line so it is more
>>>>>> specific
>>>>>> than "Re: Contents of stringtemplate-interest digest..."
>>>>>>
>>>>>>
>>>>>> Today's Topics:
>>>>>>
>>>>>>    1. Re: handling of arrays (John Snyders) (Terence Parr)
>>>>>>    2. Re: handling of arrays (John Snyders) (Terence Parr)
>>>>>>    3. Re: Porting StringTemplate (Kay Roepke)
>>>>>>
>>>>>>
>>>>>> ----------------------------------------------------------------- 
>>>>>> -
>>>>>> ----
>>>>>>
>>>>>> Message: 1
>>>>>> Date: Tue, 30 Jan 2007 12:14:43 -0800
>>>>>> From: Terence Parr <parrt at cs.usfca.edu>
>>>>>> Subject: Re: [stringtemplate-interest] handling of arrays (John
>>>>>>     Snyders)
>>>>>> To: Nate <misc at n4te.com>
>>>>>> Cc: StringTemplate <stringtemplate-interest at antlr.org>
>>>>>> Message-ID: <E02F2DC0-7AE7-4B2B-A69A-49E19AD2CCE8 at cs.usfca.edu>
>>>>>> Content-Type: text/plain; charset=ISO-8859-1; delsp=yes;
>>>>>> format=flowed
>>>>>>
>>>>>> crap.  Ok, back to arrayiterator then.
>>>>>> Ter
>>>>>> On Jan 30, 2007, at 11:54 AM, Nate wrote:
>>>>>>
>>>>>>
>>>>>>> Unless you are using Java 5+, you'd have to use
>>>>>>> System.arrayCopy to
>>>>>>> copy the array to an Object array.
>>>>>>>
>>>>>>> -Nate
>>>>>>>
>>>>>>>
>>>>>>> Terence Parr wrote:
>>>>>>>
>>>>>>>> Awesome!  Heh, it's exactly what we want I think.
>>>>>>>>
>>>>>>>> Wait, class cast issue:
>>>>>>>>
>>>>>>>>     public static Object convertArrayToList(Object value) {
>>>>>>>>         if ( value==null ) {
>>>>>>>>             return null;
>>>>>>>>         }
>>>>>>>>         if ( value.getClass().isArray() ) {
>>>>>>>>             return Arrays.asList((Object[])value);  // CAST
>>>>>>>> ISSUE!
>>>>>>>>         }
>>>>>>>>         return value;
>>>>>>>>     }
>>>>>>>>
>>>>>>>> won't work as value is not Object[] most of the time...but
>>>>>>>> how do
>>>>>>>> you  get it to compile w/o the cast?
>>>>>>>>
>>>>>>>> Ter
>>>>>>>>
>>>>>>>> On Jan 30, 2007, at 9:13 AM, Harry Karadimas wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hi, I don't know if that relates to the previous post, but  
>>>>>>>>> java
>>>>>>>>> *does* have something
>>>>>>>>> to encapsulate an array into a list, and that is the "asList"
>>>>>>>>> method of the java.util.Arrays
>>>>>>>>> class.
>>>>>>>>>
>>>>>>>>> Object[] myArray = ...
>>>>>>>>> List myList = Arrays.asList(myArray);
>>>>>>>>>
>>>>>>>>> Harry Karadimas
>>>>>>>>> ______________________________________________________________ 
>>>>>>>>> _
>>>>>>>>> _____
>>>>>>>>> __  Dr Harry Karadimas Medecin Ingenieur resp. Recherche et
>>>>>>>>> Developpement Departement d'Information Hospitalier CHU Henri
>>>>>>>>> Mondor 51, av. du Mal de Lattre de Tassigny 94010 CRETEIL  
>>>>>>>>> tel :
>>>>>>>>> (00  33 1) 49 81 21 79 fax : (00 33 1) 49 81 27 08 secr.:
>>>>>>>>> (00 33
>>>>>>>>> 1) 49  81 23 82 m.el.:harry.karadimas at hmn.ap-hop-paris.fr
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> stringtemplate-interest-request at antlr.org a ?crit :
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Send stringtemplate-interest mailing list submissions to
>>>>>>>>>> stringtemplate-interest at antlr.org To subscribe or unsubscribe
>>>>>>>>>> via  the World Wide Web, visit http://www.antlr.org:8080/
>>>>>>>>>> mailman/ listinfo/stringtemplate-interest or, via email,
>>>>>>>>>> send a
>>>>>>>>>> message  with subject or body 'help' to stringtemplate-
>>>>>>>>>> interest-
>>>>>>>>>> request at antlr.org You can reach the person managing the
>>>>>>>>>> list at
>>>>>>>>>> stringtemplate-interest-owner at antlr.org When replying, please
>>>>>>>>>> edit  your Subject line so it is more specific than "Re:
>>>>>>>>>> Contents of  stringtemplate-interest digest..." Today's
>>>>>>>>>> Topics:
>>>>>>>>>> 1. Re: handling  of arrays (John Snyders) 2. Re:  
>>>>>>>>>> inconsistency
>>>>>>>>>> with length function  (Oliver Flege)
>>>>>>>>>> ------------------------------------------------------------- 
>>>>>>>>>> -
>>>>>>>>>> -----
>>>>>>>>>> -- - Message: 1 Date: Sun, 28 Jan 2007 21:44:26 -0500 From:  
>>>>>>>>>> "John  Snyders" <jjsnyders at rcn.com> Subject: Re:
>>>>>>>>>> [stringtemplate- interest] handling of arrays To: "Terence
>>>>>>>>>> Parr"  <parrt at cs.usfca.edu>,    "StringTemplate"
>>>>>>>>>> <stringtemplate-
>>>>>>>>>> interest at antlr.org> Message-ID:
>>>>>>>>>> <PMEOJKDLMMHOHNEAMPBGGEJMCAAA.jjsnyders at rcn.com> Content- 
>>>>>>>>>> Type:
>>>>>>>>>> text/plain;    charset="US-ASCII"
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> -----Original Message----- From: stringtemplate-interest-
>>>>>>>>>>> bounces at antlr.org [mailto:stringtemplate-interest-
>>>>>>>>>>> bounces at antlr.org]On Behalf Of Terence Parr Sent: Saturday,
>>>>>>>>>>> January 27, 2007 6:38 PM To: StringTemplate Subject: Re:
>>>>>>>>>>> [stringtemplate-interest] handling of arrays On Jan 16,  
>>>>>>>>>>> 2007,
>>>>>>>>>>> at  9:40 PM, John Snyders wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> I noticed in ASTExpr.java the method convertArrayToList.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> it is. just done to make things consistent...else have to
>>>>>>>>>>> check  for arrays everyone. gross, eh?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> It seems to me that this is wasteful. I have not looked
>>>>>>>>>>>> at it
>>>>>>>>>>>> too deep but why not handle arrays like other collections
>>>>>>>>>>>> and
>>>>>>>>>>>> wrap them in an ArrayIterator inside
>>>>>>>>>>>> convertAnythingIteratableToIterator.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> Interesting...ArrayIterator, eh? Does Sun have a standard
>>>>>>>>>>> one?
>>>>>>>>>>> I  don't see it. Do you mean I should create one real quick?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> There isn't one in the Java SDK (as far as I know) but  
>>>>>>>>>> jakarta
>>>>>>>>>> commons has one http://jakarta.apache.org/commons/ 
>>>>>>>>>> collections/
>>>>>>>>>> api- release/org/apache/commons /collections/iterators/
>>>>>>>>>> ArrayIterator.html ST probably shouldn't rely on this so you
>>>>>>>>>> can  create your own. It is straight forward. I created one
>>>>>>>>>> before I  found the one in commons collections. I can give
>>>>>>>>>> it to
>>>>>>>>>> you if you  like (assuming I can find it). But again I didn't
>>>>>>>>>> think this  through fully.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Ter _______________________________________________
>>>>>>>>>>> stringtemplate-interest mailing list stringtemplate-
>>>>>>>>>>> interest at antlr.org http://www.antlr.org:8080/mailman/
>>>>>>>>>>> listinfo/
>>>>>>>>>>> stringtemplate-interest
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> ------------------------------ Message: 2 Date: Mon, 29 Jan
>>>>>>>>>> 2007  10:25:24 +0100 From: Oliver Flege <o.flege at market-
>>>>>>>>>> maker.de>  Subject: Re: [stringtemplate-interest]
>>>>>>>>>> inconsistency
>>>>>>>>>> with length  function To: StringTemplate <stringtemplate-
>>>>>>>>>> interest at antlr.org>  Message-ID: <45BDBD84.4040707 at market-
>>>>>>>>>> maker.de> Content-Type: text/ plain; charset=ISO-8859-1 Hi,
>>>>>>>>>> Terence Parr wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>> I think that the length method in ASTExpr.java should be
>>>>>>>>>>>> changed  as follows: From: } else if (attribute instanceof
>>>>>>>>>>>> List) { i =  ((List)attribute).size(); } To: } else if
>>>>>>>>>>>> (attribute instanceof  Collection) { i = ((List)
>>>>>>>>>>>> attribute).size
>>>>>>>>>>>> (); }
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> Howdy! OK, yep, good fix.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> even better would be } else if (attribute instanceof
>>>>>>>>>> Collection)  { i = ((Collection)attribute).size(); } :)
>>>>>>>>>> Cheers,
>>>>>>>>>> Oliver  ------------------------------
>>>>>>>>>> _______________________________________________
>>>>>>>>>> stringtemplate-
>>>>>>>>>> interest mailing list stringtemplate-interest at antlr.org
>>>>>>>>>> http://
>>>>>>>>>> www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>>>>>>>>>> End
>>>>>>>>>> of  stringtemplate-interest Digest, Vol 22, Issue 14
>>>>>>>>>> *******************************************************
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> <harry.karadimas.vcf>
>>>>>>>>> _______________________________________________
>>>>>>>>> stringtemplate-interest mailing list
>>>>>>>>> stringtemplate-interest at antlr.org
>>>>>>>>> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-
>>>>>>>>> interest
>>>>>>>>>
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> stringtemplate-interest mailing list
>>>>>>>> stringtemplate-interest at antlr.org
>>>>>>>> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-
>>>>>>>> interest
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>>
>>>>>> Message: 2
>>>>>> Date: Tue, 30 Jan 2007 13:13:24 -0800
>>>>>> From: Terence Parr <parrt at cs.usfca.edu>
>>>>>> Subject: Re: [stringtemplate-interest] handling of arrays (John
>>>>>>     Snyders)
>>>>>> To: StringTemplate <stringtemplate-interest at antlr.org>
>>>>>> Message-ID: <5DE29967-5C4B-4700-8D51-EDB9CF147D51 at cs.usfca.edu>
>>>>>> Content-Type: text/plain; charset=US-ASCII; delsp=yes;
>>>>>> format=flowed
>>>>>>
>>>>>> Ok, i made an array wrapper and iterator.  had to do both so a
>>>>>> list
>>>>>> is not purely an iterator, which has sideeffects.
>>>>>>
>>>>>>     /** Do a standard conversion of array attributes to a
>>>>>> List.  Wrap the
>>>>>>      *  array instead of copying like old version.  Make an
>>>>>>      *  ArrayWrappedInList that knows to create an ArrayIterator.
>>>>>>      */
>>>>>>     public static Object convertArrayToList(Object value) {
>>>>>>         if ( value==null ) {
>>>>>>             return null;
>>>>>>         }
>>>>>>         if ( value.getClass().isArray() ) {
>>>>>>             return new ArrayWrappedInList(value);
>>>>>>         }
>>>>>>         return value;
>>>>>>     }
>>>>>>
>>>>>> ArrayWrappedInList creates ArrayIterator.  These are two new
>>>>>> classes.
>>>>>>
>>>>>> Pushed to depot.
>>>>>>
>>>>>> Ter
>>>>>>
>>>>>> On Jan 30, 2007, at 9:13 AM, Harry Karadimas wrote:
>>>>>>
>>>>>>
>>>>>>> Hi, I don't know if that relates to the previous post, but java
>>>>>>> *does* have something
>>>>>>> to encapsulate an array into a list, and that is the "asList"
>>>>>>> method of the java.util.Arrays
>>>>>>> class.
>>>>>>>
>>>>>>> Object[] myArray = ...
>>>>>>> List myList = Arrays.asList(myArray);
>>>>>>>
>>>>>>> Harry Karadimas ____
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------
>>>>>>
>>>>>> Message: 3
>>>>>> Date: Wed, 31 Jan 2007 02:21:11 +0100
>>>>>> From: Kay Roepke <kroepke at classdump.org>
>>>>>> Subject: Re: [stringtemplate-interest] Porting StringTemplate
>>>>>> To: Shane Witbeck <shane at digitalsanctum.com>
>>>>>> Cc: StringTemplate <stringtemplate-interest at antlr.org>
>>>>>> Message-ID: <6789A417-4627-450E-A443-BF753E93862F at classdump.org>
>>>>>> Content-Type: text/plain; charset=windows-1252; delsp=yes;
>>>>>>     format=flowed
>>>>>>
>>>>>>
>>>>>> On Jan 28, 2007, at 1:04 AM, Shane Witbeck wrote:
>>>>>>
>>>>>>
>>>>>>> It seems like porting to ECMAScript would be better  
>>>>>>> strategically
>>>>>>> since ActionScript is an extension of it and the amount of
>>>>>>> work out
>>>>>>> there being done in JavaScript (AJAX, etc.).
>>>>>>>
>>>>>>> Shane
>>>>>>>
>>>>>>> On 1/27/07, Terence Parr <parrt at cs.usfca.edu> wrote:
>>>>>>>
>>>>>>>> This would be very involved and a huge project.  ANTLR doesn't
>>>>>>>> generate ActionScript so you'd need to parse everything by  
>>>>>>>> hand.
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> Porting StringTemplate isn't exactly easy, esp. since it uses
>>>>>> ANTLR
>>>>>> v2. My attempts
>>>>>> to do an Obj-C port haven't been exactly successful, mainly
>>>>>> because
>>>>>> ANTLR v3 threw
>>>>>> up parsing ST :(
>>>>>>
>>>>>> I don't think that parsing ST by hand is a viable option, since
>>>>>> it is
>>>>>> a bit involved
>>>>>> at times. I certainly wouldn't attempt it unless I was
>>>>>> desperate...
>>>>>> In the long run, though, v3 should be able to handle ST easily  
>>>>>> and
>>>>>> that would make
>>>>>> it a lot easier (even if you'd need to write a new v3 target).
>>>>>>
>>>>>> As to the ECMAScript target, I'm not sure whether the current
>>>>>> engines
>>>>>> are really fit to
>>>>>> do recursive descent parsing in. All the engines I have seen have
>>>>>> some real issues in
>>>>>> regard to memory, ie. tend to be slow molasses (but I admit it
>>>>>> would
>>>>>> a cool thing to have
>>>>>> now and then).
>>>>>>
>>>>>> my 0.02?,
>>>>>>
>>>>>> -k
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> stringtemplate-interest mailing list
>>>>> stringtemplate-interest at antlr.org
>>>>> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>>>>>
>>>>
>>>> _______________________________________________
>>>> stringtemplate-interest mailing list
>>>> stringtemplate-interest at antlr.org
>>>> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>>>
>>
>
> _______________________________________________
> stringtemplate-interest mailing list
> stringtemplate-interest at antlr.org
> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest



More information about the stringtemplate-interest mailing list