代码之家  ›  专栏  ›  技术社区  ›  Dave Kirby

用于CORBA IDL的CTAG发生器?

  •  3
  • Dave Kirby  · 技术社区  · 15 年前

    我在多语言环境中工作,并使用VIM+CTags导航代码。但是,我们也使用CORBA,并且繁荣的CTags不解析IDL文件。

    有人知道用于IDL的CTAG兼容标签生成器吗?

    2 回复  |  直到 13 年前
        1
  •  5
  •   Blake7    15 年前

    如果您使用一个简单的regexp解析器,那么扩展繁荣的ctags以支持另一种语言是一个相当简单的练习。

    例如,下面是从 Exuberant Ctags 解析器页面:

    /***************************************************************************
     * make.c
     * Regex-based parser for makefile macros
     **************************************************************************/
    /* INCLUDE FILES */
    #include "general.h"    /* always include first */
    #include "parse.h"      /* always include */
    
    /* FUNCTION DEFINITIONS */
    
    static void installMakefileRegex (const langType language)
    {
        addTagRegex (language, "(^|[ \t])([A-Z0-9_]+)[ \t]*:?=", "\\2", "m,macro", "i");
    }
    
    /* Create parser definition stucture */
    extern parserDefinition* MakefileParser (void)
    {
        static const char *const patterns [] = { "[Mm]akefile", NULL };
        static const char *const extensions [] = { "mak", NULL };
        parserDefinition* const def = parserNew ("Makefile");
        def->patterns   = patterns;
        def->extensions = extensions;
        def->initialize = installMakefileRegex;
        def->regex      = TRUE;
        return def;
    }
    
        2
  •  2
  •   veight    13 年前

    这很容易 add another language 使用一些正则表达式和ctags配置文件将其转换为ctags。