From adbreind at gmail.com Fri Jul 6 05:12:50 2007 From: adbreind at gmail.com (Adam Breindel) Date: Thu, 5 Jul 2007 22:12:50 -0700 Subject: [metaas-dev] VASGen update from metaas updated sources Message-ID: <7c4d6d3e0707052212p77c6016aq6b1d9d7a219b97ae@mail.gmail.com> Thanks to David for making the fixes last week for protected and internal visibility, and writing out package declarations on interfaces! I got my build issues ironed out, and updated VASGen to use these latest updates, so it now supports "protected" and explicitly supplies "internal" instead of having default visibility on stuff (and includes the package decl update of course). http://selfmummy.com/vasgen/ All the best, Adam Breindel From akserg at gmail.com Fri Jul 6 11:33:16 2007 From: akserg at gmail.com (Sergey Akopkokhyants) Date: Fri, 6 Jul 2007 13:33:16 +0200 Subject: [metaas-dev] CairngormFlex Assistant 0.1.0 was issued. Message-ID: Hi, David. I issued CairngormFlex Assistant 0.1.0 which use MetaAS library. Link about it you can find on web site: http://cairngormflex.sourceforge.net/ Regards, Sergey. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070706/96740ad4/attachment.htm From dave at badgers-in-foil.co.uk Mon Jul 9 22:14:52 2007 From: dave at badgers-in-foil.co.uk (David Holroyd) Date: Mon, 9 Jul 2007 22:14:52 +0000 Subject: [metaas-dev] VASGen update from metaas updated sources In-Reply-To: <7c4d6d3e0707052212p77c6016aq6b1d9d7a219b97ae@mail.gmail.com> References: <7c4d6d3e0707052212p77c6016aq6b1d9d7a219b97ae@mail.gmail.com> Message-ID: <20070709221452.GA5799@badgers-in-foil.co.uk> On Thu, Jul 05, 2007 at 10:12:50PM -0700, Adam Breindel wrote: > Thanks to David for making the fixes last week for protected and > internal visibility, and writing out package declarations on > interfaces! No worries! If you spot other problems, please let me know. Patches or JUnit testcases are very welcome also ;) ta, dave -- http://david.holroyd.me.uk/ From dave at badgers-in-foil.co.uk Mon Jul 9 22:33:22 2007 From: dave at badgers-in-foil.co.uk (David Holroyd) Date: Mon, 9 Jul 2007 22:33:22 +0000 Subject: [metaas-dev] CairngormFlex Assistant 0.1.0 was issued. In-Reply-To: References: Message-ID: <20070709223322.GB5799@badgers-in-foil.co.uk> On Fri, Jul 06, 2007 at 01:33:16PM +0200, Sergey Akopkokhyants wrote: > I issued CairngormFlex Assistant 0.1.0 which use MetaAS library. Link about > it you can find on web site: http://cairngormflex.sourceforge.net/ Very cool! Have you considered announcing the release on the OSFlash mailing list too? Posting an announcement to freshmeat.net is another good way to get the news out there. It's really great to hear that people are using this stuff :) ta, dave -- http://david.holroyd.me.uk/ From dave at badgers-in-foil.co.uk Mon Jul 9 22:35:55 2007 From: dave at badgers-in-foil.co.uk (dave at badgers-in-foil.co.uk) Date: Mon, 09 Jul 2007 22:35:55 +0000 Subject: [metaas-dev] [SVN metaas] mention CairngormFlex on project homepage References: Message-ID: An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070709/8ab95c24/attachment.htm From Richard.Hodges at kuehne-nagel.com Thu Jul 19 07:39:46 2007 From: Richard.Hodges at kuehne-nagel.com (Hodges, Richard) Date: Thu, 19 Jul 2007 08:39:46 +0100 Subject: [metaas-dev] New comment block Message-ID: <7B361321E6507E4FB61DB46C2C71398404D27DF0@csg2kexc06> Hi, Firstly thanks for the great release, it's a really nice and easy interface. We have started to use the library as part of an ANT plug-in which runs as part of our build process to ensure comments are added e.g. /** * TODO: Add your method comments here. * @param value : Object * @return String */ This new comment block is added using the setDescription, setReturnDescription and on ASMethod and getDocumentation to get to the DocComment for addParaTag. The problem I have is that the method signature is present on the same line as the newly generated end comment block tag e.g. /** * TODO: Add your constructor comments here. */public function DateFormatter():void I have had a quick look at the source but without more time to understand a little more about the processing the change I would do in the streaming out method would be a bit of a nasty 'hack'. Could I ask for either guidance or for this to be put of the list of bugs to fix in an up and coming release? Regards, Richard. This email and any attachments are confidential and solely for the use of the intended recipient. They may contain material protected by legal professional or other privilege. If you are not the intended recipient or the person responsible for delivering to the intended recipient, you are not authorised to and must not disclose, copy, distribute or retain this email or its attachments. Although this email and its attachments are believed to be free of any virus or other defect, it is the responsibility of the recipient to ensure that they are virus free and no responsibility is accepted by the company for any loss or damage arising from receipt or use thereof. Kuehne + Nagel Limited. Registered in England and Wales number 1722216. VAT Registration Number GB 864 4409 10. Registered Office: 1 Union Business Park Florence Way Rockingham Road Uxbridge Middlesex UB8 2LS -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070719/45a47177/attachment.htm From dave at badgers-in-foil.co.uk Thu Jul 19 15:36:14 2007 From: dave at badgers-in-foil.co.uk (David Holroyd) Date: Thu, 19 Jul 2007 15:36:14 +0000 Subject: [metaas-dev] New comment block In-Reply-To: <7B361321E6507E4FB61DB46C2C71398404D27DF0@csg2kexc06> References: <7B361321E6507E4FB61DB46C2C71398404D27DF0@csg2kexc06> Message-ID: <20070719153614.GA10840@badgers-in-foil.co.uk> Hi there, On Thu, Jul 19, 2007 at 08:39:46AM +0100, Hodges, Richard wrote: [...] > /** > * TODO: Add your method comments here. > * @param value : Object > * @return String > */ > > > This new comment block is added using the setDescription, > setReturnDescription and on ASMethod and getDocumentation to get to the > DocComment for addParaTag. FYI, you can also use ASMethod#getArgs() and then setDescription() on each resulting ASArg object, if you where using addParaTag to create the @param tags by hand. > The problem I have is that the method signature > is present on the same line as the newly generated end comment block tag > e.g. > > /** > * TODO: Add your constructor comments here. > */public function DateFormatter():void Well, I use this stuff myself and dodn't see that problem. Maybe because I've been adding comments in 'new' .as files, rather than modifying existing ones. Are you doing the code generation on Windows? I suspect there may be some hardcoded *nix-style "\n" line-endings in various places. I'll try to have a look into it soon. ta, dave -- http://david.holroyd.me.uk/ From Leo_Meyerovich at brown.edu Mon Jul 23 20:43:01 2007 From: Leo_Meyerovich at brown.edu (Leo Meyerovich) Date: Mon, 23 Jul 2007 13:43:01 -0700 Subject: [metaas-dev] parse tree manipulation Message-ID: Hiya, I'm trying to prototype some compiler optimizations and linguistic extensions to AS3 and feeling the framework out. I'm running into some behaviour I didn't quite expect and think it is because I don't understand the appropriate way to manipulate tokens :) I would have loved to used the metaas statement manipulators etc., but they don't seem to be very fine grained (particularly, statements instead of ast's mean no cps etc transforms). It's nice enough having all the antlr-overhead done, though :) Anyways, maybe somebody has thoughts on how I'm doing the following incorrectly: 1. dupTree doesn't entirely duplicate a tree: For example, let's say I wanted to copy the type annotation from a var_def identifier on to a method_def. Using setChildWithToken, I can move one to the other, but copying (by using node.dupTree()) throws java.lang.IllegalArgumentException: No startToken: IDENTIFIER at uk.co.badgersinfoil.metaas.impl.antlr.BasicListUpdateDelegate.replacedChild( BasicListUpdateDelegate.java:220) at uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree.setChildWithTokens( LinkedListTree.java:134) Context: //good, not dup'ing the source ((LinkedListTree) getterTemplate.getChild(5)).setChildWithTokens( 0, (LinkedListTree) typeSpec.getChild(0)); //bad, dup'ing the source ((LinkedListTree) getterTemplate.getChild(5)).setChildWithTokens( 0, (LinkedListTree) typeSpec.getChild(0).dupTree()); //context print(getterTemplate): //trying to replace type annotation :* on lines 13-14 :6::: | METHOD_DEF ::[@-1,0:0='METHOD_DEF',<6>,0:-1] :8::: | ANNOTATIONS ::[@-1,0:0='ANNOTATIONS',<8>,0:-1] :9::: | ANNOTATION ::[@-1,0:0='ANNOTATION',<9>,0:-1] :94:: | Bindable ::[@-1,'Bindable',<94>,1:1] :9::: | ANNOTATION ::[@-1,0:0='ANNOTATION',<9>,0:-1] :94:: | Bindable ::[@-1,'Bindable',<94>,5:6] :12:: | MODIFIERS ::[@-1,0:0='MODIFIERS',<12>,0:-1] :95:: | public ::[@-1,'public',<95>,5:16] :64:: | function ::[@-1,'function',<64>,1:11] :65:: | get ::[@-1,'get',<65>,1:20] :94:: | d ::[@-1,'d',<94>,1:24] :16:: | PARAMS ::[@-1,0:0='PARAMS',<16>,0:-1] :18:: | : ::[@-1,0:0=':',<18>,1:29] :91:: | * ::[@-1,'*',<91>,1:31] :19:: | BLOCK ::[@-1,0:0='BLOCK',<19>,0:-1] :69:: | var ::[@-1,'var',<69>,1:35] :94:: | b ::[@-1,'b',<94>,1:39] :18:: | : ::[@-1,0:0=':',<18>,1:41] :48:: | IDENTIFIER ::[@-1,0:0='IDENTIFIER',<48>,0:-1] :94:: | Behaviour ::[@-1,'Behaviour',<94>,1:43] :71:: | = ::[@-1,'=',<71>,1:53] :26:: | METHOD_CALL ::[@-1,0:0='METHOD_CALL',<26>,0:-1] :27:: | PROPERTY_OR_IDENTIFIER ::[@-1,0:0='PROPERTY_OR_IDENTIFIER',<27>,0:-1] :94:: | SignalEngine ::[@-1,'SignalEngine',<94>,1:55] :94:: | binding ::[@-1,'binding',<94>,1:68] :22:: | ARGUMENTS ::[@-1,0:0='ARGUMENTS',<22>,0:-1] :20:: | ELIST ::[@-1,0:0='ELIST',<20>,0:-1] :94:: | this ::[@-1,'this',<94>,1:76] :63:: | 'd' ::[@-1,''d'',<63>,1:82] :75:: | if ::[@-1,'if',<75>,1:89] :21:: | CONDITION ::[@-1,0:0='CONDITION',<21>,0:-1] :141: | ! ::[@-1,'!',<141>,1:93] :94:: | b ::[@-1,'b',<94>,1:94] :19:: | BLOCK ::[@-1,0:0='BLOCK',<19>,0:-1] :23:: | EXPR_STMNT ::[@-1,0:0='EXPR_STMNT',<23>,0:-1] :20:: | ELIST ::[@-1,0:0='ELIST',<20>,0:-1] :94:: | b ::[@-1,'b',<94>,1:101] :71:: | = ::[@-1,'=',<71>,1:103] :152: | new ::[@-1,'new',<152>,1:105] :94:: | EventStream ::[@-1,'EventStream',<94>,1:109] :22:: | ARGUMENTS ::[@-1,0:0='ARGUMENTS',<22>,0:-1] :23:: | EXPR_STMNT ::[@-1,0:0='EXPR_STMNT',<23>,0:-1] :20:: | ELIST ::[@-1,0:0='ELIST',<20>,0:-1] :26:: | METHOD_CALL ::[@-1,0:0='METHOD_CALL',<26>,0:-1] :27:: | PROPERTY_OR_IDENTIFIER ::[@-1,0:0='PROPERTY_OR_IDENTIFIER',<27>,0:-1] :94:: | SignalEngine ::[@-1,'SignalEngine',<94>,1:143] :94:: | bind ::[@-1,'bind',<94>,1:156] :22:: | ARGUMENTS ::[@-1,0:0='ARGUMENTS',<22>,0:-1] :20:: | ELIST ::[@-1,0:0='ELIST',<20>,0:-1] :94:: | this ::[@-1,'this',<94>,1:161] :63:: | 'd' ::[@-1,''d'',<63>,1:167] :94:: | b ::[@-1,'b',<94>,1:172] :77:: | return ::[@-1,'return',<77>,1:180] :27:: | PROPERTY_OR_IDENTIFIER ::[@-1,0:0='PROPERTY_OR_IDENTIFIER',<27>,0:-1] :94:: | b ::[@-1,'b',<94>,1:187] :94:: | currentValue ::[@-1,'currentValue',<94>,1:189] print(typeSpec) //getChild from a VAR_DEF node :18:: | : ::[@-1,0:0=':',<18>,5:31] :48:: | IDENTIFIER ::[@-1,0:0='IDENTIFIER',<48>,0:-1] :94:: | int ::[@-1,'int',<94>,5:33] 2. Sometimes, setting over a child doesn't work, but removing the child and putting in another does. For example, when assigning to a var in a function, let's say I want to replace the rhs (new eventStream()) of one of the getterTemplate variables above: .setChildWithTokens throws java.lang.IllegalArgumentException: No startToken: + at uk.co.badgersinfoil.metaas.impl.antlr.BasicListUpdateDelegate.replacedChild( BasicListUpdateDelegate.java:220) at uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree.setChildWithTokens( LinkedListTree.java:134) //bad ((LinkedListTree)getterTemplate.getChild(6).getChild(1).getChild(1) .getChild(0).getChild(0)) .setChildWithTokens(2, (LinkedListTree)varAssign.getChild(0).dupTree()); but removing the old rhs and then adding the new seems to work: //good LinkedListTree elist = (LinkedListTree) getterTemplate.getChild (6).getChild(1).getChild(1) .getChild(0).getChild(0); elist.deleteChild(2); elist.addChildWithTokens(2, (LinkedListTree) varAssign.getChild(0)); Hopefully there's some magic refresh call I should be calling after these transforms and I don't have to do any character munging. I'm still stuck on copying nodes (problem 1) but randomly permuting code (2) has eventually worked so far. Thoughts? Anyways, very useful project :) Thanks, - Leo -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070723/f519639b/attachment.htm From dave at badgers-in-foil.co.uk Tue Jul 24 21:49:32 2007 From: dave at badgers-in-foil.co.uk (David Holroyd) Date: Tue, 24 Jul 2007 21:49:32 +0000 Subject: [metaas-dev] New comment block In-Reply-To: <20070719153614.GA10840@badgers-in-foil.co.uk> References: <7B361321E6507E4FB61DB46C2C71398404D27DF0@csg2kexc06> <20070719153614.GA10840@badgers-in-foil.co.uk> Message-ID: <20070724214932.GA31480@badgers-in-foil.co.uk> On Thu, Jul 19, 2007 at 03:36:14PM +0000, David Holroyd wrote: > > The problem I have is that the method signature > > is present on the same line as the newly generated end comment block tag > > e.g. > > > > /** > > * TODO: Add your constructor comments here. > > */public function DateFormatter():void > > Well, I use this stuff myself and dodn't see that problem. Maybe > because I've been adding comments in 'new' .as files, rather than > modifying existing ones. So I have made a testcase which demonstrates the problem; it does seem to happen when attempting to modify a parsed file, while for code generated from scratch, adding comments looks ok. Next is the tricky part... -- http://david.holroyd.me.uk/ From dave at badgers-in-foil.co.uk Wed Jul 25 10:19:24 2007 From: dave at badgers-in-foil.co.uk (David Holroyd) Date: Wed, 25 Jul 2007 10:19:24 +0000 Subject: [metaas-dev] parse tree manipulation In-Reply-To: References: Message-ID: <20070725101924.GA7314@badgers-in-foil.co.uk> Hi there, On Mon, Jul 23, 2007 at 01:43:01PM -0700, Leo Meyerovich wrote: > I'm trying to prototype some compiler optimizations and linguistic > extensions to AS3 and feeling the framework out. I'm running into some > behaviour I didn't quite expect and think it is because I don't understand > the appropriate way to manipulate tokens :) I would have loved to used the > metaas statement manipulators etc., but they don't seem to be very fine > grained (particularly, statements instead of ast's mean no cps etc > transforms). It's nice enough having all the antlr-overhead done, though :) I'm not familiar with CPS transforms; what are they good for? Are you adding tail-call optimisation to AS3 or something like that? FYI, I did make a start at exposing expression-level stuff in the hand-crafted DOM interfaces (there should be some of this in Subversion) but lately I've been spending most of my hack-time on projects built on top of metaas, rather than on metaas itself. > Anyways, maybe somebody has thoughts on how I'm doing the following > incorrectly: > > 1. dupTree doesn't entirely duplicate a tree: > > For example, let's say I wanted to copy the type annotation from a var_def > identifier on to a method_def. Using setChildWithToken, I can move one to > the other, but copying (by using node.dupTree()) throws > > java.lang.IllegalArgumentException: No startToken: IDENTIFIER > at > uk.co.badgersinfoil.metaas.impl.antlr.BasicListUpdateDelegate.replacedChild( > BasicListUpdateDelegate.java:220) > at > uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree.setChildWithTokens( > LinkedListTree.java:134) > > Context: > > //good, not dup'ing the source > ((LinkedListTree) getterTemplate.getChild(5)).setChildWithTokens( > 0, (LinkedListTree) typeSpec.getChild(0)); > //bad, dup'ing the source > ((LinkedListTree) getterTemplate.getChild(5)).setChildWithTokens( > 0, (LinkedListTree) typeSpec.getChild(0).dupTree()); Yep. Support for this is simply not implemented yet. LinkedListTree probably needs to supply its own implementation of dupTree() to duplicate all the subclass-specific state. The fiddly bit will be duplicating the relevant sub-segment of the token-linked-list, and then assigning the correct start/stop tokens in the duplicate tree nodes. > 2. Sometimes, setting over a child doesn't work, but removing the child and > putting in another does. > > For example, when assigning to a var in a function, let's say I want to > replace the rhs (new eventStream()) of one of the getterTemplate variables > above: > > .setChildWithTokens throws > > java.lang.IllegalArgumentException: No startToken: + > at > uk.co.badgersinfoil.metaas.impl.antlr.BasicListUpdateDelegate.replacedChild( > BasicListUpdateDelegate.java:220) > at > uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree.setChildWithTokens( > LinkedListTree.java:134) > > //bad > ((LinkedListTree)getterTemplate.getChild(6).getChild(1).getChild(1) > .getChild(0).getChild(0)) > .setChildWithTokens(2, > (LinkedListTree)varAssign.getChild(0).dupTree()); > > but removing the old rhs and then adding the new seems to work: > > //good > LinkedListTree elist = > (LinkedListTree) getterTemplate.getChild > (6).getChild(1).getChild(1) > .getChild(0).getChild(0); > elist.deleteChild(2); > elist.addChildWithTokens(2, (LinkedListTree) varAssign.getChild(0)); > > Hopefully there's some magic refresh call I should be calling after these > transforms and I don't have to do any character munging. I'm still stuck on > copying nodes (problem 1) but randomly permuting code (2) has eventually > worked so far. Thoughts? In the cases where the manipulation doesn't fail, does the code look 'sane' when serialised back to text again? If you're using dupTree() I would expect it to be quite broken. All the code which maintains the token-linked-list as the AST is manipulated is *incredibly* hairy! I'm not really surprised that it breaks when you try to work the AST directly :( metaas only works because it has lots of unit tests :) So, it would be really helpful if you could send some simplified unit tests that demonstrate these problems. I can then work to make the tests pass. Thanks for taking the time to dig into these issues, and letting me know about them! dave -- http://david.holroyd.me.uk/ From lmeyerov at gmail.com Wed Jul 25 17:33:49 2007 From: lmeyerov at gmail.com (Leo Meyerovich) Date: Wed, 25 Jul 2007 10:33:49 -0700 Subject: [metaas-dev] parse tree manipulation In-Reply-To: <20070725101924.GA7314@badgers-in-foil.co.uk> References: <20070725101924.GA7314@badgers-in-foil.co.uk> Message-ID: > I'm not familiar with CPS transforms; what are they good for? Are you > adding tail-call optimisation to AS3 or something like that? Yes, or user-level threading, etc (see narrative js). FYI, I did make a start at exposing expression-level stuff in the > hand-crafted DOM interfaces (there should be some of this in Subversion) > but lately I've been spending most of my hack-time on projects built on > top of metaas, rather than on metaas itself. Any tips at what to look at? My basic, exact scenario is that I want to add some function applications throughout expressions, like a * b + 3 => f(plus, f(time, a, b), 3) I would have done it at the antlr level, but I want to do some optimizations and deal with shadowed variables etc in special ways. > Yep. Support for this is simply not implemented yet. LinkedListTree > probably needs to supply its own implementation of dupTree() to > duplicate all the subclass-specific state. The fiddly bit will be > duplicating the relevant sub-segment of the token-linked-list, and then > assigning the correct start/stop tokens in the duplicate tree nodes. Yeah, as I've slowly realized what's going on underneath :) In the cases where the manipulation doesn't fail, does the code look > 'sane' when serialised back to text again? If you're using dupTree() I > would expect it to be quite broken. Most of the time (if I encounter them again, I'll let you know). So, it would be really helpful if you could send some simplified > unit tests that demonstrate these problems. I can then work to make the > tests pass. When I encounter more, I'll try. For anyone else on the list, what I ended up doing for particularly hairy bits of my visitor so far is writing a function astToString, and writing the ast I wanted the subtree to be transformed into as a string with the original subtree being transformed using that function. I'd then run the string through the fragment parser and return the generated ast for reinsertion (which needs lots of testing). The main trick is writing astToString (reuse the tree printer internals, except you need to temporarily disconnect a subtree from a parent if it is connected to get the tokens right, and swap it back in after - I checked if the parent = parent.parent, and swapped in a dummy node temporarily if so in order to not disturb tokens). - Leo -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070725/5fdac2a7/attachment.htm From dave at badgers-in-foil.co.uk Fri Jul 27 19:14:37 2007 From: dave at badgers-in-foil.co.uk (dave at badgers-in-foil.co.uk) Date: Fri, 27 Jul 2007 19:14:37 +0000 Subject: [metaas-dev] [SVN metaas] Do the placeholder()-dance for ANNOTATIONS AST nodes. References: Message-ID: An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070727/2cb2df42/attachment.htm From dave at badgers-in-foil.co.uk Fri Jul 27 19:16:21 2007 From: dave at badgers-in-foil.co.uk (dave at badgers-in-foil.co.uk) Date: Fri, 27 Jul 2007 19:16:21 +0000 Subject: [metaas-dev] [SVN metaas] further sanity check for the given AST structure References: Message-ID: An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070727/d1195810/attachment.htm From dave at badgers-in-foil.co.uk Mon Jul 30 23:22:23 2007 From: dave at badgers-in-foil.co.uk (dave at badgers-in-foil.co.uk) Date: Mon, 30 Jul 2007 23:22:23 +0000 Subject: [metaas-dev] [SVN metaas] also use a placeholder for MODIFIERS if needed References: Message-ID: An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070730/2f683439/attachment.htm From dave at badgers-in-foil.co.uk Mon Jul 30 23:36:11 2007 From: dave at badgers-in-foil.co.uk (dave at badgers-in-foil.co.uk) Date: Mon, 30 Jul 2007 23:36:11 +0000 Subject: [metaas-dev] [SVN metaas] Checks to show up synthesised ASTs which don't match the ASTs built by the parser for the same code. References: Message-ID: An HTML attachment was scrubbed... URL: http://lists.badgers-in-foil.co.uk/pipermail/metaas-dev/attachments/20070730/66ddba15/attachment.htm