# JOE syntax highlight file for Verilog # Define colors =Idle =Preproc bold blue =Comment green =Constant cyan =Escape bold cyan =Type bold =Keyword bold # Skip whitespace at start of line :reset Idle * first noeat " " reset :first Idle * idle noeat "`" pre recolor=-1 :pre Preproc * idle noeat "a-zA-Z_" preident recolor=-1 buffer :preident Idle * idle noeat strings "ifdef" preproc "else" preproc "endif" preproc "timescale" preproc "define" preproc "include" preproc "resetall" preproc "signed" preproc "unsigned" preproc "celldefine" preproc "endcelldefine" preproc "default_nettype" preproc "unconnected_drive" preproc "nounconnected_drive" preproc "protect" preproc "endprotect" preproc "protected" preproc "endprotected" preproc "expand_vectornets" preproc "noexpand_vectornets" preproc "autoexpand_vectornets" preproc "remove_gatename" preproc "noremove_gatename" preproc "remove_netname" preproc "noremove_netname" preproc done "a-zA-Z0-9_" preident :preproc Preproc * idle noeat # All following states are for when we're not in a preprocessor line :idle Idle * idle "\n" reset "/" slash "0-9" first_digit recolor=-1 "." maybe_float "\"" string recolor=-1 "'" sized_number recolor=-1 "a-zA-Z_" ident buffer :slash Idle * idle noeat "*" comment recolor=-2 "/" line_comment recolor=-2 :comment Comment * comment "*" maybe_end_comment :maybe_end_comment Comment * comment "/" idle "*" maybe_end_comment :line_comment Comment * line_comment "\n" reset # Integer constants :first_digit Constant * idle noeat "'" sized_number "." float "0-9" first_digit :sized_number Constant * idle noeat "hH" hex_number "oO" octal_number "bB" binary_number "dD" decimal_number :hex_number Constant * idle noeat "0-9A-Fa-f_xz" hex_number :binary_number Constant * idle noeat "01_xz" binary_number :octal_number Constant * idle noeat "0-7_xz" octal_number :decimal_number Constant * idle noeat "0-9_" decimal_number # Floating point :maybe_float Constant * idle recolor=-2 noeat "0-9" float recolor=-2 :float Constant * idle noeat "eE" epart "0-9" float :epart Constant * idle noeat "0-9+\-" enum :enum Constant * idle noeat "0-9" enum # Strings :string Constant * string "\n" reset "\"" idle "\\" string_escape recolor=-1 "%" string_control recolor=-1 :string_escape Escape * string "\n" string recolor=-2 :string_control Escape * string_control "\n" reset "efghdobcvstmEFGHDOBCVSTM%" string # Identifiers :ident Idle * idle noeat strings "always" kw "assign" kw "begin" kw "case" kw "casex" kw "casez" kw "default" kw "defparam" kw "else" kw "end" kw "endcase" kw "endfunction" kw "endmodule" kw "endtask" kw "for" kw "function" kw "if" kw "module" kw "parameter" kw "repeat" kw "task" kw "while" kw "forever" kw "initial" kw "integer" type "inout" type "input" type "output" type "reg" type "real" type "wire" type "wor" type "wand" type "and" kw "attribute" kw "buf" kw "bufif0" kw "bufif1" kw "cmos" kw "deassign" kw "disable" kw "edge" kw "endattribute" kw "endprimitive" kw "endspecify" kw "endtable" kw "event" kw "force" kw "fork" kw "highz0" kw "highz1" kw "join" kw "large" kw "macromodule" kw "medium" kw "nand" kw "negedge" kw "nmos" kw "nor" kw "not" kw "notif0" kw "notif1" kw "or" kw "pmos" kw "posedge" kw "primitive" kw "pull0" kw "pull1" kw "pulldown" kw "pullup" kw "rcmos" kw "realtime" kw "release" kw "rnmos" kw "rpmos" kw "rtran" kw "rtranif0" kw "rtranif1" kw "scalared" kw "signed" kw "small" kw "specify" kw "specparam" kw "strength" kw "strong0" kw "strong1" kw "supply0" kw "supply1" kw "table" kw "time" kw "tran" kw "tranif0" kw "tranif1" kw "tri" kw "tri0" kw "tri1" kw "triand" kw "trior" kw "trireg" kw "unsigned" kw "vectored" kw "wait" kw "weak0" kw "weak1" kw "xnor" kw "xor" kw done "a-zA-Z0-9_" ident :type Type * idle noeat :kw Keyword * idle noeat