summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Giordani <giordani.leonardo@gmail.com>2018-05-28 14:44:25 +0100
committerGeorg Brandl <georg@python.org>2019-11-28 06:56:41 +0100
commit39db9a633156e9e0f5e8398340f17c3bdd161d57 (patch)
tree26b2d2157cb18d941efbe62d200aff6b675c9c03
parent6a926bbf949a5f85f8fb13098a138e7c96260e13 (diff)
downloadpygments-git-39db9a633156e9e0f5e8398340f17c3bdd161d57.tar.gz
Added M68kLexer
-rw-r--r--pygments/lexers/asm.py59
1 files changed, 58 insertions, 1 deletions
diff --git a/pygments/lexers/asm.py b/pygments/lexers/asm.py
index 32ac9361..f288be78 100644
--- a/pygments/lexers/asm.py
+++ b/pygments/lexers/asm.py
@@ -20,7 +20,8 @@ from pygments.token import Text, Name, Number, String, Comment, Punctuation, \
__all__ = ['GasLexer', 'ObjdumpLexer', 'DObjdumpLexer', 'CppObjdumpLexer',
'CObjdumpLexer', 'HsailLexer', 'LlvmLexer', 'NasmLexer',
- 'NasmObjdumpLexer', 'TasmLexer', 'Ca65Lexer', 'Dasm16Lexer']
+ 'NasmObjdumpLexer', 'TasmLexer', 'Ca65Lexer', 'Dasm16Lexer',
+ 'M68kAsmLexer']
class GasLexer(RegexLexer):
@@ -774,3 +775,59 @@ class Dasm16Lexer(RegexLexer):
(r';.*?\n', Comment)
],
}
+
+
+class M68kLexer(RegexLexer):
+ """All your lexer code goes here!"""
+
+ name = 'M68k Assembly'
+ aliases = ['m68k']
+ filenames = ['*.s', '*.asm', '*.i']
+
+ flags = re.IGNORECASE
+
+ tokens = {
+ 'root': [
+ (r'(;|\*).*', Comment.Single),
+ (r'([a-zA-Z0-9]+:)', Name.Label),
+ (r'(#[a-zA-Z0-9]+)', Name.Label),
+ (
+ r'(align|blk|bss|'
+ r'bss|cargs|clrfo|clrso|cnop|code|code|'
+ r'comm|comment|cseg|data|data|dc|dcb|'
+ r'dr|dsb|ds|dseg|echo|'
+ r'einline|else|end|endc|endif|endm|endr|equ|equ|'
+ r'erem|even|fail|fequ|fo|idnt|'
+ r'if|ifeq|ifne|ifgt|ifge|iflt|ifle|ifb|ifnb|ifc|ifnc|ifd|'
+ r'ifnd|ifmacrod|ifmacrond|incin|incdir|include|inline|list|'
+ r'llen|macro|mexit|nolist|nopage|nref|odd|offset|org|output|'
+ r'page|plen|printt|printv|publicrem|rept|rorg|rs|rsreset|'
+ r'rsset|section|set|setfo|setso|so|spc|text|ttl|weak|xdef|'
+ r'xref)\b', Operator
+ ),
+ (
+ r'(abcd|add|adda|addi|addq|addx|and|andi|asl|asr|bcc|bchg|'
+ r'bclr|bcs|beq|bfchg|bfset|bftst|bge|bgt|bhi|ble|bls|blt|'
+ r'bmi|bne|bpl|bra|bset|bsr|btst|bvc|bvs|callm|cas|chk|chk2|'
+ r'cinv|cinva|clr|cmp|cmp2|cmpa|cmpi|cmpm|cpush|cpushp|dbcs|'
+ r'dbeq|dbf|dbgt|dbls|dbmi|dbne|divs|divsl|divu|divul|eor|'
+ r'eori|exg|ext|fmovem|frestore|fsave|illegal|jmp|jsr|lea|'
+ r'linea|linef|link|lsl|lsr|move|move16|movea|movec|movem|'
+ r'movep|moveq|moves|muls|mulu|nbcd|neg|negx|nop|not|or|'
+ r'ori|pack|pbas|pbbs|pbcs|pea|pflush|pmove|pmovefd|prestore|'
+ r'psbs|psgs|ptestr|ptrapac|ptrapgs|ptrapic|reset|rol|ror|'
+ r'roxl|roxr|rte|rtm|rts|sbcd|scc|scs|seq|sf|sge|sgt|sle|'
+ r'slt|sne|spl|st|stop|sub|suba|subi|subq|subx|svs|swap|'
+ r'tas|trap|traplt|tst|unlk|unpk)\b', Keyword
+ ),
+ # (r'[-+~*/^&|!<>=]', Operator),
+ (r'_(c|f)', Operator),
+ (r'\.(b|l|p|q|s|w|x)', Operator),
+ (r'((a|d)[0-7]|pc)', Operator),
+ (r'"[^"\n]*.', String),
+ (r"'[^'\n]*.", String.Char),
+ (r'[a-z_.@$][\w.@$]*', Name),
+ (r'\#?\$?(0x)?[\da-f]+', Number.Integer),
+ (r'[#,.:()=\+\-\\\[\]]', Punctuation),
+ (r'\s+', Text),
+ ]}