Re: [abc-users] Why abc.ja.eaj Extension Never Gets the List of Passes Through 'passes()' Method Defined in Class 'ExtensionInfo'?

From: Eric Bodden <>
Date: Mon, 16 Mar 2009 16:45:11 -0400

Hi Nathan/Meisam.

I am not an expert in this, but I strongly believe that the reason for
why the CompileSequence in abc.ja.eaj does not call
ExtensionInfo.passes(...) is that JastAdd has no explicit notion of
passes. Your AST is evaluated via attributes, and rewritten via
conditional rewrites, however there are usually no different passes
which the AST goes through. Hence, calling passes(..) would not really
make any sense in this setting.


2009/3/16 Nathan Weston <>:
> Hello everyone,
> I was wondering if Meisam (or anyone else!) knows of the answer to this
> dilemma?  It's the same one I'm having at the moment.
> Many thanks,
> Nathan
> Meisam Fathi wrote:
>> I had was developing an extension based on abc.eaj when I decided to
>> switch to abc.ja.eaj. In my extension, I had some visitors, and I
>> overrode ExtensionInfo.passes() method so that its return value
>> contained my desired passes as well as the default passes. My extension
>> was working (almost) properly and everything was fine except the fact
>> that it was not able to compile Java 5 code. So I decided to switch to
>> abc,ja.eaj. But I realized that this extension doesn't call
>> ExtensionInfo.passes() method to obtain the list of passes. In abc.eaj
>> this method is invoked in CompileSequence class when a program is being
>> compiled. I'm wondering if I should write my own CompileSequence class
>> to make my passes being executed during compilation. The CompileSequence
>> class is cumbersome, esp. its compile method contains a lot of code.
>> Keeping the extendibility goals of abc in mind, developing a new
>> CompileSequence class doesn't make scene.

Eric Bodden
Sable Research Group, McGill University
Montréal, Québec, Canada
Received on Mon Mar 16 2009 - 20:45:16 GMT

This archive was generated by hypermail 2.2.0 : Wed Mar 18 2009 - 09:20:12 GMT