如何为程序集扩展编写 .ctags 文件?

How to write .ctags file for assembly extention?

我正在使用 exuberant ctag 程序进行标记。
我看到 ctags use for Assembler 但不能完全理解那里的 link。因此,与我对系统 verilog 的扩展相比,我添加了这些行进行汇编,(我只需要解析 ENTRY 来进行宏定义),我在下面添加到 .ctags 文件中。

--langdef=assembly
--langmap=assembly:.S
--regex-assembly=/^ENTRY(([a-zA-Z_0-9]+))$//m,macro/

示例程序集文件(debug.S)是这样的:

ENTRY(printch)
        addruart_current r3, r1, r2
        mov r1, r0
        mov r0, #0
        b   1b
ENDPROC(printch)

但是我在标签文件中找不到printch。 .ctags 文件有什么问题?

您不必定义新语言。 ctags 有 Asm 解析器。 扩展解析器就足够了。 看看我如何使用反斜杠字符。

$ cat /tmp/debug.S
ENTRY(printch)
        addruart_current r3, r1, r2
        mov r1, r0
        mov r0, #0
        b   1b
ENDPROC(printch)
$ ctags --regex-Asm='/^ENTRY\(([a-zA-Z_0-9]+)\)$//m,macro/'  -o - /tmp/debug.S
printch /tmp/debug.S    /^ENTRY(printch)$/;"    m