dotfiles

My dotfiles.
Log | Files | Refs | LICENSE

java.jsf (4925B)


      1 # JOE syntax highlight file for JAVA
      2 
      3 # Needs: improve escape parsing
      4 
      5 =Idle
      6 =Ident
      7 =Comment
      8 =Constant
      9 =Number		+Constant
     10 =Boolean	+Constant
     11 =String		+Constant
     12 =Character	+String
     13 =Escape
     14 =StringEscape	+Escape +String
     15 =CharacterEscape +StringEscape
     16 =Type
     17 =Keyword
     18 =Operator	+Keyword
     19 =Bad
     20 =Brace
     21 =Control
     22 =Statement	+Keyword
     23 =Conditional	+Statement
     24 =Loop		+Statement
     25 =Structure	+Type +Keyword
     26 =StorageClass	+Type +Keyword
     27 =Include	+Preproc
     28 =Label		+DefinedIdent
     29 
     30 =Methods	+DefinedFunction +DefinedIdent +Ident
     31 
     32 :begin Idle
     33 	*	begin	noeat call=.java()
     34 
     35 #
     36 # Java as a subroute- for use as java script in html
     37 #
     38 
     39 .subr java
     40 
     41 :idle Idle
     42 	*		idle
     43 	"\n"		idle
     44 	"/"		slash
     45 	"0"		first_digit	recolor=-1
     46 	"1-9"		decimal		recolor=-1
     47 	"."		maybe_float
     48 	"\""		string		recolor=-1
     49 	"'"		char		recolor=-1
     50 	"\i\p{Sc}"	ident		mark buffer
     51 	"{}"		brace		recolor=-1
     52 	",:;=()><[]*&|!~+\-%^"	control	recolor=-1
     53 
     54 :maybe_done Control
     55 	*		idle		noeat
     56 	"/"		idle		noeat return recolor=-2
     57 
     58 :brace Brace
     59 	*		idle		noeat
     60 
     61 :control Control
     62 	*		idle		noeat
     63 
     64 :slash Idle
     65 	*		idle		noeat
     66 	"*"		comment		recolor=-2
     67 	"/"		line_comment	recolor=-2
     68 
     69 :comment Comment comment
     70 	*		comment
     71 	"BFHNTX"	comment		noeat call=comment_todo.comment_todo()
     72 	"*"		maybe_end_comment
     73 
     74 :maybe_end_comment Comment comment
     75 	*		comment		noeat
     76 	"/"		idle
     77 	"*"		maybe_end_comment
     78 
     79 :line_comment Comment comment
     80 	*		line_comment
     81 	"BFHNTX"	line_comment	noeat call=comment_todo.comment_todo()
     82 	"\n"		idle
     83 
     84 :first_digit Number
     85 	*		idle		noeat
     86 	"xX"		hex
     87 	"."		float
     88 	"eE"		epart
     89 	"0-7"		octal
     90 	"89"		bad_number	recolor=-1
     91 
     92 :bad_number Bad
     93 	*		idle		noeat
     94 	"0-9"		bad_number
     95 
     96 :octal Number
     97 	*		idle		noeat
     98 	"0-7"		octal
     99 	"89"		bad_number	recolor=-1
    100 
    101 :hex Number
    102 	*		idle		noeat
    103 	"0-9A-Fa-f"	hex
    104 
    105 :decimal Number
    106 	*		idle		noeat
    107 	"0-9"		decimal
    108 	"eE"		epart
    109 	"."		float
    110 
    111 :maybe_float Number
    112 	*		idle		recolor=-2 noeat
    113 	"0-9"		float		recolor=-2
    114 
    115 :float Number
    116 	*		idle		noeat
    117 	"eE"		epart
    118 	"0-9"		float
    119 
    120 :epart Number
    121 	*		idle		noeat
    122 	"0-9+\-"	enum
    123 
    124 :enum Number
    125 	*		idle		noeat
    126 	"0-9"		enum
    127 
    128 :string	String string
    129 	*		string
    130 	"\""		idle
    131 	"\\"		string_escape	recolor=-1
    132 	"%"		string_control	recolor=-1
    133 
    134 :string_escape StringEscape string
    135 	*		string
    136 	"u"		string_uni1
    137 	"0-7"		string_octal2
    138 	"\n"		string		recolor=-2
    139 
    140 :string_uni1 StringEscape string
    141 	*		string		noeat
    142 	"0-9a-fA-F"	string_uni2
    143 
    144 :string_uni2 StringEscape string
    145 	*		string		noeat
    146 	"0-9a-fA-F"	string_uni3
    147 
    148 :string_uni3 StringEscape string
    149 	*		string		noeat
    150 	"0-9a-fA-F"	string_uni4
    151 
    152 :string_uni4 StringEscape string
    153 	*		string		noeat
    154 	"0-9a-fA-F"	string
    155 
    156 :string_octal2 StringEscape string
    157 	*		string		noeat
    158 	"0-7"		string_octal3
    159 
    160 :string_octal3 StringEscape string
    161 	*		string		noeat
    162 	"0-7"		string
    163 
    164 :string_control StringEscape string
    165 	*		string_control
    166 	"\n"		reset
    167 	"diouxXeEfFgGaAcspn%SC"	string
    168 
    169 :char Character string
    170 	*		char
    171 	"\n"		reset
    172 	"'"		idle
    173 	"\\"		char_escape	recolor=-1
    174 
    175 :char_escape CharacterEscape string
    176 	*		char
    177 	"u"		char_uni1
    178 	"0-7"		char_octal2
    179 	"\n"		char		recolor=-2
    180 
    181 :char_uni1 CharacterEscape string
    182 	*		char		noeat
    183 	"0-9a-fA-F"	char_uni2
    184 
    185 :char_uni2 CharacterEscape string
    186 	*		char		noeat
    187 	"0-9a-fA-F"	char_uni3
    188 
    189 :char_uni3 CharacterEscape string
    190 	*		char		noeat
    191 	"0-9a-fA-F"	char_uni4
    192 
    193 :char_uni4 CharacterEscape string
    194 	*		char		noeat
    195 	"0-9a-fA-F"	char
    196 
    197 :char_octal2 CharacterEscape string
    198 	*		char		noeat
    199 	"0-7"		char_octal3
    200 
    201 :char_octal3 CharacterEscape string
    202 	*		char		noeat
    203 	"0-7"		char
    204 
    205 :ident Ident
    206 	*		ident_end	noeat markend strings
    207 	"abstract"	storage
    208 	"assert"	stmt
    209 	"boolean"	type
    210 	"break"		loop
    211 	"byte"		type
    212 	"case"		label
    213 	"catch"		kw
    214 	"char"		type
    215 	"class"		struct
    216 	"const"		bad_kw
    217 	"continue"	loop
    218 	"default"	label
    219 	"do"		loop
    220 	"double"	type
    221 	"else"		cond
    222 	"enum"		storage
    223 	"extends"	storage
    224 	"false"		bool
    225 	"final"		storage
    226 	"finally"	kw
    227 	"float"		type
    228 	"for"		loop
    229 	"goto"		bad_kw
    230 	"if"		cond
    231 	"implements"	storage
    232 	"import"	include
    233 	"instanceof"	operator
    234 	"int"		type
    235 	"interface"	struct
    236 	"long"		type
    237 	"native"	include
    238 	"new"		operator
    239 	"null"		lit
    240 	"package"	include
    241 	"private"	storage
    242 	"protected"	storage
    243 	"public"	storage
    244 	"return"	stmt
    245 	"serializable"	storage
    246 	"short"		type
    247 	"static"	storage
    248 	"strictfp"	storage
    249 	"super"		kw
    250 	"switch"	cond
    251 	"synchronized"	storage
    252 	"this"		kw
    253 	"throw"		stmt
    254 	"throws"	storage
    255 	"transient"	storage
    256 	"true"		bool
    257 	"try"		kw
    258 	"void"		kw
    259 	"volatile"	storage
    260 	"while"		loop
    261 done
    262 	"\c\p{Sc}"	ident
    263 
    264 :type Type
    265 	*		idle		noeat
    266 
    267 :kw Keyword
    268 	*		idle		noeat
    269 
    270 :bad_kw Bad
    271 	*		idle		noeat
    272 
    273 :bool Boolean
    274 	*		idle		noeat
    275 
    276 :lit Constant
    277 	*		idle		noeat
    278 
    279 :operator Operator
    280 	*		idle		noeat
    281 
    282 :loop Loop
    283 	*		idle		noeat
    284 
    285 :cond Conditional
    286 	*		idle		noeat
    287 
    288 :storage StorageClass
    289 	*		idle		noeat
    290 
    291 :struct Structure
    292 	*		idle		noeat
    293 
    294 :include Include
    295 	*		idle		noeat
    296 
    297 :stmt Statement
    298 	*		idle		noeat
    299 
    300 :label Label
    301 	*		idle		noeat
    302 
    303 :ident_end Ident
    304 	*		idle		noeat
    305 	" "		ident_end
    306 	"("		method_end	noeat recolormark
    307 
    308 :method_end Methods
    309 	*		idle		noeat
    310 
    311 .end