File: //usr/share/joe/syntax/r.jsf
# JOE syntax highlight file for R
=Idle
=Bad bold red
=Preproc blue
=Define bold blue
=Comment green
=IncLocal cyan
=IncSystem bold cyan
=Constant cyan
=Escape bold cyan
=Type bold
=Keyword bold
=CppKeyword bold
=Brace magenta
=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
"\n" idle
:first_digit Constant
* idle noeat
"xX" hex
"." float
"eE" epart
"0-9" decimal
"L" idle
:hex Constant
* idle noeat
"0-9A-Fa-f" hex
:decimal Constant
* idle noeat
"0-9" decimal
"eE" epart
"." float
"L" idle
:maybe_float Constant
* idle recolor=-2 noeat
"\i." ident recolor=-2
"0-9" float recolor=-2
:float Constant
* idle noeat
"eE" epart
"0-9" float
"L" idle
:epart Constant
* idle noeat
"0-9+\-" enum
:enum Constant
* idle noeat
"0-9" enum
"L" idle
:string Constant string
* string
"\"" idle
"\\" string_escape recolor=-1
"%" string_control recolor=-1
:string_escape Escape string
* string
"x" string_hex
"0-7" string_octal2
"\n" string recolor=-2
# \x will consume all successive hex digits (ANSI C).
:string_hex Escape string
* string noeat
"0-9a-fA-F" string_hex
:string_octal2 Escape string
* string noeat
"0-7" string_octal3
:string_octal3 Escape string
* string noeat
"0-7" string
:string_control Escape string
* string
"\"" string noeat
"\n" idle
"\\" string_escape recolor=-1
"0-9.\-+ #hjILtz$" string_control
:char Constant string
* char
"\n" idle
"'" idle
"\\" char_escape recolor=-1
:char_escape Escape string
* char
"x" char_hex
"0-7" char_octal2
"\n" char recolor=-2
# \x will consume all successive hex digits (ANSI C).
:char_hex Escape string
* char noeat
"0-9a-fA-F" char_hex
:char_octal2 Escape string
* char noeat
"0-7" char_octal3
:char_octal3 Escape string
* char noeat
"0-7" char
:ident Idle
* idle noeat strings
"TRUE" val
"FALSE" val
"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
:val Constant
* idle noeat
:kw Keyword
* idle noeat