355 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			355 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								# JOE syntax highlight file for Swift
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								=Idle
							 | 
						||
| 
								 | 
							
								=Comment
							 | 
						||
| 
								 | 
							
								=Preproc
							 | 
						||
| 
								 | 
							
								=Precond	+Preproc
							 | 
						||
| 
								 | 
							
								=Constant
							 | 
						||
| 
								 | 
							
								=String		+Constant
							 | 
						||
| 
								 | 
							
								=Number		+Constant
							 | 
						||
| 
								 | 
							
								=Boolean	+Constant
							 | 
						||
| 
								 | 
							
								=StringEscape	+Escape +String
							 | 
						||
| 
								 | 
							
								=Operator
							 | 
						||
| 
								 | 
							
								=Keyword
							 | 
						||
| 
								 | 
							
								=Statement	+Keyword
							 | 
						||
| 
								 | 
							
								=Loop		+Statement
							 | 
						||
| 
								 | 
							
								=Conditional	+Statement
							 | 
						||
| 
								 | 
							
								=Type
							 | 
						||
| 
								 | 
							
								=StorageClass	+Type +Keyword
							 | 
						||
| 
								 | 
							
								=Modifier	+StorageClass
							 | 
						||
| 
								 | 
							
								=Label		+DefinedIdent
							 | 
						||
| 
								 | 
							
								=Builtin	+DefinedFunction
							 | 
						||
| 
								 | 
							
								=Bad
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:pre_idle Idle
							 | 
						||
| 
								 | 
							
									*		NULL		noeat call=.swift()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.subr swift
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:idle Idle
							 | 
						||
| 
								 | 
							
									*		idle
							 | 
						||
| 
								 | 
							
									"("		idle		call=.swift(paren)
							 | 
						||
| 
								 | 
							
									"["		idle		call=.swift(brack)
							 | 
						||
| 
								 | 
							
									"{"		idle		call=.swift(squiggly)
							 | 
						||
| 
								 | 
							
								.ifdef paren
							 | 
						||
| 
								 | 
							
									")"		idle		return
							 | 
						||
| 
								 | 
							
								.else
							 | 
						||
| 
								 | 
							
									")"		stray		recolor=-1
							 | 
						||
| 
								 | 
							
								.endif
							 | 
						||
| 
								 | 
							
								.ifdef brack
							 | 
						||
| 
								 | 
							
									"]"		idle		return
							 | 
						||
| 
								 | 
							
								.else
							 | 
						||
| 
								 | 
							
									"]"		stray		recolor=-1
							 | 
						||
| 
								 | 
							
								.endif
							 | 
						||
| 
								 | 
							
								.ifdef squiggly
							 | 
						||
| 
								 | 
							
									"}"		idle		return
							 | 
						||
| 
								 | 
							
								.else
							 | 
						||
| 
								 | 
							
									"}"		stray		recolor=-1
							 | 
						||
| 
								 | 
							
								.endif
							 | 
						||
| 
								 | 
							
									"0"		zero		recolor=-1
							 | 
						||
| 
								 | 
							
									"1-9"		decimal		recolor=-1
							 | 
						||
| 
								 | 
							
									"."		decimal_point	recolor=-1
							 | 
						||
| 
								 | 
							
									"\""		string		recolor=-1
							 | 
						||
| 
								 | 
							
									"/"		slash		recolor=-1
							 | 
						||
| 
								 | 
							
									"@$\i"		ident		buffer
							 | 
						||
| 
								 | 
							
									"#"		pre		mark
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:stray Bad
							 | 
						||
| 
								 | 
							
									*		idle
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:pre Preproc
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									" \t"		pre
							 | 
						||
| 
								 | 
							
									"a-z"		preident	recolor=-1 buffer
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:preident Preproc
							 | 
						||
| 
								 | 
							
									*		idle		markend recolormark noeat strings
							 | 
						||
| 
								 | 
							
									"if"		precond		markend recolormark
							 | 
						||
| 
								 | 
							
									"elseif"	precond		markend recolormark
							 | 
						||
| 
								 | 
							
									"else"		precond		markend recolormark
							 | 
						||
| 
								 | 
							
									"endif"		precond		markend recolormark
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
									"a-z"		preident
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:precond Precond
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Comments
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:slash Comment comment
							 | 
						||
| 
								 | 
							
									*		idle		noeat recolor=-2
							 | 
						||
| 
								 | 
							
									"/"		line_comment
							 | 
						||
| 
								 | 
							
									"*"		idle		call=.block_comment()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:line_comment Comment comment
							 | 
						||
| 
								 | 
							
									*		line_comment
							 | 
						||
| 
								 | 
							
									"\n"		idle
							 | 
						||
| 
								 | 
							
									"BFHNTX"	line_comment	noeat call=comment_todo.comment_todo()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Numbers
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:bad_number Bad
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-9"		bad_number
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:zero Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"b"		binary
							 | 
						||
| 
								 | 
							
									"o"		octal
							 | 
						||
| 
								 | 
							
									"x"		hex
							 | 
						||
| 
								 | 
							
									"."		maybe_float
							 | 
						||
| 
								 | 
							
									"eE"		epart
							 | 
						||
| 
								 | 
							
									"0-9_"		decimal	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:decimal_point Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat	recolor=-2
							 | 
						||
| 
								 | 
							
									"."		decimal_point_1	recolor=-2
							 | 
						||
| 
								 | 
							
									"\i"		not_ident	recolor=-2
							 | 
						||
| 
								 | 
							
									"0-9_"		float
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:not_ident Idle
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"\c"		not_ident
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:decimal_point_1 Idle
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
									"."		idle
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:octal Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-7_"		octal
							 | 
						||
| 
								 | 
							
									"89"		bad_number	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:binary Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"01_"		binary
							 | 
						||
| 
								 | 
							
									"2-9"		bad_number	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:hex Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-9A-Fa-f_"	hex
							 | 
						||
| 
								 | 
							
									"."		hexfloat
							 | 
						||
| 
								 | 
							
									"pP"		ppart
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:hexfloat Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-9A-Fa-f_"	hexfloat
							 | 
						||
| 
								 | 
							
									"pP"		ppart
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:ppart Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-9+\-"	pnum
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:pnum Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-9_"		pnum
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:decimal Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"0-9_"		decimal
							 | 
						||
| 
								 | 
							
									"eE"		epart
							 | 
						||
| 
								 | 
							
									"."		maybe_float
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:maybe_float Constant
							 | 
						||
| 
								 | 
							
									*		idle	noeat recolor=-2
							 | 
						||
| 
								 | 
							
									"."		decimal_point_1	recolor=-2
							 | 
						||
| 
								 | 
							
									"eE"		epart
							 | 
						||
| 
								 | 
							
									"0-9_"		float
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								: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	String string
							 | 
						||
| 
								 | 
							
									*		string
							 | 
						||
| 
								 | 
							
									"\""		idle
							 | 
						||
| 
								 | 
							
									"\\"		string_escape	recolor=-1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_escape StringEscape string
							 | 
						||
| 
								 | 
							
									*		string
							 | 
						||
| 
								 | 
							
									"("		string	call=.swift(paren)	recolor=-2
							 | 
						||
| 
								 | 
							
									"u"		string_maybe_uni
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_maybe_uni StringEscape string
							 | 
						||
| 
								 | 
							
									*		string
							 | 
						||
| 
								 | 
							
									"{"		string_uni
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:string_uni StringEscape string
							 | 
						||
| 
								 | 
							
									*		string_uni
							 | 
						||
| 
								 | 
							
									"}"		string
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Identifiers
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:ident Idle
							 | 
						||
| 
								 | 
							
									*			idle	noeat strings
							 | 
						||
| 
								 | 
							
									"class"			storage
							 | 
						||
| 
								 | 
							
									"deinit"		kw
							 | 
						||
| 
								 | 
							
									"enum"			storage
							 | 
						||
| 
								 | 
							
									"extension"		storage
							 | 
						||
| 
								 | 
							
									"func"			storage
							 | 
						||
| 
								 | 
							
									"import"		stmt
							 | 
						||
| 
								 | 
							
									"init"			kw
							 | 
						||
| 
								 | 
							
									"inout"			storage
							 | 
						||
| 
								 | 
							
									"internal"		modifier
							 | 
						||
| 
								 | 
							
									"let"			kw
							 | 
						||
| 
								 | 
							
									"operator"		kw
							 | 
						||
| 
								 | 
							
									"private"		modifier
							 | 
						||
| 
								 | 
							
									"protocol"		storage
							 | 
						||
| 
								 | 
							
									"public"		modifier
							 | 
						||
| 
								 | 
							
									"static"		modifier
							 | 
						||
| 
								 | 
							
									"struct"		storage
							 | 
						||
| 
								 | 
							
									"subscript"		kw
							 | 
						||
| 
								 | 
							
									"typealias"		storage
							 | 
						||
| 
								 | 
							
									"var"			kw
							 | 
						||
| 
								 | 
							
									"break"			stmt
							 | 
						||
| 
								 | 
							
									"case"			label
							 | 
						||
| 
								 | 
							
									"continue"		loop
							 | 
						||
| 
								 | 
							
									"default"		label
							 | 
						||
| 
								 | 
							
									"defer"			stmt
							 | 
						||
| 
								 | 
							
									"do"			stmt
							 | 
						||
| 
								 | 
							
									"else"			cond
							 | 
						||
| 
								 | 
							
									"fallthrough"		stmt
							 | 
						||
| 
								 | 
							
									"for"			loop
							 | 
						||
| 
								 | 
							
									"guard"			kw
							 | 
						||
| 
								 | 
							
									"if"			cond
							 | 
						||
| 
								 | 
							
									"in"			kw
							 | 
						||
| 
								 | 
							
									"repeat"		loop
							 | 
						||
| 
								 | 
							
									"return"		stmt
							 | 
						||
| 
								 | 
							
									"switch"		cond
							 | 
						||
| 
								 | 
							
									"where"			kw
							 | 
						||
| 
								 | 
							
									"while"			loop
							 | 
						||
| 
								 | 
							
									"as"			kw
							 | 
						||
| 
								 | 
							
									"catch"			stmt
							 | 
						||
| 
								 | 
							
									"dynamicType"		kw
							 | 
						||
| 
								 | 
							
									"false"			bool
							 | 
						||
| 
								 | 
							
									"is"			kw
							 | 
						||
| 
								 | 
							
									"nil"			lit
							 | 
						||
| 
								 | 
							
									"rethrows"		modifier
							 | 
						||
| 
								 | 
							
									"super"			kw
							 | 
						||
| 
								 | 
							
									"self"			kw
							 | 
						||
| 
								 | 
							
									"Self"			type
							 | 
						||
| 
								 | 
							
									"throw"			stmt
							 | 
						||
| 
								 | 
							
									"throws"		modifier
							 | 
						||
| 
								 | 
							
									"true"			bool
							 | 
						||
| 
								 | 
							
									"try"			kw
							 | 
						||
| 
								 | 
							
									"__COLUMN__"		kw
							 | 
						||
| 
								 | 
							
									"__FILE__"		kw
							 | 
						||
| 
								 | 
							
									"__FUNCTION__"		kw
							 | 
						||
| 
								 | 
							
									"__LINE__"		kw
							 | 
						||
| 
								 | 
							
									"_"			kw
							 | 
						||
| 
								 | 
							
									"associativity"		kw
							 | 
						||
| 
								 | 
							
									"convenience"		kw
							 | 
						||
| 
								 | 
							
									"dynamic"		kw
							 | 
						||
| 
								 | 
							
									"didSet"		kw
							 | 
						||
| 
								 | 
							
									"final"			storage
							 | 
						||
| 
								 | 
							
									"get"			kw
							 | 
						||
| 
								 | 
							
									"infix"			kw
							 | 
						||
| 
								 | 
							
									"indirect"		kw
							 | 
						||
| 
								 | 
							
									"lazy"			storage
							 | 
						||
| 
								 | 
							
									"left"			kw
							 | 
						||
| 
								 | 
							
									"mutating"		storage
							 | 
						||
| 
								 | 
							
									"none"			kw
							 | 
						||
| 
								 | 
							
									"nonmutating"		storage
							 | 
						||
| 
								 | 
							
									"open"			storage
							 | 
						||
| 
								 | 
							
									"optional"		kw
							 | 
						||
| 
								 | 
							
									"override"		storage
							 | 
						||
| 
								 | 
							
									"postfix"		kw
							 | 
						||
| 
								 | 
							
									"precedence"		kw
							 | 
						||
| 
								 | 
							
									"prefix"		kw
							 | 
						||
| 
								 | 
							
									"Protocol"		builtin
							 | 
						||
| 
								 | 
							
									"required"		kw
							 | 
						||
| 
								 | 
							
									"right"			kw
							 | 
						||
| 
								 | 
							
									"set"			kw
							 | 
						||
| 
								 | 
							
									"Type"			builtin
							 | 
						||
| 
								 | 
							
									"unowned"		kw
							 | 
						||
| 
								 | 
							
									"weak"			kw
							 | 
						||
| 
								 | 
							
									"willSet"		kw
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									"String"		type
							 | 
						||
| 
								 | 
							
									"Int"			type
							 | 
						||
| 
								 | 
							
									"Int8"			type
							 | 
						||
| 
								 | 
							
									"Int16"			type
							 | 
						||
| 
								 | 
							
									"Int32"			type
							 | 
						||
| 
								 | 
							
									"Int64"			type
							 | 
						||
| 
								 | 
							
									"UInt"			type
							 | 
						||
| 
								 | 
							
									"UInt8"			type
							 | 
						||
| 
								 | 
							
									"UInt16"		type
							 | 
						||
| 
								 | 
							
									"UInt32"		type
							 | 
						||
| 
								 | 
							
									"UInt64"		type
							 | 
						||
| 
								 | 
							
									"Float"			type
							 | 
						||
| 
								 | 
							
									"Double"		type
							 | 
						||
| 
								 | 
							
									"Bool"			type
							 | 
						||
| 
								 | 
							
									"Character"		type
							 | 
						||
| 
								 | 
							
									"Optional"		type
							 | 
						||
| 
								 | 
							
								done
							 | 
						||
| 
								 | 
							
									"$\c"			ident
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:kw Keyword
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:bool Boolean
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:lit Constant
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:oper Operator
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:storage StorageClass
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:modifier Modifier
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:label Label
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:loop Loop
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:cond Conditional
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:stmt Statement
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:builtin Builtin
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:type Type
							 | 
						||
| 
								 | 
							
									*		idle		noeat
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Recursive block comments
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.subr block_comment
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:idle Comment comment
							 | 
						||
| 
								 | 
							
									*		idle
							 | 
						||
| 
								 | 
							
									"*"		maybe_done
							 | 
						||
| 
								 | 
							
									"/"		maybe_recur
							 | 
						||
| 
								 | 
							
									"BFHNTX"	idle	noeat call=comment_todo.comment_todo()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:maybe_done Comment comment
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"/"		idle	return
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:maybe_recur Comment comment
							 | 
						||
| 
								 | 
							
									*		idle	noeat
							 | 
						||
| 
								 | 
							
									"*"		idle	call=.block_comment()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.end
							 |