lab 100 - limbo tags
I've been playing more with exuberant ctags. It's possible to make ctags recognize limbo source code using regular expressions to identify symbols we want tagged.
Here's a command I defined called ltags. It will search for functions, assuming the function name is not preceded by spaces, and, more reliably, find adt and module definitions:
#!/dis/sh os -t ( /n/D/ctags57/ctags.exe -n '--tag-relative=yes' '--langdef=limbo' '--langmap=limbo:.b.m' '--regex-limbo=/^([a-zA-Z][a-zA-Z0-9]+)\(.*\)/\1/m/' '--regex-limbo=/([a-zA-Z][a-zA-Z0-9]+) *: *adt */\1/t/' '--regex-limbo=/([a-zA-Z][a-zA-Z0-9]+) *: *module */\1/c/' $* )
Try running it under /, and use relative path names:
% cd / % ltags -R appl module
And open the acme client
I added a command "Tag" to the Ctag program that will find and print all matching symbols to the name given as argument. Mouse-chording makes this nice to use. Right-clicking on symbol names will open the source file at that location. Browsing the whole limbo source hierarchy is then made quite easy.