dotfiles

My dotfiles.
Log | Files | Refs | LICENSE

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