joe/syntax/r.jsf

176 lines
2.7 KiB
Plaintext
Raw Normal View History

2024-10-16 10:58:52 +08:00
# JOE syntax highlight file for R
=Idle
=Ident
=Bad
=Comment
=Constant
=Number +Constant
=String +Constant
=StringEscape +Escape
=Character +Constant
=CharacterEscape +Escape
=Boolean +Constant
=Escape
=Keyword
=Brace
=Control
:idle Idle
* idle
"#" line_comment recolor=-1
"0" first_digit recolor=-1
"1-9" decimal recolor=-1
"." maybe_float buffer
"\"" string recolor=-1
"'" char recolor=-1
"\p{L}\p{Nl}" ident buffer
"\\" outside_escape recolor=-1
"{}" brace recolor=-1
"/,:;=()><[]*&|!~+\-%^" control recolor=-1
:outside_escape Escape
* idle
:brace Brace
* idle noeat
:control Control
* idle noeat
:line_comment Comment comment
* line_comment
"BFHNTX" line_comment noeat call=comment_todo.comment_todo()
"\n" idle
:first_digit Number
* idle noeat
"xX" hex
"." float
"eE" epart
"0-9" decimal
"L" idle
:hex Number
* idle noeat
"0-9A-Fa-f" hex
:decimal Number
* idle noeat
"0-9" decimal
"eE" epart
"." float
"L" idle
:maybe_float Number
* idle recolor=-2 noeat
"\i." ident recolor=-2
"0-9" float recolor=-2
:float Number
* idle noeat
"eE" epart
"0-9" float
"L" idle
:epart Number
* idle noeat
"0-9+\-" enum
:enum Number
* idle noeat
"0-9" enum
"L" idle
:string String string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_escape StringEscape string
* string
"x" string_hex
"0-7" string_octal2
"\n" string recolor=-2
# \x will consume all successive hex digits (ANSI C).
:string_hex StringEscape string
* string noeat
"0-9a-fA-F" string_hex
:string_octal2 StringEscape string
* string noeat
"0-7" string_octal3
:string_octal3 StringEscape string
* string noeat
"0-7" string
:string_control StringEscape string
* string
"\"" string noeat
"\n" idle
"\\" string_escape recolor=-1
"0-9.\-+ #hjILtz$" string_control
:char Character string
* char
"\n" idle
"'" idle
"\\" char_escape recolor=-1
:char_escape CharacterEscape string
* char
"x" char_hex
"0-7" char_octal2
"\n" char recolor=-2
# \x will consume all successive hex digits (ANSI C).
:char_hex CharacterEscape string
* char noeat
"0-9a-fA-F" char_hex
:char_octal2 CharacterEscape string
* char noeat
"0-7" char_octal3
:char_octal3 CharacterEscape string
* char noeat
"0-7" char
# It feels to me like this could use some more work...
:ident Ident
* idle noeat strings
"TRUE" bool
"FALSE" bool
"NULL" val
"Inf" val
"NaN" val
"NA" val
"NA_integer_" val
"NA_real_" val
"NA_complex_" val
"NA_character_" val
"if" kw
"else" kw
"repeat" kw
"while" kw
"function" kw
"for" kw
"in" kw
"next" kw
"break" kw
done
"\c." ident
:bool Boolean
* idle noeat
:val Constant
* idle noeat
:kw Keyword
* idle noeat