在 Emacs 中的 Verilog 文件中嵌入 Python 代码

Embed Python code in Verilog file in Emacs

我正在做一个项目,我需要将 Python 嵌入到 Verilog 文件中。 Python 并非真正用于正常意义上的执行,因为它将由辅助工具读取。 Python 将被写入具有一些固定分界的块(例如 #+BEGIN_SRC,在 org-babel 中)。

module name ();

#+BEGIN_SRC python
def my_function ():
    ...
#+END_SRC

always @(posedge clk)
    ...
endmodule

在 Emacs 中,这会造成严重破坏,尽管 Python-mode 和 Verilog-mode 工作正常,当将两者组合在同一个文件中时,事情会像预期的那样迅速崩溃。缩进和语法高亮都被无可救药地破坏了。我知道这是一件非常奇怪的事情,而且我知道在正常情况下几乎肯定没有任何真正需要这样做,但是对于这种特殊情况,这是必要的。

我的问题:Emacs 中是否有在同一个文件中指定多个主要模式的方法。例如,有没有什么方法可以让我使用 Verilog 模式作为主要模式编写文件,但在预定义块中使用 Python-模式,然后在文件重置时忽略这些模式。

这里列出了多种可能性:

http://emacswiki.org/emacs/MultipleModes

我已经使用了 latex 和 haskell 的多模式,并且工作正常。