仅当关键字周围有空格时才突出显示

仅当关键字周围有空格时才突出显示

我对语言的定义如下:

\lstdefinelanguage{Z80}{
  sensitive = true,
  keywords={a, hl, h, l, b, c, e, ix, sp, bc, af, d},
  keywords = [2]{push, ld, and, pop, ret, sra, call, sla,
  cp, jp, sub, inc, require, or, out, in, dec, add, cpl, jr, z, nz, bit, ccf, scf},
  keywords = [3]{.include, .end, .text, equ, .data, db},
  alsoletter={.},
  keywordstyle=\color{red}\bfseries,
  keywordstyle=[2]{\color{blue}\bfseries}, 
  keywordstyle=[3]{\color{dkred}\bfseries},
  numbers=left,
  numberstyle=\scriptsize,
  stepnumber=1,
  numbersep=8pt,
  showstringspaces=false,
  breaklines=true,
  frame=tb,
  comment=[l]{;},
  morecomment=[s]{/*}{*/},
  commentstyle=\bfseries\color{dkgreen}\ttfamily,
  stringstyle=\color{dkred}\ttfamily,
  morestring=[b]',
  morestring=[b]",
  basicstyle={\small\ttfamily},
  backgroundcolor=\color{white}
}

问题是,在我想要突出显示的代码的某些部分中,有一些十进制数字后面跟着一个“d”,这是一个关键字。例如,数字 9 写为:“9d”。因此,列表突出显示了“d”,尽管在这种情况下它不应该突出显示。

我是个新手,所以我不明白为什么在这种情况下它会突出显示“d”,而不会突出显示其他单词中也是关键字的其他字母(比如“a”)。

例子:

“a” 在单词“entradaDATA”中未突出显示,但“d” 在“0d”中突出显示

答案1

我通过执行以下操作解决了这个问题:

alsoletter={. 0 1 2 3 4 5 6 7 8 9},

希望这对某人有帮助。

相关内容