aboutsummaryrefslogtreecommitdiff
path: root/plugins/language_perl.lua
blob: cc1547f5ea752169e19d4247fd8b94bc2460e9ee (plain)
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
-- mod-version:3
local syntax = require "core.syntax"

syntax.add {
  name = "Perl",
  files = { "%.pm$", "%.pl$" },
  headers = "^#!.*[ /]perl",
  comment = "#",
  patterns = {
    { pattern = "%#.-\n",                 type = "comment"  },
    { pattern = { '"', '"', '\\' },       type = "string"   },
    { pattern = { "'", "'", '\\' },       type = "string"   },
    { pattern = { "qw%(", "%)", '\\' },     type = "string"   },
    { pattern = { "qw%[", "%]", '\\' },     type = "string"   },
    { pattern = { "qw%/", "%/", '\\' },     type = "string"   },
    { pattern = { "qq?%(", "%)",  '\\' },     type = "string"   },
    { pattern = { "qq?%[", "%]",  '\\' },     type = "string"   },
    { pattern = { "qq?%/", "%/",  '\\' },     type = "string"   },
    { pattern = { "^=%w+", "=cut" },   type = "comment" },
    -- until we can get this workign with s///, just don't do any of them.
    -- { pattern = { '/', '/', '\\' },       type = "string"   },
    { pattern = "-?%d+[%d%.eE]*",         type = "number"   },
    { pattern = "-?%.?%d+",               type = "number"   },
    { pattern = "[%a_][%w_]*%f[(]",       type = "function" },
    { pattern = "[%@%$%*%%]+[%a_][%w_]*", type = "keyword2" },
    { pattern = "[%a_][%w_]*%s+()=>", type =  { "string", "operator" } },
    { pattern = "sub%s+()[%w_]+", type =  { "keyword", "operator" } },
    { pattern = "[<=>%+%-%*%/:%&%|%!%?%~]+", type = "operator" },
    { pattern = "%--[%a_][%w_]*",         type = "symbol"   },
  },
  symbols = {
    ["-A"] = "keyword",
    ["END"] = "keyword",
    ["length"] = "keyword",
    ["setpgrp"] = "keyword",
    ["-B"] = "keyword",
    ["endgrent"] = "keyword",
    ["link"] = "keyword",
    ["setpriority"] = "keyword",
    ["-b"] = "keyword",
    ["endhostent"] = "keyword",
    ["listen"] = "keyword",
    ["setprotoent"] = "keyword",
    ["-C"] = "keyword",
    ["endnetent"] = "keyword",
    ["local"] = "keyword",
    ["setpwent"] = "keyword",
    ["-c"] = "keyword",
    ["endprotoent"] = "keyword",
    ["localtime"] = "keyword",
    ["setservent"] = "keyword",
    ["-d"] = "keyword",
    ["endpwent"] = "keyword",
    ["log"] = "keyword",
    ["setsockopt"] = "keyword",
    ["-e"] = "keyword",
    ["endservent"] = "keyword",
    ["lstat"] = "keyword",
    ["shift"] = "keyword",
    ["-f"] = "keyword",
    ["eof$"] = "keyword",
    ["map"] = "keyword",
    ["shmctl"] = "keyword",
    ["-g"] = "keyword",
    ["eval"] = "keyword",
    ["mkdir"] = "keyword",
    ["shmget"] = "keyword",
    ["-k"] = "keyword",
    ["exec"] = "keyword",
    ["msgctl"] = "keyword",
    ["shmread"] = "keyword",
    ["-l"] = "keyword",
    ["exists"] = "keyword",
    ["msgget"] = "keyword",
    ["shmwrite"] = "keyword",
    ["-M"] = "keyword",
    ["exit"] = "keyword",
    ["msgrcv"] = "keyword",
    ["shutdown"] = "keyword",
    ["-O"] = "keyword",
    ["fcntl"] = "keyword",
    ["msgsnd"] = "keyword",
    ["sin"] = "keyword",
    ["-o"] = "keyword",
    ["fileno"] = "keyword",
    ["my"] = "keyword",
    ["sleep"] = "keyword",
    ["-p"] = "keyword",
    ["flock"] = "keyword",
    ["next"] = "keyword",
    ["socket"] = "keyword",
    ["package"] = "keyword",
    ["-r"] = "keyword",
    ["fork"] = "keyword",
    ["not"] = "keyword",
    ["socketpair"] = "keyword",
    ["-R"] = "keyword",
    ["format"] = "keyword",
    ["oct"] = "keyword",
    ["sort"] = "keyword",
    ["-S"] = "keyword",
    ["formline"] = "keyword",
    ["open"] = "keyword",
    ["splice"] = "keyword",
    ["-s"] = "keyword",
    ["getc"] = "keyword",
    ["opendir"] = "keyword",
    ["split"] = "keyword",
    ["-T"] = "keyword",
    ["getgrent"] = "keyword",
    ["ord"] = "keyword",
    ["sprintf"] = "keyword",
    ["-t"] = "keyword",
    ["getgrgid"] = "keyword",
    ["our"] = "keyword",
    ["sqrt"] = "keyword",
    ["-u"] = "keyword",
    ["getgrnam"] = "keyword",
    ["pack"] = "keyword",
    ["srand"] = "keyword",
    ["-w"] = "keyword",
    ["gethostbyaddr"] = "keyword",
    ["pipe"] = "keyword",
    ["stat"] = "keyword",
    ["-W"] = "keyword",
    ["gethostbyname"] = "keyword",
    ["pop"] = "keyword",
    ["state"] = "keyword",
    ["-X"] = "keyword",
    ["gethostent"] = "keyword",
    ["pos"] = "keyword",
    ["study"] = "keyword",
    ["-x"] = "keyword",
    ["getlogin"] = "keyword",
    ["print"] = "keyword",
    ["substr"] = "keyword",
    ["-z"] = "keyword",
    ["getnetbyaddr"] = "keyword",
    ["printf"] = "keyword",
    ["symlink"] = "keyword",
    ["abs"] = "keyword",
    ["getnetbyname"] = "keyword",
    ["prototype"] = "keyword",
    ["syscall"] = "keyword",
    ["accept"] = "keyword",
    ["getnetent"] = "keyword",
    ["push"] = "keyword",
    ["sysopen"] = "keyword",
    ["alarm"] = "keyword",
    ["getpeername"] = "keyword",
    ["quotemeta"] = "keyword",
    ["sysread"] = "keyword",
    ["atan2"] = "keyword",
    ["getpgrp"] = "keyword",
    ["rand"] = "keyword",
    ["sysseek"] = "keyword",
    ["AUTOLOAD"] = "keyword",
    ["getppid"] = "keyword",
    ["read"] = "keyword",
    ["system"] = "keyword",
    ["BEGIN"] = "keyword",
    ["getpriority"] = "keyword",
    ["readdir"] = "keyword",
    ["syswrite"] = "keyword",
    ["bind"] = "keyword",
    ["getprotobyname"] = "keyword",
    ["readline"] = "keyword",
    ["tell"] = "keyword",
    ["binmode"] = "keyword",
    ["getprotobynumber"] = "keyword",
    ["SUPER"] = "keyword",
    ["readlink"] = "keyword",
    ["telldir"] = "keyword",
    ["bless"] = "keyword",
    ["sub"] = "keyword",
    ["getprotoent"] = "keyword",
    ["readpipe"] = "keyword",
    ["tie"] = "keyword",
    ["getpwent"] = "keyword",
    ["recv"] = "keyword",
    ["tied"] = "keyword",
    ["caller"] = "keyword",
    ["getpwnam"] = "keyword",
    ["redo"] = "keyword",
    ["time"] = "keyword",
    ["chdir"] = "keyword",
    ["getpwuid"] = "keyword",
    ["ref"] = "keyword",
    ["times"] = "keyword",
    ["CHECK"] = "keyword",
    ["getservbyname"] = "keyword",
    ["rename"] = "keyword",
    ["truncate"] = "keyword",
    ["chmod"] = "keyword",
    ["getservbyport"] = "keyword",
    ["require"] = "keyword",
    ["uc"] = "keyword",
    ["chomp"] = "keyword",
    ["getservent"] = "keyword",
    ["reset"] = "keyword",
    ["ucfirst"] = "keyword",
    ["chop"] = "keyword",
    ["getsockname"] = "keyword",
    ["return"] = "keyword",
    ["umask"] = "keyword",
    ["chown"] = "keyword",
    ["getsockopt"] = "keyword",
    ["reverse"] = "keyword",
    ["undef"] = "keyword",
    ["chr"] = "keyword",
    ["glob"] = "keyword",
    ["rewinddir"] = "keyword",
    ["UNITCHECK"] = "keyword",
    ["chroot"] = "keyword",
    ["gmtime"] = "keyword",
    ["rindex"] = "keyword",
    ["unlink"] = "keyword",
    ["close"] = "keyword",
    ["goto"] = "keyword",
    ["rmdir"] = "keyword",
    ["unpack"] = "keyword",
    ["closedir"] = "keyword",
    ["grep"] = "keyword",
    ["say"] = "keyword",
    ["unshift"] = "keyword",
    ["connect"] = "keyword",
    ["hex"] = "keyword",
    ["scalar"] = "keyword",
    ["untie"] = "keyword",
    ["cos"] = "keyword",
    ["index"] = "keyword",
    ["seek"] = "keyword",
    ["use"] = "keyword",
    ["crypt"] = "keyword",
    ["INIT"] = "keyword",
    ["seekdir"] = "keyword",
    ["utime"] = "keyword",
    ["dbmclose"] = "keyword",
    ["int"] = "keyword",
    ["select"] = "keyword",
    ["values"] = "keyword",
    ["dbmopen"] = "keyword",
    ["ioctl"] = "keyword",
    ["semctl"] = "keyword",
    ["vec"] = "keyword",
    ["defined"] = "keyword",
    ["join"] = "keyword",
    ["semget"] = "keyword",
    ["wait"] = "keyword",
    ["delete"] = "keyword",
    ["keys"] = "keyword",
    ["semop"] = "keyword",
    ["waitpid"] = "keyword",
    ["DESTROY"] = "keyword",
    ["kill"] = "keyword",
    ["send"] = "keyword",
    ["wantarray"] = "keyword",
    ["die"] = "keyword",
    ["last"] = "keyword",
    ["setgrent"] = "keyword",
    ["warn"] = "keyword",
    ["dump"] = "keyword",
    ["lc"] = "keyword",
    ["sethostent"] = "keyword",
    ["write"] = "keyword",
    ["each"] = "keyword",
    ["lcfirst"] = "keyword",
    ["setnetent"] = "keyword",
    ["while"] = "keyword",
    ["for"] = "keyword",
    ["if"] = "keyword",
    ["else"] = "keyword",
    ["elsif"] = "keyword",
    ["unless"] = "keyword",
    ["no"] = "keyword",
    ["new"] = "keyword",
    ["do"] = "keyword",
    ["__PACKAGE__"] = "keyword",
    ["warnings"] = "keyword2",
    ["strict"] = "keyword2",
    ["eq"] = "operator",
    ["ne"] = "operator",
    ["lt"] = "operator",
    ["gt"] = "operator",
    ["le"] = "operator",
    ["ge"] = "operator",
    ["cmp"] = "operator",
    ["STDERR"] = "keyword2",
    ["STDOUT"] = "keyword2"
  }
}