init
This commit is contained in:
257
syntax/asm.jsf
Normal file
257
syntax/asm.jsf
Normal file
@@ -0,0 +1,257 @@
|
||||
# JOE syntax highlight file for assembly language
|
||||
|
||||
# Highlights ';' comments, C-preprocessor stuff and C-like constants.
|
||||
|
||||
# Some assembly languages do not use C-preprocessor and use '#' for
|
||||
# comments. For them, eliminate all states up to ':idle'. and change the
|
||||
# ";" line in 'idle' to '#'.
|
||||
|
||||
# For UNIX assembly ';' actually separates instructions, but I've only seen
|
||||
# this for 'rep; movsb'. If it bothers you eliminate the ';' line in
|
||||
# ':idle'.
|
||||
|
||||
# This highlighter is too strict for numeric constants. Many assembly
|
||||
# languages allow '000009', which looks like a bad octal constant in C/UNIX.
|
||||
|
||||
=Idle
|
||||
=Ident
|
||||
=Bad
|
||||
=Preproc
|
||||
=Define
|
||||
=Comment
|
||||
=IncLocal +String +Preproc
|
||||
=IncSystem +Preproc
|
||||
=Constant
|
||||
=Number +Constant
|
||||
=String +Constant
|
||||
=Character +String
|
||||
=CharacterEscape +Escape +Character
|
||||
=StringEscape +Escape +String
|
||||
=Type
|
||||
=Brace
|
||||
=Control
|
||||
|
||||
:reset Idle
|
||||
* first noeat
|
||||
" \t" reset
|
||||
|
||||
:first Idle
|
||||
* idle noeat
|
||||
"#" pre recolor=-1
|
||||
|
||||
:pre Preproc
|
||||
* preproc noeat
|
||||
" \t" pre
|
||||
"a-z" preident recolor=-1 buffer
|
||||
|
||||
:preident Preproc
|
||||
* preproc noeat strings
|
||||
"define" predef
|
||||
"include" preinc
|
||||
done
|
||||
"a-z" preident
|
||||
|
||||
:preinc Preproc
|
||||
* preinc
|
||||
" \t" preinc_ws
|
||||
"\n" reset
|
||||
|
||||
:preinc_ws Preproc
|
||||
* prebad recolor=-1
|
||||
" \t" preinc_ws
|
||||
"\"" preinc_local recolor=-1
|
||||
"<" preinc_system recolor=-1
|
||||
|
||||
:preinc_local IncLocal
|
||||
* preinc_local
|
||||
"\"\n" reset
|
||||
|
||||
:preinc_system IncSystem
|
||||
* preinc_system
|
||||
">\n" reset
|
||||
|
||||
:prebad Bad
|
||||
* prebad
|
||||
"\n" reset
|
||||
|
||||
|
||||
:predef Preproc
|
||||
* predef
|
||||
" \t" predef_ws
|
||||
"\n" reset
|
||||
|
||||
:predef_ws Preproc
|
||||
* prebad recolor=-1
|
||||
" \t" predef_ws
|
||||
"a-zA-Z0-9_" predef_ident recolor=-1
|
||||
|
||||
:predef_ident Define
|
||||
* idle noeat
|
||||
"a-zA-Z0-9_" predef_ident
|
||||
|
||||
|
||||
:preproc Preproc
|
||||
* preproc
|
||||
"\n" reset
|
||||
"\\" preproc_cont
|
||||
"/" preproc_slash
|
||||
|
||||
:preproc_slash Preproc
|
||||
* preproc noeat
|
||||
"*" comment recolor=-2
|
||||
"/" line_comment recolor=-2
|
||||
|
||||
:preproc_cont Preproc
|
||||
* preproc_cont
|
||||
"\n" preproc
|
||||
|
||||
# All following states are for when we're not in a preprocessor line
|
||||
|
||||
:idle Idle
|
||||
* idle
|
||||
";" line_comment recolor=-1
|
||||
"\n" reset
|
||||
"/" slash
|
||||
"0" first_digit recolor=-1
|
||||
"1-9" decimal recolor=-1
|
||||
"." maybe_float
|
||||
"\"" string recolor=-1
|
||||
"'" char recolor=-1
|
||||
"a-zA-Z_" ident buffer
|
||||
"{}" brace recolor=-1
|
||||
",:=()><[]*&|!~+\-%^" control recolor=-1
|
||||
|
||||
:brace Brace
|
||||
* idle noeat
|
||||
|
||||
:control Control
|
||||
* idle noeat
|
||||
|
||||
:slash Idle
|
||||
* idle noeat recolor=-2 # Not sure about this
|
||||
"*" comment recolor=-2
|
||||
"/" line_comment recolor=-2
|
||||
|
||||
:comment Comment comment
|
||||
* comment
|
||||
"BFHNTX" comment noeat call=comment_todo.comment_todo()
|
||||
"*" maybe_end_comment
|
||||
|
||||
:maybe_end_comment Comment comment
|
||||
* comment
|
||||
"/" idle
|
||||
"*" maybe_end_comment
|
||||
|
||||
:line_comment Comment comment
|
||||
* line_comment
|
||||
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
|
||||
"\n" reset
|
||||
|
||||
:first_digit Number
|
||||
* idle noeat
|
||||
"xX" hex
|
||||
"." float
|
||||
"eE" epart
|
||||
"0-7" octal
|
||||
"89" bad_number recolor=-1
|
||||
|
||||
:bad_number Bad
|
||||
* idle noeat
|
||||
"0-9" bad_number
|
||||
|
||||
:octal Number
|
||||
* idle noeat
|
||||
"0-7" octal
|
||||
"89" bad_number recolor=-1
|
||||
|
||||
:hex Number
|
||||
* idle noeat
|
||||
"0-9A-Fa-f" hex
|
||||
|
||||
:decimal Number
|
||||
* idle noeat
|
||||
"0-9" decimal
|
||||
"eE" epart
|
||||
"." float
|
||||
|
||||
:maybe_float Number
|
||||
* idle recolor=-2 noeat
|
||||
"0-9" float recolor=-2
|
||||
|
||||
:float Number
|
||||
* idle noeat
|
||||
"eE" epart
|
||||
"0-9" float
|
||||
|
||||
:epart Number
|
||||
* idle noeat
|
||||
"0-9+\-" enum
|
||||
|
||||
:enum Number
|
||||
* idle noeat
|
||||
"0-9" enum
|
||||
|
||||
:string String string
|
||||
* string
|
||||
"\"" idle
|
||||
"\\" string_escape recolor=-1
|
||||
"%" string_control recolor=-1
|
||||
|
||||
:string_escape StringEscape string
|
||||
* string
|
||||
"x" string_hex1
|
||||
"0-7" string_octal2
|
||||
"\n" string recolor=-2
|
||||
|
||||
:string_hex1 StringEscape string
|
||||
* string noeat
|
||||
"0-9a-fA-F" string_hex2
|
||||
|
||||
:string_hex2 StringEscape string
|
||||
* string noeat
|
||||
"0-9a-fA-F" string
|
||||
|
||||
:string_octal2 StringEscape string
|
||||
* string noeat
|
||||
"0-7" string_octal3
|
||||
|
||||
:string_octal3 StringEscape string
|
||||
* string noeat
|
||||
"0-7" string
|
||||
|
||||
:string_control StringEscape string
|
||||
* string_control
|
||||
"\n" reset
|
||||
"diouxXeEfFgGaAcspn%SC" string
|
||||
|
||||
:char CharacterEscape
|
||||
* char
|
||||
"\n" reset
|
||||
"'" idle
|
||||
"\\" char_escape recolor=-1
|
||||
|
||||
:char_escape CharacterEscape
|
||||
* char
|
||||
"x" char_hex1
|
||||
"0-7" char_octal2
|
||||
"\n" char recolor=-2
|
||||
|
||||
:char_hex1 CharacterEscape
|
||||
* char noeat
|
||||
"0-9a-fA-F" char_hex2
|
||||
|
||||
:char_hex2 CharacterEscape
|
||||
* char noeat
|
||||
"0-9a-fA-F" char
|
||||
|
||||
:char_octal2 CharacterEscape
|
||||
* char noeat
|
||||
"0-7" char_octal3
|
||||
|
||||
:char_octal3 CharacterEscape
|
||||
* char noeat
|
||||
"0-7" char
|
||||
|
||||
:ident Ident
|
||||
* idle noeat
|
||||
"a-zA-Z0-9_" ident
|
||||
Reference in New Issue
Block a user