in the Octave compiler I use concrete syntax which can be exploded (WithAnno in meta-explode) to some term with annotations.

if I use … !|[ f(a*) ]| {UNIVERSAL} … where |[ … ]| can be a StrategoTerm, it does not compile, as only a StrategoPreTerm can have an annotation. If I set that the quotation |[ … ]| can be a StrategoPreTerm than I get lots of format-check errors, mostly of this form:

error: cannot type NoAnnoList(NoAnnoList(Op(“SCALAR”,[NoAnnoList(Op(“BOOL”,[]))])))
inferred types of subterms:
typed NoAnnoList(Op(“SCALAR”,[NoAnnoList(Op(“BOOL”,[]))])) as Term

This is because we should not have annotations on a StrategoPreTerm I guess, so probably meta-explode has to be adapted or we should allow some kind of flattening on these ‘meta-explode generated’ annotations.

Submitted on 5 July 2005 at 12:18

On 9 January 2013 at 16:55 Eelco Visser removed tag 0.21

On 9 January 2013 at 16:55 Eelco Visser tagged interesting

Log in to post comments