#
# Mode for Sather language -- amended for Version 1.1.   Help not yet written!
#

# HelpPath	Assembly,SWI,

ID_FirstChar	$A-Za-z_
ID_Middle	A-Za-z_0-9
ID_LastChar	!

#----------------------------------------------------------------------

SyntaxOptions
	SingleQuote	Yes
	DoubleQuote	Yes
	QuoteQuote	Yes
	QuoteChar	\
	SplitString	No
End

SyntaxComment 1
	Type	OneLine
	StartWith --
	EndWith
End


SyntaxWords Group1 EndNonID case
	BIT BOOL CHAR STR CARD INT INTI FLT FLTD FLTI $OB REFERENCE AREF AVAL TUP SYS
	ARRAY EXT_OB FLTX FLTDX GATE $LOCK MUTEX $PORT $REHASH ITER ROUT SAME
End

SyntaxWords Group2 EndNonID case
	and any assert attr bind break! case class clusters clusters! cohort
	const else elsif end exception external false far fork guard if inout
	include initial is lock loop near new once or out par parloop
	post pre private protect quit raise readonly result return
	self shared spread stub sync then true typecase unlock until!
	void when while with yield partial abstract
End

SyntaxWords Group3 EndNonID case
	aget aset div is_eq is_geq is_gt is_leq is_lt is_neq
	minus mod negate not plus pow times
End

SyntaxWords Group4 EndNonID case
	create invariant main
End

#----------------------------------------------------------------------

Search
	_Indent2	{" "} [ (" ;"~":") {" "} ]
	Bchar		Alpha|"_"
	_private	{" "}"private"
	_name		?{(AlphaNum | '_')}["!"]
	_params		{NL}{" "}"("**")"
	_return		{NL}{" "}":"{" "}_name
	_pre		{NL}{" "}"pre"**{" "}
	_post		{NL}{" "}"post"**{" "}
	_is		{NL}{" "}"is"(" "|NL)
	_classkind	{" "}("abstract"|"value"|"partial"|"immutable")
	_classname	["$"]?{(AlphaNum | '_')}
	_method		NL[_private]{" "}@0_name@9{White}[_params][_return](_pre|_post|_is)
	_class		<[_classkind]{" "}("class"|"type"){" "}@0_classname@9
	_MarkWord	(["$"] Bchar {Bchar|Digit} ["!"]) | ("&" {Hex}+) | {Digit}+
	_MoveWord	(["$"] Bchar {Bchar|Digit} ["!"]) | ("&" {Hex}+) | {Digit}+
End

KeyList
	^R		Indent ("--   ")
	^Return		NewLine(indent,_Indent2)
End

Functions

	Key 	PgUp
	Icon	up
	Select	GotoPrev (_method,Text,NoLine,Case)
	Help	Click to go to previous routine/iter.

	Key 	PgDown
	Icon	down
	Select	GotoNext (_method,Text,NoLine,Case)
	Help	Click to go to next routine/iter.

	Key	F2
	Menu	List of methods F2
	Icon	LoF
	Select	ListOfFound (_method,All,Align,NoLine,Case,Sort)
	Help	Click to generate list of all routines/iters.

	Adjust	ListOfFound (_class,All,Whole,NoLine,Case,NoSort)

End


Shortcuts
	$;-	-------------------------------------------------------------------------------
End

