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