# joe Matlab syntax highlighting
# Created by Gustav Stenberg 2007-10-30
#

=Idle
=Ident
=Comment
=Keyword
=Number		+Constant
=String		+Constant
=Secondary	+Ident
=Error		+Bad
=Command	+Statement +Keyword

:idle Idle
	*		idle
	"%"		comment		recolor=-1
	"\'"		string		mark recolor=-1
	"a-zA-Z_." 	ident           buffer
	"!"		command		recolor=-1
	"([{"		parent		buffer
	"0-9"		first_digit	recolor=-1

:command Command
	*		command
	"\n"		idle

:comment Comment comment
	*		comment
	"BFHNTX"	comment		noeat call=comment_todo.comment_todo()
	"\n"		idle

:keyword Keyword
	*		idle		noeat

:keywordc Keyword
	*		comment
	"\n"		idle

:parent Idle
	*		parent
	")]}"		idle

:string Error
	*		string
	"\'"		stringdone	recolormark recolor=-1
	"\n"		idle

:stringdone String string
	*		idle		recolor=-1

:first_digit Number
	*		idle		noeat
	"."		float
	"eE"		epart
	"0-9"		first_digit
	
:float Number
	*		idle		noeat
	"eE"		epart
	"0-9"		float

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

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

:secondary Secondary
	*		idle		noeat
	"a-zA-Z_0-9. "  secondary
	"\n;:=!\"\'+-,*(){}[]&\\\|/~"	idle recolor=-1

:ident Ident
	*		secondary	noeat strings
	"..."		keywordc
	"break"		keyword
	"case"		keyword
	"catch"		keyword
	"continue"	keyword
	"else"		keyword
	"elseif"	keyword
	"end"		keyword
	"for"		keyword
	"function"	keyword
	"global"	keyword
	"if"		keyword
	"otherwise"	keyword
	"persistent"	keyword
	"return"	keyword
	"switch"	keyword
	"try"		keyword
	"while"		keyword
done
	"a-zA-Z0-9_."   ident
