File: //usr/share/joe/syntax/troff.jsf
# Syntax file for Troff
=Idle
=Comment
=Escape
=Command	+Statement +Keyword
=Bad
# First character of line
:first Idle
	*		rest		noeat
	".'"		command_1
:rest Idle
	*		rest
	"\n"		first
	"\\"		escape		recolor=-1
:command_1 Command
	*		rest		noeat
	" 	"	command_1
	"a-zA-Z_"	command_2
:command_2 Command
	*		rest
	"a-zA-Z0-9_"	command_done	recolor=-1
:command_done Command
	*		rest		noeat
:escape Escape
	*		bad		recolor=-2
	"-\\e'`. 0|^&!%acdprtu{}"	rest
	"*fgn"			name
	"k"			reg
	"z"			reg
	"("			name2
	"$s"			num
	"bCDhHlLNoSvwxX"	str
	"\n"		first
	"\""		comment		recolor=-2
# A name: ( means two characters
:name Escape
	*		rest
	"("		name2
# Two character name
:name2 Escape
	*		reg
# One character name
:reg Escape
	*		rest
# String
:str Escape
	*		bad	recolor=-1
	"'"		str_body
:str_body Escape
	*		str_body
	"\n"		first
	"'"		rest
# Number
:num Escape
	*		rest	noeat
	"-+0-9"		num
:comment Comment
	*		comment
	"\n"		first
	"BFHNTX"	comment		noeat call=comment_todo.comment_todo()
:bad Bad
	*		rest		noeat