joe/syntax/troff.jsf

84 lines
1.0 KiB
Plaintext
Raw Normal View History

2024-10-16 10:58:52 +08:00
# 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