Menu

[23d219]: / syntax / python.jsf.in  Maximize  Restore  History

Download this file

182 lines (148 with data), 2.8 kB

# JOE syntax highlight file for Python

# TODO:
#  * octal escape sequences

=Idle
=Comment 	green
=Docstring	cyan
=DocEscape	bold cyan
=Constant 	cyan
=Escape 	bold cyan
=Keyword 	bold
=Type		bold blue

:idle Idle
	*		idle
	"#"		comment		recolor=-1
	"0-9"		first_digit	recolor=-1
	"'"		string_sq_1	recolor=-1
	"\""		string_dq_1	recolor=-1
	"a-zA-Z_"	ident		buffer

:comment Comment
	*		comment
	"\n"		idle

:string_sq_1 Constant
	*		string_sq	noeat
	"'"		string_sq_2

:string_sq_2 Constant
	*		idle		noeat
	"'"		docstr_sq	recolor=-3

:string_sq Constant
	*		string_sq
	"\'"		idle
	"\\"		string_sq_esc	recolor=-1

:string_sq_esc Escape
	*		string_sq
	"\n"		string_sq	recolor=-2

:docstr_sq Docstring
	*		docstr_sq
	"\\"		docstr_sq_esc	recolor=-1
	"'"		docstr_sq_1

:docstr_sq_1 Docstring
	*		docstr_sq	noeat
	"'"		docstr_sq_2

:docstr_sq_2 Docstring
	*		docstr_sq	noeat
	"'"		idle

:docstr_sq_esc DocEscape
	*		docstr_sq
	"\n"		docstr_sq	recolor=-2

:string_dq_1 Constant
	*		string_dq	noeat
	"\""		string_dq_2

:string_dq_2 Constant
	*		idle		noeat
	"\""		docstr_dq	recolor=-3

:string_dq Constant
	*		string_dq
	"\""		idle
	"\\"		string_dq_esc	recolor=-1

:string_dq_esc Escape
	*		string_dq
	"\n"		string_dq	recolor=-2

:docstr_dq Docstring
	*		docstr_dq
	"\\"		docstr_dq_esc	recolor=-1
	"\""		docstr_dq_1

:docstr_dq_1 Docstring
	*		docstr_dq	noeat
	"\""		docstr_dq_2

:docstr_dq_2 Docstring
	*		docstr_dq	noeat
	"\""		idle

:docstr_dq_esc DocEscape
	*		docstr_dq
	"\n"		docstr_dq	recolor=-2
	
:first_digit Constant
	*		idle	noeat
	"xX"		hex
	"."		float
	"0-9"		first_number

:hex Constant
	*		idle	noeat
	"0-9A-Fa-f"	hex

:first_number Constant
	*		idle	noeat
	"0-9"		first_number
	"."		float

:maybe_float Constant
	*		idle	recolor=-2	noeat
	"0-9"		float		recolor=-2

:float Constant
	*		idle	noeat
	"eE"		epart
	"0-9"		float

:epart Constant
	*		idle	noeat
	"0-9+\-"	enum

:enum Constant
	*		idle	noeat
	"0-9"		enum

:ident Idle
	*		idle		noeat strings
	"and"		kw
	"as"		kw
	"assert"	kw
	"break"		kw
	"class"		defkw
	"continue"	kw
	"def"		defkw
	"del"		kw
	"elif"		kw
	"else"		kw
	"except"	kw
	"exec"		kw
	"finally"	kw
	"for"		kw
	"from"		kw
	"global"	kw
	"if"		kw
	"import"	kw
	"in"		kw
	"is"		kw
	"lambda"	kw
	"not"		kw
	"or"		kw
	"pass"		kw
	"print"		kw
	"raise"		kw
	"return"	kw
	"try"		kw
	"while"		kw
	"with"		kw
	"yield"		kw
	
	"True"		constkw
	"False"		constkw
	"None"		constkw
done
	"a-zA-Z0-9_"	ident

:kw Keyword
	*	idle	noeat

:constkw Keyword	# Technically constants, but might as well be keywords. I think it looks better, too.
	*		idle noeat recolor=-1
	"a-zA-Z"	constkw

:defkw Keyword
	*		idle noeat recolor=-1
	"a-zA-Z"	defkw	# This is still the keyword.
	" \t"		defname

:defname Type
	*		idle nodeat recolor=-1
	"a-zA-Z0-9_"	defname
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.