如何为程序集扩展编写 .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
我正在使用 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