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
 |