Dear list,
having solved the trouble with shared libraries, I wrote some
"constructor" functions in Jolt to be able to build muy objects more
conveniently (i.e., avoiding the talkative keyword message syntax).
They look like this, for example:
(TYPE '23)
(assuming that TYPE is some type parameterised with a number) with
this implementation:
(syntax TYPE (lambda (node compiler) `[MyType with: ,[node at: '1]]))
This works fine unless I want to build a list of such "tagged type
constructions". What I would like to have is a LIST syntax definition
that accepts an arbitrary number of type constructor applications and
effectively returns an AST with all the expanded type constructions.
(LIST (TYPE '23) (TYPE '42))
Another usage example: (ANOTHER-TYPE (LIST (TYPE '23) (TYPE '42)))
My initial thought was that quasiquotation would help. I've been
experimenting like mad but could not come up with a solution. Here's
the (non-working) quasiquotation thing:
(syntax LIST (lambda (node compiler)
`[OrderedCollection withAll: ,@[node copyFrom: '1]]))
The trouble seems to be that ,@ expands all collection items in place,
instead of providing a collection again. #withAll:, however, obviously
expects a collection.
How should the syntax definition look?
Best,
Michael
--
Dr.-Ing. Michael Haupt [email protected]
Software Architecture Group Phone: ++49 (0) 331-5509-542
Hasso Plattner Institute for Fax: ++49 (0) 331-5509-229
Software Systems Engineering http://www.hpi.uni-potsdam.de/swa/
Prof.-Dr.-Helmert-Str. 2-3, D-14482 Potsdam, Germany
Hasso-Plattner-Institut für Softwaresystemtechnik GmbH, Potsdam
Amtsgericht Potsdam, HRB 12184
Geschäftsführung: Prof. Dr. Christoph Meinel
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc