# 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