我正在尝试为 ARM 汇编创建一个listings
语言定义,并且许多指令都有前缀/后缀(即 BGT、BLE、BNE、BEQ 分支指令)。
有没有办法将 B 定义为关键字,并使用任何后缀?还是我必须在关键字列表中添加所有前缀/后缀/指令的组合?
答案1
您可以使用keywordsprefix=<prefix>
来指定以 开头的任何内容都 <prefix>
被视为关键字。下面的 MWE 用B
蓝色突出显示以 开头的任何单词,但不改变其他文本:
然而您应该注意列表文档中的以下限制:
前缀始终区分大小写。
一次只能定义一个前缀。
如果在语言定义之外独立使用,则该键可能仅在选择非空语言后才起作用(并在必要时切换回空语言)。
该键不尊重其值
classoffset
并且没有可选的类参数。
\documentclass{article}
\usepackage{listings}%
\usepackage{xcolor}
\lstset{%
backgroundcolor=\color{yellow!20},%
basicstyle=\small\ttfamily,%
numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=5pt,%
keywordstyle=\color{blue}\bfseries,
language=Java,
keywordsprefix=B,
}%
\begin{document}
\begin{lstlisting}
ABC BGT DEF
BLE XYZ MWS
BNE DNW QES
ABN BEQ MWE
\end{lstlisting}
\end{document}
答案2
我也在寻找ARM 汇编程序我想到了一个办法,那就是建立所有关键词的(庞大的)列表。
结果(包括生成关键字的 Python 脚本)如下:github。