File: sieve.jsf

package info (click to toggle)
joe 4.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,308 kB
  • sloc: ansic: 51,623; sh: 4,358; makefile: 149; csh: 26
file content (121 lines) | stat: -rw-r--r-- 1,920 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# JOE syntax highlight file for Sieve
# by Christian Nicolai (http://mycrobase.de)

=Idle
=Ident
=Comment
=Constant
=String		+Constant
=Number		+Constant
=Boolean	+Constant
=Escape
=StringEscape	+Escape +String
=Keyword
=Statement	+Keyword
=Conditional	+Statement +Keyword
=Bad
=Brace

=TaggedArgument	+Operator +Keyword

:idle Idle
	*		idle
	"#"		line_comment	recolor=-1
	"/"		maybe_comment
	"1-9"		decimal		recolor=-1
	"\""		string		recolor=-1
	"[]{}"		brace		recolor=-1
	":"		maybe_tagged_arg
	"a-zA-Z_"	ident		buffer

:brace Brace
	*		idle		noeat

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

:maybe_comment Idle
	*		idle		noeat
	"*"		comment		recolor=-2

:comment Comment comment
	*		comment
	"BFHNTX"	comment		noeat call=comment_todo.comment_todo()
	"*"		maybe_end_comment

:maybe_end_comment Comment comment
	*		comment		noeat
	"/"		idle

:decimal Number
	*		idle		noeat
	"0-9"		decimal
	"KMG"		decimal_suffix

:decimal_suffix Number
	*		idle		noeat

:string String string
	*		string
	"\""		idle
	"\\"		string_escape	recolor=-1

:string_escape StringEscape string
	*		string_bad_escape	recolor=-1
	"\\"		string
	"\""		string

:string_bad_escape Bad
	*		string		noeat

:maybe_tagged_arg Idle
	*		idle		noeat
	"a-zA-Z_"	tagged_arg	recolor=-2

:tagged_arg TaggedArgument
	*		idle		noeat
	"a-zA-Z0-9_"	tagged_arg

:ident Ident
	*		idle		noeat strings
	# control"
	"else"		cond
	"elsif"		cond
	"if"		cond
	"require"	kw
	"stop"		kw
	# commands
	"discard"	cmd
	"fileinto"	cmd
	"keep"		cmd
	"redirect"	cmd
	# tests
	"address"	test
	"allof"		test
	"anyof"		test
	"envelope"	test
	"exists"	test
	"false"		bool
	"header"	test
	"not"		test
	"size"		test
	"true"		bool
done
	"a-zA-Z0-9_"	ident

:kw Keyword
	*		idle		noeat

:cmd Statement
	*		idle		noeat

:cond Conditional
	*		idle		noeat

:bool Boolean
	*		idle		noeat

:test Idle
	*		idle		noeat