> has anybody tried to modify vtcl in order to generate Perl/Tk code?
> Which vtcl script files have to be modified ?
Here is what I wrote before. I don't think the situation has changed much:
Porting specTcl to perl/Tk was comparatively easy because specTcl compiles
into an IR (intermediate representaion), from which several backends,
such as Tck/Tk, java, perl/Tk, and more recently python, could generated.
Thus all I had to do was create an IR->perl/Tk converter and muck around
a little with the specTcl UI to accept perl variables, etc. As I
understand it, and please correct me if I am mistaken, vtcl projects are
stored in native Tcl/Tk and may even use the same code for both storage
and display in vtcl. I suspect one may have to do a good deal of
modification in many different files to generate perl/Tk code in vtcl and
keep the perl code synchronized with the tcl code. There are some aspects,
such as composite widgets, that would be even trickier to handle. As I see
it, there are four possible roads to creating "vperl":
1) Modify many of the vtcl modules to generate perl code in parallel with
tcl code, possibly forgo niceties like composite widgets. This might be
difficult to maintain, as perl code would be distributed and deeply
intertwined in the tcl code.
2) Use the specTcl model: modify vtcl to gereate an IR and create tcl
and perl backends for it. With some extensions, the specTcl IR could
probably do the trick.
3) Leave vtcl unchanged and a create program to covert the generated tcl
code to perl. We need a good tcl2perl porgram :)
4) The most ambitious, but perhaps most rewarding, approach would be to
rewrtie vtcl in perl. Then all the code would be native, the UI would
be guaranteed WYSIWYG and there would be no translation subtleties.
I've started on 4), but haven't gotten far yet.
-Mark
---------------------------------------------------------------------------
To unsubscribe from the Visual Tcl mailing list, please send a message
to [EMAIL PROTECTED] with "unsubscribe vtcl [EMAIL PROTECTED]" in the
message body (where [EMAIL PROTECTED] is your e-mail address).