176 lines
2.7 KiB
Plaintext
176 lines
2.7 KiB
Plaintext
# 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
|