From: Colin M. <co...@ch...> - 2011-05-08 00:56:39
|
I haven't been following closely, but I noticed 'tcl parsing' and wanted to point out http://wiki.tcl.tk/9620 and also and especially http://wiki.tcl.tk/9649 (which I use and find very good.) Colin. On 07/05/11 22:39, Arnulf Wiedemann wrote: > Hello Michal, > I am happy that you make progress in understanding Tcl :) > > I also tried to use antlr for another project for parsing Tcl syntax, > but I gave up soon, as I could not setup the antlr environment. I am > pretty sure, you can do better there, as you understand java and the > build process there. > > One remark in that direction, think about the following, if that makes > sense to you: > > - what about using a tclsh for lexer/parser of the Tcl syntax, as Tcl is > mostly built on commands, normal lexing and parsing using parser tools > often makes problems. I made the same experience (parsing Tcl syntax) > when working on my itcl in Javascript project. > The parsing rules are exactly described in the dodekalogue > http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm > > - when using Tcl for parsing, you can use "info complete" command of Tcl > and http://wiki.tcl.tk/cmdSplit it should be possible to do most of the > parsing you need using those two (if you have problems understanding > these please let me know). I have a partially ready part, which also > saves comments etc. in my itclng project: > http://itclng.svn.sourceforge.net/viewvc/itclng/itclng/library/ > and in there mostly itclngDoc.tcl and itclngMember.tcl (these understand > normal Tcl and itcl Syntax and can be easily enhanced to understand > TclOO syntax). > > - and after that use some java part for setting up the editing environment. > > - for communication of the parser with Tcl you could use a similar > solution with ProcessBuilder > > Please let me know, what you think about that. > > Arnulf > > Am 07.05.2011 12:14, schrieb dmp: >> Hello Arnulf, >> >> Thanks for informations. Learning Tcl going fine, mostly thanks to Tcl >> tutorial: http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html If >> any problem appears, I'll tell you :) >> >> To update Netbeans part: I'll use Antlr lexer, because JavaCC solution >> (Generic Language Support) is marked as deprecated now. >> >> Thanks, >> Michal >> >> On 6 May 2011 09:01, Arnulf Wiedemann<ar...@wi...> wrote: >>> Hello Michal, >>> great to hear, you are making progress :) >>> >>> as Gerald already mentioned, license should be BSD. >>> as Jeff already mentioned: the lexer needs the core keywords, (I have >>> looked already into the sources) and you should add the itcl and TclOO >>> keywords too like method, class etc. If you provide a list of keywords >>> and the types thereof (command, comment, variable etc.), I will have a >>> look and add the ones, which I think should be used too. >>> >>> To start, you can use a tclsh and directly after starting type in: >>> join [lsort [info command]] \n >>> >>> For itcl you can find these here: >>> http://wiki.tcl.tk/itcl >>> http://wiki.tcl.tk/itcl-ng >>> >>> And for TclOO you can find info here: >>> http://wiki.tcl.tk/TclOO >>> >>> As a general rule: Tcl wiki can answer a lot of questions :) >>> >>> I also agree on starting from scratch because of license problems >>> (should be not so much a problem I think, also in terms of time) >>> >>> How are you doing in learning Tcl? If there are questions in that >>> direction, please let me know. >>> >>> Arnulf >>> >>> Am 05.05.2011 23:21, schrieb dmp: >>>> Hello Arnulf, >>>> >>>> I've checked Tcl plugin already available and its lexer to provide >>>> syntax hilight. >>>> >>>> Short tutorial to reproduce: >>>> $ wget http://dlc.sun.com.edgesuite.net/netbeans/updates/6.9/uc/m1/dev/modules/extra/org-netbeans-modules-languages-tcl.nbm >>>> $ unzip org-netbeans-modules-languages-tcl.nbm >>>> $ cd netbeans/modules >>>> $ unzip org-netbeans-modules-languages-tcl.jar >>>> $ cd org/netbeans/modules/languages/tcl >>>> and there is TCL.nbs file - it contains lexer. >>>> >>>> I've got question about license, there are some restriction for this >>>> file. I pasted its license header here: http://wklej.org/id/524675/ >>>> (for other readers). >>>> >>>> Due possible restrictions I will prefer to write own version from >>>> scratch, It shouldn't be difficult to collect all Tcl keywords and >>>> prepare similar solution. And here comes my question: Which licence I >>>> should use for every project file? As far as I know, It depends on >>>> mentor and organization :) >>>> >>>> Thanks, >>>> Michal >>>> >>>> >>>> On 8 April 2011 14:16, dmp<dmp...@gm...> wrote: >>>>> Hello Tcl Community, >>>>> >>>>> Currently students posting here informations about their proposals. >>>>> I've submited my application, too. :) >>>>> >>>>> Thanks, >>>>> Michal >>>>> >>>>> On 2 April 2011 15:37, Arnulf Wiedemann<ar...@wi...> wrote: >>>>>> Hello Michal, >>>>>> see my comments below. >>>>>> >>>>>> Arulf >>>>>> >>>>>> Am 02.04.2011 12:32, schrieb dmp: >>>>>>> Hello Arnulf, >>>>>>> >>>>>>> I've tried code. Of course works here, too. >>>>>>> >>>>>>> Time to consider using JTCL. I agree with your idea to write >>>>>>> debugscript.tcl using JTCL. It may be better solution. Also >>>>>>> opportunity to make JTCL more popular. Probably there should also be >>>>>>> prepared separate JTCL plugin for netbeans like jython did it. >>>>>> I had a similar idea. >>>>>> for people who can live with tcl 8.4 and Itcl 3.3 (annotation from me: I >>>>>> did not know that itcl is running in JTCL, so my fault to say it is not >>>>>> existent) make a netbeans plugin and JTCL directly drive tcl 8.4 when >>>>>> debugging from netbeans. For those who want to use tcl.8.5 with itcl 3.4 >>>>>> or tcl8.6 with itcl 4.0 use JTCl as the interface and use Lars's Hubs >>>>>> for communication (that will also allow remote debugging, if I have >>>>>> understood correctly). >>>>>> >>>>>> Best would be to use the same mechanism/interface in both cases when >>>>>> using hubs started from JTCL for "not integrated" and using some tcl >>>>>> script running directly in JTCL in the other case. >>>>>> >>>>>> I am also happy, if that helps JTCL as a side effect. >>>>>> >>>>>> >>>>>>> Thank you very much Lars. It'll be helpfull. >>>>>>> >>>>>>> Thanks, >>>>>>> Michal >>>>>>> >>>>>>> 2011/4/1 Arnulf Wiedemann<ar...@wi...>: >>>>>>>> Hello Lars, >>>>>>>> great!! and excellent work! >>>>>>>> >>>>>>>> I extracted the code with: http://wiki.tcl.tk/28182.code >>>>>>>> >>>>>>>> @Michal: extracting code from Tcl wiki pages can be done like so: >>>>>>>> http://wiki.tcl.tk/28182.code >>>>>>>> >>>>>>>> did comment out the first block and ran it with a tclsh8.5 starting a >>>>>>>> tclsh8.6. >>>>>>>> It worked perfect! >>>>>>>> >>>>>>>>> tclsh8.5 >>>>>>>> % source hubs.tcl >>>>>>>> % hubs::interp::local_spawn my -prog tclsh8.6 -shake 1 >>>>>>>> Hello, I'm linux-19x1.site 8742 /home/arnulf/bin/tclsh8.6 8.6b1.2 >>>>>>>> ::my::slave >>>>>>>> % ::my::slave eval {package require Itcl} >>>>>>>> 4.0b5 >>>>>>>> % >>>>>>>> >>>>>>>> I am pretty sure, we will use that in the project. >>>>>>>> And thanks for providing all the wiki entries. >>>>>>>> >>>>>>>> Arnulf >>>>>>>> >>>>>>>> Am 01.04.2011 18:19, schrieb Lars Hellström: >>>>>>>>> Arnulf Wiedemann skrev 2011-04-01 09.04: >>>>>>>>>>> Hello Miachal, >>>>>>>>>>> sounds good from my point of view too. I agree on all what you have >>>>>>>>>>> written down. Did not have to much time to think about it, as payed work >>>>>>>>>>> is waiting. >>>>>>>>>>> >>>>>>>>>>> I would say: go ahead in that direction and let us see what Lars is >>>>>>>>>>> answering, because I am interested on how he is doing that in detail, >>>>>>>>>>> for learning how we can use a modified part in our project. >>>>>>>>> The code I mentioned can now be found at http://wiki.tcl.tk/28182. >>>>>>>>> >>>>>>>>> Useful reading is also http://abel.math.umu.se/~lars/tcl/hubs.pdf, but >>>>>>>>> bear in mind that the scope of the problem that it set out to address is >>>>>>>>> somewhat larger than just controlling a child tclsh, so there are a lot of >>>>>>>>> issues considered that you're probably not so interested in. >>>>>>>>> >>>>>>>>> For a first experiment, you might want to try something like the following: >>>>>>>>> >>>>>>>>> % hubs::interp::local_spawn my -prog tclsh8.4 -shake 1 >>>>>>>>> Hello, I'm nova.local 19741 /usr/bin/tclsh8.4 8.4.19 >>>>>>>>> ::my::slave >>>>>>>>> % ::my::slave eval {array get tcl_platform} >>>>>>>>> osVersion 10.6.0 byteOrder littleEndian tip,268 1 threaded 1 machine i386 >>>>>>>>> platform unix os Darwin tip,280 1 user lars wordSize 4 >>>>>>>>> % exec ps -p 19741 >>>>>>>>> PID TT STAT TIME COMMAND >>>>>>>>> 19741 ?? S 0:00.10 tclsh8.4 >>>>>>>>> % ::my::slave exit >>>>>>>>> % exec ps -p 19741 >>>>>>>>> Error: PID TT STAT TIME COMMAND >>>>>>>>> child process exited abnormally >>>>>>>>> % >>>>>>>>> >>>>>>>>> (ps exits with a nonzero status, since the process 19741 wasn't around >>>>>>>>> anymore.) >>>>>>>>> >>>>>>>>> Lars Hellström |