Ctags has great support for custom languange definitions. It just needs a regex in a config file.
Example:
--langdef=swine
--langmap=swine:.swn
--regex-swine=/^def[ t]*([a-zA-Z0-9_]+)/1/d,definition/
It just needs to be compiled with regex support:
Instructions
The current ctags.exe distributed with the recently emailed devel version of pn2 doesn't have regex support compiled in.
Then, all that needs to be done is to move the list of taggable schemes to an external file (maybe the .scheme files?) and you'd be able to completely define a custom language with schemes and tagging using just a .schemedef and a ctags.cnf.
The list of taggable schemes is currently in ctagsnavigator.cpp in the function PNFPGetSchemesSupported on line 70.
Does tagging custom languages seem useful to anyone else?