verilog.jsf (4131B)
1 # JOE syntax highlight file for Verilog 2 3 # Define colors 4 5 =Idle 6 =Preproc bold blue 7 =Comment green 8 =Constant cyan 9 =Escape bold cyan 10 =Type bold 11 =Keyword bold 12 13 # Skip whitespace at start of line 14 :reset Idle 15 * first noeat 16 " " reset 17 18 :first Idle 19 * idle noeat 20 "`" pre recolor=-1 21 22 :pre Preproc 23 * idle noeat 24 "a-zA-Z_" preident recolor=-1 buffer 25 26 :preident Idle 27 * idle noeat strings 28 "ifdef" preproc 29 "else" preproc 30 "endif" preproc 31 "timescale" preproc 32 "define" preproc 33 "include" preproc 34 "resetall" preproc 35 "signed" preproc 36 "unsigned" preproc 37 "celldefine" preproc 38 "endcelldefine" preproc 39 "default_nettype" preproc 40 "unconnected_drive" preproc 41 "nounconnected_drive" preproc 42 "protect" preproc 43 "endprotect" preproc 44 "protected" preproc 45 "endprotected" preproc 46 "expand_vectornets" preproc 47 "noexpand_vectornets" preproc 48 "autoexpand_vectornets" preproc 49 "remove_gatename" preproc 50 "noremove_gatename" preproc 51 "remove_netname" preproc 52 "noremove_netname" preproc 53 done 54 "a-zA-Z0-9_" preident 55 56 :preproc Preproc 57 * idle noeat 58 59 # All following states are for when we're not in a preprocessor line 60 61 :idle Idle 62 * idle 63 "\n" reset 64 "/" slash 65 "0-9" first_digit recolor=-1 66 "." maybe_float 67 "\"" string recolor=-1 68 "'" sized_number recolor=-1 69 "a-zA-Z_" ident buffer 70 71 :slash Idle 72 * idle noeat 73 "*" comment recolor=-2 74 "/" line_comment recolor=-2 75 76 :comment Comment 77 * comment 78 "*" maybe_end_comment 79 80 :maybe_end_comment Comment 81 * comment 82 "/" idle 83 "*" maybe_end_comment 84 85 :line_comment Comment 86 * line_comment 87 "\n" reset 88 89 # Integer constants 90 91 :first_digit Constant 92 * idle noeat 93 "'" sized_number 94 "." float 95 "0-9" first_digit 96 97 :sized_number Constant 98 * idle noeat 99 "hH" hex_number 100 "oO" octal_number 101 "bB" binary_number 102 "dD" decimal_number 103 104 :hex_number Constant 105 * idle noeat 106 "0-9A-Fa-f_xz" hex_number 107 108 :binary_number Constant 109 * idle noeat 110 "01_xz" binary_number 111 112 :octal_number Constant 113 * idle noeat 114 "0-7_xz" octal_number 115 116 :decimal_number Constant 117 * idle noeat 118 "0-9_" decimal_number 119 120 # Floating point 121 122 :maybe_float Constant 123 * idle recolor=-2 noeat 124 "0-9" float recolor=-2 125 126 :float Constant 127 * idle noeat 128 "eE" epart 129 "0-9" float 130 131 :epart Constant 132 * idle noeat 133 "0-9+\-" enum 134 135 :enum Constant 136 * idle noeat 137 "0-9" enum 138 139 # Strings 140 141 :string Constant 142 * string 143 "\n" reset 144 "\"" idle 145 "\\" string_escape recolor=-1 146 "%" string_control recolor=-1 147 148 :string_escape Escape 149 * string 150 "\n" string recolor=-2 151 152 :string_control Escape 153 * string_control 154 "\n" reset 155 "efghdobcvstmEFGHDOBCVSTM%" string 156 157 # Identifiers 158 159 :ident Idle 160 * idle noeat strings 161 "always" kw 162 "assign" kw 163 "begin" kw 164 "case" kw 165 "casex" kw 166 "casez" kw 167 "default" kw 168 "defparam" kw 169 "else" kw 170 "end" kw 171 "endcase" kw 172 "endfunction" kw 173 "endmodule" kw 174 "endtask" kw 175 "for" kw 176 "function" kw 177 "if" kw 178 "module" kw 179 "parameter" kw 180 "repeat" kw 181 "task" kw 182 "while" kw 183 "forever" kw 184 "initial" kw 185 "integer" type 186 "inout" type 187 "input" type 188 "output" type 189 "reg" type 190 "real" type 191 "wire" type 192 "wor" type 193 "wand" type 194 "and" kw 195 "attribute" kw 196 "buf" kw 197 "bufif0" kw 198 "bufif1" kw 199 "cmos" kw 200 "deassign" kw 201 "disable" kw 202 "edge" kw 203 "endattribute" kw 204 "endprimitive" kw 205 "endspecify" kw 206 "endtable" kw 207 "event" kw 208 "force" kw 209 "fork" kw 210 "highz0" kw 211 "highz1" kw 212 "join" kw 213 "large" kw 214 "macromodule" kw 215 "medium" kw 216 "nand" kw 217 "negedge" kw 218 "nmos" kw 219 "nor" kw 220 "not" kw 221 "notif0" kw 222 "notif1" kw 223 "or" kw 224 "pmos" kw 225 "posedge" kw 226 "primitive" kw 227 "pull0" kw 228 "pull1" kw 229 "pulldown" kw 230 "pullup" kw 231 "rcmos" kw 232 "realtime" kw 233 "release" kw 234 "rnmos" kw 235 "rpmos" kw 236 "rtran" kw 237 "rtranif0" kw 238 "rtranif1" kw 239 "scalared" kw 240 "signed" kw 241 "small" kw 242 "specify" kw 243 "specparam" kw 244 "strength" kw 245 "strong0" kw 246 "strong1" kw 247 "supply0" kw 248 "supply1" kw 249 "table" kw 250 "time" kw 251 "tran" kw 252 "tranif0" kw 253 "tranif1" kw 254 "tri" kw 255 "tri0" kw 256 "tri1" kw 257 "triand" kw 258 "trior" kw 259 "trireg" kw 260 "unsigned" kw 261 "vectored" kw 262 "wait" kw 263 "weak0" kw 264 "weak1" kw 265 "xnor" kw 266 "xor" kw 267 done 268 "a-zA-Z0-9_" ident 269 270 :type Type 271 * idle noeat 272 273 :kw Keyword 274 * idle noeat