0

我正在尝试修改 fortran 主要模式以使用同事编写的预处理器。预处理器指令都以“。”为前缀。

例如:

.set

.macro

类似于 C 的功能#define

到目前为止,我有:

(font-lock-add-keywords 'fortran-mode
 '(("\\<\\(set\\|macro\\|endmacro\\)\\>" . font-lock-preprocessor-face)))

不幸的是,这并没有突出显示“。” 这是可取的。此外,模式应该只在它出现在行首时才匹配。我试过了:

(font-lock-add-keywords 'fortran-mode
 '(("\\<\\(^\.set\\|^\.macro\\|^\.endmacro\\)\\>" . font-lock-preprocessor-face)))

但这没有用。

任何有关如何进行此正则表达式匹配的帮助将不胜感激。

4

2 回答 2

0

您应该\\.使用^\.. 双斜杠转义了反斜杠的特殊含义,创建了字符串\.,而^后者中的 the 没有特殊含义。

于 2011-12-13T17:16:09.840 回答
0

尝试这个:"^\\s-*\\.\\(set\\|macro\\|endmacro\\)\\>"

于 2011-12-13T18:23:50.793 回答