acme/contrib/joe_syntax/acme.jsf

408 lines
6.8 KiB
Plaintext

# JOE syntax highlight file for ACME assembly language
# new in version 3: added jml, jsl
# new in version 4: added !warn, !error, !serious
# new in version 5: changed mnemo colors
# new in version 6: added !ifndef, !addr
# new in version 7: added !symbollist
# new in version 8: adjusted for ACME 0.97
# added backslash escaping,
# added "//" comments,
# added new mnemonics, keywords and pseudo opcodes,
# reduced colors for different instruction sets
# define colors
#
# bold inverse blink dim underline
# white cyan magenta blue yellow green red black
# bg_white bg_cyan bg_magenta bg_blue bg_yellow bg_green bg_red bg_black
=Idle
=Ident
=Anon bold
=Bad bold red
=Call bold
=Comment green
=Constant cyan
=Escape bold cyan
=Keyword bold
=Pseudo bold
=Mnemo6502 bold yellow
=PCMnemo6502 bold red
=MnemoExt bg_blue bold yellow
=PCMnemoExt bg_blue bold red
:reset Idle
* idle noeat
" \t" reset
:idle Idle
* idle
";" line_comment recolor=-1
"//" line_comment recolor=-1
":{\n" reset
"!.a-zA-Z_€-" checkstring recolor=-1 buffer
"+" anonf_or_macro recolor=-1
"-" anonb recolor=-1
"0" got_zero recolor=-1
"%" binary recolor=-1
"&" octal recolor=-1
"1-9" decimal recolor=-1
"$" hex recolor=-1
"'" char recolor=-1
"\"" string recolor=-1
# *= "*"
# ",:=()><[]*&|!~+\-%^" control recolor=-1
:line_comment Comment
* line_comment
"\n" reset
:call Call
* idle noeat
"a-zA-Z0-9€-" call
:anonf_or_macro Anon
* idle noeat
"+" anonf
".a-zA-Z0-9€-" call recolor=-2
:anonf Anon
* idle noeat
"+" anonf
:anonb Anon
* idle noeat
"-" anonb
:got_zero Constant
* idle noeat
"xX" hex
"0-9" decimal noeat
:binary Constant
* idle noeat
"01.#" binary
"2-9" badnum noeat
:octal Constant
* idle noeat
"0-7" octal
"89" badnum noeat
:hex Constant
* idle noeat
"0-9A-Fa-f" hex
:decimal Constant
* idle noeat
"0-9" decimal
:badnum Bad
* idle noeat
"0-9" badnum
:string Constant
* string
"\"" idle
"\\" string_escape recolor=-1
:string_escape Escape
* string
:char Constant
* char
"'" idle
"\\" char_escape recolor=-1
:char_escape Escape
* char
:ident Idle
* idle noeat
"a-zA-Z0-9_" ident
:checkstring Ident
* idle noeat istrings
"!8" pseudo
"!08" pseudo
"!by" pseudo
"!byte" pseudo
"!16" pseudo
"!le16" pseudo
"!be16" pseudo
"!wo" pseudo
"!word" pseudo
"!24" pseudo
"!le24" pseudo
"!be24" pseudo
"!32" pseudo
"!le32" pseudo
"!be32" pseudo
"!tx" pseudo
"!text" pseudo
"!raw" pseudo
"!pet" pseudo
"!scr" pseudo
"!scrxor" pseudo
"!ct" pseudo
"!convtab" pseudo
"!fi" pseudo
"!fill" pseudo
"!zn" pseudo
"!zone" pseudo
"!sl" pseudo
"!symbollist" pseudo
"!src" pseudo
"!source" pseudo
"!bin" pseudo
"!binary" pseudo
"!eof" pseudo
"!endoffile" pseudo
"!pseudopc" pseudo
"!align" pseudo
"!cpu" pseudo
"!to" pseudo
"!set" pseudo
"!macro" pseudo
"!if" pseudo
"!ifdef" pseudo
"!ifndef" pseudo
"else" keyword
"if" keyword
"ifdef" keyword
"ifndef" keyword
"!for" pseudo
"!while" pseudo
"!do" pseudo
"until" keyword
"while" keyword
"!al" pseudo
"!as" pseudo
"!rl" pseudo
"!rs" pseudo
"!initmem" pseudo
"!warn" pseudo
"!error" pseudo
"!serious" pseudo
"!addr" pseudo
"!address" pseudo
"!h" pseudo
"!hex" pseudo
"!xor" pseudo
"!skip" pseudo
"ora" mnemo6502
"asl" mnemo6502
"and" mnemo6502
"rol" mnemo6502
"eor" mnemo6502
"lsr" mnemo6502
"adc" mnemo6502
"ror" mnemo6502
"sta" mnemo6502
"stx" mnemo6502
"lda" mnemo6502
"ldx" mnemo6502
"cmp" mnemo6502
"dec" mnemo6502
"sbc" mnemo6502
"inc" mnemo6502
"bit" mnemo6502
"cpx" mnemo6502
"cpy" mnemo6502
"ldy" mnemo6502
"sty" mnemo6502
"php" mnemo6502
"clc" mnemo6502
"plp" mnemo6502
"sec" mnemo6502
"pha" mnemo6502
"cli" mnemo6502
"pla" mnemo6502
"sei" mnemo6502
"dey" mnemo6502
"txa" mnemo6502
"tya" mnemo6502
"txs" mnemo6502
"tay" mnemo6502
"tax" mnemo6502
"clv" mnemo6502
"tsx" mnemo6502
"iny" mnemo6502
"dex" mnemo6502
"cld" mnemo6502
"inx" mnemo6502
"nop" mnemo6502
"sed" mnemo6502
"jsr" mnemo6502
"brk" pcmnemo6502
"jmp" pcmnemo6502
"bpl" pcmnemo6502
"bmi" pcmnemo6502
"bvc" pcmnemo6502
"bvs" pcmnemo6502
"bcc" pcmnemo6502
"bcs" pcmnemo6502
"bne" pcmnemo6502
"beq" pcmnemo6502
"rti" pcmnemo6502
"rts" pcmnemo6502
"phy" mnemoExt
"ply" mnemoExt
"phx" mnemoExt
"plx" mnemoExt
"tsb" mnemoExt
"trb" mnemoExt
"stz" mnemoExt
"bra" pcmnemoExt
"rmb0" mnemoExt
"bbr0" mnemoExt
"smb0" mnemoExt
"bbs0" mnemoExt
"rmb1" mnemoExt
"bbr1" mnemoExt
"smb1" mnemoExt
"bbs1" mnemoExt
"rmb2" mnemoExt
"bbr2" mnemoExt
"smb2" mnemoExt
"bbs2" mnemoExt
"rmb3" mnemoExt
"bbr3" mnemoExt
"smb3" mnemoExt
"bbs3" mnemoExt
"rmb4" mnemoExt
"bbr4" mnemoExt
"smb4" mnemoExt
"bbs4" mnemoExt
"rmb5" mnemoExt
"bbr5" mnemoExt
"smb5" mnemoExt
"bbs5" mnemoExt
"rmb6" mnemoExt
"bbr6" mnemoExt
"smb6" mnemoExt
"bbs6" mnemoExt
"rmb7" mnemoExt
"bbr7" mnemoExt
"smb7" mnemoExt
"bbs7" mnemoExt
"wai" mnemoExt
"pei" mnemoExt
"per" mnemoExt
"mvp" mnemoExt
"mvn" mnemoExt
"rep" mnemoExt
"sep" mnemoExt
"pea" mnemoExt
"phd" mnemoExt
"tcs" mnemoExt
"pld" mnemoExt
"tsc" mnemoExt
"wdm" mnemoExt
"phk" mnemoExt
"tcd" mnemoExt
"tdc" mnemoExt
"phb" mnemoExt
"txy" mnemoExt
"plb" mnemoExt
"tyx" mnemoExt
"xba" mnemoExt
"xce" mnemoExt
"brl" pcmnemoExt
"cop" mnemoExt
"jml" pcmnemoExt
"jsl" mnemoExt
"rtl" pcmnemoExt
"stp" pcmnemoExt
"slo" mnemoExt
"rla" mnemoExt
"sre" mnemoExt
"rra" mnemoExt
"sax" mnemoExt
"lax" mnemoExt
"dcp" mnemoExt
"isc" mnemoExt
"anc" mnemoExt
"ane" mnemoExt
"asr" mnemoExt
"arr" mnemoExt
"alr" mnemoExt
"sbx" mnemoExt
"sha" mnemoExt
"shx" mnemoExt
"shy" mnemoExt
"las" mnemoExt
"tas" mnemoExt
"dop" mnemoExt
"top" mnemoExt
"lxa" mnemoExt
"jam" pcmnemoExt
"map" mnemoExt
"eom" mnemoExt
"aug" mnemoExt
"sac" mnemoExt
"sir" mnemoExt
"orq" mnemoExt
"aslq" mnemoExt
"inq" mnemoExt
"bitq" mnemoExt
"andq" mnemoExt
"rolq" mnemoExt
"deq" mnemoExt
"asrq" mnemoExt
"eorq" mnemoExt
"lsrq" mnemoExt
"adcq" mnemoExt
"rorq" mnemoExt
"stq" mnemoExt
"ldq" mnemoExt
"cpq" mnemoExt
"sbcq" mnemoExt
"cle" mnemoExt
"see" mnemoExt
"tsy" mnemoExt
"inz" mnemoExt
"tys" mnemoExt
"dez" mnemoExt
"neg" mnemoExt
"taz" mnemoExt
"tab" mnemoExt
"bsr" mnemoExt
"tza" mnemoExt
"tba" mnemoExt
"ldz" mnemoExt
"cpz" mnemoExt
"dew" mnemoExt
"asw" mnemoExt
"phz" mnemoExt
"inw" mnemoExt
"row" mnemoExt
"phw" mnemoExt
"plz" mnemoExt
"lbpl" pcmnemoExt
"lbmi" pcmnemoExt
"lbvc" pcmnemoExt
"lbvs" pcmnemoExt
"lbra" pcmnemoExt
"lbcc" pcmnemoExt
"lbcs" pcmnemoExt
"lbne" pcmnemoExt
"lbeq" pcmnemoExt
"rtn" pcmnemoExt
done
"!a-zA-Z0-9" checkstring
# " \t" idle noeat
:pseudo Pseudo
* idle noeat
:mnemo6502 Mnemo6502
* idle noeat
:pcmnemo6502 PCMnemo6502
* idle noeat
:mnemoExt MnemoExt
* idle noeat
:pcmnemoExt PCMnemoExt
* idle noeat
:keyword Keyword
* idle noeat